summaryrefslogtreecommitdiff
path: root/sensor/patchedBLE/src/BLERemoteCharacteristic.h
diff options
context:
space:
mode:
Diffstat (limited to 'sensor/patchedBLE/src/BLERemoteCharacteristic.h')
-rw-r--r--sensor/patchedBLE/src/BLERemoteCharacteristic.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/sensor/patchedBLE/src/BLERemoteCharacteristic.h b/sensor/patchedBLE/src/BLERemoteCharacteristic.h
index 6f23f49..fbcafe8 100644
--- a/sensor/patchedBLE/src/BLERemoteCharacteristic.h
+++ b/sensor/patchedBLE/src/BLERemoteCharacteristic.h
@@ -21,6 +21,7 @@
class BLERemoteService;
class BLERemoteDescriptor;
+typedef void (*notify_callback)(BLERemoteCharacteristic* pBLERemoteCharacteristic, uint8_t* pData, size_t length, bool isNotify);
/**
* @brief A model of a remote %BLE characteristic.
@@ -37,18 +38,19 @@ public:
bool canWrite();
bool canWriteNoResponse();
BLERemoteDescriptor* getDescriptor(BLEUUID uuid);
- std::map<std::string, BLERemoteDescriptor *>* getDescriptors();
+ std::map<std::string, BLERemoteDescriptor*>* getDescriptors();
uint16_t getHandle();
BLEUUID getUUID();
- std::string readValue(void);
- uint8_t readUInt8(void);
- uint16_t readUInt16(void);
- uint32_t readUInt32(void);
- void registerForNotify(void (*notifyCallback)(BLERemoteCharacteristic* pBLERemoteCharacteristic, uint8_t* pData, size_t length, bool isNotify));
+ std::string readValue();
+ uint8_t readUInt8();
+ uint16_t readUInt16();
+ uint32_t readUInt32();
+ void registerForNotify(notify_callback _callback, bool notifications = true);
void writeValue(uint8_t* data, size_t length, bool response = false);
void writeValue(std::string newValue, bool response = false);
void writeValue(uint8_t newValue, bool response = false);
- std::string toString(void);
+ std::string toString();
+ uint8_t* readRawData();
private:
BLERemoteCharacteristic(uint16_t handle, BLEUUID uuid, esp_gatt_char_prop_t charProp, BLERemoteService* pRemoteService);
@@ -57,11 +59,7 @@ private:
friend class BLERemoteDescriptor;
// Private member functions
- void gattClientEventHandler(
- esp_gattc_cb_event_t event,
- esp_gatt_if_t gattc_if,
- esp_ble_gattc_cb_param_t* evtParam);
-
+ void gattClientEventHandler(esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t* evtParam);
BLERemoteService* getRemoteService();
void removeDescriptors();
@@ -76,7 +74,8 @@ private:
FreeRTOS::Semaphore m_semaphoreRegForNotifyEvt = FreeRTOS::Semaphore("RegForNotifyEvt");
FreeRTOS::Semaphore m_semaphoreWriteCharEvt = FreeRTOS::Semaphore("WriteCharEvt");
std::string m_value;
- void (*m_notifyCallback)(BLERemoteCharacteristic* pBLERemoteCharacteristic, uint8_t* pData, size_t length, bool isNotify);
+ uint8_t *m_rawData;
+ notify_callback m_notifyCallback;
// We maintain a map of descriptors owned by this characteristic keyed by a string representation of the UUID.
std::map<std::string, BLERemoteDescriptor*> m_descriptorMap;