@@ -220,7 +220,8 @@ STATIC uint32_t ble_stack_enable(void) {
220
220
}
221
221
222
222
err_code = sd_ble_gap_appearance_set (BLE_APPEARANCE_UNKNOWN );
223
- return err_code ;
223
+
224
+ return err_code ;
224
225
}
225
226
226
227
STATIC bool adapter_on_ble_evt (ble_evt_t * ble_evt , void * self_in ) {
@@ -327,6 +328,10 @@ STATIC void bleio_adapter_reset_name(bleio_adapter_obj_t *self) {
327
328
common_hal_bleio_adapter_set_name (self , (char * ) default_ble_name );
328
329
}
329
330
331
+
332
+ // The nRF SD 6.1.0 can only do one concurrent advertisement so share the advertising handle.
333
+ uint8_t adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET ;
334
+
330
335
void common_hal_bleio_adapter_set_enabled (bleio_adapter_obj_t * self , bool enabled ) {
331
336
const bool is_enabled = common_hal_bleio_adapter_get_enabled (self );
332
337
@@ -377,6 +382,14 @@ bool common_hal_bleio_adapter_get_enabled(bleio_adapter_obj_t *self) {
377
382
return is_enabled ;
378
383
}
379
384
385
+ void common_hal_bleio_adapter_set_tx_power (bleio_adapter_obj_t * self , mp_int_t tx_power ) {
386
+ self -> tx_power = tx_power ;
387
+ }
388
+
389
+ mp_int_t common_hal_bleio_adapter_get_tx_power (bleio_adapter_obj_t * self ) {
390
+ return self -> tx_power ;
391
+ }
392
+
380
393
bleio_address_obj_t * common_hal_bleio_adapter_get_address (bleio_adapter_obj_t * self ) {
381
394
common_hal_bleio_adapter_set_enabled (self , true);
382
395
@@ -601,8 +614,6 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
601
614
return mp_const_none ;
602
615
}
603
616
604
- // The nRF SD 6.1.0 can only do one concurrent advertisement so share the advertising handle.
605
- uint8_t adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET ;
606
617
607
618
STATIC void check_data_fit (size_t data_len , bool connectable ) {
608
619
if (data_len > BLE_GAP_ADV_SET_DATA_SIZE_EXTENDED_MAX_SUPPORTED ||
@@ -707,7 +718,10 @@ uint32_t _common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *self,
707
718
}
708
719
709
720
ble_drv_add_event_handler (advertising_on_ble_evt , self );
710
-
721
+ err_code = sd_ble_gap_tx_power_set (BLE_GAP_TX_POWER_ROLE_ADV , adv_handle , self -> tx_power );
722
+ if (err_code != NRF_SUCCESS ) {
723
+ return err_code ;
724
+ }
711
725
vm_used_ble = true;
712
726
err_code = sd_ble_gap_adv_start (adv_handle , BLE_CONN_CFG_TAG_CUSTOM );
713
727
if (err_code != NRF_SUCCESS ) {
0 commit comments