mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
some code cleanup
by Willy-JL
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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*"
|
||||||
|
|||||||
|
@@ -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) {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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__) \
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user