some code cleanup

by Willy-JL
This commit is contained in:
MX
2025-04-06 03:00:37 +03:00
parent a57f9e22b5
commit 1385ea0ea0
9 changed files with 16 additions and 136 deletions

View File

@@ -527,19 +527,6 @@ static void bt_init_keys_settings(Bt* bt) {
bt_handle_reload_keys_settings(bt); bt_handle_reload_keys_settings(bt);
} }
bool bt_remote_rssi(Bt* bt, uint8_t* rssi) {
furi_assert(bt);
uint8_t rssi_val;
uint32_t since = furi_hal_bt_get_conn_rssi(&rssi_val);
if(since == 0) return false;
*rssi = rssi_val;
return true;
}
int32_t bt_srv(void* p) { int32_t bt_srv(void* p) {
UNUSED(p); UNUSED(p);
Bt* bt = bt_alloc(); Bt* bt = bt_alloc();

View File

@@ -84,21 +84,6 @@ void bt_keys_storage_set_storage_path(Bt* bt, const char* keys_storage_path);
*/ */
void bt_keys_storage_set_default_path(Bt* bt); void bt_keys_storage_set_default_path(Bt* bt);
bool bt_remote_rssi(Bt* bt, uint8_t* rssi);
/**
*
* (Probably bad) way of opening the RPC connection, everywhereTM
*/
void bt_open_rpc_connection(Bt* bt);
/**
*
* Closing the RPC connection, everywhereTM
*/
void bt_close_rpc_connection(Bt* bt);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -91,3 +91,15 @@ struct Bt {
uint32_t pin; uint32_t pin;
bool suppress_pin_screen; bool suppress_pin_screen;
}; };
/** Open a new RPC connection
*
* @param bt Bt instance
*/
void bt_open_rpc_connection(Bt* bt);
/** Close the active RPC connection
*
* @param bt Bt instance
*/
void bt_close_rpc_connection(Bt* bt);

View File

@@ -782,7 +782,6 @@ Function,+,ble_svc_serial_start,BleServiceSerial*,
Function,+,ble_svc_serial_stop,void,BleServiceSerial* Function,+,ble_svc_serial_stop,void,BleServiceSerial*
Function,+,ble_svc_serial_update_tx,_Bool,"BleServiceSerial*, uint8_t*, uint16_t" Function,+,ble_svc_serial_update_tx,_Bool,"BleServiceSerial*, uint8_t*, uint16_t"
Function,-,bsearch,void*,"const void*, const void*, size_t, size_t, __compar_fn_t" Function,-,bsearch,void*,"const void*, const void*, size_t, size_t, __compar_fn_t"
Function,-,bt_close_rpc_connection,void,Bt*
Function,+,bt_disconnect,void,Bt* Function,+,bt_disconnect,void,Bt*
Function,+,bt_forget_bonded_devices,void,Bt* Function,+,bt_forget_bonded_devices,void,Bt*
Function,+,bt_keys_storage_alloc,BtKeysStorage*,const char* Function,+,bt_keys_storage_alloc,BtKeysStorage*,const char*
@@ -795,10 +794,8 @@ Function,+,bt_keys_storage_set_file_path,void,"BtKeysStorage*, const char*"
Function,+,bt_keys_storage_set_ram_params,void,"BtKeysStorage*, uint8_t*, uint16_t" Function,+,bt_keys_storage_set_ram_params,void,"BtKeysStorage*, uint8_t*, uint16_t"
Function,+,bt_keys_storage_set_storage_path,void,"Bt*, const char*" Function,+,bt_keys_storage_set_storage_path,void,"Bt*, const char*"
Function,+,bt_keys_storage_update,_Bool,"BtKeysStorage*, uint8_t*, uint32_t" Function,+,bt_keys_storage_update,_Bool,"BtKeysStorage*, uint8_t*, uint32_t"
Function,-,bt_open_rpc_connection,void,Bt*
Function,+,bt_profile_restore_default,_Bool,Bt* Function,+,bt_profile_restore_default,_Bool,Bt*
Function,+,bt_profile_start,FuriHalBleProfileBase*,"Bt*, const FuriHalBleProfileTemplate*, FuriHalBleProfileParams" Function,+,bt_profile_start,FuriHalBleProfileBase*,"Bt*, const FuriHalBleProfileTemplate*, FuriHalBleProfileParams"
Function,+,bt_remote_rssi,_Bool,"Bt*, uint8_t*"
Function,+,bt_set_status_changed_callback,void,"Bt*, BtStatusChangedCallback, void*" Function,+,bt_set_status_changed_callback,void,"Bt*, BtStatusChangedCallback, void*"
Function,+,buffered_file_stream_alloc,Stream*,Storage* Function,+,buffered_file_stream_alloc,Stream*,Storage*
Function,+,buffered_file_stream_close,_Bool,Stream* Function,+,buffered_file_stream_close,_Bool,Stream*
@@ -1331,7 +1328,6 @@ Function,+,furi_hal_bt_extra_beacon_set_config,_Bool,const GapExtraBeaconConfig*
Function,+,furi_hal_bt_extra_beacon_set_data,_Bool,"const uint8_t*, uint8_t" Function,+,furi_hal_bt_extra_beacon_set_data,_Bool,"const uint8_t*, uint8_t"
Function,+,furi_hal_bt_extra_beacon_start,_Bool, Function,+,furi_hal_bt_extra_beacon_start,_Bool,
Function,+,furi_hal_bt_extra_beacon_stop,_Bool, Function,+,furi_hal_bt_extra_beacon_stop,_Bool,
Function,-,furi_hal_bt_get_conn_rssi,uint32_t,uint8_t*
Function,+,furi_hal_bt_get_key_storage_buff,void,"uint8_t**, uint16_t*" Function,+,furi_hal_bt_get_key_storage_buff,void,"uint8_t**, uint16_t*"
Function,+,furi_hal_bt_get_radio_stack,FuriHalBtStack, Function,+,furi_hal_bt_get_radio_stack,FuriHalBtStack,
Function,+,furi_hal_bt_get_rssi,float, Function,+,furi_hal_bt_get_rssi,float,
@@ -1339,14 +1335,12 @@ Function,+,furi_hal_bt_get_transmitted_packets,uint32_t,
Function,-,furi_hal_bt_init,void, Function,-,furi_hal_bt_init,void,
Function,+,furi_hal_bt_is_active,_Bool, Function,+,furi_hal_bt_is_active,_Bool,
Function,+,furi_hal_bt_is_alive,_Bool, Function,+,furi_hal_bt_is_alive,_Bool,
Function,+,furi_hal_bt_is_connected,_Bool,
Function,+,furi_hal_bt_is_gatt_gap_supported,_Bool, Function,+,furi_hal_bt_is_gatt_gap_supported,_Bool,
Function,+,furi_hal_bt_is_testing_supported,_Bool, Function,+,furi_hal_bt_is_testing_supported,_Bool,
Function,+,furi_hal_bt_lock_core2,void, Function,+,furi_hal_bt_lock_core2,void,
Function,+,furi_hal_bt_nvm_sram_sem_acquire,void, Function,+,furi_hal_bt_nvm_sram_sem_acquire,void,
Function,+,furi_hal_bt_nvm_sram_sem_release,void, Function,+,furi_hal_bt_nvm_sram_sem_release,void,
Function,+,furi_hal_bt_reinit,void, Function,+,furi_hal_bt_reinit,void,
Function,+,furi_hal_bt_reverse_mac_addr,void,uint8_t[( 6 )]
Function,+,furi_hal_bt_set_key_storage_change_callback,void,"BleGlueKeyStorageChangedCallback, void*" Function,+,furi_hal_bt_set_key_storage_change_callback,void,"BleGlueKeyStorageChangedCallback, void*"
Function,+,furi_hal_bt_start_advertising,void, Function,+,furi_hal_bt_start_advertising,void,
Function,+,furi_hal_bt_start_app,FuriHalBleProfileBase*,"const FuriHalBleProfileTemplate*, FuriHalBleProfileParams, GapEventCallback, void*" Function,+,furi_hal_bt_start_app,FuriHalBleProfileBase*,"const FuriHalBleProfileTemplate*, FuriHalBleProfileParams, GapEventCallback, void*"
@@ -2008,7 +2002,6 @@ Function,-,gap_extra_beacon_set_config,_Bool,const GapExtraBeaconConfig*
Function,-,gap_extra_beacon_set_data,_Bool,"const uint8_t*, uint8_t" Function,-,gap_extra_beacon_set_data,_Bool,"const uint8_t*, uint8_t"
Function,-,gap_extra_beacon_start,_Bool, Function,-,gap_extra_beacon_start,_Bool,
Function,-,gap_extra_beacon_stop,_Bool, Function,-,gap_extra_beacon_stop,_Bool,
Function,-,gap_get_remote_conn_rssi,uint32_t,int8_t*
Function,-,gap_get_state,GapState, Function,-,gap_get_state,GapState,
Function,-,gap_init,_Bool,"GapConfig*, GapEventCallback, void*" Function,-,gap_init,_Bool,"GapConfig*, GapEventCallback, void*"
Function,-,gap_start_advertising,void, Function,-,gap_start_advertising,void,
@@ -3558,9 +3551,9 @@ Function,+,subghz_keystore_get_data,SubGhzKeyArray_t*,SubGhzKeystore*
Function,+,subghz_keystore_load,_Bool,"SubGhzKeystore*, const char*" Function,+,subghz_keystore_load,_Bool,"SubGhzKeystore*, const char*"
Function,+,subghz_keystore_raw_encrypted_save,_Bool,"const char*, const char*, uint8_t*" Function,+,subghz_keystore_raw_encrypted_save,_Bool,"const char*, const char*, uint8_t*"
Function,+,subghz_keystore_raw_get_data,_Bool,"const char*, size_t, uint8_t*, size_t" Function,+,subghz_keystore_raw_get_data,_Bool,"const char*, size_t, uint8_t*, size_t"
Function,+,subghz_keystore_reset_kl,void,SubGhzKeystore*
Function,+,subghz_keystore_save,_Bool,"SubGhzKeystore*, const char*, uint8_t*" Function,+,subghz_keystore_save,_Bool,"SubGhzKeystore*, const char*, uint8_t*"
Function,+,subghz_protocol_alutech_at_4n_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*" Function,+,subghz_protocol_alutech_at_4n_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*"
Function,+,subghz_keystore_reset_kl,void,SubGhzKeystore*
Function,+,subghz_protocol_blocks_add_bit,void,"SubGhzBlockDecoder*, uint8_t" Function,+,subghz_protocol_blocks_add_bit,void,"SubGhzBlockDecoder*, uint8_t"
Function,+,subghz_protocol_blocks_add_bytes,uint8_t,"const uint8_t[], size_t" Function,+,subghz_protocol_blocks_add_bytes,uint8_t,"const uint8_t[], size_t"
Function,+,subghz_protocol_blocks_add_to_128_bit,void,"SubGhzBlockDecoder*, uint8_t, uint64_t*" Function,+,subghz_protocol_blocks_add_to_128_bit,void,"SubGhzBlockDecoder*, uint8_t, uint64_t*"
1 entry status name type params
782 Function + ble_svc_serial_stop void BleServiceSerial*
783 Function + ble_svc_serial_update_tx _Bool BleServiceSerial*, uint8_t*, uint16_t
784 Function - bsearch void* const void*, const void*, size_t, size_t, __compar_fn_t
Function - bt_close_rpc_connection void Bt*
785 Function + bt_disconnect void Bt*
786 Function + bt_forget_bonded_devices void Bt*
787 Function + bt_keys_storage_alloc BtKeysStorage* const char*
794 Function + bt_keys_storage_set_ram_params void BtKeysStorage*, uint8_t*, uint16_t
795 Function + bt_keys_storage_set_storage_path void Bt*, const char*
796 Function + bt_keys_storage_update _Bool BtKeysStorage*, uint8_t*, uint32_t
Function - bt_open_rpc_connection void Bt*
797 Function + bt_profile_restore_default _Bool Bt*
798 Function + bt_profile_start FuriHalBleProfileBase* Bt*, const FuriHalBleProfileTemplate*, FuriHalBleProfileParams
Function + bt_remote_rssi _Bool Bt*, uint8_t*
799 Function + bt_set_status_changed_callback void Bt*, BtStatusChangedCallback, void*
800 Function + buffered_file_stream_alloc Stream* Storage*
801 Function + buffered_file_stream_close _Bool Stream*
1328 Function + furi_hal_bt_extra_beacon_set_data _Bool const uint8_t*, uint8_t
1329 Function + furi_hal_bt_extra_beacon_start _Bool
1330 Function + furi_hal_bt_extra_beacon_stop _Bool
Function - furi_hal_bt_get_conn_rssi uint32_t uint8_t*
1331 Function + furi_hal_bt_get_key_storage_buff void uint8_t**, uint16_t*
1332 Function + furi_hal_bt_get_radio_stack FuriHalBtStack
1333 Function + furi_hal_bt_get_rssi float
1335 Function - furi_hal_bt_init void
1336 Function + furi_hal_bt_is_active _Bool
1337 Function + furi_hal_bt_is_alive _Bool
Function + furi_hal_bt_is_connected _Bool
1338 Function + furi_hal_bt_is_gatt_gap_supported _Bool
1339 Function + furi_hal_bt_is_testing_supported _Bool
1340 Function + furi_hal_bt_lock_core2 void
1341 Function + furi_hal_bt_nvm_sram_sem_acquire void
1342 Function + furi_hal_bt_nvm_sram_sem_release void
1343 Function + furi_hal_bt_reinit void
Function + furi_hal_bt_reverse_mac_addr void uint8_t[( 6 )]
1344 Function + furi_hal_bt_set_key_storage_change_callback void BleGlueKeyStorageChangedCallback, void*
1345 Function + furi_hal_bt_start_advertising void
1346 Function + furi_hal_bt_start_app FuriHalBleProfileBase* const FuriHalBleProfileTemplate*, FuriHalBleProfileParams, GapEventCallback, void*
2002 Function - gap_extra_beacon_set_data _Bool const uint8_t*, uint8_t
2003 Function - gap_extra_beacon_start _Bool
2004 Function - gap_extra_beacon_stop _Bool
Function - gap_get_remote_conn_rssi uint32_t int8_t*
2005 Function - gap_get_state GapState
2006 Function - gap_init _Bool GapConfig*, GapEventCallback, void*
2007 Function - gap_start_advertising void
3551 Function + subghz_keystore_load _Bool SubGhzKeystore*, const char*
3552 Function + subghz_keystore_raw_encrypted_save _Bool const char*, const char*, uint8_t*
3553 Function + subghz_keystore_raw_get_data _Bool const char*, size_t, uint8_t*, size_t
3554 Function + subghz_keystore_reset_kl void SubGhzKeystore*
3555 Function + subghz_keystore_save _Bool SubGhzKeystore*, const char*, uint8_t*
3556 Function + subghz_protocol_alutech_at_4n_create_data _Bool void*, FlipperFormat*, uint32_t, uint8_t, uint16_t, SubGhzRadioPreset*
Function + subghz_keystore_reset_kl void SubGhzKeystore*
3557 Function + subghz_protocol_blocks_add_bit void SubGhzBlockDecoder*, uint8_t
3558 Function + subghz_protocol_blocks_add_bytes uint8_t const uint8_t[], size_t
3559 Function + subghz_protocol_blocks_add_to_128_bit void SubGhzBlockDecoder*, uint8_t, uint64_t*

View File

@@ -33,8 +33,6 @@ typedef struct {
GapConfig* config; GapConfig* config;
GapConnectionParams connection_params; GapConnectionParams connection_params;
GapState state; GapState state;
int8_t conn_rssi;
uint32_t time_rssi_sample;
FuriMutex* state_mutex; FuriMutex* state_mutex;
GapEventCallback on_event_cb; GapEventCallback on_event_cb;
void* context; void* context;
@@ -65,19 +63,6 @@ static Gap* gap = NULL;
static void gap_advertise_start(GapState new_state); static void gap_advertise_start(GapState new_state);
static int32_t gap_app(void* context); static int32_t gap_app(void* context);
/** function for updating rssi informations in global Gap object
*
*/
static inline void fetch_rssi(void) {
uint8_t ret_rssi = 127;
if(hci_read_rssi(gap->service.connection_handle, &ret_rssi) == BLE_STATUS_SUCCESS) {
gap->conn_rssi = (int8_t)ret_rssi;
gap->time_rssi_sample = furi_get_tick();
return;
}
FURI_LOG_D(TAG, "Failed to read RSSI");
}
static void gap_verify_connection_parameters(Gap* gap) { static void gap_verify_connection_parameters(Gap* gap) {
furi_check(gap); furi_check(gap);
@@ -182,8 +167,6 @@ BleEventFlowStatus ble_event_app_notification(void* pckt) {
FURI_LOG_I(TAG, "Connection parameters event complete"); FURI_LOG_I(TAG, "Connection parameters event complete");
gap_verify_connection_parameters(gap); gap_verify_connection_parameters(gap);
// Save rssi for current connection
fetch_rssi();
break; break;
} }
@@ -218,8 +201,7 @@ BleEventFlowStatus ble_event_app_notification(void* pckt) {
gap->service.connection_handle = event->Connection_Handle; gap->service.connection_handle = event->Connection_Handle;
gap_verify_connection_parameters(gap); gap_verify_connection_parameters(gap);
// Save rssi for current connection
fetch_rssi();
if(gap->config->pairing_method != GapPairingNone) { if(gap->config->pairing_method != GapPairingNone) {
// Start pairing by sending security request // Start pairing by sending security request
aci_gap_slave_security_req(event->Connection_Handle); aci_gap_slave_security_req(event->Connection_Handle);
@@ -303,9 +285,6 @@ BleEventFlowStatus ble_event_app_notification(void* pckt) {
pairing_complete->Status); pairing_complete->Status);
aci_gap_terminate(gap->service.connection_handle, 5); aci_gap_terminate(gap->service.connection_handle, 5);
} else { } else {
// Save RSSI
fetch_rssi();
FURI_LOG_I(TAG, "Pairing complete"); FURI_LOG_I(TAG, "Pairing complete");
GapEvent event = {.type = GapEventTypeConnected}; GapEvent event = {.type = GapEventTypeConnected};
gap->on_event_cb(event, gap->context); //-V595 gap->on_event_cb(event, gap->context); //-V595
@@ -579,9 +558,6 @@ bool gap_init(GapConfig* config, GapEventCallback on_event_cb, void* context) {
gap->service.connection_handle = 0xFFFF; gap->service.connection_handle = 0xFFFF;
gap->enable_adv = true; gap->enable_adv = true;
gap->conn_rssi = 127;
gap->time_rssi_sample = 0;
// Command queue allocation // Command queue allocation
gap->command_queue = furi_message_queue_alloc(8, sizeof(GapCommand)); gap->command_queue = furi_message_queue_alloc(8, sizeof(GapCommand));
@@ -621,17 +597,6 @@ bool gap_init(GapConfig* config, GapEventCallback on_event_cb, void* context) {
return true; return true;
} }
// Get RSSI
uint32_t gap_get_remote_conn_rssi(int8_t* rssi) {
if(gap && gap->state == GapStateConnected) {
fetch_rssi();
*rssi = gap->conn_rssi;
if(gap->time_rssi_sample) return furi_get_tick() - gap->time_rssi_sample;
}
return 0;
}
GapState gap_get_state(void) { GapState gap_get_state(void) {
GapState state; GapState state;
if(gap) { if(gap) {

View File

@@ -96,8 +96,6 @@ void gap_thread_stop(void);
void gap_emit_ble_beacon_status_event(bool active); void gap_emit_ble_beacon_status_event(bool active);
uint32_t gap_get_remote_conn_rssi(int8_t* rssi);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@@ -251,10 +251,6 @@ bool furi_hal_bt_is_active(void) {
return gap_get_state() > GapStateIdle; return gap_get_state() > GapStateIdle;
} }
bool furi_hal_bt_is_connected() {
return gap_get_state() == GapStateConnected;
}
void furi_hal_bt_start_advertising(void) { void furi_hal_bt_start_advertising(void) {
if(gap_get_state() == GapStateIdle) { if(gap_get_state() == GapStateIdle) {
gap_start_advertising(); gap_start_advertising();
@@ -367,54 +363,6 @@ void furi_hal_bt_start_rx(uint8_t channel) {
aci_hal_rx_start(channel); aci_hal_rx_start(channel);
} }
float furi_hal_bt_get_rssi(void) {
float val;
uint8_t rssi_raw[3];
if(aci_hal_read_raw_rssi(rssi_raw) != BLE_STATUS_SUCCESS) {
return 0.0f;
}
// Some ST magic with rssi
uint8_t agc = rssi_raw[2] & 0xFF;
int rssi = (((int)rssi_raw[1] << 8) & 0xFF00) + (rssi_raw[0] & 0xFF);
if(rssi == 0 || agc > 11) {
val = -127.0;
} else {
val = agc * 6.0f - 127.0f;
while(rssi > 30) {
val += 6.0;
rssi >>= 1;
}
val += (float)((417 * rssi + 18080) >> 10);
}
return val;
}
/** fill the RSSI of the remote host of the bt connection and returns the last
* time the RSSI was updated
*
*/
uint32_t furi_hal_bt_get_conn_rssi(uint8_t* rssi) {
int8_t ret_rssi = 0;
uint32_t since = gap_get_remote_conn_rssi(&ret_rssi);
if(ret_rssi == 127 || since == 0) return 0;
*rssi = (uint8_t)abs(ret_rssi);
return since;
}
void furi_hal_bt_reverse_mac_addr(uint8_t mac_addr[GAP_MAC_ADDR_SIZE]) {
uint8_t tmp;
for(size_t i = 0; i < GAP_MAC_ADDR_SIZE / 2; i++) {
tmp = mac_addr[i];
mac_addr[i] = mac_addr[GAP_MAC_ADDR_SIZE - 1 - i];
mac_addr[GAP_MAC_ADDR_SIZE - 1 - i] = tmp;
}
}
uint32_t furi_hal_bt_get_transmitted_packets(void) { uint32_t furi_hal_bt_get_transmitted_packets(void) {
uint32_t packets = 0; uint32_t packets = 0;
aci_hal_le_tx_test_packet_number(&packets); aci_hal_le_tx_test_packet_number(&packets);

View File

@@ -51,7 +51,8 @@
// Changing furi_assert() to furi_check() brought timeout crashes // Changing furi_assert() to furi_check() brought timeout crashes
// Internal storage is very slow, and "big" files will often cause a "timeout" with 3 seconds // Internal storage is very slow, and "big" files will often cause a "timeout" with 3 seconds
// 10 seconds seems fine, the file operations complete successfully, albeit slowly // 10 seconds seems fine, the file operations complete successfully, albeit slowly
#define FURI_HAL_FLASH_C2_LOCK_TIMEOUT_MS (10000U) /* 10 seconds */ //#define FURI_HAL_FLASH_C2_LOCK_TIMEOUT_MS (10000U) /* 10 seconds */
#define FURI_HAL_FLASH_C2_LOCK_TIMEOUT_MS (3000U) /* 3 seconds */
#define IS_ADDR_ALIGNED_64BITS(__VALUE__) (((__VALUE__) & 0x7U) == (0x00UL)) #define IS_ADDR_ALIGNED_64BITS(__VALUE__) (((__VALUE__) & 0x7U) == (0x00UL))
#define IS_FLASH_PROGRAM_ADDRESS(__VALUE__) \ #define IS_FLASH_PROGRAM_ADDRESS(__VALUE__) \

View File

@@ -231,15 +231,6 @@ float furi_hal_bt_get_rssi(void);
*/ */
uint32_t furi_hal_bt_get_transmitted_packets(void); uint32_t furi_hal_bt_get_transmitted_packets(void);
/** Reverse a MAC address byte order in-place
* @param[in] mac mac address to reverse
*/
void furi_hal_bt_reverse_mac_addr(uint8_t mac_addr[GAP_MAC_ADDR_SIZE]);
uint32_t furi_hal_bt_get_conn_rssi(uint8_t* rssi);
bool furi_hal_bt_is_connected(void);
/** Check & switch C2 to given mode /** Check & switch C2 to given mode
* *
* @param[in] mode mode to switch into * @param[in] mode mode to switch into