#ifndef UNITEMP_BMP280 #define UNITEMP_BMP280 #include "../unitemp.h" #include "../Sensors.h" #include "../interfaces/I2CSensor.h" typedef struct { uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; } BMP280_temp_cal; typedef struct { uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; } BMP280_press_cal; typedef struct { //Калибровочные значения температуры BMP280_temp_cal temp_cal; //Калибровочные значения давления BMP280_press_cal press_cal; //Время последнего обновления калибровочных значений uint32_t last_cal_update_time; //Корректировочное значение температуры uint32_t t_fine; } BMP280_instance; extern const SensorType BMP280; /** * @brief Выделение памяти и установка начальных значений датчика BMP280 * @param sensor Указатель на создаваемый датчик * @return Истина при успехе */ bool unitemp_BMP280_alloc(Sensor* sensor, char* args); /** * @brief Инициализации датчика BMP280 * @param sensor Указатель на датчик * @return Истина если инициализация упспешная */ bool unitemp_BMP280_init(Sensor* sensor); /** * @brief Деинициализация датчика * @param sensor Указатель на датчик */ bool unitemp_BMP280_deinit(Sensor* sensor); /** * @brief Обновление значений из датчика * @param sensor Указатель на датчик * @return Статус опроса датчика */ UnitempStatus unitemp_BMP280_update(Sensor* sensor); /** * @brief Высвободить память датчика * @param sensor Указатель на датчик */ bool unitemp_BMP280_free(Sensor* sensor); #endif