#ifndef BTLIB_H #define BTLIB_H #include "nimble/ble.h" #include "host/ble_hs.h" #include "configuration.h" #define C_WL_MODE_BLE 0b100 #define ENVIRONMENTAL_SENSING_UUID 0x181A #define ES_MEASUREMENT_UUID 0x290C #define CHAR_CO2_UUID 0x0C39 #define CHAR_TEMP_UUID 0x2A6E #define CHAR_HUM_UUID 0x2A6F #define CO2_SENSOR_APPEARANCE 0x054A #define DEFAULT_NAME "CO2_ble" #define DEFAULT_NAME_LEN 7 #define NIMBLE_LOG_TAG "NIMBLE" enum { ES_SAMPLING_FUNC_UNSPEC, ES_SAMPLING_FUNC_INSTANT, ES_SAMPLING_FUNC_MEAN, ES_SAMPLING_FUNC_RMS, ES_SAMPLING_FUNC_MAX, ES_SAMPLING_FUNC_MIN, ES_SAMPLING_FUNC_ACC, ES_SAMPLING_FUNC_COUNT, }; enum { ES_APP_UNSPEC, ES_APP_AIR, ES_APP_WATER, ES_APP_BAROMETRIC, ES_APP_SOIL, ES_APP_INFRARED, ES_APP_MAP_DB, ES_APP_BAROMETRIC_EL, ES_APP_GPS_EL, ES_APP_GPS_MAP_EL, ES_APP_VERT_EL, ES_APP_ONSHORE, ES_APP_ONBOARD, ES_APP_FRONT, ES_APP_BACK, ES_APP_UPPER, ES_APP_LOWER, ES_APP_PRIMARY, ES_APP_SECONDARY, ES_APP_OUTDOOR, ES_APP_INDOOR, ES_APP_TOP, ES_APP_BOTTOM, ES_APP_MAIN, ES_APP_BACKUP, ES_APP_AUXILIARY, ES_APP_SUPPLEMENTARY, ES_APP_INSIDE, ES_APP_OUTSIDE, ES_APP_LEFT, ES_APP_RIGHT, ES_APP_INTERNAL, ES_APP_EXTERNAL, ES_APP_SOLAR, }; enum{ ES_SVC_IDX, }; enum{ ES_CHAR_CO2, ES_CHAR_TEMP, ES_CHAR_HUM, ES_CHAR_NB, }; struct ES_char_descr { uint16_t flags; uint8_t sampling_function; uint8_t measurement_period[3]; uint8_t update_interval[3]; uint8_t application; uint8_t measurement_uncertainty; }; typedef struct ES_char_descr ES_char_descr_t; void initBle(configuration_data_t* main_conf); void ble_sensor_notify(); #endif