@@ -34,132 +34,356 @@ TEST_CASE("Test characteristic writeValue", "[ArduinoBLE::BLECharacteristic]")
34
34
{
35
35
WHEN (" Create a bool characteristic" )
36
36
{
37
- BLEBoolCharacteristic boolCharacteristic (" Bool" , BLERead | BLEIndicate | BLEWrite );
37
+ BLEBoolCharacteristic boolCharacteristic (" Bool" , BLEBroadcast | BLEIndicate | BLENotify );
38
38
bool v = false ;;
39
39
int written = boolCharacteristic.writeValue (v);
40
40
REQUIRE ( written == sizeof (bool ) );
41
+
42
+ boolCharacteristic.broadcast ();
43
+ written = boolCharacteristic.writeValue (v);
44
+ REQUIRE ( written == sizeof (bool ) );
45
+
46
+ BLEDevice device;
47
+ boolCharacteristic.local ()->writeCccdValue (device, 0x002 );
48
+ written = boolCharacteristic.writeValue (v);
49
+ /* No peers connected */
50
+ REQUIRE ( written == 0 );
51
+ boolCharacteristic.local ()->writeCccdValue (device, 0x001 );
52
+ written = boolCharacteristic.writeValue (v);
53
+ /* No peers connected */
54
+ REQUIRE ( written == 0 );
41
55
}
42
56
43
57
WHEN (" Create a boolean characteristic" )
44
58
{
45
- BLEBooleanCharacteristic booleanCharacteristic (" Boolean" , BLERead | BLEIndicate | BLEWrite );
59
+ BLEBooleanCharacteristic booleanCharacteristic (" Boolean" , BLEBroadcast | BLEIndicate | BLENotify );
46
60
bool v = false ;
47
61
int written = booleanCharacteristic.writeValue (v);
48
62
REQUIRE ( written == sizeof (bool ) );
63
+
64
+ booleanCharacteristic.broadcast ();
65
+ written = booleanCharacteristic.writeValue (v);
66
+ REQUIRE ( written == sizeof (bool ) );
67
+
68
+ BLEDevice device;
69
+ booleanCharacteristic.local ()->writeCccdValue (device, 0x002 );
70
+ written = booleanCharacteristic.writeValue (v);
71
+ /* No peers connected */
72
+ REQUIRE ( written == 0 );
73
+ booleanCharacteristic.local ()->writeCccdValue (device, 0x001 );
74
+ written = booleanCharacteristic.writeValue (v);
75
+ /* No peers connected */
76
+ REQUIRE ( written == 0 );
49
77
}
50
78
51
79
WHEN (" Create a char characteristic" )
52
80
{
53
- BLECharCharacteristic charCharacteristic (" Char" , BLERead | BLEIndicate | BLEWrite );
81
+ BLECharCharacteristic charCharacteristic (" Char" , BLEBroadcast | BLEIndicate | BLENotify );
54
82
char v = ' a' ;
55
83
int written = charCharacteristic.writeValue (v);
56
84
REQUIRE ( written == sizeof (char ) );
85
+
86
+ charCharacteristic.broadcast ();
87
+ written = charCharacteristic.writeValue (v);
88
+ REQUIRE ( written == sizeof (char ) );
89
+
90
+ BLEDevice device;
91
+ charCharacteristic.local ()->writeCccdValue (device, 0x002 );
92
+ written = charCharacteristic.writeValue (v);
93
+ /* No peers connected */
94
+ REQUIRE ( written == 0 );
95
+ charCharacteristic.local ()->writeCccdValue (device, 0x001 );
96
+ written = charCharacteristic.writeValue (v);
97
+ /* No peers connected */
98
+ REQUIRE ( written == 0 );
57
99
}
58
100
59
101
WHEN (" Create a unsigned char characteristic" )
60
102
{
61
- BLEUnsignedCharCharacteristic unsignedCharCharacteristic (" UnsignedChar" , BLERead | BLEIndicate | BLEWrite );
103
+ BLEUnsignedCharCharacteristic unsignedCharCharacteristic (" UnsignedChar" , BLEBroadcast | BLEIndicate | BLENotify );
62
104
unsigned char v = 0x01 ;
63
105
int written = unsignedCharCharacteristic.writeValue (v);
64
106
REQUIRE ( written == sizeof (unsigned char ) );
107
+
108
+ unsignedCharCharacteristic.broadcast ();
109
+ written = unsignedCharCharacteristic.writeValue (v);
110
+ REQUIRE ( written == sizeof (unsigned char ) );
111
+
112
+ BLEDevice device;
113
+ unsignedCharCharacteristic.local ()->writeCccdValue (device, 0x002 );
114
+ written = unsignedCharCharacteristic.writeValue (v);
115
+ /* No peers connected */
116
+ REQUIRE ( written == 0 );
117
+ unsignedCharCharacteristic.local ()->writeCccdValue (device, 0x001 );
118
+ written = unsignedCharCharacteristic.writeValue (v);
119
+ /* No peers connected */
120
+ REQUIRE ( written == 0 );
65
121
}
66
122
67
123
WHEN (" Create a byte characteristic" )
68
124
{
69
- BLEByteCharacteristic byteCharacteristic (" Byte" , BLERead | BLEIndicate | BLEWrite );
125
+ BLEByteCharacteristic byteCharacteristic (" Byte" , BLEBroadcast | BLEIndicate | BLENotify );
70
126
byte v = 0x01 ;
71
127
int written = byteCharacteristic.writeValue (v);
72
128
REQUIRE ( written == sizeof (byte) );
129
+
130
+ byteCharacteristic.broadcast ();
131
+ written = byteCharacteristic.writeValue (v);
132
+ REQUIRE ( written == sizeof (byte) );
133
+
134
+ BLEDevice device;
135
+ byteCharacteristic.local ()->writeCccdValue (device, 0x002 );
136
+ written = byteCharacteristic.writeValue (v);
137
+ /* No peers connected */
138
+ REQUIRE ( written == 0 );
139
+ byteCharacteristic.local ()->writeCccdValue (device, 0x001 );
140
+ written = byteCharacteristic.writeValue (v);
141
+ /* No peers connected */
142
+ REQUIRE ( written == 0 );
73
143
}
74
144
75
145
WHEN (" Create a short characteristic" )
76
146
{
77
- BLEShortCharacteristic shortCharacteristic (" Short" , BLERead | BLEIndicate | BLEWrite );
147
+ BLEShortCharacteristic shortCharacteristic (" Short" , BLEBroadcast | BLEIndicate | BLENotify );
78
148
short v = -1 ;
79
149
int written = shortCharacteristic.writeValue (v);
80
150
REQUIRE ( written == sizeof (short ) );
151
+
152
+ shortCharacteristic.broadcast ();
153
+ written = shortCharacteristic.writeValue (v);
154
+ REQUIRE ( written == sizeof (short ) );
155
+
156
+ BLEDevice device;
157
+ shortCharacteristic.local ()->writeCccdValue (device, 0x002 );
158
+ written = shortCharacteristic.writeValue (v);
159
+ /* No peers connected */
160
+ REQUIRE ( written == 0 );
161
+ shortCharacteristic.local ()->writeCccdValue (device, 0x001 );
162
+ written = shortCharacteristic.writeValue (v);
163
+ /* No peers connected */
164
+ REQUIRE ( written == 0 );
81
165
}
82
166
83
167
WHEN (" Create a unsigned short characteristic" )
84
168
{
85
- BLEUnsignedShortCharacteristic unsignedShortCharacteristic (" UnsignedShort" , BLERead | BLEIndicate | BLEWrite );
169
+ BLEUnsignedShortCharacteristic unsignedShortCharacteristic (" UnsignedShort" , BLEBroadcast | BLEIndicate | BLENotify );
86
170
unsigned short v = 1 ;
87
171
int written = unsignedShortCharacteristic.writeValue (v);
88
172
REQUIRE ( written == sizeof (unsigned short ) );
173
+
174
+ unsignedShortCharacteristic.broadcast ();
175
+ written = unsignedShortCharacteristic.writeValue (v);
176
+ REQUIRE ( written == sizeof (unsigned short ) );
177
+
178
+ BLEDevice device;
179
+ unsignedShortCharacteristic.local ()->writeCccdValue (device, 0x002 );
180
+ written = unsignedShortCharacteristic.writeValue (v);
181
+ /* No peers connected */
182
+ REQUIRE ( written == 0 );
183
+ unsignedShortCharacteristic.local ()->writeCccdValue (device, 0x001 );
184
+ written = unsignedShortCharacteristic.writeValue (v);
185
+ /* No peers connected */
186
+ REQUIRE ( written == 0 );
89
187
}
90
188
91
189
WHEN (" Create a word characteristic" )
92
190
{
93
- BLEWordCharacteristic wordCharacteristic (" Word" , BLERead | BLEIndicate | BLEWrite );
191
+ BLEWordCharacteristic wordCharacteristic (" Word" , BLEBroadcast | BLEIndicate | BLENotify );
94
192
word v = -1 ;
95
193
int written = wordCharacteristic.writeValue (v);
96
194
REQUIRE ( written == sizeof (word) );
195
+
196
+ wordCharacteristic.broadcast ();
197
+ written = wordCharacteristic.writeValue (v);
198
+ REQUIRE ( written == sizeof (word) );
199
+
200
+ BLEDevice device;
201
+ wordCharacteristic.local ()->writeCccdValue (device, 0x002 );
202
+ written = wordCharacteristic.writeValue (v);
203
+ /* No peers connected */
204
+ REQUIRE ( written == 0 );
205
+ wordCharacteristic.local ()->writeCccdValue (device, 0x001 );
206
+ written = wordCharacteristic.writeValue (v);
207
+ /* No peers connected */
208
+ REQUIRE ( written == 0 );
97
209
}
98
210
99
211
WHEN (" Create a int characteristic" )
100
212
{
101
- BLEIntCharacteristic intCharacteristic (" Int" , BLERead | BLEIndicate | BLEWrite );
213
+ BLEIntCharacteristic intCharacteristic (" Int" , BLEBroadcast | BLEIndicate | BLENotify );
102
214
int v = -1 ;
103
215
int written = intCharacteristic.writeValue (v);
104
216
REQUIRE ( written == sizeof (int ) );
217
+
218
+ intCharacteristic.broadcast ();
219
+ written = intCharacteristic.writeValue (v);
220
+ REQUIRE ( written == sizeof (int ) );
221
+
222
+ BLEDevice device;
223
+ intCharacteristic.local ()->writeCccdValue (device, 0x002 );
224
+ written = intCharacteristic.writeValue (v);
225
+ /* No peers connected */
226
+ REQUIRE ( written == 0 );
227
+ intCharacteristic.local ()->writeCccdValue (device, 0x001 );
228
+ written = intCharacteristic.writeValue (v);
229
+ /* No peers connected */
230
+ REQUIRE ( written == 0 );
105
231
}
106
232
107
233
WHEN (" Create a unsigned int characteristic" )
108
234
{
109
- BLEUnsignedIntCharacteristic unsignedIntCharacteristic (" UnsignedInt" , BLERead | BLEIndicate | BLEWrite );
235
+ BLEUnsignedIntCharacteristic unsignedIntCharacteristic (" UnsignedInt" , BLEBroadcast | BLEIndicate | BLENotify );
110
236
unsigned int v = 1 ;
111
237
int written = unsignedIntCharacteristic.writeValue (v);
112
238
REQUIRE ( written == sizeof (unsigned int ) );
239
+
240
+ unsignedIntCharacteristic.broadcast ();
241
+ written = unsignedIntCharacteristic.writeValue (v);
242
+ REQUIRE ( written == sizeof (unsigned int ) );
243
+
244
+ BLEDevice device;
245
+ unsignedIntCharacteristic.local ()->writeCccdValue (device, 0x002 );
246
+ written = unsignedIntCharacteristic.writeValue (v);
247
+ /* No peers connected */
248
+ REQUIRE ( written == 0 );
249
+ unsignedIntCharacteristic.local ()->writeCccdValue (device, 0x001 );
250
+ written = unsignedIntCharacteristic.writeValue (v);
251
+ /* No peers connected */
252
+ REQUIRE ( written == 0 );
113
253
}
114
254
115
255
WHEN (" Create a long characteristic" )
116
256
{
117
- BLELongCharacteristic longCharacteristic (" Long" , BLERead | BLEIndicate | BLEWrite );
257
+ BLELongCharacteristic longCharacteristic (" Long" , BLEBroadcast | BLEIndicate | BLENotify );
118
258
long v = -1 ;
119
259
int written = longCharacteristic.writeValue (v);
120
260
REQUIRE ( written == sizeof (long ) );
261
+
262
+ longCharacteristic.broadcast ();
263
+ written = longCharacteristic.writeValue (v);
264
+ REQUIRE ( written == sizeof (long ) );
265
+
266
+ BLEDevice device;
267
+ longCharacteristic.local ()->writeCccdValue (device, 0x002 );
268
+ written = longCharacteristic.writeValue (v);
269
+ /* No peers connected */
270
+ REQUIRE ( written == 0 );
271
+ longCharacteristic.local ()->writeCccdValue (device, 0x001 );
272
+ written = longCharacteristic.writeValue (v);
273
+ /* No peers connected */
274
+ REQUIRE ( written == 0 );
121
275
}
122
276
123
277
WHEN (" Create a unsigned long characteristic" )
124
278
{
125
- BLEUnsignedLongCharacteristic unsignedLongCharacteristic (" UnsignedLong" , BLERead | BLEIndicate | BLEWrite );
279
+ BLEUnsignedLongCharacteristic unsignedLongCharacteristic (" UnsignedLong" , BLEBroadcast | BLEIndicate | BLENotify );
126
280
unsigned long v = 1 ;
127
281
int written = unsignedLongCharacteristic.writeValue (v);
128
282
REQUIRE ( written == sizeof (unsigned long ) );
283
+
284
+ unsignedLongCharacteristic.broadcast ();
285
+ written = unsignedLongCharacteristic.writeValue (v);
286
+ REQUIRE ( written == sizeof (unsigned long ) );
287
+
288
+ BLEDevice device;
289
+ unsignedLongCharacteristic.local ()->writeCccdValue (device, 0x002 );
290
+ written = unsignedLongCharacteristic.writeValue (v);
291
+ /* No peers connected */
292
+ REQUIRE ( written == 0 );
293
+ unsignedLongCharacteristic.local ()->writeCccdValue (device, 0x001 );
294
+ written = unsignedLongCharacteristic.writeValue (v);
295
+ /* No peers connected */
296
+ REQUIRE ( written == 0 );
129
297
}
130
298
131
299
WHEN (" Create a float characteristic" )
132
300
{
133
- BLEFloatCharacteristic floatCharacteristic (" Float" , BLERead | BLEIndicate | BLEWrite );
301
+ BLEFloatCharacteristic floatCharacteristic (" Float" , BLEBroadcast | BLEIndicate | BLENotify );
134
302
float v = -1 .0f ;
135
303
int written = floatCharacteristic.writeValue (v);
136
304
REQUIRE ( written == sizeof (float ) );
305
+
306
+ floatCharacteristic.broadcast ();
307
+ written = floatCharacteristic.writeValue (v);
308
+ REQUIRE ( written == sizeof (float ) );
309
+
310
+ BLEDevice device;
311
+ floatCharacteristic.local ()->writeCccdValue (device, 0x002 );
312
+ written = floatCharacteristic.writeValue (v);
313
+ /* No peers connected */
314
+ REQUIRE ( written == 0 );
315
+ floatCharacteristic.local ()->writeCccdValue (device, 0x001 );
316
+ written = floatCharacteristic.writeValue (v);
317
+ /* No peers connected */
318
+ REQUIRE ( written == 0 );
137
319
}
138
320
139
321
WHEN (" Create a double characteristic" )
140
322
{
141
- BLEDoubleCharacteristic doubleCharacteristic (" Double" , BLERead | BLEIndicate | BLEWrite );
323
+ BLEDoubleCharacteristic doubleCharacteristic (" Double" , BLEBroadcast | BLEIndicate | BLENotify );
142
324
double v = -1.0 ;
143
325
int written = doubleCharacteristic.writeValue (v);
144
326
REQUIRE ( written == sizeof (double ) );
327
+
328
+ doubleCharacteristic.broadcast ();
329
+ written = doubleCharacteristic.writeValue (v);
330
+ REQUIRE ( written == sizeof (double ) );
331
+
332
+ BLEDevice device;
333
+ doubleCharacteristic.local ()->writeCccdValue (device, 0x002 );
334
+ written = doubleCharacteristic.writeValue (v);
335
+ /* No peers connected */
336
+ REQUIRE ( written == 0 );
337
+ doubleCharacteristic.local ()->writeCccdValue (device, 0x001 );
338
+ written = doubleCharacteristic.writeValue (v);
339
+ /* No peers connected */
340
+ REQUIRE ( written == 0 );
145
341
}
146
342
147
343
WHEN (" Create a string characteristic" )
148
344
{
149
345
const int maxStringLength = 64 ;
150
- BLEStringCharacteristic stringCharacteristic (" String" , BLERead | BLEIndicate | BLEWrite , maxStringLength);
346
+ BLEStringCharacteristic stringCharacteristic (" String" , BLEBroadcast | BLEIndicate | BLENotify , maxStringLength);
151
347
const char * v = " Hello" ;
152
348
int written = stringCharacteristic.writeValue (v);
153
349
REQUIRE ( written == min (strlen (v), maxStringLength) );
350
+
351
+ stringCharacteristic.broadcast ();
352
+ written = stringCharacteristic.writeValue (v);
353
+ REQUIRE ( written == min (strlen (v), maxStringLength) );
354
+
355
+ BLEDevice device;
356
+ stringCharacteristic.local ()->writeCccdValue (device, 0x002 );
357
+ written = stringCharacteristic.writeValue (v);
358
+ /* No peers connected */
359
+ REQUIRE ( written == 0 );
360
+ stringCharacteristic.local ()->writeCccdValue (device, 0x001 );
361
+ written = stringCharacteristic.writeValue (v);
362
+ /* No peers connected */
363
+ REQUIRE ( written == 0 );
154
364
}
155
365
156
366
WHEN (" Create a too long string characteristic" )
157
367
{
158
368
const int maxStringLength = 4 ;
159
- BLEStringCharacteristic stringCharacteristic (" String" , BLERead | BLEIndicate | BLEWrite , maxStringLength);
369
+ BLEStringCharacteristic stringCharacteristic (" String" , BLEBroadcast | BLEIndicate | BLENotify , maxStringLength);
160
370
const char * v = " Hello" ;
161
371
int written = stringCharacteristic.writeValue (v);
162
372
REQUIRE ( written == min (strlen (v), maxStringLength) );
373
+
374
+ stringCharacteristic.broadcast ();
375
+ written = stringCharacteristic.writeValue (v);
376
+ REQUIRE ( written == min (strlen (v), maxStringLength) );
377
+
378
+ BLEDevice device;
379
+ stringCharacteristic.local ()->writeCccdValue (device, 0x002 );
380
+ written = stringCharacteristic.writeValue (v);
381
+ /* No peers connected */
382
+ REQUIRE ( written == 0 );
383
+ stringCharacteristic.local ()->writeCccdValue (device, 0x001 );
384
+ written = stringCharacteristic.writeValue (v);
385
+ /* No peers connected */
386
+ REQUIRE ( written == 0 );
163
387
}
164
388
165
389
}
0 commit comments