Skip to content

Commit 48cee0f

Browse files
committed
enhance BLECharacteristic
add read8(), read16(), read32(), add write8(), write16(), write32() add notify8(), notify16(), notify32()
1 parent a6acaf5 commit 48cee0f

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed

libraries/Bluefruit52Lib/keywords.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,14 @@ setWriteAuthorizeCallbak KEYWORD2
152152
handles KEYWORD2
153153

154154
write KEYWORD2
155+
155156
notifyEnabled KEYWORD2
157+
156158
notify KEYWORD2
159+
notify8 KEYWORD2
160+
notify16 KEYWORD2
161+
notify32 KEYWORD2
162+
157163

158164
#######################################
159165
# BLEClientService Methods (KEYWORD2)

libraries/Bluefruit52Lib/src/BLECharacteristic.cpp

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,28 @@ uint16_t BLECharacteristic::write(uint8_t num)
441441
return write( (uint8_t*) &num, sizeof(num));
442442
}
443443

444+
445+
446+
uint16_t BLECharacteristic::write8(uint8_t num)
447+
{
448+
return write( (uint8_t*) &num, sizeof(num));
449+
}
450+
451+
uint16_t BLECharacteristic::write16(uint16_t num)
452+
{
453+
return write( (uint8_t*) &num, sizeof(num));
454+
}
455+
456+
uint16_t BLECharacteristic::write32(uint32_t num)
457+
{
458+
return write( (uint8_t*) &num, sizeof(num));
459+
}
460+
461+
uint16_t BLECharacteristic::write32(int num)
462+
{
463+
return write32( (uint32_t) num );
464+
}
465+
444466
/*------------------------------------------------------------------*/
445467
/* READ
446468
*------------------------------------------------------------------*/
@@ -481,6 +503,24 @@ uint16_t BLECharacteristic::read(uint8_t* num)
481503
return read(num, 1);
482504
}
483505

506+
uint8_t BLECharacteristic::read8(void)
507+
{
508+
uint8_t num;
509+
return read(&num, sizeof(num)) ? num : 0;
510+
}
511+
512+
uint16_t BLECharacteristic::read16(void)
513+
{
514+
uint16_t num;
515+
return read(&num, sizeof(num)) ? num : 0;
516+
}
517+
518+
uint32_t BLECharacteristic::read32(void)
519+
{
520+
uint16_t num;
521+
return read(&num, sizeof(num)) ? num : 0;
522+
}
523+
484524
/*------------------------------------------------------------------*/
485525
/* NOTIFY
486526
*------------------------------------------------------------------*/
@@ -559,6 +599,27 @@ bool BLECharacteristic::notify(const char * str)
559599
return notify( (const uint8_t*) str, strlen(str) );
560600
}
561601

602+
bool BLECharacteristic::notify8(uint8_t num)
603+
{
604+
return notify( (uint8_t*) &num, sizeof(num));
605+
}
606+
607+
bool BLECharacteristic::notify16(uint16_t num)
608+
{
609+
return notify( (uint8_t*) &num, sizeof(num));
610+
}
611+
612+
bool BLECharacteristic::notify32(uint32_t num)
613+
{
614+
return notify( (uint8_t*) &num, sizeof(num));
615+
}
616+
617+
bool BLECharacteristic::notify32(int num)
618+
{
619+
return notify32( (uint32_t) num);
620+
}
621+
622+
562623
bool BLECharacteristic::notify(int num)
563624
{
564625
return notify( (uint8_t*) &num, sizeof(num));

libraries/Bluefruit52Lib/src/BLECharacteristic.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,18 +126,33 @@ class BLECharacteristic
126126
uint16_t write(uint16_t num);
127127
uint16_t write(uint8_t num);
128128

129+
uint16_t write8 (uint8_t num);
130+
uint16_t write16 (uint16_t num);
131+
uint16_t write32 (uint32_t num);
132+
uint16_t write32 (int num);
133+
134+
129135
/*------------- Read -------------*/
130136
uint16_t read(void* buffer, uint16_t bufsize);
131137
uint16_t read(uint32_t* num);
132138
uint16_t read(uint16_t* num);
133139
uint16_t read(uint8_t* num);
134140

141+
uint8_t read8 (void);
142+
uint16_t read16(void);
143+
uint32_t read32(void);
144+
135145
/*------------- Notify -------------*/
136146
bool notifyEnabled(void);
137147

138148
bool notify(const void* data, uint16_t len);
139149
bool notify(const char* str);
140150

151+
bool notify8 (uint8_t num);
152+
bool notify16 (uint16_t num);
153+
bool notify32 (uint32_t num);
154+
bool notify32 (int num);
155+
141156
bool notify(int num);
142157
bool notify(uint32_t num);
143158
bool notify(uint16_t num);

libraries/Bluefruit52Lib/src/BLEClientCharacteristic.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ uint16_t BLEClientCharacteristic::write32_resp(uint32_t value)
270270
return write_resp(&value, sizeof(value));
271271
}
272272

273+
uint16_t BLEClientCharacteristic::write32_resp(int value)
274+
{
275+
return write32_resp((uint32_t) value);
276+
}
277+
273278
uint16_t BLEClientCharacteristic::write(const void* data, uint16_t len)
274279
{
275280
// VERIFY( _chr.char_props.write_wo_resp, 0 );
@@ -320,6 +325,11 @@ uint16_t BLEClientCharacteristic::write32(uint32_t value)
320325
return write(&value, sizeof(value));
321326
}
322327

328+
uint16_t BLEClientCharacteristic::write32(int value)
329+
{
330+
return write32( (uint32_t) value);
331+
}
332+
323333

324334
void BLEClientCharacteristic::setNotifyCallback(notify_cb_t fp)
325335
{

libraries/Bluefruit52Lib/src/BLEClientCharacteristic.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,14 @@ class BLEClientCharacteristic
8181
uint16_t write8 (uint8_t value);
8282
uint16_t write16 (uint16_t value);
8383
uint16_t write32 (uint32_t value);
84+
uint16_t write32 (int value);
8485

8586
/*------------- Write with Response-------------*/
8687
uint16_t write_resp(const void* data, uint16_t len);
8788
uint16_t write8_resp (uint8_t value);
8889
uint16_t write16_resp (uint16_t value);
8990
uint16_t write32_resp (uint32_t value);
91+
uint16_t write32_resp (int value);
9092

9193
/*------------- Notify -------------*/
9294
bool writeCCCD (uint16_t value);

0 commit comments

Comments
 (0)