Maxim Integrated's IoT development kit.
Dependencies: MAX30101 MAX30003 MAX113XX_Pixi MAX30205 max32630fthr USBDevice
Revision 15:0d47d5879a21, committed 2018-07-19
- Comitter:
- Mahir Ozturk
- Date:
- Thu Jul 19 16:50:40 2018 +0300
- Parent:
- 14:37542841f707
- Child:
- 16:503f8308e2db
- Commit message:
- Add description and format descriptor for each ble characteristic
Changed in this revision
--- a/ble_comm.cpp Thu Jul 19 15:06:27 2018 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
- * ble_comm.cpp
- *
- * Created on: Jun 21, 2018
- * Author: Mahir.Ozturk
- */
-/******************************************************************************/
-#include <mbed.h>
-#include "ble_comm.h"
-
-Mutex ble_mutex;
-
-ble_error_t bleGattAttrWrite(GattAttribute::Handle_t handle, const uint8_t *value, uint16_t size)
-{
- BLE &ble = BLE::Instance();
- ble_error_t ret;
-
- ble_mutex.lock();
-
- ret = ble.gattServer().write(handle, value, size);
-
- ble_mutex.unlock();
-
- return ret;
-}
--- a/ble_comm.h Thu Jul 19 15:06:27 2018 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -/* - * ble_comm.h - * - * Created on: Jun 21, 2018 - * Author: Mahir.Ozturk - */ - -#ifndef BLE_COMM_H_ -#define BLE_COMM_H_ - -#include <ble/BLE.h> - -ble_error_t bleGattAttrWrite(GattAttribute::Handle_t handle, const uint8_t *value, uint16_t size); - -#endif /* BLE_COMM_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ble_gatt.cpp Thu Jul 19 16:50:40 2018 +0300
@@ -0,0 +1,25 @@
+/*
+ * ble_comm.cpp
+ *
+ * Created on: Jun 21, 2018
+ * Author: Mahir.Ozturk
+ */
+/******************************************************************************/
+#include <mbed.h>
+#include "ble_gatt.h"
+
+Mutex ble_mutex;
+
+ble_error_t bleGattAttrWrite(GattAttribute::Handle_t handle, const uint8_t *value, uint16_t size)
+{
+ BLE &ble = BLE::Instance();
+ ble_error_t ret;
+
+ ble_mutex.lock();
+
+ ret = ble.gattServer().write(handle, value, size);
+
+ ble_mutex.unlock();
+
+ return ret;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ble_gatt.h Thu Jul 19 16:50:40 2018 +0300
@@ -0,0 +1,52 @@
+/*
+ * ble_comm.h
+ *
+ * Created on: Jun 21, 2018
+ * Author: Mahir.Ozturk
+ */
+
+#ifndef BLE_COMM_H_
+#define BLE_COMM_H_
+
+#include <ble/BLE.h>
+
+#define BLE_DESC_GATT_CPF_FORMAT_RFU 0x00 /**< Reserved For Future Use. */
+#define BLE_DESC_GATT_CPF_FORMAT_BOOL 0x01 /**< Boolean. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT2 0x02 /**< Unsigned 2-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT4 0x03 /**< Unsigned 4-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT8 0x04 /**< Unsigned 8-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT12 0x05 /**< Unsigned 12-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT16 0x06 /**< Unsigned 16-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT24 0x07 /**< Unsigned 24-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT32 0x08 /**< Unsigned 32-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT48 0x09 /**< Unsigned 48-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT64 0x0A /**< Unsigned 64-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_UINT128 0x0B /**< Unsigned 128-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT8 0x0C /**< Signed 2-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT12 0x0D /**< Signed 12-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT16 0x0E /**< Signed 16-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT24 0x0F /**< Signed 24-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT32 0x10 /**< Signed 32-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT48 0x11 /**< Signed 48-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT64 0x12 /**< Signed 64-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_SINT128 0x13 /**< Signed 128-bit integer. */
+#define BLE_DESC_GATT_CPF_FORMAT_FLOAT32 0x14 /**< IEEE-754 32-bit floating point. */
+#define BLE_DESC_GATT_CPF_FORMAT_FLOAT64 0x15 /**< IEEE-754 64-bit floating point. */
+#define BLE_DESC_GATT_CPF_FORMAT_SFLOAT 0x16 /**< IEEE-11073 16-bit SFLOAT. */
+#define BLE_DESC_GATT_CPF_FORMAT_FLOAT 0x17 /**< IEEE-11073 32-bit FLOAT. */
+#define BLE_DESC_GATT_CPF_FORMAT_DUINT16 0x18 /**< IEEE-20601 format. */
+#define BLE_DESC_GATT_CPF_FORMAT_UTF8S 0x19 /**< UTF-8 string. */
+#define BLE_DESC_GATT_CPF_FORMAT_UTF16S 0x1A /**< UTF-16 string. */
+#define BLE_DESC_GATT_CPF_FORMAT_STRUCT 0x1B /**< Opaque Structure. */
+
+typedef struct {
+ uint8_t format;
+ int8_t exponent;
+ uint16_t unit;
+ uint8_t name_space;
+ uint16_t desc;
+} ble_desc_gatt_cpf_t;
+
+ble_error_t bleGattAttrWrite(GattAttribute::Handle_t handle, const uint8_t *value, uint16_t size);
+
+#endif /* BLE_COMM_H_ */
--- a/main.cpp Thu Jul 19 15:06:27 2018 +0300
+++ b/main.cpp Thu Jul 19 16:50:40 2018 +0300
@@ -37,6 +37,7 @@
#include "ble/BLE.h"
#include "ble/Gap.h"
#include "max32630fthr.h"
+#include "ble_gatt.h"
#if defined(LIB_MAX30205)
# include "max30205_app.h"
#endif
@@ -69,75 +70,116 @@
/* Hardware serial port over DAPLink */
Serial daplink(USBTX, USBRX, 115200);
-int aliveLedEventId;
+int alive_led_event_id;
/******************************************************************************/
const static char DEVICE_NAME[] = MAXIM_PLATFORM_NAME;
-static const uint16_t uuid16_list[] = {0xFFFF}; //Custom UUID, FFFF is reserved for development
+//static const uint16_t uuid16_list[] = {0xFFFF}; //Custom UUID, FFFF is reserved for development
/* Set Up custom Characteristics */
-UUID iotServiceUUID ("00001520-1d66-11e8-b467-0ed5f89f718b");
+UUID iot_service_uuid("00001520-1d66-11e8-b467-0ed5f89f718b");
+
+static ble_desc_gatt_cpf_t cpf_float32 = {.format = BLE_DESC_GATT_CPF_FORMAT_FLOAT32};
+static ble_desc_gatt_cpf_t cpf_uint16 = {.format = BLE_DESC_GATT_CPF_FORMAT_UINT16};
+static ble_desc_gatt_cpf_t cpf_uint8 = {.format = BLE_DESC_GATT_CPF_FORMAT_UINT8};
+
+GattAttribute gatt_attr_cpf_format_float32(BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT, (uint8_t *)&cpf_float32, sizeof(ble_desc_gatt_cpf_t));
+GattAttribute gatt_attr_cpf_format_uint16(BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT, (uint8_t *)&cpf_uint16, sizeof(ble_desc_gatt_cpf_t));
+GattAttribute gatt_attr_cpf_format_uint8(BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT, (uint8_t *)&cpf_uint8, sizeof(ble_desc_gatt_cpf_t));
-UUID uuidButtonPressedNotify("00001522-1d66-11e8-b467-0ed5f89f718b");
-static uint8_t buttonPressedCount = 0;
-GattCharacteristic gattCharButtonPressedNotify(uuidButtonPressedNotify, &buttonPressedCount, 1, 1,
- GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+UUID gatt_char_uuid_pushbutton("00001522-1d66-11e8-b467-0ed5f89f718b");
+static uint8_t pushbutton_press_count = 0;
+GattAttribute pushbutton_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"Push Button", sizeof("Push Button"));
+GattAttribute *pushbutton_descriptors[] = {&pushbutton_user_desc_descriptor, &gatt_attr_cpf_format_uint8};
+GattCharacteristic gatt_char_pushbutton(gatt_char_uuid_pushbutton, &pushbutton_press_count, 1, 1,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY,
+ pushbutton_descriptors,
+ sizeof(pushbutton_descriptors) / sizeof(GattAttribute*));
-UUID uuidRGBLED("00001523-1d66-11e8-b467-0ed5f89f718b");
-static uint8_t RGBLedInitValue[] = {LED_OFF, LED_OFF, LED_OFF};
-ReadWriteArrayGattCharacteristic<uint8_t, sizeof(RGBLedInitValue)> gattCharRGBLed(uuidRGBLED, RGBLedInitValue);
+UUID gatt_char_uuid_led("00001523-1d66-11e8-b467-0ed5f89f718b");
+static uint8_t led_init_value[] = {LED_OFF, LED_OFF, LED_OFF};
+GattAttribute led_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"LED", sizeof("LED"));
+GattAttribute *led_descriptors[] = {&led_user_desc_descriptor};
+ReadWriteArrayGattCharacteristic<uint8_t, sizeof(led_init_value)> gatt_char_led(gatt_char_uuid_led, led_init_value,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NONE,
+ led_descriptors,
+ sizeof(led_descriptors) / sizeof(GattAttribute*));
#if defined(LIB_MAX30003)
-UUID uuidBPM("00001524-1d66-11e8-b467-0ed5f89f718b");
-static float BPMInitValue;
-ReadOnlyGattCharacteristic<float> gattCharBPM(uuidBPM, &BPMInitValue,
- GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+UUID gatt_char_uuid_bpm("00001524-1d66-11e8-b467-0ed5f89f718b");
+static float bpm_init_value;
+GattAttribute bpm_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"BPM", sizeof("BPM"));
+GattAttribute *bpm_descriptors[] = {&bpm_user_desc_descriptor, &gatt_attr_cpf_format_float32};
+ReadOnlyGattCharacteristic<float> gatt_char_bpm(gatt_char_uuid_bpm, &bpm_init_value,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY,
+ bpm_descriptors,
+ sizeof(bpm_descriptors) / sizeof(GattAttribute*));
#endif
#if defined(LIB_MAX30101)
-UUID uuidHeartRate("00001525-1d66-11e8-b467-0ed5f89f718b");
-static uint16_t HeartRateInitValue;
-ReadOnlyGattCharacteristic<uint16_t> gattCharHeartRate(uuidHeartRate, &HeartRateInitValue,
- GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+UUID gatt_char_uuid_heartrate("00001525-1d66-11e8-b467-0ed5f89f718b");
+static uint16_t heartrate_init_value;
+GattAttribute heartrate_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"Heart Rate", sizeof("Heart Rate"));
+GattAttribute *heartrate_descriptors[] = {&heartrate_user_desc_descriptor, &gatt_attr_cpf_format_uint16};
+ReadOnlyGattCharacteristic<uint16_t> gatt_char_heartrate(gatt_char_uuid_heartrate,
+ &heartrate_init_value,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY,
+ heartrate_descriptors,
+ sizeof(heartrate_descriptors) / sizeof(GattAttribute*));
-UUID uuidSPO2("00001526-1d66-11e8-b467-0ed5f89f718b");
-static uint16_t SPO2InitValue;
-ReadOnlyGattCharacteristic<uint16_t> gattCharSPO2(uuidSPO2, &SPO2InitValue,
- GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+UUID gatt_char_uuid_spo2("00001526-1d66-11e8-b467-0ed5f89f718b");
+static uint16_t spo2_init_value;
+GattAttribute spo2_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"SPO2", sizeof("SPO2"));
+GattAttribute *spo2_descriptors[] = {&spo2_user_desc_descriptor, &gatt_attr_cpf_format_uint16};
+ReadOnlyGattCharacteristic<uint16_t> gatt_char_spo2(gatt_char_uuid_spo2,
+ &spo2_init_value,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY,
+ spo2_descriptors,
+ sizeof(spo2_descriptors) / sizeof(GattAttribute*));
#endif
#if defined(LIB_MAX113XX_PIXI)
-UUID uuidADC("00001527-1d66-11e8-b467-0ed5f89f718b");
-static float ADCInitValue;
-ReadOnlyGattCharacteristic<float> gattCharADC(uuidADC, &ADCInitValue,
- GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+UUID gatt_char_uuid_voltage("00001527-1d66-11e8-b467-0ed5f89f718b");
+static float voltage_init_value;
+GattAttribute voltage_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"ADC Voltage", sizeof("ADC Voltage"));
+GattAttribute *voltage_descriptors[] = {&voltage_user_desc_descriptor, &gatt_attr_cpf_format_float32};
+ReadOnlyGattCharacteristic<float> gatt_char_voltage(gatt_char_uuid_voltage,
+ &voltage_init_value,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY,
+ voltage_descriptors,
+ sizeof(voltage_descriptors) / sizeof(GattAttribute*));
#endif
#if defined(LIB_MAX30205)
-UUID uuidTemp("00001528-1d66-11e8-b467-0ed5f89f718b");
-static float TempInitValue;
-ReadOnlyGattCharacteristic<float> gattCharTemp(uuidTemp, &TempInitValue,
- GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+UUID gatt_char_uuid_temp("00001528-1d66-11e8-b467-0ed5f89f718b");
+static float temp_init_value;
+GattAttribute temp_user_desc_descriptor(BLE_UUID_DESCRIPTOR_CHAR_USER_DESC, (uint8_t *)"Temperature", sizeof("Temperature"));
+GattAttribute *temp_descriptors[] = {&temp_user_desc_descriptor, &gatt_attr_cpf_format_float32};
+ReadOnlyGattCharacteristic<float> gatt_char_temp(gatt_char_uuid_temp,
+ &temp_init_value,
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY,
+ temp_descriptors,
+ sizeof(temp_descriptors) / sizeof(GattAttribute*));
#endif
/* Set up custom service */
-GattCharacteristic *characteristics[] = {&gattCharRGBLed, &gattCharButtonPressedNotify,
+GattCharacteristic *characteristics[] = {&gatt_char_led, &gatt_char_pushbutton,
#if defined(LIB_MAX30003)
- &gattCharBPM,
+ &gatt_char_bpm,
#endif
#if defined(LIB_MAX30205)
- &gattCharTemp,
+ &gatt_char_temp,
#endif
#if defined(LIB_MAX30101)
- &gattCharHeartRate,
- &gattCharSPO2,
+ &gatt_char_heartrate,
+ &gatt_char_spo2,
#endif
#if defined(LIB_MAX113XX_PIXI)
- &gattCharADC,
+ &gatt_char_voltage,
#endif
};
-GattService iotService(iotServiceUUID, characteristics, sizeof(characteristics) / sizeof(GattCharacteristic *));
+GattService iot_gatt_service(iot_service_uuid, characteristics, sizeof(characteristics) / sizeof(GattCharacteristic *));
/******************************************************************************/
@@ -145,12 +187,12 @@
void updateButtonState(uint8_t newState) {
printf("Button pressed...\r\n");
- bleGattAttrWrite(gattCharButtonPressedNotify.getValueHandle(), (uint8_t *)&newState, sizeof(uint8_t));
+ bleGattAttrWrite(gatt_char_pushbutton.getValueHandle(), (uint8_t *)&newState, sizeof(uint8_t));
}
void buttonPressedCallback(void)
{
- eventQueue.call(Callback<void(uint8_t)>(&updateButtonState), ++buttonPressedCount);
+ eventQueue.call(Callback<void(uint8_t)>(&updateButtonState), ++pushbutton_press_count);
}
void disconnectionCallback(const Gap::DisconnectionCallbackParams_t *params)
@@ -183,7 +225,7 @@
*/
void onDataWrittenCallback(const GattWriteCallbackParams *params)
{
- if ((params->handle == gattCharRGBLed.getValueHandle()) && (params->len >= 3)) {
+ if ((params->handle == gatt_char_led.getValueHandle()) && (params->len >= 3)) {
rLED = (params->data[0] != 0) ? LED_OFF : LED_ON;
gLED = (params->data[1] != 0) ? LED_OFF : LED_ON;
bLED = (params->data[2] != 0) ? LED_OFF : LED_ON;
@@ -211,11 +253,11 @@
ble.gattServer().onDataWritten(onDataWrittenCallback);
- ble.gattServer().addService(iotService);
+ ble.gattServer().addService(iot_gatt_service);
/* setup advertising */
ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
- ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t *)uuid16_list, sizeof(uuid16_list));
+ //ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t *)uuid16_list, sizeof(uuid16_list));
ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME));
ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
ble.gap().setAdvertisingInterval(1000); /* 1000ms. */
@@ -234,7 +276,7 @@
osStatus status;
rLED = LED_OFF; gLED = LED_OFF; bLED = LED_OFF;
- aliveLedEventId = eventQueue.call_every(1000, blinkCallback);
+ alive_led_event_id = eventQueue.call_every(1000, blinkCallback);
printf("Initializing BLE service...\r\n");
@@ -246,7 +288,7 @@
Thread thread_max30205_reader;
struct max30205_reader_task_args args_max30205 = {
i2c1,
- gattCharTemp.getValueHandle(),
+ gatt_char_temp.getValueHandle(),
MAX30205_BLE_NOTIFY_PERIOD_SEC};
status = thread_max30205_reader.start(callback(max30205_reader_task, &args_max30205));
if (status != osOK) {
@@ -259,8 +301,8 @@
struct max30101_reader_task_args args_max30101 = {
&thread_max30101_reader,
i2c1, P3_2, P3_3,
- gattCharHeartRate.getValueHandle(),
- gattCharSPO2.getValueHandle(),
+ gatt_char_heartrate.getValueHandle(),
+ gatt_char_spo2.getValueHandle(),
MAX30101_BLE_NOTIFY_PERIOD_SEC};
status = thread_max30101_reader.start(callback(max30101_reader_task, &args_max30101));
if (status != osOK) {
@@ -273,7 +315,7 @@
struct max30003_reader_task_args args_max30003 = {
&thread_max30003_reader,
spim2, SPI2_SS,
- gattCharBPM.getValueHandle(),
+ gatt_char_bpm.getValueHandle(),
MAX30003_BLE_NOTIFY_PERIOD_SEC};
status = thread_max30003_reader.start(callback(max30003_reader_task, &args_max30003));
if (status != osOK) {
@@ -285,7 +327,7 @@
Thread thread_max11301_reader;
struct max11301_reader_task_args args_max11301 = {
i2c1,
- gattCharADC.getValueHandle(),
+ gatt_char_voltage.getValueHandle(),
MAX113XX_PIXI_BLE_NOTIFY_PERIOD_SEC};
status = thread_max11301_reader.start(callback(max11301_reader_task, &args_max11301));
if (status != osOK) {
--- a/max113xx_pixi_app.cpp Thu Jul 19 15:06:27 2018 +0300 +++ b/max113xx_pixi_app.cpp Thu Jul 19 16:50:40 2018 +0300 @@ -8,7 +8,6 @@ #include "max113xx_pixi_app.h" #include "MAX113XX_Pixi.h" #include "MAX11301Hex.h" -#include "ble_comm.h" #define MAX113XX_DATA_READ_PERIOD_MSEC 2000 #define MAX113XX_I2C_ADDRESS 0x38
--- a/max113xx_pixi_app.h Thu Jul 19 15:06:27 2018 +0300
+++ b/max113xx_pixi_app.h Thu Jul 19 16:50:40 2018 +0300
@@ -8,7 +8,7 @@
#ifndef MAX113XX_PIXI_APP_H_
#define MAX113XX_PIXI_APP_H_
-#include "ble_comm.h"
+#include "ble_gatt.h"
struct max11301_reader_task_args {
I2C &i2cBus;
--- a/max30003_app.h Thu Jul 19 15:06:27 2018 +0300
+++ b/max30003_app.h Thu Jul 19 16:50:40 2018 +0300
@@ -8,7 +8,7 @@
#ifndef MAX30003_APP_H_
#define MAX30003_APP_H_
-#include "ble_comm.h"
+#include "ble_gatt.h"
struct max30003_reader_task_args {
Thread *self;
--- a/max30101_app.h Thu Jul 19 15:06:27 2018 +0300
+++ b/max30101_app.h Thu Jul 19 16:50:40 2018 +0300
@@ -8,7 +8,7 @@
#ifndef MAX30101_APP_H_
#define MAX30101_APP_H_
-#include "ble_comm.h"
+#include "ble_gatt.h"
struct max30101_reader_task_args {
Thread *self;
--- a/max30205_app.h Thu Jul 19 15:06:27 2018 +0300
+++ b/max30205_app.h Thu Jul 19 16:50:40 2018 +0300
@@ -8,7 +8,7 @@
#ifndef MAX30205_APP_H_
#define MAX30205_APP_H_
-#include "ble_comm.h"
+#include "ble_gatt.h"
struct max30205_reader_task_args {
I2C &i2cBus;