File tree Expand file tree Collapse file tree
ports/nrf/common-hal/_bleio Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -386,6 +386,15 @@ bleio_address_obj_t *common_hal_bleio_adapter_get_address(bleio_adapter_obj_t *s
386386 return address ;
387387}
388388
389+ uint32_t common_hal_bleio_adapter_set_address (bleio_adapter_obj_t * self , bleio_address_obj_t * address )
390+ {
391+ ble_gap_addr_t local_address ;
392+ local_address .addr_type = address -> type ;
393+ const char * data = mp_obj_str_get_str (address -> bytes );
394+ memcpy (local_address .addr , data , NUM_BLEIO_ADDRESS_BYTES );
395+ return sd_ble_gap_addr_set (& local_address );
396+ }
397+
389398mp_obj_str_t * common_hal_bleio_adapter_get_name (bleio_adapter_obj_t * self ) {
390399 uint16_t len = 0 ;
391400 sd_ble_gap_device_name_get (NULL , & len );
Original file line number Diff line number Diff line change @@ -96,18 +96,24 @@ const mp_obj_property_t bleio_adapter_enabled_obj = {
9696};
9797
9898//| address: Address
99- //| """MAC address of the BLE adapter. (read-only) """
99+ //| """MAC address of the BLE adapter."""
100100//|
101101STATIC mp_obj_t bleio_adapter_get_address (mp_obj_t self ) {
102102 return MP_OBJ_FROM_PTR (common_hal_bleio_adapter_get_address (self ));
103103
104104}
105105MP_DEFINE_CONST_FUN_OBJ_1 (bleio_adapter_get_address_obj , bleio_adapter_get_address );
106106
107+ STATIC mp_obj_t bleio_adapter_set_address (mp_obj_t self , mp_obj_t new_address ) {
108+ common_hal_bleio_adapter_set_address (self , new_address );
109+ return mp_const_none ;
110+ }
111+ MP_DEFINE_CONST_FUN_OBJ_2 (bleio_adapter_set_address_obj , bleio_adapter_set_address );
112+
107113const mp_obj_property_t bleio_adapter_address_obj = {
108114 .base .type = & mp_type_property ,
109115 .proxy = { (mp_obj_t )& bleio_adapter_get_address_obj ,
110- (mp_obj_t )& mp_const_none_obj ,
116+ (mp_obj_t )& bleio_adapter_set_address_obj ,
111117 (mp_obj_t )& mp_const_none_obj },
112118};
113119
Original file line number Diff line number Diff line change @@ -42,6 +42,7 @@ extern bool common_hal_bleio_adapter_get_enabled(bleio_adapter_obj_t *self);
4242extern void common_hal_bleio_adapter_set_enabled (bleio_adapter_obj_t * self , bool enabled );
4343extern bool common_hal_bleio_adapter_get_connected (bleio_adapter_obj_t * self );
4444extern bleio_address_obj_t * common_hal_bleio_adapter_get_address (bleio_adapter_obj_t * self );
45+ extern uint32_t common_hal_bleio_adapter_set_address (bleio_adapter_obj_t * self , bleio_address_obj_t * address );
4546
4647extern mp_obj_str_t * common_hal_bleio_adapter_get_name (bleio_adapter_obj_t * self );
4748extern void common_hal_bleio_adapter_set_name (bleio_adapter_obj_t * self , const char * name );
You can’t perform that action at this time.
0 commit comments