This commit is contained in:
Willy-JL
2024-03-22 21:24:42 +00:00
24 changed files with 499 additions and 66 deletions

View File

@@ -639,8 +639,8 @@ Function,+,ble_glue_is_alive,_Bool,
Function,+,ble_glue_is_radio_stack_ready,_Bool,
Function,+,ble_glue_reinit_c2,_Bool,
Function,+,ble_glue_set_key_storage_changed_callback,void,"BleGlueKeyStorageChangedCallback, void*"
Function,+,ble_glue_start,_Bool,
Function,+,ble_glue_stop,void,
Function,-,ble_glue_start,_Bool,
Function,-,ble_glue_stop,void,
Function,+,ble_glue_wait_for_c2_start,_Bool,int32_t
Function,-,ble_profile_hid_consumer_key_press,_Bool,"FuriHalBleProfileBase*, uint16_t"
Function,-,ble_profile_hid_consumer_key_release,_Bool,"FuriHalBleProfileBase*, uint16_t"
1 entry status name type params
639 Function + ble_glue_is_radio_stack_ready _Bool
640 Function + ble_glue_reinit_c2 _Bool
641 Function + ble_glue_set_key_storage_changed_callback void BleGlueKeyStorageChangedCallback, void*
642 Function + - ble_glue_start _Bool
643 Function + - ble_glue_stop void
644 Function + ble_glue_wait_for_c2_start _Bool int32_t
645 Function - ble_profile_hid_consumer_key_press _Bool FuriHalBleProfileBase*, uint16_t
646 Function - ble_profile_hid_consumer_key_release _Bool FuriHalBleProfileBase*, uint16_t

View File

@@ -714,7 +714,7 @@ Function,-,ble_app_get_key_storage_buff,void,"uint8_t**, uint16_t*"
Function,-,ble_app_init,_Bool,
Function,-,ble_event_app_notification,BleEventFlowStatus,void*
Function,-,ble_event_dispatcher_init,void,
Function,+,ble_event_dispatcher_process_event,BleEventFlowStatus,void*
Function,-,ble_event_dispatcher_process_event,BleEventFlowStatus,void*
Function,+,ble_event_dispatcher_register_svc_handler,GapSvcEventHandler*,"BleSvcEventHandlerCb, void*"
Function,-,ble_event_dispatcher_reset,void,
Function,+,ble_event_dispatcher_unregister_svc_handler,void,GapSvcEventHandler*
1 entry status name type params
714 Function - ble_app_init _Bool
715 Function - ble_event_app_notification BleEventFlowStatus void*
716 Function - ble_event_dispatcher_init void
717 Function + - ble_event_dispatcher_process_event BleEventFlowStatus void*
718 Function + ble_event_dispatcher_register_svc_handler GapSvcEventHandler* BleSvcEventHandlerCb, void*
719 Function - ble_event_dispatcher_reset void
720 Function + ble_event_dispatcher_unregister_svc_handler void GapSvcEventHandler*

View File

@@ -80,7 +80,7 @@ void ble_event_thread_stop(void) {
}
FuriThreadId thread_id = furi_thread_get_id(event_thread);
furi_assert(thread_id);
furi_check(thread_id);
furi_thread_flags_set(thread_id, BLE_EVENT_THREAD_FLAG_KILL_THREAD);
furi_thread_join(event_thread);
furi_thread_free(event_thread);

View File

@@ -224,7 +224,7 @@ bool ble_glue_wait_for_c2_start(int32_t timeout_ms) {
}
bool ble_glue_start(void) {
furi_assert(ble_glue);
furi_check(ble_glue);
if(ble_glue->status != BleGlueStatusC2Started) {
return false;
@@ -243,7 +243,7 @@ bool ble_glue_start(void) {
}
void ble_glue_stop(void) {
furi_assert(ble_glue);
furi_check(ble_glue);
ble_event_thread_stop();
// Free resources

View File

@@ -50,14 +50,14 @@ BleEventFlowStatus ble_event_dispatcher_process_event(void* payload) {
}
void ble_event_dispatcher_init(void) {
furi_assert(!initialized);
GapSvcEventHandlerList_init(handlers);
initialized = true;
if(!initialized) {
GapSvcEventHandlerList_init(handlers);
initialized = true;
}
}
void ble_event_dispatcher_reset(void) {
furi_assert(initialized);
furi_check(initialized);
furi_check(GapSvcEventHandlerList_size(handlers) == 0);
GapSvcEventHandlerList_clear(handlers);

View File

@@ -90,7 +90,7 @@ bool ble_gatt_characteristic_update(
uint16_t svc_handle,
BleGattCharacteristicInstance* char_instance,
const void* source) {
furi_assert(char_instance);
furi_check(char_instance);
const BleGattCharacteristicParams* char_descriptor = char_instance->characteristic;
FURI_LOG_D(TAG, "Updating %s char", char_descriptor->name);

View File

@@ -75,7 +75,7 @@ static inline void fetch_rssi(void) {
}
static void gap_verify_connection_parameters(Gap* gap) {
furi_assert(gap);
furi_check(gap);
FURI_LOG_I(
TAG,
@@ -515,6 +515,8 @@ bool gap_init(GapConfig* config, GapEventCallback on_event_cb, void* context) {
return false;
}
furi_check(gap == NULL);
gap = malloc(sizeof(Gap));
gap->config = config;
// Create advertising timer
@@ -532,13 +534,13 @@ bool gap_init(GapConfig* config, GapEventCallback on_event_cb, void* context) {
gap->conn_rssi = 127;
gap->time_rssi_sample = 0;
// Command queue allocation
gap->command_queue = furi_message_queue_alloc(8, sizeof(GapCommand));
// Thread configuration
gap->thread = furi_thread_alloc_ex("BleGapDriver", 1024, gap_app, gap);
furi_thread_start(gap->thread);
// Command queue allocation
gap->command_queue = furi_message_queue_alloc(8, sizeof(GapCommand));
uint8_t adv_service_uid[2];
gap->service.adv_svc_uuid_len = 1;
adv_service_uid[0] = gap->config->adv_service_uuid & 0xff;