Просмотр исходного кода

add auto 5v for nrf24 apps

thanks Sil333033
MX 2 лет назад
Родитель
Сommit
04100e907c

+ 12 - 0
base_pack/mousejacker/mousejacker.c

@@ -318,6 +318,13 @@ int32_t mousejacker_app(void* p) {
         plugin_state->addr_err = true;
         plugin_state->addr_err = true;
     }
     }
     stream_free(plugin_state->file_stream);
     stream_free(plugin_state->file_stream);
+
+    bool otg_was_enabled = furi_hal_power_is_otg_enabled();
+    while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
+        furi_hal_power_enable_otg();
+        furi_delay_ms(10);
+    }
+    
     nrf24_init();
     nrf24_init();
 
 
     PluginEvent event;
     PluginEvent event;
@@ -382,6 +389,11 @@ int32_t mousejacker_app(void* p) {
 
 
     furi_thread_free(plugin_state->mjthread);
     furi_thread_free(plugin_state->mjthread);
     nrf24_deinit();
     nrf24_deinit();
+
+    if(furi_hal_power_is_otg_enabled() && !otg_was_enabled) {
+        furi_hal_power_disable_otg();
+    }
+
     view_port_enabled_set(view_port, false);
     view_port_enabled_set(view_port, false);
     gui_remove_view_port(gui, view_port);
     gui_remove_view_port(gui, view_port);
     furi_record_close(RECORD_GUI);
     furi_record_close(RECORD_GUI);

+ 11 - 0
base_pack/nrfsniff/nrfsniff.c

@@ -327,6 +327,12 @@ int32_t nrfsniff_app(void* p) {
         return 255;
         return 255;
     }
     }
 
 
+    bool otg_was_enabled = furi_hal_power_is_otg_enabled();
+    while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
+        furi_hal_power_enable_otg();
+        furi_delay_ms(10);
+    }
+
     nrf24_init();
     nrf24_init();
 
 
     // Set system callbacks
     // Set system callbacks
@@ -449,6 +455,11 @@ int32_t nrfsniff_app(void* p) {
     target_rate = 8; // rate can be either 8 (2Mbps) or 0 (1Mbps)
     target_rate = 8; // rate can be either 8 (2Mbps) or 0 (1Mbps)
     sniffing_state = false;
     sniffing_state = false;
     nrf24_deinit();
     nrf24_deinit();
+
+    if(furi_hal_power_is_otg_enabled() && !otg_was_enabled) {
+        furi_hal_power_disable_otg();
+    }
+
     view_port_enabled_set(view_port, false);
     view_port_enabled_set(view_port, false);
     gui_remove_view_port(gui, view_port);
     gui_remove_view_port(gui, view_port);
     furi_record_close(RECORD_GUI);
     furi_record_close(RECORD_GUI);

+ 12 - 0
non_catalog_apps/nrf24channelscanner/nrf24channelscanner.c

@@ -168,6 +168,13 @@ int32_t nrf24channelscanner_main(void* p) {
     Event event;
     Event event;
     FuriMessageQueue* event_queue = furi_message_queue_alloc(8, sizeof(Event));
     FuriMessageQueue* event_queue = furi_message_queue_alloc(8, sizeof(Event));
 
 
+    bool otg_was_enabled = furi_hal_power_is_otg_enabled();
+    while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
+        furi_hal_power_enable_otg();
+        furi_delay_ms(10);
+    }
+
+
     nrf24_init();
     nrf24_init();
 
 
     ViewPort* view_port = view_port_alloc();
     ViewPort* view_port = view_port_alloc();
@@ -243,6 +250,11 @@ int32_t nrf24channelscanner_main(void* p) {
         }
         }
     }
     }
     nrf24_deinit();
     nrf24_deinit();
+
+    if(furi_hal_power_is_otg_enabled() && !otg_was_enabled) {
+        furi_hal_power_disable_otg();
+    }
+    
     furi_message_queue_free(event_queue);
     furi_message_queue_free(event_queue);
     gui_remove_view_port(gui, view_port);
     gui_remove_view_port(gui, view_port);
     view_port_free(view_port);
     view_port_free(view_port);