diff options
author | gornekich <n.gorbadey@gmail.com> | 2021-09-21 12:48:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-21 12:48:08 +0300 |
commit | 0e1922db4d2125b23b21cc1e97ae986071d770c9 (patch) | |
tree | 4ac11541a0419f741c023a63a267a86e3199d35f /applications/bt | |
parent | 69f54973cc5d6fea506e64912460333753efb05b (diff) |
BT: stop advertising in bt test cli commands (#712)
* bt: stop advertising in bt test cli commands
* furi-hal-bt: add switch context in furi_hal_bt_lock_flash
* Lib: update STM32CubeWB to latest version. Scripts: update supported copro binaries version
* Scripts: proper version extraction from Cube manifest
* bt: add debug application and comment it
* bt: fix stop advertising command
* bt: debug on f7 target
* furi-hal-console: add console tx + new line
* bt: fix debug trace function
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
Diffstat (limited to 'applications/bt')
-rw-r--r-- | applications/bt/bt_cli.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/applications/bt/bt_cli.c b/applications/bt/bt_cli.c index 3232e526..3dcc9a8e 100644 --- a/applications/bt/bt_cli.c +++ b/applications/bt/bt_cli.c @@ -1,6 +1,7 @@ #include "bt_cli.h" #include <furi.h> #include <furi-hal.h> +#include "bt_settings.h" void bt_cli_init() { Cli* cli = furi_record_open("cli"); @@ -25,6 +26,9 @@ void bt_cli_command_info(Cli* cli, string_t args, void* context) { void bt_cli_command_carrier_tx(Cli* cli, string_t args, void* context) { uint16_t channel; uint16_t power; + BtSettings bt_settings; + bt_settings_load(&bt_settings); + int ret = sscanf(string_get_cstr(args), "%hu %hu", &channel, &power); if(ret != 2) { printf("sscanf returned %d, channel: %hu, power: %hu\r\n", ret, channel, power); @@ -39,6 +43,8 @@ void bt_cli_command_carrier_tx(Cli* cli, string_t args, void* context) { printf("Power must be in 0...6 dB range, not %hu\r\n", power); return; } + + furi_hal_bt_stop_advertising(); printf("Transmitting carrier at %hu channel at %hu dB power\r\n", channel, power); printf("Press CTRL+C to stop\r\n"); furi_hal_bt_start_tone_tx(channel, 0x19 + power); @@ -47,10 +53,15 @@ void bt_cli_command_carrier_tx(Cli* cli, string_t args, void* context) { osDelay(250); } furi_hal_bt_stop_tone_tx(); + if(bt_settings.enabled) { + furi_hal_bt_start_advertising(); + } } void bt_cli_command_carrier_rx(Cli* cli, string_t args, void* context) { uint16_t channel; + BtSettings bt_settings; + bt_settings_load(&bt_settings); int ret = sscanf(string_get_cstr(args), "%hu", &channel); if(ret != 1) { printf("sscanf returned %d, channel: %hu\r\n", ret, channel); @@ -61,6 +72,8 @@ void bt_cli_command_carrier_rx(Cli* cli, string_t args, void* context) { printf("Channel number must be in 0...39 range, not %hu\r\n", channel); return; } + + furi_hal_bt_stop_advertising(); printf("Receiving carrier at %hu channel\r\n", channel); printf("Press CTRL+C to stop\r\n"); @@ -73,12 +86,17 @@ void bt_cli_command_carrier_rx(Cli* cli, string_t args, void* context) { } furi_hal_bt_stop_packet_test(); + if(bt_settings.enabled) { + furi_hal_bt_start_advertising(); + } } void bt_cli_command_packet_tx(Cli* cli, string_t args, void* context) { uint16_t channel; uint16_t pattern; uint16_t datarate; + BtSettings bt_settings; + bt_settings_load(&bt_settings); int ret = sscanf(string_get_cstr(args), "%hu %hu %hu", &channel, &pattern, &datarate); if(ret != 3) { printf("sscanf returned %d, channel: %hu %hu %hu\r\n", ret, channel, pattern, datarate); @@ -105,6 +123,7 @@ void bt_cli_command_packet_tx(Cli* cli, string_t args, void* context) { return; } + furi_hal_bt_stop_advertising(); printf( "Transmitting %hu pattern packet at %hu channel at %hu M datarate\r\n", pattern, @@ -118,11 +137,16 @@ void bt_cli_command_packet_tx(Cli* cli, string_t args, void* context) { } furi_hal_bt_stop_packet_test(); printf("Transmitted %lu packets", furi_hal_bt_get_transmitted_packets()); + if(bt_settings.enabled) { + furi_hal_bt_start_advertising(); + } } void bt_cli_command_packet_rx(Cli* cli, string_t args, void* context) { uint16_t channel; uint16_t datarate; + BtSettings bt_settings; + bt_settings_load(&bt_settings); int ret = sscanf(string_get_cstr(args), "%hu %hu", &channel, &datarate); if(ret != 2) { printf("sscanf returned %d, channel: %hu datarate: %hu\r\n", ret, channel, datarate); @@ -137,6 +161,8 @@ void bt_cli_command_packet_rx(Cli* cli, string_t args, void* context) { printf("Datarate must be in 1 or 2 Mb, not %hu\r\n", datarate); return; } + + furi_hal_bt_stop_advertising(); printf("Receiving packets at %hu channel at %hu M datarate\r\n", channel, datarate); printf("Press CTRL+C to stop\r\n"); furi_hal_bt_start_packet_rx(channel, datarate); @@ -150,4 +176,7 @@ void bt_cli_command_packet_rx(Cli* cli, string_t args, void* context) { } uint16_t packets_received = furi_hal_bt_stop_packet_test(); printf("Received %hu packets", packets_received); + if(bt_settings.enabled) { + furi_hal_bt_start_advertising(); + } } |