BMP280.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #ifndef UNITEMP_BMP280
  2. #define UNITEMP_BMP280
  3. #include "../unitemp.h"
  4. #include "../Sensors.h"
  5. #include "../interfaces/I2CSensor.h"
  6. typedef struct {
  7. uint16_t dig_T1;
  8. int16_t dig_T2;
  9. int16_t dig_T3;
  10. } BMP280_temp_cal;
  11. typedef struct {
  12. uint16_t dig_P1;
  13. int16_t dig_P2;
  14. int16_t dig_P3;
  15. int16_t dig_P4;
  16. int16_t dig_P5;
  17. int16_t dig_P6;
  18. int16_t dig_P7;
  19. int16_t dig_P8;
  20. int16_t dig_P9;
  21. } BMP280_press_cal;
  22. typedef struct {
  23. //Калибровочные значения температуры
  24. BMP280_temp_cal temp_cal;
  25. //Калибровочные значения давления
  26. BMP280_press_cal press_cal;
  27. //Время последнего обновления калибровочных значений
  28. uint32_t last_cal_update_time;
  29. //Корректировочное значение температуры
  30. uint32_t t_fine;
  31. } BMP280_instance;
  32. extern const SensorType BMP280;
  33. /**
  34. * @brief Выделение памяти и установка начальных значений датчика BMP280
  35. * @param sensor Указатель на создаваемый датчик
  36. * @return Истина при успехе
  37. */
  38. bool unitemp_BMP280_alloc(Sensor* sensor, char* args);
  39. /**
  40. * @brief Инициализации датчика BMP280
  41. * @param sensor Указатель на датчик
  42. * @return Истина если инициализация упспешная
  43. */
  44. bool unitemp_BMP280_init(Sensor* sensor);
  45. /**
  46. * @brief Деинициализация датчика
  47. * @param sensor Указатель на датчик
  48. */
  49. bool unitemp_BMP280_deinit(Sensor* sensor);
  50. /**
  51. * @brief Обновление значений из датчика
  52. * @param sensor Указатель на датчик
  53. * @return Статус опроса датчика
  54. */
  55. UnitempStatus unitemp_BMP280_update(Sensor* sensor);
  56. /**
  57. * @brief Высвободить память датчика
  58. * @param sensor Указатель на датчик
  59. */
  60. bool unitemp_BMP280_free(Sensor* sensor);
  61. #endif