co2 characteristic presentation format
This commit is contained in:
parent
f0888d131e
commit
f97119cb48
@ -50,6 +50,14 @@ ES_char_descr_t hum_char_descr = {
|
||||
.measurement_uncertainty = 30,
|
||||
};
|
||||
|
||||
char_pres_format_t CO2_char_pres_format = {
|
||||
.format = FORMAT_INT16,
|
||||
.exponent = 0,
|
||||
.unit = PPM_UNIT_UUID,
|
||||
.namespc = 1,
|
||||
.descr = NSP_DESC_MAIN,
|
||||
};
|
||||
|
||||
struct ble_hs_adv_fields adv_fields = {
|
||||
.flags = BLE_HS_ADV_F_DISC_GEN | BLE_HS_ADV_F_BREDR_UNSUP,
|
||||
.tx_pwr_lvl_is_present = 1,
|
||||
@ -85,6 +93,11 @@ static struct ble_gatt_svc_def gatt_svr_svcs[] = {
|
||||
.att_flags = BLE_ATT_F_READ,
|
||||
.access_cb = gatt_svr_chr_access_co2,
|
||||
},
|
||||
{
|
||||
.uuid = BLE_UUID16_DECLARE(CHAR_PRES_FORMAT),
|
||||
.att_flags = BLE_ATT_F_READ,
|
||||
.access_cb = gatt_svr_chr_access_co2,
|
||||
},
|
||||
{ 0 },
|
||||
},
|
||||
},
|
||||
@ -135,8 +148,16 @@ static int gatt_svr_chr_access_co2(uint16_t conn_handle, uint16_t attr_handle, s
|
||||
case BLE_GATT_ACCESS_OP_READ_CHR:
|
||||
rc = os_mbuf_append(ctxt->om, &main_app_conf->measure->co2, sizeof(main_app_conf->measure->co2));
|
||||
break;
|
||||
case BLE_GATT_ACCESS_OP_READ_DSC:
|
||||
rc = os_mbuf_append(ctxt->om, &CO2_char_descr, 11); // hardcoded size 'cause struct gets padded to 12bytes
|
||||
case BLE_GATT_ACCESS_OP_READ_DSC:{
|
||||
uint16_t uuid = ble_uuid_u16(ctxt->dsc->uuid);
|
||||
switch(uuid){
|
||||
case ES_MEASUREMENT_UUID:
|
||||
rc = os_mbuf_append(ctxt->om, &CO2_char_descr, 11); // hardcoded size 'cause struct gets padded to 12bytes
|
||||
break;
|
||||
case CHAR_PRES_FORMAT:
|
||||
rc = os_mbuf_append(ctxt->om, &CO2_char_pres_format, 7);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES;
|
||||
|
@ -14,6 +14,10 @@
|
||||
#define CHAR_TEMP_UUID 0x2A6E
|
||||
#define CHAR_HUM_UUID 0x2A6F
|
||||
#define CO2_SENSOR_APPEARANCE 0x054A
|
||||
#define CHAR_PRES_FORMAT 0x2904
|
||||
#define PPM_UNIT_UUID 0x27C4
|
||||
#define NSP_DESC_MAIN 0x0106
|
||||
|
||||
#define DEFAULT_NAME "CO2_ble"
|
||||
#define DEFAULT_NAME_LEN 7
|
||||
|
||||
@ -67,6 +71,37 @@ enum {
|
||||
ES_APP_SOLAR,
|
||||
};
|
||||
|
||||
enum {
|
||||
FORMAT_RFU,
|
||||
FORMAT_BOOL,
|
||||
FORMAT_UINT2,
|
||||
FORMAT_UINT4,
|
||||
FORMAT_UINT8,
|
||||
FORMAT_UINT12,
|
||||
FORMAT_UINT16,
|
||||
FORMAT_UINT24,
|
||||
FORMAT_UINT32,
|
||||
FORMAT_UINT48,
|
||||
FORMAT_UINT64,
|
||||
FORMAT_UINT128,
|
||||
FORMAT_INT8,
|
||||
FORMAT_INT12,
|
||||
FORMAT_INT16,
|
||||
FORMAT_INT24,
|
||||
FORMAT_INT32,
|
||||
FORMAT_INT48,
|
||||
FORMAT_INT64,
|
||||
FORMAT_INT128,
|
||||
FORMAT_FLOAT32,
|
||||
FORMAT_FLOAT64,
|
||||
FORMAT_IEEE11073_SFLOAT16,
|
||||
FORMAT_IEEE11073_FLOAT32,
|
||||
FORMAT_IEEE20601,
|
||||
FORMAT_UTF8,
|
||||
FORMAT_UTF16,
|
||||
FORMAT_OPAQUE,
|
||||
};
|
||||
|
||||
enum{
|
||||
ES_SVC_IDX,
|
||||
};
|
||||
@ -87,6 +122,15 @@ struct ES_char_descr {
|
||||
};
|
||||
typedef struct ES_char_descr ES_char_descr_t;
|
||||
|
||||
struct char_pres_format {
|
||||
uint8_t format;
|
||||
uint8_t exponent;
|
||||
uint16_t unit;
|
||||
uint8_t namespc;
|
||||
uint16_t descr;
|
||||
};
|
||||
typedef struct char_pres_format char_pres_format_t;
|
||||
|
||||
void initBle(configuration_data_t* main_conf);
|
||||
void ble_sensor_notify();
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user