@@ -267,7 +267,14 @@ STATIC void check_enabled(bleio_adapter_obj_t *adapter) {
267
267
// return true;
268
268
// }
269
269
270
- char default_ble_name [] = { 'C' , 'I' , 'R' , 'C' , 'U' , 'I' , 'T' , 'P' , 'Y' , 0 , 0 , 0 , 0 };
270
+ // Includes trailing null.
271
+ char default_ble_name [] = { 'C' , 'I' , 'R' , 'C' , 'U' , 'I' , 'T' , 'P' , 'Y' , 0 , 0 , 0 , 0 , 0 };
272
+
273
+ static void _adapter_set_name (bleio_adapter_obj_t * self , mp_obj_str_t * name_obj ) {
274
+ mp_buffer_info_t bufinfo ;
275
+ mp_get_buffer_raise (name_obj , & bufinfo , MP_BUFFER_READ );
276
+ bleio_characteristic_set_local_value (self -> device_name_characteristic , & bufinfo );
277
+ }
271
278
272
279
// Get various values and limits set by the adapter.
273
280
// Set event mask.
@@ -283,16 +290,18 @@ STATIC void bleio_adapter_hci_init(bleio_adapter_obj_t *self) {
283
290
#endif
284
291
285
292
if (!self -> name ) {
286
- name_len = sizeof (default_ble_name );
293
+ name_len = sizeof (default_ble_name ) - 1 ;
287
294
bt_addr_t addr ;
288
295
hci_check_error (hci_read_bd_addr (& addr ));
289
296
290
297
default_ble_name [name_len - 4 ] = nibble_to_hex_lower [addr .val [1 ] >> 4 & 0xf ];
291
298
default_ble_name [name_len - 3 ] = nibble_to_hex_lower [addr .val [1 ] & 0xf ];
292
299
default_ble_name [name_len - 2 ] = nibble_to_hex_lower [addr .val [0 ] >> 4 & 0xf ];
293
300
default_ble_name [name_len - 1 ] = nibble_to_hex_lower [addr .val [0 ] & 0xf ];
301
+ // default_ble_name[name_len] will be zero.
294
302
self -> name = mp_obj_new_str (default_ble_name , (uint8_t )name_len );
295
303
}
304
+ _adapter_set_name (self , self -> name );
296
305
297
306
// Get version information.
298
307
if (hci_read_local_version (& self -> hci_version , & self -> hci_revision , & self -> lmp_version ,
@@ -358,7 +367,6 @@ void common_hal_bleio_adapter_construct_hci_uart(bleio_adapter_obj_t *self, busi
358
367
359
368
common_hal_bleio_adapter_set_enabled (self , true);
360
369
bleio_adapter_hci_init (self );
361
- common_hal_bleio_adapter_set_name (self , default_ble_name );
362
370
}
363
371
364
372
void common_hal_bleio_adapter_set_enabled (bleio_adapter_obj_t * self , bool enabled ) {
@@ -426,9 +434,7 @@ mp_obj_str_t *common_hal_bleio_adapter_get_name(bleio_adapter_obj_t *self) {
426
434
427
435
void common_hal_bleio_adapter_set_name (bleio_adapter_obj_t * self , const char * name ) {
428
436
self -> name = mp_obj_new_str (name , strlen (name ));
429
- mp_buffer_info_t bufinfo ;
430
- mp_get_buffer_raise (self -> name , & bufinfo , MP_BUFFER_READ );
431
- bleio_characteristic_set_local_value (self -> device_name_characteristic , & bufinfo );
437
+ _adapter_set_name (self , self -> name );
432
438
}
433
439
434
440
0 commit comments