Skip to content

Commit 8e153e3

Browse files
committed
add read8,16,32, write8,16,32, write_resp8,16,32
1 parent 0003e1a commit 8e153e3

File tree

3 files changed

+58
-17
lines changed

3 files changed

+58
-17
lines changed

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,12 +139,11 @@ void connect_callback(uint16_t conn_handle)
139139
// Body sensor location value is 8 bit
140140
const char* body_str[] = { "Other", "Chest", "Wrist", "Finger", "Hand", "Ear Lobe", "Foot" };
141141

142-
uint8_t loc_value = 0;
143-
if ( bslc.read(&loc_value) )
144-
{
145-
Serial.print("Body Location Sensor: ");
146-
Serial.println(body_str[loc_value]);
147-
}
142+
// Read 8-bit BSLC value from peripheral
143+
uint8_t loc_value = bslc.read8();
144+
145+
Serial.print("Body Location Sensor: ");
146+
Serial.println(body_str[loc_value]);
148147
}else
149148
{
150149
Serial.println("Found NONE");

libraries/Bluefruit52Lib/src/BLEClientCharacteristic.cpp

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,19 +182,22 @@ uint16_t BLEClientCharacteristic::read(void* buffer, uint16_t bufsize)
182182
return (rxlen < 0) ? 0 : rxlen;
183183
}
184184

185-
uint16_t BLEClientCharacteristic::read(uint32_t* num)
185+
uint8_t BLEClientCharacteristic::read8 (void)
186186
{
187-
return read(num, 4);
187+
uint8_t num;
188+
return read(&num, sizeof(num)) ? num : 0;
188189
}
189190

190-
uint16_t BLEClientCharacteristic::read(uint16_t* num)
191+
uint16_t BLEClientCharacteristic::read16(void)
191192
{
192-
return read(num, 2);
193+
uint16_t num;
194+
return read(&num, sizeof(num)) ? num : 0;
193195
}
194196

195-
uint16_t BLEClientCharacteristic::read(uint8_t* num)
197+
uint32_t BLEClientCharacteristic::read32(void)
196198
{
197-
return read(num, 1);
199+
uint32_t num;
200+
return read(&num, sizeof(num)) ? num : 0;
198201
}
199202

200203
/*------------------------------------------------------------------*/
@@ -254,6 +257,21 @@ uint16_t BLEClientCharacteristic::write_resp(const void* data, uint16_t len)
254257
return (count < 0) ? 0 : count;
255258
}
256259

260+
uint16_t BLEClientCharacteristic::write8_resp(uint8_t value)
261+
{
262+
return write_resp(&value, sizeof(value));
263+
}
264+
265+
uint16_t BLEClientCharacteristic::write16_resp(uint16_t value)
266+
{
267+
return write_resp(&value, sizeof(value));
268+
}
269+
270+
uint16_t BLEClientCharacteristic::write32_resp(uint32_t value)
271+
{
272+
return write_resp(&value, sizeof(value));
273+
}
274+
257275
uint16_t BLEClientCharacteristic::write(const void* data, uint16_t len)
258276
{
259277
// VERIFY( _chr.char_props.write_wo_resp, 0 );
@@ -289,6 +307,22 @@ uint16_t BLEClientCharacteristic::write(const void* data, uint16_t len)
289307
return len;
290308
}
291309

310+
uint16_t BLEClientCharacteristic::write8(uint8_t value)
311+
{
312+
return write(&value, sizeof(value));
313+
}
314+
315+
uint16_t BLEClientCharacteristic::write16(uint16_t value)
316+
{
317+
return write(&value, sizeof(value));
318+
}
319+
320+
uint16_t BLEClientCharacteristic::write32(uint32_t value)
321+
{
322+
return write(&value, sizeof(value));
323+
}
324+
325+
292326
void BLEClientCharacteristic::setNotifyCallback(notify_cb_t fp)
293327
{
294328
_notify_cb = fp;

libraries/Bluefruit52Lib/src/BLEClientCharacteristic.h

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,18 +68,26 @@ class BLEClientCharacteristic
6868
uint16_t valueHandle(void);
6969
uint8_t properties(void);
7070

71-
7271
BLEClientService& parentService(void);
7372

7473
/*------------- Read -------------*/
7574
uint16_t read(void* buffer, uint16_t bufsize);
76-
uint16_t read(uint32_t* num);
77-
uint16_t read(uint16_t* num);
78-
uint16_t read(uint8_t* num);
75+
uint8_t read8 (void);
76+
uint16_t read16(void);
77+
uint32_t read32(void);
7978

80-
/*------------- Write -------------*/
79+
/*------------- Write without Response-------------*/
8180
uint16_t write (const void* data, uint16_t len);
81+
uint16_t write8 (uint8_t value);
82+
uint16_t write16 (uint16_t value);
83+
uint16_t write32 (uint32_t value);
84+
85+
/*------------- Write with Response-------------*/
8286
uint16_t write_resp(const void* data, uint16_t len);
87+
uint16_t write8_resp (uint8_t value);
88+
uint16_t write16_resp (uint16_t value);
89+
uint16_t write32_resp (uint32_t value);
90+
8391

8492
/*------------- Notify -------------*/
8593
bool writeCCCD (uint16_t value);

0 commit comments

Comments
 (0)