@@ -34,132 +34,292 @@ 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
+ 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 );
41
51
}
42
52
43
53
WHEN (" Create a boolean characteristic" )
44
54
{
45
- BLEBooleanCharacteristic booleanCharacteristic (" Boolean" , BLERead | BLEIndicate | BLEWrite );
55
+ BLEBooleanCharacteristic booleanCharacteristic (" Boolean" , BLEBroadcast | BLEIndicate | BLENotify );
46
56
bool v = false ;
47
57
int written = booleanCharacteristic.writeValue (v);
48
58
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 );
49
69
}
50
70
51
71
WHEN (" Create a char characteristic" )
52
72
{
53
- BLECharCharacteristic charCharacteristic (" Char" , BLERead | BLEIndicate | BLEWrite );
73
+ BLECharCharacteristic charCharacteristic (" Char" , BLEBroadcast | BLEIndicate | BLENotify );
54
74
char v = ' a' ;
55
75
int written = charCharacteristic.writeValue (v);
56
76
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 );
57
87
}
58
88
59
89
WHEN (" Create a unsigned char characteristic" )
60
90
{
61
- BLEUnsignedCharCharacteristic unsignedCharCharacteristic (" UnsignedChar" , BLERead | BLEIndicate | BLEWrite );
91
+ BLEUnsignedCharCharacteristic unsignedCharCharacteristic (" UnsignedChar" , BLEBroadcast | BLEIndicate | BLENotify );
62
92
unsigned char v = 0x01 ;
63
93
int written = unsignedCharCharacteristic.writeValue (v);
64
94
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 );
65
105
}
66
106
67
107
WHEN (" Create a byte characteristic" )
68
108
{
69
- BLEByteCharacteristic byteCharacteristic (" Byte" , BLERead | BLEIndicate | BLEWrite );
109
+ BLEByteCharacteristic byteCharacteristic (" Byte" , BLEBroadcast | BLEIndicate | BLENotify );
70
110
byte v = 0x01 ;
71
111
int written = byteCharacteristic.writeValue (v);
72
112
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 );
73
123
}
74
124
75
125
WHEN (" Create a short characteristic" )
76
126
{
77
- BLEShortCharacteristic shortCharacteristic (" Short" , BLERead | BLEIndicate | BLEWrite );
127
+ BLEShortCharacteristic shortCharacteristic (" Short" , BLEBroadcast | BLEIndicate | BLENotify );
78
128
short v = -1 ;
79
129
int written = shortCharacteristic.writeValue (v);
80
130
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 );
81
141
}
82
142
83
143
WHEN (" Create a unsigned short characteristic" )
84
144
{
85
- BLEUnsignedShortCharacteristic unsignedShortCharacteristic (" UnsignedShort" , BLERead | BLEIndicate | BLEWrite );
145
+ BLEUnsignedShortCharacteristic unsignedShortCharacteristic (" UnsignedShort" , BLEBroadcast | BLEIndicate | BLENotify );
86
146
unsigned short v = 1 ;
87
147
int written = unsignedShortCharacteristic.writeValue (v);
88
148
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 );
89
159
}
90
160
91
161
WHEN (" Create a word characteristic" )
92
162
{
93
- BLEWordCharacteristic wordCharacteristic (" Word" , BLERead | BLEIndicate | BLEWrite );
163
+ BLEWordCharacteristic wordCharacteristic (" Word" , BLEBroadcast | BLEIndicate | BLENotify );
94
164
word v = -1 ;
95
165
int written = wordCharacteristic.writeValue (v);
96
166
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 );
97
177
}
98
178
99
179
WHEN (" Create a int characteristic" )
100
180
{
101
- BLEIntCharacteristic intCharacteristic (" Int" , BLERead | BLEIndicate | BLEWrite );
181
+ BLEIntCharacteristic intCharacteristic (" Int" , BLEBroadcast | BLEIndicate | BLENotify );
102
182
int v = -1 ;
103
183
int written = intCharacteristic.writeValue (v);
104
184
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 );
105
195
}
106
196
107
197
WHEN (" Create a unsigned int characteristic" )
108
198
{
109
- BLEUnsignedIntCharacteristic unsignedIntCharacteristic (" UnsignedInt" , BLERead | BLEIndicate | BLEWrite );
199
+ BLEUnsignedIntCharacteristic unsignedIntCharacteristic (" UnsignedInt" , BLEBroadcast | BLEIndicate | BLENotify );
110
200
unsigned int v = 1 ;
111
201
int written = unsignedIntCharacteristic.writeValue (v);
112
202
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 );
113
213
}
114
214
115
215
WHEN (" Create a long characteristic" )
116
216
{
117
- BLELongCharacteristic longCharacteristic (" Long" , BLERead | BLEIndicate | BLEWrite );
217
+ BLELongCharacteristic longCharacteristic (" Long" , BLEBroadcast | BLEIndicate | BLENotify );
118
218
long v = -1 ;
119
219
int written = longCharacteristic.writeValue (v);
120
220
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 );
121
231
}
122
232
123
233
WHEN (" Create a unsigned long characteristic" )
124
234
{
125
- BLEUnsignedLongCharacteristic unsignedLongCharacteristic (" UnsignedLong" , BLERead | BLEIndicate | BLEWrite );
235
+ BLEUnsignedLongCharacteristic unsignedLongCharacteristic (" UnsignedLong" , BLEBroadcast | BLEIndicate | BLENotify );
126
236
unsigned long v = 1 ;
127
237
int written = unsignedLongCharacteristic.writeValue (v);
128
238
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 );
129
249
}
130
250
131
251
WHEN (" Create a float characteristic" )
132
252
{
133
- BLEFloatCharacteristic floatCharacteristic (" Float" , BLERead | BLEIndicate | BLEWrite );
253
+ BLEFloatCharacteristic floatCharacteristic (" Float" , BLEBroadcast | BLEIndicate | BLENotify );
134
254
float v = -1 .0f ;
135
255
int written = floatCharacteristic.writeValue (v);
136
256
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 );
137
267
}
138
268
139
269
WHEN (" Create a double characteristic" )
140
270
{
141
- BLEDoubleCharacteristic doubleCharacteristic (" Double" , BLERead | BLEIndicate | BLEWrite );
271
+ BLEDoubleCharacteristic doubleCharacteristic (" Double" , BLEBroadcast | BLEIndicate | BLENotify );
142
272
double v = -1.0 ;
143
273
int written = doubleCharacteristic.writeValue (v);
144
274
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 );
145
285
}
146
286
147
287
WHEN (" Create a string characteristic" )
148
288
{
149
289
const int maxStringLength = 64 ;
150
- BLEStringCharacteristic stringCharacteristic (" String" , BLERead | BLEIndicate | BLEWrite , maxStringLength);
290
+ BLEStringCharacteristic stringCharacteristic (" String" , BLEBroadcast | BLEIndicate | BLENotify , maxStringLength);
151
291
const char * v = " Hello" ;
152
292
int written = stringCharacteristic.writeValue (v);
153
293
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 );
154
304
}
155
305
156
306
WHEN (" Create a too long string characteristic" )
157
307
{
158
308
const int maxStringLength = 4 ;
159
- BLEStringCharacteristic stringCharacteristic (" String" , BLERead | BLEIndicate | BLEWrite , maxStringLength);
309
+ BLEStringCharacteristic stringCharacteristic (" String" , BLEBroadcast | BLEIndicate | BLENotify , maxStringLength);
160
310
const char * v = " Hello" ;
161
311
int written = stringCharacteristic.writeValue (v);
162
312
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 );
163
323
}
164
324
165
325
}
0 commit comments