Skip to content

Commit d0655b3

Browse files
committed
change BLECLientCharacteristic notify callback signature
from notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len) to notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len) Added
1 parent 4747a9b commit d0655b3

File tree

9 files changed

+29
-23
lines changed

9 files changed

+29
-23
lines changed

changelog.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
- Fixed burning bootloader issue with MacOS
66
- Added gpstest_swuart example sketch
77
- Added indicate API for BLECharacteristic
8-
- Added useAdaCallback option to setNotifyCallback(), setIndicateCallback() for BLEClientCharacteristic
8+
- BLEClientCharacteristic
9+
- Added setIndicateCallback(), issue #113
10+
- Added useAdaCallback option to setNotifyCallback(), setIndicateCallback()
11+
- Change notify callback signature from
12+
notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len) to notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len)
913

1014
## 0.8.1
1115

libraries/Bluefruit52Lib/examples/Central/central_custom_hrm/central_custom_hrm.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,12 @@ void disconnect_callback(uint16_t conn_handle, uint8_t reason)
175175

176176
/**
177177
* Hooked callback that triggered when a measurement value is sent from peripheral
178-
* @param chr Reference to client characteristic that even occurred,
178+
* @param chr Pointer client characteristic that even occurred,
179179
* in this example it should be hrmc
180180
* @param data Pointer to received data
181181
* @param len Length of received data
182182
*/
183-
void hrm_notify_callback(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len)
183+
void hrm_notify_callback(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len)
184184
{
185185
// https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.heart_rate_measurement.xml
186186
// Measurement contains of control byte0 and measurement (8 or 16 bit) + optional field

libraries/Bluefruit52Lib/src/BLEClientCharacteristic.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -408,10 +408,11 @@ void BLEClientCharacteristic::_eventHandler(ble_evt_t* evt)
408408
if (!data) return;
409409
memcpy(data, hvx->data, hvx->len);
410410

411+
// data is free by callback
411412
ada_callback(data, _notify_cb, this, data, hvx->len);
412413
}else
413414
{
414-
_notify_cb(*this, hvx->data, hvx->len);
415+
_notify_cb(this, hvx->data, hvx->len);
415416
}
416417
}
417418
break;
@@ -426,10 +427,11 @@ void BLEClientCharacteristic::_eventHandler(ble_evt_t* evt)
426427
if (!data) return;
427428
memcpy(data, hvx->data, hvx->len);
428429

429-
ada_callback(data, _notify_cb, this, data, hvx->len);
430+
// data is free by callback
431+
ada_callback(data, _indicate_cb, this, data, hvx->len);
430432
}else
431433
{
432-
_notify_cb(*this, hvx->data, hvx->len);
434+
_indicate_cb(this, hvx->data, hvx->len);
433435
}
434436
}
435437
break;

libraries/Bluefruit52Lib/src/BLEClientCharacteristic.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ class BLEClientCharacteristic
4747
{
4848
public:
4949
/*--------- Callback Signatures ----------*/
50-
typedef void (*notify_cb_t ) (BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
51-
typedef void (*indicate_cb_t) (BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
50+
typedef void (*notify_cb_t ) (BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
51+
typedef void (*indicate_cb_t) (BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
5252

5353
BLEUuid uuid;
5454

libraries/Bluefruit52Lib/src/clients/BLEAncs.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040

4141
#define DEBUG_ANCS 0
4242

43-
void bleancs_notification_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
44-
void bleancs_data_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
43+
void bleancs_notification_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
44+
void bleancs_data_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
4545

4646
/* ANCS Service : 7905F431-B5CE-4E99-A40F-4B1E122D00D0
4747
* Control Point : 69D1D8F3-45E1-49A8-9821-9BBDFDAAD9D9
@@ -383,14 +383,14 @@ bool BLEAncs::actNegative(uint32_t uid)
383383
/*------------------------------------------------------------------*/
384384
/* Callback
385385
*------------------------------------------------------------------*/
386-
void bleancs_notification_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len)
386+
void bleancs_notification_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len)
387387
{
388-
BLEAncs& svc = (BLEAncs&) chr.parentService();
388+
BLEAncs& svc = (BLEAncs&) chr->parentService();
389389
svc._handleNotification(data, len);
390390
}
391391

392-
void bleancs_data_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len)
392+
void bleancs_data_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len)
393393
{
394-
BLEAncs& svc = (BLEAncs&) chr.parentService();
394+
BLEAncs& svc = (BLEAncs&) chr->parentService();
395395
svc._handleData(data, len);
396396
}

libraries/Bluefruit52Lib/src/clients/BLEAncs.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,8 @@ class BLEAncs : public BLEClientService
177177
void _handleNotification(uint8_t* data, uint16_t len);
178178
void _handleData(uint8_t* data, uint16_t len);
179179

180-
friend void bleancs_notification_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
181-
friend void bleancs_data_cb (BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
180+
friend void bleancs_notification_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
181+
friend void bleancs_data_cb (BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
182182
};
183183

184184

libraries/Bluefruit52Lib/src/clients/BLEClientCts.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
#include "bluefruit.h"
3838

39-
void blects_central_notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
39+
void blects_central_notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
4040

4141
BLEClientCts::BLEClientCts(void)
4242
: BLEClientService(UUID16_SVC_CURRENT_TIME), _cur_time(UUID16_CHR_CURRENT_TIME), _local_info(UUID16_CHR_LOCAL_TIME_INFORMATION)
@@ -107,7 +107,7 @@ void BLEClientCts::_cur_time_notify_cb(uint8_t* data, uint16_t len)
107107
if ( _adjust_cb ) _adjust_cb( Time.adjust_reason );
108108
}
109109

110-
void blects_central_notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len)
110+
void blects_central_notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len)
111111
{
112-
((BLEClientCts&) chr.parentService())._cur_time_notify_cb(data, len);
112+
((BLEClientCts&) chr->parentService())._cur_time_notify_cb(data, len);
113113
}

libraries/Bluefruit52Lib/src/clients/BLEClientUart.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
#include "bluefruit.h"
3838

39-
void bleuart_central_notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
39+
void bleuart_central_notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
4040

4141
BLEClientUart::BLEClientUart(uint16_t fifo_depth)
4242
: BLEClientService(BLEUART_UUID_SERVICE), _txd(BLEUART_UUID_CHR_TXD), _rxd(BLEUART_UUID_CHR_RXD),
@@ -96,9 +96,9 @@ void BLEClientUart::disconnect(void)
9696
flush();
9797
}
9898

99-
void bleuart_central_notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len)
99+
void bleuart_central_notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len)
100100
{
101-
BLEClientUart& uart_svc = (BLEClientUart&) chr.parentService();
101+
BLEClientUart& uart_svc = (BLEClientUart&) chr->parentService();
102102
uart_svc._rx_fifo.write(data, len);
103103

104104
// invoke callback

libraries/Bluefruit52Lib/src/clients/BLEClientUart.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class BLEClientUart : public BLEClientService, public Stream
8383
Adafruit_FIFO _rx_fifo;
8484
rx_callback_t _rx_cb;
8585

86-
friend void bleuart_central_notify_cb(BLEClientCharacteristic& chr, uint8_t* data, uint16_t len);
86+
friend void bleuart_central_notify_cb(BLEClientCharacteristic* chr, uint8_t* data, uint16_t len);
8787
};
8888

8989
#endif /* BLECLIENTUART_H_ */

0 commit comments

Comments
 (0)