Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e8fefbb

Browse files
committed
test: check broadcast handleInt and handleNotify with no peers
1 parent 2a4e4b5 commit e8fefbb

File tree

1 file changed

+176
-16
lines changed

1 file changed

+176
-16
lines changed

‎extras/test/src/test_characteristic/test_writeValue.cpp‎

Lines changed: 176 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,132 +34,292 @@ TEST_CASE("Test characteristic writeValue", "[ArduinoBLE::BLECharacteristic]")
3434
{
3535
WHEN("Create a bool characteristic")
3636
{
37-
BLEBoolCharacteristic boolCharacteristic("Bool", BLERead | BLEIndicate | BLEWrite);
37+
BLEBoolCharacteristic boolCharacteristic("Bool", BLEBroadcast| BLEIndicate | BLENotify );
3838
bool v = false;;
3939
int written = boolCharacteristic.writeValue(v);
4040
REQUIRE( written == sizeof(bool) );
41+
42+
BLEDevice device;
43+
boolCharacteristic.local()->writeCccdValue(device, 0x002);
44+
written = boolCharacteristic.writeValue(v);
45+
/* No peers connected */
46+
REQUIRE( written == 0 );
47+
boolCharacteristic.local()->writeCccdValue(device, 0x001);
48+
written = boolCharacteristic.writeValue(v);
49+
/* No peers connected */
50+
REQUIRE( written == 0 );
4151
}
4252

4353
WHEN("Create a boolean characteristic")
4454
{
45-
BLEBooleanCharacteristic booleanCharacteristic("Boolean", BLERead | BLEIndicate | BLEWrite);
55+
BLEBooleanCharacteristic booleanCharacteristic("Boolean", BLEBroadcast| BLEIndicate | BLENotify);
4656
bool v = false;
4757
int written = booleanCharacteristic.writeValue(v);
4858
REQUIRE( written == sizeof(bool) );
59+
60+
BLEDevice device;
61+
booleanCharacteristic.local()->writeCccdValue(device, 0x002);
62+
written = booleanCharacteristic.writeValue(v);
63+
/* No peers connected */
64+
REQUIRE( written == 0 );
65+
booleanCharacteristic.local()->writeCccdValue(device, 0x001);
66+
written = booleanCharacteristic.writeValue(v);
67+
/* No peers connected */
68+
REQUIRE( written == 0 );
4969
}
5070

5171
WHEN("Create a char characteristic")
5272
{
53-
BLECharCharacteristic charCharacteristic("Char", BLERead | BLEIndicate | BLEWrite);
73+
BLECharCharacteristic charCharacteristic("Char", BLEBroadcast| BLEIndicate | BLENotify);
5474
char v = 'a';
5575
int written = charCharacteristic.writeValue(v);
5676
REQUIRE( written == sizeof(char) );
77+
78+
BLEDevice device;
79+
charCharacteristic.local()->writeCccdValue(device, 0x002);
80+
written = charCharacteristic.writeValue(v);
81+
/* No peers connected */
82+
REQUIRE( written == 0 );
83+
charCharacteristic.local()->writeCccdValue(device, 0x001);
84+
written = charCharacteristic.writeValue(v);
85+
/* No peers connected */
86+
REQUIRE( written == 0 );
5787
}
5888

5989
WHEN("Create a unsigned char characteristic")
6090
{
61-
BLEUnsignedCharCharacteristic unsignedCharCharacteristic("UnsignedChar", BLERead | BLEIndicate | BLEWrite);
91+
BLEUnsignedCharCharacteristic unsignedCharCharacteristic("UnsignedChar", BLEBroadcast| BLEIndicate | BLENotify);
6292
unsigned char v = 0x01;
6393
int written = unsignedCharCharacteristic.writeValue(v);
6494
REQUIRE( written == sizeof(unsigned char) );
95+
96+
BLEDevice device;
97+
unsignedCharCharacteristic.local()->writeCccdValue(device, 0x002);
98+
written = unsignedCharCharacteristic.writeValue(v);
99+
/* No peers connected */
100+
REQUIRE( written == 0 );
101+
unsignedCharCharacteristic.local()->writeCccdValue(device, 0x001);
102+
written = unsignedCharCharacteristic.writeValue(v);
103+
/* No peers connected */
104+
REQUIRE( written == 0 );
65105
}
66106

67107
WHEN("Create a byte characteristic")
68108
{
69-
BLEByteCharacteristic byteCharacteristic("Byte", BLERead | BLEIndicate | BLEWrite);
109+
BLEByteCharacteristic byteCharacteristic("Byte", BLEBroadcast| BLEIndicate | BLENotify);
70110
byte v = 0x01;
71111
int written = byteCharacteristic.writeValue(v);
72112
REQUIRE( written == sizeof(byte) );
113+
114+
BLEDevice device;
115+
byteCharacteristic.local()->writeCccdValue(device, 0x002);
116+
written = byteCharacteristic.writeValue(v);
117+
/* No peers connected */
118+
REQUIRE( written == 0 );
119+
byteCharacteristic.local()->writeCccdValue(device, 0x001);
120+
written = byteCharacteristic.writeValue(v);
121+
/* No peers connected */
122+
REQUIRE( written == 0 );
73123
}
74124

75125
WHEN("Create a short characteristic")
76126
{
77-
BLEShortCharacteristic shortCharacteristic("Short", BLERead | BLEIndicate | BLEWrite);
127+
BLEShortCharacteristic shortCharacteristic("Short", BLEBroadcast| BLEIndicate | BLENotify);
78128
short v = -1;
79129
int written = shortCharacteristic.writeValue(v);
80130
REQUIRE( written == sizeof(short) );
131+
132+
BLEDevice device;
133+
shortCharacteristic.local()->writeCccdValue(device, 0x002);
134+
written = shortCharacteristic.writeValue(v);
135+
/* No peers connected */
136+
REQUIRE( written == 0 );
137+
shortCharacteristic.local()->writeCccdValue(device, 0x001);
138+
written = shortCharacteristic.writeValue(v);
139+
/* No peers connected */
140+
REQUIRE( written == 0 );
81141
}
82142

83143
WHEN("Create a unsigned short characteristic")
84144
{
85-
BLEUnsignedShortCharacteristic unsignedShortCharacteristic("UnsignedShort", BLERead | BLEIndicate | BLEWrite);
145+
BLEUnsignedShortCharacteristic unsignedShortCharacteristic("UnsignedShort", BLEBroadcast| BLEIndicate | BLENotify);
86146
unsigned short v = 1;
87147
int written = unsignedShortCharacteristic.writeValue(v);
88148
REQUIRE( written == sizeof(unsigned short) );
149+
150+
BLEDevice device;
151+
unsignedShortCharacteristic.local()->writeCccdValue(device, 0x002);
152+
written = unsignedShortCharacteristic.writeValue(v);
153+
/* No peers connected */
154+
REQUIRE( written == 0 );
155+
unsignedShortCharacteristic.local()->writeCccdValue(device, 0x001);
156+
written = unsignedShortCharacteristic.writeValue(v);
157+
/* No peers connected */
158+
REQUIRE( written == 0 );
89159
}
90160

91161
WHEN("Create a word characteristic")
92162
{
93-
BLEWordCharacteristic wordCharacteristic("Word", BLERead | BLEIndicate | BLEWrite);
163+
BLEWordCharacteristic wordCharacteristic("Word", BLEBroadcast| BLEIndicate | BLENotify);
94164
word v = -1;
95165
int written = wordCharacteristic.writeValue(v);
96166
REQUIRE( written == sizeof(word) );
167+
168+
BLEDevice device;
169+
wordCharacteristic.local()->writeCccdValue(device, 0x002);
170+
written = wordCharacteristic.writeValue(v);
171+
/* No peers connected */
172+
REQUIRE( written == 0 );
173+
wordCharacteristic.local()->writeCccdValue(device, 0x001);
174+
written = wordCharacteristic.writeValue(v);
175+
/* No peers connected */
176+
REQUIRE( written == 0 );
97177
}
98178

99179
WHEN("Create a int characteristic")
100180
{
101-
BLEIntCharacteristic intCharacteristic("Int", BLERead | BLEIndicate | BLEWrite);
181+
BLEIntCharacteristic intCharacteristic("Int", BLEBroadcast| BLEIndicate | BLENotify);
102182
int v = -1;
103183
int written = intCharacteristic.writeValue(v);
104184
REQUIRE( written == sizeof(int) );
185+
186+
BLEDevice device;
187+
intCharacteristic.local()->writeCccdValue(device, 0x002);
188+
written = intCharacteristic.writeValue(v);
189+
/* No peers connected */
190+
REQUIRE( written == 0 );
191+
intCharacteristic.local()->writeCccdValue(device, 0x001);
192+
written = intCharacteristic.writeValue(v);
193+
/* No peers connected */
194+
REQUIRE( written == 0 );
105195
}
106196

107197
WHEN("Create a unsigned int characteristic")
108198
{
109-
BLEUnsignedIntCharacteristic unsignedIntCharacteristic("UnsignedInt", BLERead | BLEIndicate | BLEWrite);
199+
BLEUnsignedIntCharacteristic unsignedIntCharacteristic("UnsignedInt", BLEBroadcast| BLEIndicate | BLENotify);
110200
unsigned int v = 1;
111201
int written = unsignedIntCharacteristic.writeValue(v);
112202
REQUIRE( written == sizeof(unsigned int) );
203+
204+
BLEDevice device;
205+
unsignedIntCharacteristic.local()->writeCccdValue(device, 0x002);
206+
written = unsignedIntCharacteristic.writeValue(v);
207+
/* No peers connected */
208+
REQUIRE( written == 0 );
209+
unsignedIntCharacteristic.local()->writeCccdValue(device, 0x001);
210+
written = unsignedIntCharacteristic.writeValue(v);
211+
/* No peers connected */
212+
REQUIRE( written == 0 );
113213
}
114214

115215
WHEN("Create a long characteristic")
116216
{
117-
BLELongCharacteristic longCharacteristic("Long", BLERead | BLEIndicate | BLEWrite);
217+
BLELongCharacteristic longCharacteristic("Long", BLEBroadcast| BLEIndicate | BLENotify);
118218
long v = -1;
119219
int written = longCharacteristic.writeValue(v);
120220
REQUIRE( written == sizeof(long) );
221+
222+
BLEDevice device;
223+
longCharacteristic.local()->writeCccdValue(device, 0x002);
224+
written = longCharacteristic.writeValue(v);
225+
/* No peers connected */
226+
REQUIRE( written == 0 );
227+
longCharacteristic.local()->writeCccdValue(device, 0x001);
228+
written = longCharacteristic.writeValue(v);
229+
/* No peers connected */
230+
REQUIRE( written == 0 );
121231
}
122232

123233
WHEN("Create a unsigned long characteristic")
124234
{
125-
BLEUnsignedLongCharacteristic unsignedLongCharacteristic("UnsignedLong", BLERead | BLEIndicate | BLEWrite);
235+
BLEUnsignedLongCharacteristic unsignedLongCharacteristic("UnsignedLong", BLEBroadcast| BLEIndicate | BLENotify);
126236
unsigned long v = 1;
127237
int written = unsignedLongCharacteristic.writeValue(v);
128238
REQUIRE( written == sizeof(unsigned long) );
239+
240+
BLEDevice device;
241+
unsignedLongCharacteristic.local()->writeCccdValue(device, 0x002);
242+
written = unsignedLongCharacteristic.writeValue(v);
243+
/* No peers connected */
244+
REQUIRE( written == 0 );
245+
unsignedLongCharacteristic.local()->writeCccdValue(device, 0x001);
246+
written = unsignedLongCharacteristic.writeValue(v);
247+
/* No peers connected */
248+
REQUIRE( written == 0 );
129249
}
130250

131251
WHEN("Create a float characteristic")
132252
{
133-
BLEFloatCharacteristic floatCharacteristic("Float", BLERead | BLEIndicate | BLEWrite);
253+
BLEFloatCharacteristic floatCharacteristic("Float", BLEBroadcast| BLEIndicate | BLENotify);
134254
float v = -1.0f;
135255
int written = floatCharacteristic.writeValue(v);
136256
REQUIRE( written == sizeof(float) );
257+
258+
BLEDevice device;
259+
floatCharacteristic.local()->writeCccdValue(device, 0x002);
260+
written = floatCharacteristic.writeValue(v);
261+
/* No peers connected */
262+
REQUIRE( written == 0 );
263+
floatCharacteristic.local()->writeCccdValue(device, 0x001);
264+
written = floatCharacteristic.writeValue(v);
265+
/* No peers connected */
266+
REQUIRE( written == 0 );
137267
}
138268

139269
WHEN("Create a double characteristic")
140270
{
141-
BLEDoubleCharacteristic doubleCharacteristic("Double", BLERead | BLEIndicate | BLEWrite);
271+
BLEDoubleCharacteristic doubleCharacteristic("Double", BLEBroadcast| BLEIndicate | BLENotify);
142272
double v = -1.0;
143273
int written = doubleCharacteristic.writeValue(v);
144274
REQUIRE( written == sizeof(double) );
275+
276+
BLEDevice device;
277+
doubleCharacteristic.local()->writeCccdValue(device, 0x002);
278+
written = doubleCharacteristic.writeValue(v);
279+
/* No peers connected */
280+
REQUIRE( written == 0 );
281+
doubleCharacteristic.local()->writeCccdValue(device, 0x001);
282+
written = doubleCharacteristic.writeValue(v);
283+
/* No peers connected */
284+
REQUIRE( written == 0 );
145285
}
146286

147287
WHEN("Create a string characteristic")
148288
{
149289
const int maxStringLength = 64;
150-
BLEStringCharacteristic stringCharacteristic("String", BLERead | BLEIndicate | BLEWrite, maxStringLength);
290+
BLEStringCharacteristic stringCharacteristic("String", BLEBroadcast| BLEIndicate | BLENotify, maxStringLength);
151291
const char* v = "Hello";
152292
int written = stringCharacteristic.writeValue(v);
153293
REQUIRE( written == min(strlen(v), maxStringLength) );
294+
295+
BLEDevice device;
296+
stringCharacteristic.local()->writeCccdValue(device, 0x002);
297+
written = stringCharacteristic.writeValue(v);
298+
/* No peers connected */
299+
REQUIRE( written == 0 );
300+
stringCharacteristic.local()->writeCccdValue(device, 0x001);
301+
written = stringCharacteristic.writeValue(v);
302+
/* No peers connected */
303+
REQUIRE( written == 0 );
154304
}
155305

156306
WHEN("Create a too long string characteristic")
157307
{
158308
const int maxStringLength = 4;
159-
BLEStringCharacteristic stringCharacteristic("String", BLERead | BLEIndicate | BLEWrite, maxStringLength);
309+
BLEStringCharacteristic stringCharacteristic("String", BLEBroadcast| BLEIndicate | BLENotify, maxStringLength);
160310
const char* v = "Hello";
161311
int written = stringCharacteristic.writeValue(v);
162312
REQUIRE( written == min(strlen(v), maxStringLength) );
313+
314+
BLEDevice device;
315+
stringCharacteristic.local()->writeCccdValue(device, 0x002);
316+
written = stringCharacteristic.writeValue(v);
317+
/* No peers connected */
318+
REQUIRE( written == 0 );
319+
stringCharacteristic.local()->writeCccdValue(device, 0x001);
320+
written = stringCharacteristic.writeValue(v);
321+
/* No peers connected */
322+
REQUIRE( written == 0 );
163323
}
164324

165325
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /