diff --git a/firmware/application/external/ert/ert_app.cpp b/firmware/application/external/ert/ert_app.cpp index b18df97cb..1efdb905f 100644 --- a/firmware/application/external/ert/ert_app.cpp +++ b/firmware/application/external/ert/ert_app.cpp @@ -100,7 +100,7 @@ namespace ui::external_app::ert_app { ERTAppView::ERTAppView(NavigationView& nav) : nav_{nav} { - baseband::run_image(portapack::spi_flash::image_tag_ert); + baseband::run_prepared_image(portapack::memory::map::m4_code.base()); add_children({ &field_frequency, diff --git a/firmware/application/external/ert/main.cpp b/firmware/application/external/ert/main.cpp index 3fcbedf6d..3422fdd48 100644 --- a/firmware/application/external/ert/main.cpp +++ b/firmware/application/external/ert/main.cpp @@ -77,7 +77,7 @@ __attribute__((section(".external_app.app_ert.application_information"), used)) /*.menu_location = */ app_location_t::RX, /*.desired_menu_position = */ -1, - /*.m4_app_tag = portapack::spi_flash::image_tag_none */ {'P', 'E', 'R', 'T'}, + /*.m4_app_tag = portapack::spi_flash::image_tag_ert */ {'P', 'E', 'R', 'T'}, /*.m4_app_offset = */ 0x00000000, // will be filled at compile time }; } diff --git a/firmware/application/external/external.cmake b/firmware/application/external/external.cmake index d2e45d861..868855bd7 100644 --- a/firmware/application/external/external.cmake +++ b/firmware/application/external/external.cmake @@ -309,8 +309,10 @@ set(EXTCPPSRC external/morseradiotx/main.cpp external/morseradiotx/ui_morse_radiotx.cpp + #keeloqtx external/keeloqtx/main.cpp external/keeloqtx/ui_keeloqtx.cpp + #rtty_rx external/rtty_rx/main.cpp external/rtty_rx/ui_rtty_rx.cpp @@ -351,7 +353,7 @@ set(EXTCPPSRC #two_tone_rx external/two_tone_rx/main.cpp - external/two_tone_rx/ui_two_tone_rx.cpp + external/two_tone_rx/ui_two_tone_rx.cpp ) set(EXTAPPLIST diff --git a/firmware/application/external/pocsag_tx/ui_pocsag_tx.cpp b/firmware/application/external/pocsag_tx/ui_pocsag_tx.cpp index e8eaf13b2..1fffd20a2 100644 --- a/firmware/application/external/pocsag_tx/ui_pocsag_tx.cpp +++ b/firmware/application/external/pocsag_tx/ui_pocsag_tx.cpp @@ -96,7 +96,19 @@ bool POCSAGTXView::start_tx() { if (type == MessageType::NUMERIC_ONLY) { // Check for invalid characters - if (message.find_first_not_of("0123456789SU -][") != std::string::npos) { + const char* p = message.c_str(); + bool is_valid = true; + while (*p != '\0') { + const char c = *p; + // Check if char is NOT in the allowed set + if (!((c >= '0' && c <= '9') || c == 'S' || c == 'U' || + c == ' ' || c == '-' || c == '[' || c == ']')) { + is_valid = false; + break; + } + p++; + } + if (!is_valid) { nav_.display_modal("Bad message", "A numeric only message must\nonly contain:\n0123456789SU][- or space."); return false; } diff --git a/firmware/baseband/CMakeLists.txt b/firmware/baseband/CMakeLists.txt index 89ffc124f..b0b836203 100644 --- a/firmware/baseband/CMakeLists.txt +++ b/firmware/baseband/CMakeLists.txt @@ -380,13 +380,6 @@ set(MODE_CPPSRC ) DeclareTargets(PCAP capture) -### ERT - -set(MODE_CPPSRC - proc_ert.cpp -) -DeclareTargets(PERT ert) - ### Radiosonde set(MODE_CPPSRC @@ -452,13 +445,6 @@ set(MODE_CPPSRC DeclareTargets(PREP replay) -### Tones - -set(MODE_CPPSRC - proc_tones.cpp -) -DeclareTargets(PTON tones) - ### Wideband Spectrum @@ -707,6 +693,15 @@ set(MODE_CPPSRC DeclareTargets(PRTR rtty_rx) + +### ERT + +set(MODE_CPPSRC + proc_ert.cpp +) +DeclareTargets(PERT ert) + + ### RTTY TX set(MODE_CPPSRC @@ -729,6 +724,15 @@ set(MODE_CPPSRC ) DeclareTargets(PMRT morsetx) +### Tones + +set(MODE_CPPSRC + proc_tones.cpp +) +DeclareTargets(PTON tones) + + + ### Time Sink set(MODE_CPPSRC