Skip to content
Snippets Groups Projects
Commit 97716103 authored by schneider's avatar schneider
Browse files

feat(ess): Use BSEC if it is enabled

parent 47aca370
No related branches found
No related tags found
No related merge requests found
...@@ -180,13 +180,13 @@ WSF_CT_ASSERT( ...@@ -180,13 +180,13 @@ WSF_CT_ASSERT(
static TimerHandle_t poll_timer; static TimerHandle_t poll_timer;
static StaticTimer_t poll_timer_buffer; static StaticTimer_t poll_timer_buffer;
static void bleESS_update(struct bme680_sensor_data *data); static void update_from_bme680(struct bme680_sensor_data *data);
static void workpoll(void *data) static void workpoll(void *data)
{ {
struct bme680_sensor_data sensor_data; struct bme680_sensor_data sensor_data;
if (epic_bme680_read_sensors(&sensor_data) == 0) { if (epic_bme680_read_sensors(&sensor_data) == 0) {
bleESS_update(&sensor_data); update_from_bme680(&sensor_data);
} }
} }
...@@ -254,6 +254,11 @@ static void setAttrFromBME680(struct bme680_sensor_data *data) ...@@ -254,6 +254,11 @@ static void setAttrFromBME680(struct bme680_sensor_data *data)
); );
} }
static void setAttrFromBSEC(struct bsec_sensor_data *data)
{
setAttrFromBME680((struct bme680_sensor_data *)data);
}
/* /*
* BLE ESS read callback. * BLE ESS read callback.
* *
...@@ -316,7 +321,7 @@ static attsGroup_t svcESSGroup = { ...@@ -316,7 +321,7 @@ static attsGroup_t svcESSGroup = {
.endHandle = ESS_END_HDL, .endHandle = ESS_END_HDL,
}; };
static void bleESS_update(struct bme680_sensor_data *data) static void update_from_bme680(struct bme680_sensor_data *data)
{ {
setAttrFromBME680(data); setAttrFromBME680(data);
...@@ -327,6 +332,17 @@ static void bleESS_update(struct bme680_sensor_data *data) ...@@ -327,6 +332,17 @@ static void bleESS_update(struct bme680_sensor_data *data)
sendNotification(connId, ESS_PRESSURE_VAL_HDL, BLE_ESS_PRES_CCC_IDX); sendNotification(connId, ESS_PRESSURE_VAL_HDL, BLE_ESS_PRES_CCC_IDX);
} }
void bleESS_update_from_bsec_data(struct bsec_sensor_data *data)
{
setAttrFromBSEC(data);
/* Send notifications (if enabled) for all characteristics. */
dmConnId_t connId = AppConnIsOpen();
sendNotification(connId, ESS_TEMPERATURE_VAL_HDL, BLE_ESS_TEMP_CCC_IDX);
sendNotification(connId, ESS_HUMIDITY_VAL_HDL, BLE_ESS_HUMI_CCC_IDX);
sendNotification(connId, ESS_PRESSURE_VAL_HDL, BLE_ESS_PRES_CCC_IDX);
}
/* /*
* This registers and starts the ESS service. * This registers and starts the ESS service.
*/ */
...@@ -341,6 +357,10 @@ void bleESS_init(void) ...@@ -341,6 +357,10 @@ void bleESS_init(void)
*/ */
void bleESS_ccc_update(void) void bleESS_ccc_update(void)
{ {
if (bsec_active()) {
return;
}
dmConnId_t connId = AppConnIsOpen(); dmConnId_t connId = AppConnIsOpen();
if (connId != DM_CONN_ID_NONE && if (connId != DM_CONN_ID_NONE &&
(AttsCccEnabled(connId, BLE_ESS_TEMP_CCC_IDX) || (AttsCccEnabled(connId, BLE_ESS_TEMP_CCC_IDX) ||
......
...@@ -29,3 +29,4 @@ enum { ...@@ -29,3 +29,4 @@ enum {
}; };
void bleESS_ccc_update(void); void bleESS_ccc_update(void);
void bleESS_update_from_bsec_data(struct bsec_sensor_data *data);
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include "bosch.h" #include "bosch.h"
#include "bsec_integration.h" #include "bsec_integration.h"
#include "ble/ess.h"
#include "epicardium.h" #include "epicardium.h"
#include "modules.h" #include "modules.h"
#include "config.h" #include "config.h"
...@@ -119,6 +121,8 @@ void output_ready( ...@@ -119,6 +121,8 @@ void output_ready(
last_bme680_timestamp = timestamp; last_bme680_timestamp = timestamp;
bleESS_update_from_bsec_data(&last_bsec_data);
if (debug) { if (debug) {
LOG_INFO( LOG_INFO(
"bsec", "bsec",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment