From 73d47cd77d9a16898ba527953b4f2c06f6b3f328 Mon Sep 17 00:00:00 2001 From: furrtek Date: Sun, 24 Sep 2017 20:05:42 +0100 Subject: [PATCH] Added remaining buttons for TouchTunes remote LCR transmit UI cleanup CC1101 data whitening function Uniformized tx progress message handling --- firmware/application/emu_cc1101.cpp | 19 ++ firmware/application/modems.cpp | 24 +- firmware/application/modems.hpp | 1 + firmware/application/protocols/encoders.hpp | 4 +- firmware/application/serializer.cpp | 15 +- firmware/application/ui_aprs_tx.cpp | 6 +- firmware/application/ui_aprs_tx.hpp | 10 +- firmware/application/ui_bht_tx.cpp | 2 +- firmware/application/ui_bht_tx.hpp | 8 +- firmware/application/ui_coasterp.cpp | 3 +- firmware/application/ui_coasterp.hpp | 8 +- firmware/application/ui_encoders.cpp | 16 +- firmware/application/ui_encoders.hpp | 12 +- firmware/application/ui_lcr.cpp | 279 ++++++++---------- firmware/application/ui_lcr.hpp | 108 +++---- firmware/application/ui_mictx.cpp | 5 +- firmware/application/ui_mictx.hpp | 10 +- firmware/application/ui_modemsetup.cpp | 23 +- firmware/application/ui_modemsetup.hpp | 15 - firmware/application/ui_morse.cpp | 5 +- firmware/application/ui_morse.hpp | 10 +- firmware/application/ui_navigation.cpp | 5 +- firmware/application/ui_nuoptix.cpp | 7 + firmware/application/ui_nuoptix.hpp | 12 +- firmware/application/ui_pocsag_tx.cpp | 2 +- firmware/application/ui_pocsag_tx.hpp | 8 +- firmware/application/ui_siggen.cpp | 4 +- firmware/application/ui_siggen.hpp | 10 +- firmware/application/ui_touchtunes.cpp | 98 +++--- firmware/application/ui_touchtunes.hpp | 158 ++++++---- firmware/baseband/proc_adsbtx.hpp | 2 +- firmware/baseband/proc_afsk.cpp | 11 +- firmware/baseband/proc_afsk.hpp | 4 +- firmware/baseband/proc_fsk.cpp | 13 +- firmware/baseband/proc_fsk.hpp | 2 +- firmware/baseband/proc_mictx.cpp | 4 +- firmware/baseband/proc_mictx.hpp | 2 +- firmware/baseband/proc_ook.cpp | 13 +- firmware/baseband/proc_ook.hpp | 2 +- firmware/baseband/proc_siggen.cpp | 4 +- firmware/baseband/proc_siggen.hpp | 2 +- firmware/baseband/proc_tones.cpp | 17 +- firmware/baseband/proc_tones.hpp | 2 +- firmware/common/emu_cc1101.hpp | 7 +- firmware/common/message.hpp | 8 +- .../common/portapack_persistent_memory.cpp | 8 +- .../common/portapack_persistent_memory.hpp | 2 - firmware/portapack-h1-havoc.bin | Bin 911544 -> 912792 bytes 48 files changed, 504 insertions(+), 486 deletions(-) diff --git a/firmware/application/emu_cc1101.cpp b/firmware/application/emu_cc1101.cpp index bcb986ad8..090894823 100644 --- a/firmware/application/emu_cc1101.cpp +++ b/firmware/application/emu_cc1101.cpp @@ -24,4 +24,23 @@ namespace cc1101 { +void CC1101Emu::whitening_init() { + whitening_pn = 0x1FF; +} + +// See TI app note DN509 +uint8_t CC1101Emu::whiten_byte(uint8_t byte) { + uint_fast8_t new_bit; + + byte ^= (whitening_pn & 0xFF); + + for (size_t step = 0; step < 8; step++) { + new_bit = (whitening_pn & 1) ^ ((whitening_pn >> 5) & 1); + whitening_pn >>= 1; + whitening_pn |= (new_bit << 8); + } + + return byte; +} + } /* namespace cc1101 */ diff --git a/firmware/application/modems.cpp b/firmware/application/modems.cpp index dfd106d60..bc8f815f3 100644 --- a/firmware/application/modems.cpp +++ b/firmware/application/modems.cpp @@ -30,20 +30,21 @@ using namespace portapack; namespace modems { void generate_data(const std::string& in_message, uint16_t * out_data) { - serial_format_t serial_format; - uint8_t parity_init, parity, data_bits, bits, bit, cur_byte; - uint16_t ordered_word, bytes; + uint8_t parity_init, parity, bits, bit, cur_byte; + uint16_t ordered_word; + size_t bytes; - serial_format = persistent_memory::serial_format(); + serial_format_t serial_format = persistent_memory::serial_format(); + size_t message_length = in_message.length(); if (serial_format.parity == ODD) parity_init = 1; else parity_init = 0; - data_bits = serial_format.data_bits; + uint8_t data_bits = serial_format.data_bits; - for (bytes = 0; bytes < in_message.length(); bytes++) { + for (bytes = 0; bytes < message_length; bytes++) { parity = parity_init; cur_byte = in_message[bytes]; bit = 0; @@ -81,18 +82,17 @@ void generate_data(const std::string& in_message, uint16_t * out_data) { // This accepts a word with start and stop bits removed ! uint32_t deframe_word(uint32_t raw_word) { - serial_format_t serial_format; - uint32_t parity, cur_bit, deframed_word { 0 }; - size_t bit, bits; + uint32_t cur_bit, deframed_word { 0 }; + size_t bit; - serial_format = persistent_memory::serial_format(); + serial_format_t serial_format = persistent_memory::serial_format(); /*if (serial_format.parity == ODD) parity = 1; else parity = 0;*/ - bits = serial_format.data_bits; + size_t data_bits = serial_format.data_bits; // Ignore parity for now if (serial_format.parity) @@ -100,7 +100,7 @@ uint32_t deframe_word(uint32_t raw_word) { if (serial_format.bit_order == LSB_FIRST) { // Reverse data bits - for (bit = 0; bit < bits; bit++) { + for (bit = 0; bit < data_bits; bit++) { cur_bit = raw_word & 1; deframed_word <<= 1; diff --git a/firmware/application/modems.hpp b/firmware/application/modems.hpp index e39fd3916..3582dfe7c 100644 --- a/firmware/application/modems.hpp +++ b/firmware/application/modems.hpp @@ -30,6 +30,7 @@ namespace modems { #define MODEM_DEF_COUNT 7 +#define AFSK_TX_SAMPLERATE 1536000U enum ModemModulation { AFSK = 0, diff --git a/firmware/application/protocols/encoders.hpp b/firmware/application/protocols/encoders.hpp index 1da137f10..4b9d55397 100644 --- a/firmware/application/protocols/encoders.hpp +++ b/firmware/application/protocols/encoders.hpp @@ -38,7 +38,7 @@ namespace encoders { struct encoder_def_t { std::string name; // Encoder chip ref/name - std::string address_symbols; // "01", "01F"... + std::string address_symbols; // List of possible symbols like "01", "01F"... std::string data_symbols; // Same uint16_t clk_per_symbol; // Oscillator periods per symbol uint16_t clk_per_fragment; // Oscillator periods per symbol fragment (state) @@ -51,7 +51,7 @@ namespace encoders { uint16_t pause_symbols; // Length of pause between repeats in symbols }; - // Warning ! If this is changed, make sure that the UM3750 index is still good in ui_bht_tx.cpp ! + // Warning ! If this is changed, make sure that ENCODER_UM3750 is still valid ! const encoder_def_t encoder_defs[ENC_TYPES_COUNT] = { // PT2260-R2 { diff --git a/firmware/application/serializer.cpp b/firmware/application/serializer.cpp index 778d80a3c..38c896753 100644 --- a/firmware/application/serializer.cpp +++ b/firmware/application/serializer.cpp @@ -30,21 +30,20 @@ namespace serializer { /* Raw: 00110110100111 * NRZ-L: 00110110100111 - * NRZ-M: 00100100111010 - * NRZ-S: 10001110010000 - * RZ: 00 00 10 10 00 10 10 00 10 00 00 10 10 10 - * Bi-L: 01 01 10 10 01 10 10 01 10 01 01 10 10 10 - * Bi-M: 00 11 01 01 00 10 10 11 01 00 11 01 01 01 - * Bi-S: 01 01 00 11 01 00 11 01 00 10 10 11 00 11 + * NRZ-M: 00100100111010 (1 = transition) + * NRZ-S: ?0001110010000 (0 = transition) + * RZ: 00 00 10 10 00 10 10 00 10 00 00 10 10 10 (half bits) + * Bi-L: 01 01 10 10 01 10 10 01 10 01 01 10 10 10 (1 = high to low, 0 = low to high) + * Bi-M: 00 11 01 01 00 10 10 11 01 00 11 01 01 01 (1 = mid-bit transition, 0 = invert last level) + * Bi-S: 01 01 00 11 01 00 11 01 00 10 10 11 00 11 (the opposite) * Diff M.: ... */ size_t symbol_count(const serial_format_t& serial_format) { size_t count; - count = 1 + serial_format.data_bits; // Start + count = 1 + serial_format.data_bits + serial_format.stop_bits; // Start + data + stop if (serial_format.parity) count++; - count += serial_format.stop_bits; return count; }; diff --git a/firmware/application/ui_aprs_tx.cpp b/firmware/application/ui_aprs_tx.cpp index b43415316..257e892e2 100644 --- a/firmware/application/ui_aprs_tx.cpp +++ b/firmware/application/ui_aprs_tx.cpp @@ -63,8 +63,10 @@ void APRSTXView::start_tx() { transmitter_model.enable();*/ } -void APRSTXView::on_txdone(const bool v) { - if (v) { +void APRSTXView::on_tx_progress(const uint32_t progress, const bool done) { + (void)progress; + + if (done) { transmitter_model.disable(); tx_view.set_transmitting(false); //progress.set_value(0); diff --git a/firmware/application/ui_aprs_tx.hpp b/firmware/application/ui_aprs_tx.hpp index c61eb7ef5..d920684b9 100644 --- a/firmware/application/ui_aprs_tx.hpp +++ b/firmware/application/ui_aprs_tx.hpp @@ -56,7 +56,7 @@ private: void start_tx(); void generate_frame(); void generate_frame_pos(); - void on_txdone(const bool v); + void on_tx_progress(const uint32_t progress, const bool done); Labels labels { { { 2 * 8, 2 * 8 }, "Work in progress...", Color::light_grey() } @@ -74,11 +74,11 @@ private: true }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - this->on_txdone(message.done); + const auto message = *reinterpret_cast(p); + this->on_tx_progress(message.progress, message.done); } }; }; diff --git a/firmware/application/ui_bht_tx.cpp b/firmware/application/ui_bht_tx.cpp index b65c79681..8b0d22a58 100644 --- a/firmware/application/ui_bht_tx.cpp +++ b/firmware/application/ui_bht_tx.cpp @@ -81,7 +81,7 @@ void BHTView::start_tx() { } } -void BHTView::on_tx_progress(const int progress, const bool done) { +void BHTView::on_tx_progress(const uint32_t progress, const bool done) { //if (view_xylos.tx_mode == XylosView::tx_modes::SINGLE) { if (done) { diff --git a/firmware/application/ui_bht_tx.hpp b/firmware/application/ui_bht_tx.hpp index cac62b118..b7ca6f2e6 100644 --- a/firmware/application/ui_bht_tx.hpp +++ b/firmware/application/ui_bht_tx.hpp @@ -221,7 +221,7 @@ public: std::string title() const override { return "BHT transmit"; }; private: - void on_tx_progress(const int progress, const bool done); + void on_tx_progress(const uint32_t progress, const bool done); void start_tx(); enum tx_type_t { @@ -272,10 +272,10 @@ private: 12 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); + const auto message = *reinterpret_cast(p); this->on_tx_progress(message.progress, message.done); } }; diff --git a/firmware/application/ui_coasterp.cpp b/firmware/application/ui_coasterp.cpp index 26faf6020..0d5668e3e 100644 --- a/firmware/application/ui_coasterp.cpp +++ b/firmware/application/ui_coasterp.cpp @@ -75,8 +75,9 @@ void CoasterPagerView::start_tx() { baseband::set_fsk_data(19 * 8, 2280000 / 1000, 5000, 32); } -void CoasterPagerView::on_tx_progress(const int progress, const bool done) { +void CoasterPagerView::on_tx_progress(const uint32_t progress, const bool done) { (void)progress; + uint16_t address = 0; uint32_t c; diff --git a/firmware/application/ui_coasterp.hpp b/firmware/application/ui_coasterp.hpp index 432cec788..be91be8e3 100644 --- a/firmware/application/ui_coasterp.hpp +++ b/firmware/application/ui_coasterp.hpp @@ -52,7 +52,7 @@ private: void start_tx(); void generate_frame(); - void on_tx_progress(const int progress, const bool done); + void on_tx_progress(const uint32_t progress, const bool done); Labels labels { { { 1 * 8, 3 * 8 }, "Syscall pager TX beta", Color::light_grey() }, @@ -85,10 +85,10 @@ private: 12 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); + const auto message = *reinterpret_cast(p); this->on_tx_progress(message.progress, message.done); } }; diff --git a/firmware/application/ui_encoders.cpp b/firmware/application/ui_encoders.cpp index b003dd396..9e4bb5fd7 100644 --- a/firmware/application/ui_encoders.cpp +++ b/firmware/application/ui_encoders.cpp @@ -219,7 +219,7 @@ void EncodersView::update_progress() { if (tx_mode == SINGLE) { str_buffer = to_string_dec_uint(repeat_index) + "/" + to_string_dec_uint(repeat_min); text_status.set(str_buffer); - progress.set_value(repeat_index); + progressbar.set_value(repeat_index); /*} else if (tx_mode == SCAN) { strcpy(str, to_string_dec_uint(repeat_index).c_str()); @@ -233,16 +233,16 @@ void EncodersView::update_progress() { progress.set_value(scan_progress);*/ } else { text_status.set("Ready"); - progress.set_value(0); + progressbar.set_value(0); } } -void EncodersView::on_txdone(int n, const bool txdone) { +void EncodersView::on_tx_progress(const uint32_t progress, const bool done) { //char str[16]; - if (!txdone) { + if (!done) { // Repeating... - repeat_index = n + 1; + repeat_index = progress + 1; /*if (tx_mode == SCAN) { scan_progress++; @@ -277,7 +277,7 @@ void EncodersView::on_txdone(int n, const bool txdone) { transmitter_model.disable(); tx_mode = IDLE; text_status.set("Done"); - progress.set_value(0); + progressbar.set_value(0); tx_view.set_transmitting(false); //} } @@ -303,7 +303,7 @@ void EncodersView::start_tx(const bool scan) { } else {*/ tx_mode = SINGLE; repeat_index = 1; - progress.set_max(repeat_min); + progressbar.set_max(repeat_min); update_progress(); //} @@ -335,7 +335,7 @@ EncodersView::EncodersView( &view_config, &view_scan, &text_status, - &progress, + &progressbar, &tx_view }); diff --git a/firmware/application/ui_encoders.hpp b/firmware/application/ui_encoders.hpp index be1d8352f..4684db35d 100644 --- a/firmware/application/ui_encoders.hpp +++ b/firmware/application/ui_encoders.hpp @@ -175,7 +175,7 @@ private: void update_progress(); void start_tx(const bool scan); - void on_txdone(int n, const bool txdone); + void on_tx_progress(const uint32_t progress, const bool done); /*const Style style_address { .font = font::fixed_8x16, @@ -203,7 +203,7 @@ private: "Ready" }; - ProgressBar progress { + ProgressBar progressbar { { 2 * 8, 13 * 16 + 20, 208, 16 } }; @@ -213,11 +213,11 @@ private: 9 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - this->on_txdone(message.progress, message.done); + const auto message = *reinterpret_cast(p); + this->on_tx_progress(message.progress, message.done); } }; }; diff --git a/firmware/application/ui_lcr.cpp b/firmware/application/ui_lcr.cpp index 0a596e04d..fb2a6f6a2 100644 --- a/firmware/application/ui_lcr.cpp +++ b/firmware/application/ui_lcr.cpp @@ -35,7 +35,7 @@ using namespace portapack; namespace ui { void LCRView::focus() { - button_setrgsb.focus(); + button_set_rgsb.focus(); } LCRView::~LCRView() { @@ -43,92 +43,52 @@ LCRView::~LCRView() { baseband::shutdown(); } -void LCRView::paint(Painter& painter) { - std::string final_str; - - static constexpr Style style_orange { - .font = font::fixed_8x16, - .background = Color::black(), - .foreground = Color::orange(), - }; - - Point offset = { - static_cast(104), - static_cast(68) - }; - - for (size_t i = 0; i < 5; i++) { - painter.draw_string( - screen_pos() + offset, - style_orange, - litteral[i] - ); - offset += { 0, 32 }; - } - - button_setrgsb.set_text(rgsb); - - // Recap: frequency @ baudrate - final_str = to_string_short_freq(persistent_memory::tuned_frequency()); - final_str += '@'; - final_str += to_string_dec_int(persistent_memory::modem_baudrate(), 4); - final_str += "bps "; - //final_str += modem_defs[persistent_memory::modem_def_index()].name; - text_recap.set(final_str); -} - -std::vector LCRView::parse_litterals() { - std::vector litterals; - - for (size_t i = 0; i < 5; i++) { - if (checkboxes[i].value()) - litterals.push_back(litteral[i]); - } - - return litterals; -} +/* +// Recap: frequency @ baudrate +final_str = to_string_short_freq(persistent_memory::tuned_frequency()); +final_str += '@'; +final_str += to_string_dec_int(persistent_memory::modem_baudrate(), 4); +final_str += "bps "; +//final_str += modem_defs[persistent_memory::modem_def_index()].name; +text_recap.set(final_str);*/ void LCRView::update_progress() { - std::string progress_str; - - text_status.set(" "); // Clear - - progress_str = to_string_dec_uint(repeat_index) + "/" + to_string_dec_uint(persistent_memory::modem_repeat()); - progress_str += " " + to_string_dec_uint(scan_index + 1) + "/" + to_string_dec_uint(scan_count); - - if (tx_mode == SINGLE) { - text_status.set(progress_str); - progress.set_value(repeat_index); - } else if (tx_mode == SCAN) { - text_status.set(progress_str); - progress.set_value(scan_progress); - } else { + if (tx_mode == IDLE) { text_status.set("Ready"); progress.set_value(0); + } else { + std::string progress_str = to_string_dec_uint(repeat_index) + "/" + to_string_dec_uint(persistent_memory::modem_repeat()) + + " " + to_string_dec_uint(scan_index + 1) + "/" + to_string_dec_uint(scan_count); + + text_status.set(progress_str); + + if (tx_mode == SINGLE) + progress.set_value(repeat_index); + else if (tx_mode == SCAN) + progress.set_value(scan_progress); } } -void LCRView::on_txdone(int n) { - if (n) { +void LCRView::on_tx_progress(const uint32_t progress, const bool done) { + if (!done) { // Repeating... - repeat_index = n + 1; + repeat_index = progress + 1; if (tx_mode == SCAN) scan_progress++; } else { // Done transmitting + tx_view.set_transmitting(false); + transmitter_model.disable(); + if ((tx_mode == SCAN) && (scan_index < (scan_count - 1))) { - transmitter_model.disable(); // Next address scan_index++; scan_progress++; repeat_index = 1; start_tx(true); } else { - transmitter_model.disable(); tx_mode = IDLE; - button_scan.set_style(&style_val); - button_scan.set_text("SCAN"); } } @@ -136,9 +96,7 @@ void LCRView::on_txdone(int n) { } void LCRView::start_tx(const bool scan) { - uint8_t repeats; - - repeats = persistent_memory::modem_repeat(); + uint32_t repeats = persistent_memory::modem_repeat(); if (scan) { if (tx_mode != SCAN) { @@ -151,6 +109,7 @@ void LCRView::start_tx(const bool scan) { update_progress(); } rgsb = scan_list[options_scanlist.selected_index()].addresses[scan_index]; + button_set_rgsb.set_text(rgsb); } else { tx_mode = SINGLE; repeat_index = 1; @@ -160,11 +119,17 @@ void LCRView::start_tx(const bool scan) { update_progress(); } - button_setrgsb.set_text(rgsb); - modems::generate_data(lcr::generate_message(rgsb, parse_litterals(), options_ec.selected_index()), lcr_message_data); + std::vector litterals_list; + + for (size_t i = 0; i < LCR_MAX_AM; i++) { + if (checkboxes[i].value()) + litterals_list.push_back(litteral[i]); + } + + modems::generate_data(lcr::generate_message(rgsb, litterals_list, options_ec.selected_index()), lcr_message_data); transmitter_model.set_tuning_frequency(persistent_memory::tuned_frequency()); - transmitter_model.set_sampling_rate(1536000U); + transmitter_model.set_sampling_rate(AFSK_TX_SAMPLERATE); transmitter_model.set_rf_amp(true); transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); @@ -172,17 +137,23 @@ void LCRView::start_tx(const bool scan) { memcpy(shared_memory.bb_data.data, lcr_message_data, sizeof(lcr_message_data)); baseband::set_afsk_data( - 1536000 / persistent_memory::modem_baudrate(), + AFSK_TX_SAMPLERATE / persistent_memory::modem_baudrate(), persistent_memory::afsk_mark_freq(), persistent_memory::afsk_space_freq(), repeats, - persistent_memory::modem_bw(), + transmitter_model.channel_bandwidth(), serializer::symbol_count(persistent_memory::serial_format()) ); } -void LCRView::on_button_setam(NavigationView& nav, Button& button) { - text_prompt(nav, &litteral[button.id], 7); +void LCRView::on_button_set_am(NavigationView& nav, int16_t button_id) { + text_prompt( + nav, + &litteral[button_id], + 7, + [this, button_id](std::string* buffer) { + texts[button_id].set(*buffer); + }); } LCRView::LCRView(NavigationView& nav) { @@ -190,116 +161,126 @@ LCRView::LCRView(NavigationView& nav) { baseband::run_image(portapack::spi_flash::image_tag_afsk); - rgsb = scan_list[0].addresses[0]; - add_children({ &labels, - &text_recap, &options_ec, - &button_setrgsb, + &button_set_rgsb, &button_modem_setup, &text_status, &progress, - &button_transmit, &options_scanlist, - &button_scan, - &button_clear + &check_scan, + &button_clear, + &tx_view }); options_scanlist.set_selected_index(0); - const auto button_setam_fn = [this, &nav](Button& button) { - this->on_button_setam(nav, button); + const auto button_set_am_fn = [this, &nav](Button& button) { + on_button_set_am(nav, button.id); }; - size_t n = 0; - for (auto& button : buttons) { - button.on_select = button_setam_fn; - button.id = n; - button.set_text("AM " + to_string_dec_uint(n + 1, 1)); - button.set_parent_rect({ + for (size_t n = 0; n < LCR_MAX_AM; n++) { + Button* button = &buttons[n]; + button->on_select = button_set_am_fn; + button->id = n; + button->set_text("AM " + to_string_dec_uint(n + 1)); + button->set_parent_rect({ static_cast(40), static_cast(n * 32 + 64), 48, 24 }); - add_child(&button); - n++; - } - - n = 0; - for (auto& checkbox : checkboxes) { - checkbox.set_parent_rect({ + add_child(button); + + Checkbox* checkbox = &checkboxes[n]; + checkbox->set_parent_rect({ static_cast(8), static_cast(n * 32 + 64), 48, 24 }); - checkbox.set_value(false); - add_child(&checkbox); - n++; - } - - n = 0; - for (auto& rectangle : rectangles) { - rectangle.set_parent_rect({ + checkbox->set_value(false); + add_child(checkbox); + + Rectangle* rectangle = &rectangles[n]; + rectangle->set_parent_rect({ static_cast(98), - static_cast(n * 32 + 68 - 2), + static_cast(n * 32 + 66), 68, 20 }); - rectangle.set_color(ui::Color::grey()); - rectangle.set_outline(true); - add_child(&rectangle); - n++; + rectangle->set_color(ui::Color::grey()); + rectangle->set_outline(true); + add_child(rectangle); + + Text* text = &texts[n]; + text->set_parent_rect({ + static_cast(104), + static_cast(n * 32 + 68), + 7 * 8, 16 + }); + add_child(text); } - button_setrgsb.set_text(rgsb); + button_set_rgsb.set_text(rgsb); options_ec.set_selected_index(0); // Auto checkboxes[0].set_value(true); - button_transmit.set_style(&style_val); - button_scan.set_style(&style_val); - - button_setrgsb.on_select = [this,&nav](Button&) { - text_prompt(nav, &rgsb, 4); + button_set_rgsb.on_select = [this, &nav](Button&) { + text_prompt( + nav, + &rgsb, + 4, + [this](std::string* buffer) { + button_set_rgsb.set_text(*buffer); + }); }; - button_modem_setup.on_select = [&nav](Button&) { - nav.push(); - }; - - button_transmit.on_select = [this](Button&) { + button_modem_setup.on_select = [this, &nav](Button&) { if (tx_mode == IDLE) - start_tx(false); - }; - - button_scan.on_select = [this](Button&) { - std::string str_temp; - - if (tx_mode == IDLE) { - button_scan.set_style(&style_cancel); - button_scan.set_text("ABORT"); - start_tx(true); - } else { - // Kill scan process - baseband::kill_afsk(); - text_status.set("Abort @" + rgsb); - progress.set_value(0); - tx_mode = IDLE; - button_scan.set_style(&style_val); - button_scan.set_text("SCAN"); - } + nav.push(); }; button_clear.on_select = [this, &nav](Button&) { - if (tx_mode == IDLE) { - options_ec.set_selected_index(0); // Auto - for (size_t n = 0; n < 5; n++) { - litteral[n] = " "; - checkboxes[n].set_value(true); - } - set_dirty(); - start_tx(false); + options_ec.set_selected_index(0); // Auto + for (size_t n = 0; n < LCR_MAX_AM; n++) { + litteral[n] = " "; + checkboxes[n].set_value(true); } }; + + tx_view.on_edit_frequency = [this, &nav]() { + auto new_view = nav.push(transmitter_model.tuning_frequency()); + new_view->on_changed = [this](rf::Frequency f) { + transmitter_model.set_tuning_frequency(f); + }; + }; + + tx_view.on_start = [this]() { + if (check_scan.value()) { + if (tx_mode == IDLE) { + start_tx(true); + tx_view.set_transmitting(true); + } else { + // Kill scan process + baseband::kill_afsk(); + tx_view.set_transmitting(false); + transmitter_model.disable(); + text_status.set("Abort @" + rgsb); + progress.set_value(0); + tx_mode = IDLE; + } + } else { + if (tx_mode == IDLE) { + start_tx(false); + tx_view.set_transmitting(true); + } + } + }; + + tx_view.on_stop = [this]() { + tx_view.set_transmitting(false); + transmitter_model.disable(); + tx_mode = IDLE; + }; } } /* namespace ui */ diff --git a/firmware/application/ui_lcr.hpp b/firmware/application/ui_lcr.hpp index 5b5d76862..a9c7548ac 100644 --- a/firmware/application/ui_lcr.hpp +++ b/firmware/application/ui_lcr.hpp @@ -23,10 +23,14 @@ #include "ui.hpp" #include "ui_widget.hpp" #include "ui_textentry.hpp" +#include "ui_transmitter.hpp" + #include "message.hpp" #include "transmitter_model.hpp" namespace ui { + +#define LCR_MAX_AM 5 class LCRView : public View { public: @@ -34,7 +38,6 @@ public: ~LCRView(); void focus() override; - void paint(Painter& painter) override; std::string title() const override { return "LCR transmit"; }; @@ -48,7 +51,7 @@ private: { 36, &RGSB_list_Lille[0] }, { 20, &RGSB_list_Reims[0] } }; - + const std::string RGSB_list_Lille[36] = { "AI10", "AI20", "AI30", "AI40", "AI50", "AI60", "AI70", "AJ10", @@ -81,46 +84,28 @@ private: tx_modes tx_mode = IDLE; uint8_t scan_count { 0 }, scan_index { 0 }; uint32_t scan_progress { 0 }; - std::string litteral[5] { { " " } }; - std::string rgsb { " " }; - char lcr_message[512]; + std::array litteral { { " " } }; + std::string rgsb { "AI10" }; uint16_t lcr_message_data[256]; - rf::Frequency f { 0 }; uint8_t repeat_index { 0 }; - std::vector parse_litterals(); void update_progress(); void start_tx(const bool scan); - void on_txdone(int n); - void on_button_setam(NavigationView& nav, Button& button); - - const Style style_val { - .font = font::fixed_8x16, - .background = Color::black(), - .foreground = Color::green(), - }; - const Style style_cancel { - .font = font::fixed_8x16, - .background = Color::black(), - .foreground = Color::red(), - }; + void on_tx_progress(const uint32_t progress, const bool done); + void on_button_set_am(NavigationView& nav, int16_t button_id); Labels labels { - { { 2 * 8, 4 }, "EC:", Color::light_grey() }, - { { 84, 268 }, "Scan list:", Color::light_grey() } + { { 0, 8 }, "EC: RGSB:", Color::light_grey() }, + { { 17 * 8, 4 * 8 }, "List:", Color::light_grey() } }; - std::array buttons { }; - std::array checkboxes { }; - std::array rectangles { }; - - Text text_recap { - { 12 * 8, 4, 18 * 8, 16 }, - "-" - }; + std::array buttons { }; + std::array checkboxes { }; + std::array rectangles { }; + std::array texts { }; OptionsField options_ec { - { 40, 4 }, + { 3 * 8, 8 }, 4, { { "Auto", 0 }, @@ -130,51 +115,52 @@ private: } }; - Button button_setrgsb { - { 8, 24, 80, 32 }, + Button button_set_rgsb { + { 13 * 8, 4, 8 * 8, 24 }, "RGSB" }; + Checkbox check_scan { + { 22 * 8, 4 }, + 4, + "Scan" + }; + Button button_modem_setup { - { 13 * 8, 24, 128, 32 }, + { 1 * 8, 4 * 8 + 2, 14 * 8, 24 }, "Modem setup" }; - - Button button_clear { - { 174, 64, 58, 19 * 8 }, - "CLEAR" - }; - - Text text_status { - { 16, 222, 128, 16 }, - "Ready" - }; - ProgressBar progress { - { 16, 242, 208, 16 } - }; - - Button button_transmit { - { 8, 270, 64, 32 }, - "TX" - }; - OptionsField options_scanlist { - { 84, 284 }, + { 22 * 8, 4 * 8 }, 6, { { "Reims ", 1 } } }; - Button button_scan { - { 166, 270, 64, 32 }, - "SCAN" + Button button_clear { + { 22 * 8, 8 * 8, 7 * 8, 19 * 8 }, + "CLEAR" }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + Text text_status { + { 2 * 8, 27 * 8 + 4, 26 * 8, 16 }, + "Ready" + }; + ProgressBar progress { + { 2 * 8, 29 * 8 + 4, 26 * 8, 16 } + }; + + TransmitterView tx_view { + 16 * 16, + 10000, + 12 + }; + + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - this->on_txdone(message.progress); + const auto message = *reinterpret_cast(p); + this->on_tx_progress(message.progress, message.done); } }; }; diff --git a/firmware/application/ui_mictx.cpp b/firmware/application/ui_mictx.cpp index 4b74bea8d..ab6c1dbd1 100644 --- a/firmware/application/ui_mictx.cpp +++ b/firmware/application/ui_mictx.cpp @@ -47,7 +47,10 @@ void MicTXView::update_vumeter() { vumeter.set_value(audio_level); } -void MicTXView::on_tx_done() { +void MicTXView::on_tx_progress(const uint32_t progress, const bool done) { + (void)progress; + (void)done; + // Roger beep transmitted, stop transmitting set_tx(false); } diff --git a/firmware/application/ui_mictx.hpp b/firmware/application/ui_mictx.hpp index 2d1d2a1d3..0e09d8002 100644 --- a/firmware/application/ui_mictx.hpp +++ b/firmware/application/ui_mictx.hpp @@ -64,7 +64,7 @@ private: void set_tx(bool enable); void on_tuning_frequency_changed(rf::Frequency f); void on_ctcss_changed(uint32_t v); - void on_tx_done(); + void on_tx_progress(const uint32_t progress, const bool done); bool transmitting { false }; bool va_enabled { }; @@ -184,11 +184,11 @@ private: } }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - if (message.done) this->on_tx_done(); + const auto message = *reinterpret_cast(p); + this->on_tx_progress(message.progress, message.done); } }; }; diff --git a/firmware/application/ui_modemsetup.cpp b/firmware/application/ui_modemsetup.cpp index 0b4f2efef..6d28cf90f 100644 --- a/firmware/application/ui_modemsetup.cpp +++ b/firmware/application/ui_modemsetup.cpp @@ -21,12 +21,9 @@ */ #include "ui_modemsetup.hpp" -#include "ui_receiver.hpp" #include "portapack.hpp" -#include "string_format.hpp" -#include "portapack_shared_memory.hpp" #include "portapack_persistent_memory.hpp" using namespace portapack; @@ -38,12 +35,6 @@ void ModemSetupView::focus() { field_baudrate.focus(); } -/*void ModemSetupView::update_freq(rf::Frequency f) { - persistent_memory::set_tuned_frequency(f); - - button_setfreq.set_text(to_string_short_freq(f)); -}*/ - ModemSetupView::ModemSetupView( NavigationView& nav ) @@ -54,11 +45,9 @@ ModemSetupView::ModemSetupView( add_children({ &labels, - //&button_setfreq, &field_baudrate, &field_mark, &field_space, - //&field_bw, &field_repeat, &options_modem, &button_set_modem, @@ -66,6 +55,7 @@ ModemSetupView::ModemSetupView( &button_save }); + // Only list AFSK modems for now for (size_t i = 0; i < MODEM_DEF_COUNT; i++) { if (modem_defs[i].modulation == AFSK) modem_options.emplace_back(std::make_pair(modem_defs[i].name, i)); @@ -83,20 +73,10 @@ ModemSetupView::ModemSetupView( sym_format.set_sym(2, persistent_memory::serial_format().stop_bits); sym_format.set_sym(3, persistent_memory::serial_format().bit_order); - //update_freq(persistent_memory::tuned_frequency()); - field_mark.set_value(persistent_memory::afsk_mark_freq()); field_space.set_value(persistent_memory::afsk_space_freq()); - //field_bw.set_value(persistent_memory::modem_bw() / 1000); field_repeat.set_value(persistent_memory::modem_repeat()); - /*button_setfreq.on_select = [this, &nav](Button&) { - auto new_view = nav.push(persistent_memory::tuned_frequency()); - new_view->on_changed = [this](rf::Frequency f) { - update_freq(f); - }; - };*/ - field_baudrate.set_value(persistent_memory::modem_baudrate()); button_set_modem.on_select = [this, &nav](Button&) { @@ -114,7 +94,6 @@ ModemSetupView::ModemSetupView( persistent_memory::set_afsk_space(field_space.value()); persistent_memory::set_modem_baudrate(field_baudrate.value()); - //persistent_memory::set_modem_bw(field_bw.value() * 1000); persistent_memory::set_modem_repeat(field_repeat.value()); serial_format.data_bits = sym_format.get_sym(0) + 6; diff --git a/firmware/application/ui_modemsetup.hpp b/firmware/application/ui_modemsetup.hpp index fc47ee0fe..e50cb98a5 100644 --- a/firmware/application/ui_modemsetup.hpp +++ b/firmware/application/ui_modemsetup.hpp @@ -41,20 +41,13 @@ private: void update_freq(rf::Frequency f); Labels labels { - //{ { 2 * 8, 4 * 8 }, "Frequency:", Color::light_grey() }, { { 2 * 8, 11 * 8 }, "Baudrate:", Color::light_grey() }, { { 2 * 8, 13 * 8 }, "Mark: Hz", Color::light_grey() }, { { 2 * 8, 15 * 8 }, "Space: Hz", Color::light_grey() }, - //{ { 140, 13 * 8 }, "BW: kHz", Color::light_grey() }, { { 140, 15 * 8 }, "Repeat:", Color::light_grey() }, { { 1 * 8, 6 * 8 }, "Modem preset:", Color::light_grey() }, { { 2 * 8, 22 * 8 }, "Serial format:", Color::light_grey() } }; - - /*Button button_setfreq { - { 13 * 8, 3 * 8, 12 * 8, 32 }, - "----.----" - };*/ NumberField field_baudrate { { 11 * 8, 11 * 8 }, @@ -80,14 +73,6 @@ private: ' ' }; - /*NumberField field_bw { - { 172, 104 }, - 2, - { 1, 50 }, - 1, - ' ' - };*/ - NumberField field_repeat { { 204, 15 * 8 }, 2, diff --git a/firmware/application/ui_morse.cpp b/firmware/application/ui_morse.cpp index 195cde88e..2f1ae9214 100644 --- a/firmware/application/ui_morse.cpp +++ b/firmware/application/ui_morse.cpp @@ -42,14 +42,13 @@ static WORKING_AREA(ookthread_wa, 256); static msg_t ookthread_fn(void * arg) { uint32_t v = 0, delay = 0; - size_t i = 0; uint8_t * message_symbols = shared_memory.bb_data.tones_data.message; uint8_t symbol; MorseView * arg_c = (MorseView*)arg; chRegSetThreadName("ookthread"); - for (i = 0; i < arg_c->symbol_count; i++) { + for (uint32_t i = 0; i < arg_c->symbol_count; i++) { if (chThdShouldTerminate()) break; symbol = message_symbols[i]; @@ -128,7 +127,7 @@ void MorseView::update_tx_duration() { } } -void MorseView::on_tx_progress(const int progress, const bool done) { +void MorseView::on_tx_progress(const uint32_t progress, const bool done) { if (done) { transmitter_model.disable(); progressbar.set_value(0); diff --git a/firmware/application/ui_morse.hpp b/firmware/application/ui_morse.hpp index 20fdc7070..a9dcb79e7 100644 --- a/firmware/application/ui_morse.hpp +++ b/firmware/application/ui_morse.hpp @@ -52,8 +52,8 @@ public: void focus() override; void paint(Painter& painter) override; - - void on_tx_progress(const int progress, const bool done); + + void on_tx_progress(const uint32_t progress, const bool done); std::string title() const override { return "Morse TX"; }; @@ -159,10 +159,10 @@ private: 12 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); + const auto message = *reinterpret_cast(p); this->on_tx_progress(message.progress, message.done); } }; diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 6367a9321..6ee1552ce 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -298,7 +298,8 @@ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { { "TPMS: Cars", ui::Color::green(), &bitmap_icon_tpms, [&nav](){ nav.push(); } }, }); on_left = [&nav](){ nav.pop(); }; - //set_highlighted(4); // Default selection is "Audio" + + set_highlighted(4); // Default selection is "Audio" } /* TransmittersMenuView **************************************************/ @@ -312,7 +313,6 @@ TransmittersMenuView::TransmittersMenuView(NavigationView& nav) { { "Microphone", ui::Color::green(), &bitmap_icon_microphone, [&nav](){ nav.push(); } }, { "Morse code", ui::Color::green(), &bitmap_icon_morse, [&nav](){ nav.push(); } }, { "NTTWorks burger pager", ui::Color::yellow(), &bitmap_icon_burger, [&nav](){ nav.push(); } }, - { "TouchTunes remote", ui::Color::orange(), nullptr, [&nav](){ nav.push(); } }, { "Nuoptix DTMF timecode", ui::Color::green(), &bitmap_icon_nuoptix, [&nav](){ nav.push(); } }, { "OOK remote encoders", ui::Color::yellow(), &bitmap_icon_remote, [&nav](){ nav.push(); } }, { "POCSAG", ui::Color::green(), &bitmap_icon_pocsag, [&nav](){ nav.push(); } }, @@ -321,6 +321,7 @@ TransmittersMenuView::TransmittersMenuView(NavigationView& nav) { { "Soundboard", ui::Color::green(), &bitmap_icon_soundboard, [&nav](){ nav.push(); } }, { "SSTV", ui::Color::green(), &bitmap_icon_sstv, [&nav](){ nav.push(); } }, { "TEDI/LCR AFSK", ui::Color::yellow(), &bitmap_icon_lcr, [&nav](){ nav.push(); } }, + { "TouchTunes remote", ui::Color::orange(), nullptr, [&nav](){ nav.push(); } }, }); on_left = [&nav](){ nav.pop(); }; } diff --git a/firmware/application/ui_nuoptix.cpp b/firmware/application/ui_nuoptix.cpp index b003868be..541d5a264 100644 --- a/firmware/application/ui_nuoptix.cpp +++ b/firmware/application/ui_nuoptix.cpp @@ -45,6 +45,13 @@ NuoptixView::~NuoptixView() { baseband::shutdown(); } +void NuoptixView::on_tx_progress(const uint32_t progress, const bool done) { + if (done) + transmit(false); + else + progressbar.set_value(progress); +} + void NuoptixView::transmit(bool setup) { uint8_t mod, tone_code; uint8_t c; diff --git a/firmware/application/ui_nuoptix.hpp b/firmware/application/ui_nuoptix.hpp index a305d75b5..9fa36d52e 100644 --- a/firmware/application/ui_nuoptix.hpp +++ b/firmware/application/ui_nuoptix.hpp @@ -59,6 +59,7 @@ private: void on_tuning_frequency_changed(rf::Frequency f); void transmit(bool setup); + void on_tx_progress(const uint32_t progress, const bool done); uint32_t timecode { 0 }; @@ -95,14 +96,11 @@ private: 15 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - if (message.done) - transmit(false); - else - progressbar.set_value(message.progress); + const auto message = *reinterpret_cast(p); + this->on_tx_progress(message.progress, message.done); } }; }; diff --git a/firmware/application/ui_pocsag_tx.cpp b/firmware/application/ui_pocsag_tx.cpp index f025eba3d..e7c191792 100644 --- a/firmware/application/ui_pocsag_tx.cpp +++ b/firmware/application/ui_pocsag_tx.cpp @@ -42,7 +42,7 @@ POCSAGTXView::~POCSAGTXView() { baseband::shutdown(); } -void POCSAGTXView::on_tx_progress(const int progress, const bool done) { +void POCSAGTXView::on_tx_progress(const uint32_t progress, const bool done) { if (done) { transmitter_model.disable(); progressbar.set_value(0); diff --git a/firmware/application/ui_pocsag_tx.hpp b/firmware/application/ui_pocsag_tx.hpp index 5a7fb24a0..60c3aeb9a 100644 --- a/firmware/application/ui_pocsag_tx.hpp +++ b/firmware/application/ui_pocsag_tx.hpp @@ -63,7 +63,7 @@ private: }; void on_set_text(NavigationView& nav); - void on_tx_progress(const int progress, const bool done); + void on_tx_progress(const uint32_t progress, const bool done); bool start_tx(); Labels labels { @@ -131,10 +131,10 @@ private: 9 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); + const auto message = *reinterpret_cast(p); this->on_tx_progress(message.progress, message.done); } }; diff --git a/firmware/application/ui_siggen.cpp b/firmware/application/ui_siggen.cpp index dfc280289..7d55213db 100644 --- a/firmware/application/ui_siggen.cpp +++ b/firmware/application/ui_siggen.cpp @@ -60,7 +60,9 @@ void SigGenView::update_tone() { baseband::set_siggen_tone(symfield_tone.value_dec_u32()); } -void SigGenView::on_tx_progress(const bool done) { +void SigGenView::on_tx_progress(const uint32_t progress, const bool done) { + (void) progress; + if (done) tx_view.set_transmitting(false); } diff --git a/firmware/application/ui_siggen.hpp b/firmware/application/ui_siggen.hpp index ce8ce16fa..20ac4af69 100644 --- a/firmware/application/ui_siggen.hpp +++ b/firmware/application/ui_siggen.hpp @@ -45,7 +45,7 @@ public: private: void start_tx(); void update_tone(); - void on_tx_progress(const bool done); + void on_tx_progress(const uint32_t progress, const bool done); const std::string shape_strings[7] = { "CW", @@ -123,11 +123,11 @@ private: 12 }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - this->on_tx_progress(message.done); + const auto message = *reinterpret_cast(p); + this->on_tx_progress(message.progress, message.done); } }; }; diff --git a/firmware/application/ui_touchtunes.cpp b/firmware/application/ui_touchtunes.cpp index 7a880f5a6..69feb9bec 100644 --- a/firmware/application/ui_touchtunes.cpp +++ b/firmware/application/ui_touchtunes.cpp @@ -40,27 +40,29 @@ TouchTunesView::~TouchTunesView() { baseband::shutdown(); } -void TouchTunesView::on_tx_progress(const int progress, const bool done) { +void TouchTunesView::stop_tx() { + transmitter_model.disable(); + tx_mode = IDLE; + progressbar.set_value(0); + text_status.set("Ready"); +} + +void TouchTunesView::on_tx_progress(const uint32_t progress, const bool done) { if (!done) { - // Repeating - if (tx_mode == SINGLE) { + // Progress + if (tx_mode == SINGLE) progressbar.set_value(progress); - } else if (tx_mode == SCAN) { - progressbar.set_value((pin * 4) + progress); - } + else if (tx_mode == SCAN) + progressbar.set_value((pin * TOUCHTUNES_REPEATS) + progress); } else { // Done transmitting if (tx_mode == SINGLE) { - transmitter_model.disable(); - tx_mode = IDLE; - progressbar.set_value(0); + stop_tx(); } else if (tx_mode == SCAN) { - pin++; - if (pin == 256) { - transmitter_model.disable(); - tx_mode = IDLE; - progressbar.set_value(0); + if (pin == TOUCHTUNES_MAX_PIN) { + stop_tx(); } else { + pin++; field_pin.set_value(pin); start_tx(scan_button_index); } @@ -76,28 +78,36 @@ void TouchTunesView::start_tx(const uint32_t button_index) { if (check_scan.value()) { scan_button_index = button_index; tx_mode = SCAN; - progressbar.set_max(256 * 4); + progressbar.set_max(TOUCHTUNES_MAX_PIN * TOUCHTUNES_REPEATS); + text_status.set("Scanning..."); } else { tx_mode = SINGLE; - progressbar.set_max(4); + progressbar.set_max(TOUCHTUNES_REPEATS); + text_status.set("Transmitting..."); } - frame_data = 0x5D; // Sync word + frame_data = TOUCHTUNES_SYNC_WORD; // Sync word + // Insert pin value (LSB first) for (bit = 0; bit < 8; bit++) { frame_data <<= 1; if (pin & (1 << bit)) frame_data |= 1; } + // Insert button code (and its complement) frame_data <<= 16; - frame_data |= button_codes[button_index]; + frame_data |= (button_codes[button_index] << 8); + frame_data |= (button_codes[button_index] ^ 0xFF); + // Convert to OOK symbols for (bit = 0; bit < (8 + 8 + 16); bit++) { fragments += (frame_data & 0x80000000UL) ? "1000" : "10"; frame_data <<= 1; } - fragments = "111111111111111100000000" + fragments + "1000"; // End pulse + + // Sync and end pulse + fragments = "111111111111111100000000" + fragments + "1000"; size_t bitstream_length = make_bitstream(fragments); @@ -109,28 +119,20 @@ void TouchTunesView::start_tx(const uint32_t button_index) { baseband::set_ook_data( bitstream_length, - OOK_SAMPLERATE / 1766, // 1766 baud, 566us/bit - 4, // Repeats - 100 + OOK_SAMPLERATE / 1786, // 560us + TOUCHTUNES_REPEATS, + 100 // Pause ); } TouchTunesView::TouchTunesView( NavigationView& -) -{ +) { baseband::run_image(portapack::spi_flash::image_tag_ook); add_children({ &labels, &field_pin, - &button_on_off, - &button_pause, - &button_p1, - &button_ok, - &button_vol_inc1, - &button_vol_inc2, - &button_vol_inc3, &check_scan, &text_status, &progressbar @@ -142,28 +144,22 @@ TouchTunesView::TouchTunesView( pin = v; }; - button_on_off.on_select = [this](Button&) { - start_tx(0); + const auto button_fn = [this](Button& button) { + start_tx(button.id); }; - button_pause.on_select = [this](Button&) { - start_tx(1); - }; - button_p1.on_select = [this](Button&) { - start_tx(2); - }; - button_ok.on_select = [this](Button&) { - start_tx(3); - }; - button_vol_inc1.on_select = [this](Button&) { - start_tx(4); - }; - button_vol_inc2.on_select = [this](Button&) { - start_tx(5); - }; - button_vol_inc3.on_select = [this](Button&) { - start_tx(6); - }; + size_t n = 0; + for (auto& entry : remote_layout) { + buttons[n].on_select = button_fn; + buttons[n].id = n; + buttons[n].set_text(entry.text); + buttons[n].set_parent_rect({ + entry.position + Point(8, 0), + { (Dim)(entry.text.length() + 2) * 8, 4 * 8 } + }); + add_child(&buttons[n]); + n++; + } } } /* namespace ui */ diff --git a/firmware/application/ui_touchtunes.hpp b/firmware/application/ui_touchtunes.hpp index dfa1a4edd..610d4b201 100644 --- a/firmware/application/ui_touchtunes.hpp +++ b/firmware/application/ui_touchtunes.hpp @@ -25,7 +25,9 @@ #include "transmitter_model.hpp" // The coding in notpike's script is quite complex, using multiple LUTs to form the data sent to the YSO. -// The format is actually very simple if it is rather seen as short and long gaps between pulses (as seen in many OOK remotes): +// The format is actually very simple if it is rather seen as short and long gaps between pulses (as seen in many OOK remotes). +// The frames and data rate suspiciously match the NEC infrared protocol (http://www.sbprojects.com/knowledge/ir/nec.php) without +// the address complement. The exact data rate would be 1786 baud (560us/fragment). // Pin 0 - On/Off // ffff00 a2888a2aaaa8888aa2aa2220 @@ -57,14 +59,44 @@ // The hex data only seems scrambled because of the shift induced by the short or long gaps (10 or 1000) // The radio frame's duration depends on the value of the bits -const uint16_t button_codes[7] = { - 0x7887, // On/Off - 0xB34C, // Pause - 0xF10E, // P1 - 0xDD22, // OK - 0xF40B, // Zone 1 Vol+ - 0xF609, // Zone 2 Vol+ - 0xFC03 // Zone 3 Vol+ +#define TOUCHTUNES_MAX_PIN 255 +#define TOUCHTUNES_REPEATS 4 +#define TOUCHTUNES_SYNC_WORD 0x5D + +// Each 16bit button code is actually 8bit followed by its complement +const uint8_t button_codes[32] = { + 0xB3, // Pause + 0x78, // On/Off + 0xF1, // P1 + 0x60, // P2 + 0xCA, // P3 + 0x20, // F1 + 0xF2, // Up + 0xA0, // F2 + 0x84, // Left + 0xDD, // OK + 0xC4, // Right + 0x30, // F3 + 0x80, // Down + 0xB0, // F4 + 0xF0, // 1 + 0x08, // 2 + 0x88, // 3 + 0x48, // 4 + 0xC8, // 5 + 0x28, // 6 + 0xA8, // 7 + 0x68, // 8 + 0xE8, // 9 + 0x18, // Music_Karaoke + 0x98, // 0 + 0x58, // Lock_Queue + 0xF4, // Zone 1 Vol+ + 0xF6, // Zone 2 Vol+ + 0xFC, // Zone 3 Vol+ + 0x50, // Zone 1 Vol- + 0x10, // Zone 2 Vol- + 0x40, // Zone 3 Vol- }; namespace ui { @@ -79,10 +111,6 @@ public: std::string title() const override { return "TouchTunes TX"; }; private: - Labels labels { - { { 2 * 8, 2 * 8 }, "PIN:", Color::light_grey() } - }; - uint32_t scan_button_index { }; uint32_t pin { 0 }; @@ -95,66 +123,90 @@ private: tx_modes tx_mode = IDLE; void start_tx(const uint32_t button_index); - void on_tx_progress(const int progress, const bool done); + void stop_tx(); + void on_tx_progress(const uint32_t progress, const bool done); + + struct remote_layout_t { + Point position; + std::string text; + }; + + const std::array remote_layout { { + { { 12 * 8, 0 }, "PAUSE" }, + { { 21 * 8, 0 }, "POWER" }, + + { { 14 * 8, 5 * 8 }, "P1" }, + { { 18 * 8, 5 * 8 }, "P2" }, + { { 22 * 8, 5 * 8 }, "P3" }, + + { { 14 * 8, 10 * 8 }, "F1" }, + { { 18 * 8 + 4, 10 * 8 }, "^" }, + { { 22 * 8, 10 * 8 }, "F2" }, + + { { 14 * 8, 14 * 8 }, "<" }, + { { 18 * 8, 14 * 8 }, "OK" }, + { { 23 * 8, 14 * 8 }, ">" }, + + { { 14 * 8, 18 * 8 }, "F3" }, + { { 18 * 8 + 4, 18 * 8 }, "V" }, + { { 22 * 8, 18 * 8 }, "F4" }, + + { { 0 * 8, 5 * 8 }, "1" }, + { { 4 * 8, 5 * 8 }, "2" }, + { { 8 * 8, 5 * 8 }, "3" }, + { { 0 * 8, 10 * 8 }, "4" }, + { { 4 * 8, 10 * 8 }, "5" }, + { { 8 * 8, 10 * 8 }, "6" }, + { { 0 * 8, 15 * 8 }, "7" }, + { { 4 * 8, 15 * 8 }, "8" }, + { { 8 * 8, 15 * 8 }, "9" }, + { { 0 * 8, 20 * 8 }, "*" }, + { { 4 * 8, 20 * 8 }, "0" }, + { { 8 * 8, 20 * 8 }, "#" }, + + { { 13 * 8, 23 * 8 }, "+" }, + { { 18 * 8, 23 * 8 }, "+" }, + { { 23 * 8, 23 * 8 }, "+" }, + + { { 13 * 8, 29 * 8 }, "-" }, + { { 18 * 8, 29 * 8 }, "-" }, + { { 23 * 8, 29 * 8 }, "-" } + } }; + + Labels labels { + { { 2 * 8, 1 * 8 }, "PIN:", Color::light_grey() }, + { { 13 * 8 + 4, 27 * 8 }, "VOL1 VOL2 VOL3", Color::light_grey() } + }; + + std::array buttons { }; NumberField field_pin { - { 6 * 8, 1 * 16 }, + { 6 * 8, 1 * 8 }, 3, { 0, 255 }, 1, - ' ' - }; - - Button button_on_off { - { 2 * 8, 3 * 16, 8 * 8, 2 * 16 }, - "ON/OFF" - }; - - Button button_pause { - { 2 * 8, 6 * 16, 8 * 8, 2 * 16 }, - "PAUSE" - }; - Button button_p1 { - { 11 * 8, 6 * 16, 8 * 8, 2 * 16 }, - "P1" - }; - Button button_ok { - { 20 * 8, 6 * 16, 8 * 8, 2 * 16 }, - "OK" - }; - - Button button_vol_inc1 { - { 2 * 8, 9 * 16, 8 * 8, 2 * 16 }, - "VOL+ 1" - }; - Button button_vol_inc2 { - { 11 * 8, 9 * 16, 8 * 8, 2 * 16 }, - "VOL+ 2" - }; - Button button_vol_inc3 { - { 20 * 8, 9 * 16, 8 * 8, 2 * 16 }, - "VOL+ 3" + '0' }; Checkbox check_scan { - { 2 * 8, 13 * 16 }, + { 2 * 8, 27 * 8 }, 4, "Scan" }; Text text_status { - { 2 * 8, 15 * 16, 128, 16 }, + { 2 * 8, 33 * 8, 128, 16 }, "Ready" }; ProgressBar progressbar { - { 2 * 8, 15 * 16 + 20, 208, 16 } + { 2 * 8, 35 * 8, 208, 16 } }; - MessageHandlerRegistration message_handler_tx_done { - Message::ID::TXDone, + MessageHandlerRegistration message_handler_tx_progress { + Message::ID::TXProgress, [this](const Message* const p) { - const auto message = *reinterpret_cast(p); + const auto message = *reinterpret_cast(p); this->on_tx_progress(message.progress, message.done); } }; diff --git a/firmware/baseband/proc_adsbtx.hpp b/firmware/baseband/proc_adsbtx.hpp index 6d2b8d358..a92f05a64 100644 --- a/firmware/baseband/proc_adsbtx.hpp +++ b/firmware/baseband/proc_adsbtx.hpp @@ -48,7 +48,7 @@ private: uint32_t cur_bit { 0 }; uint32_t phase { 0 }; - TXDoneMessage message { }; + TXProgressMessage txprogress_message { }; }; #endif diff --git a/firmware/baseband/proc_afsk.cpp b/firmware/baseband/proc_afsk.cpp index 600058d04..081087a5b 100644 --- a/firmware/baseband/proc_afsk.cpp +++ b/firmware/baseband/proc_afsk.cpp @@ -46,14 +46,15 @@ void AFSKProcessor::execute(const buffer_c8_t& buffer) { bit_pos = 0; word_ptr = (uint16_t*)shared_memory.bb_data.data; cur_word = *word_ptr; - message.progress = repeat_counter + 1; - shared_memory.application_queue.push(message); + txprogress_message.done = false; + txprogress_message.progress = repeat_counter + 1; + shared_memory.application_queue.push(txprogress_message); repeat_counter++; } else { // Stop cur_word = 0; - message.progress = 0; - shared_memory.application_queue.push(message); + txprogress_message.done = true; + shared_memory.application_queue.push(txprogress_message); configured = false; } } @@ -101,7 +102,7 @@ void AFSKProcessor::on_message(const Message* const msg) { afsk_phase_inc_mark = message.phase_inc_mark * AFSK_DELTA_COEF; afsk_phase_inc_space = message.phase_inc_space * AFSK_DELTA_COEF; afsk_repeat = message.repeat - 1; - fm_delta = message.fm_delta * (0xFFFFFFULL / 1536000); + fm_delta = message.fm_delta * (0xFFFFFFULL / AFSK_SAMPLERATE); symbol_count = message.symbol_count - 1; sample_count = afsk_samples_per_bit; diff --git a/firmware/baseband/proc_afsk.hpp b/firmware/baseband/proc_afsk.hpp index e021c4e05..2085022c4 100644 --- a/firmware/baseband/proc_afsk.hpp +++ b/firmware/baseband/proc_afsk.hpp @@ -38,7 +38,7 @@ public: private: bool configured = false; - BasebandThread baseband_thread { 1536000, this, NORMALPRIO + 20, baseband::Direction::Transmit }; + BasebandThread baseband_thread { AFSK_SAMPLERATE, this, NORMALPRIO + 20, baseband::Direction::Transmit }; uint32_t afsk_samples_per_bit { 0 }; uint32_t afsk_phase_inc_mark { 0 }; @@ -58,7 +58,7 @@ private: int8_t re { 0 }, im { 0 }; - TXDoneMessage message { }; + TXProgressMessage txprogress_message { }; }; #endif diff --git a/firmware/baseband/proc_fsk.cpp b/firmware/baseband/proc_fsk.cpp index cbbe282ac..f5f565887 100644 --- a/firmware/baseband/proc_fsk.cpp +++ b/firmware/baseband/proc_fsk.cpp @@ -40,16 +40,17 @@ void FSKProcessor::execute(const buffer_c8_t& buffer) { if (bit_pos > length) { // End of data cur_bit = 0; - txdone_message.done = true; - shared_memory.application_queue.push(txdone_message); + txprogress_message.done = true; + shared_memory.application_queue.push(txprogress_message); configured = false; } else { cur_bit = (shared_memory.bb_data.data[bit_pos >> 3] << (bit_pos & 7)) & 0x80; bit_pos++; if (progress_count >= progress_notice) { progress_count = 0; - txdone_message.progress++; - shared_memory.application_queue.push(txdone_message); + txprogress_message.progress++; + txprogress_message.done = false; + shared_memory.application_queue.push(txprogress_message); } else { progress_count++; } @@ -95,8 +96,8 @@ void FSKProcessor::on_message(const Message* const p) { bit_pos = 0; cur_bit = 0; - txdone_message.progress = 0; - txdone_message.done = false; + txprogress_message.progress = 0; + txprogress_message.done = false; configured = true; } } diff --git a/firmware/baseband/proc_fsk.hpp b/firmware/baseband/proc_fsk.hpp index 9685b5968..77ba82eb9 100644 --- a/firmware/baseband/proc_fsk.hpp +++ b/firmware/baseband/proc_fsk.hpp @@ -47,7 +47,7 @@ private: uint32_t sample_count { 0 }; uint32_t phase { 0 }, sphase { 0 }; - TXDoneMessage txdone_message { }; + TXProgressMessage txprogress_message { }; }; #endif diff --git a/firmware/baseband/proc_mictx.cpp b/firmware/baseband/proc_mictx.cpp index e9e740431..9a1aa0ec6 100644 --- a/firmware/baseband/proc_mictx.cpp +++ b/firmware/baseband/proc_mictx.cpp @@ -60,7 +60,7 @@ void MicTXProcessor::execute(const buffer_c8_t& buffer){ if (beep_index == BEEP_TONES_NB) { configured = false; fm_delta = 0; // Zero-out the IQ output for the rest of the buffer - shared_memory.application_queue.push(txdone_message); + shared_memory.application_queue.push(txprogress_message); } else { beep_phase_inc = beep_deltas[beep_index]; beep_index++; @@ -108,7 +108,7 @@ void MicTXProcessor::on_message(const Message* const msg) { ctcss_enabled = config_message.ctcss_enabled; ctcss_phase_inc = config_message.ctcss_phase_inc; - txdone_message.done = true; + txprogress_message.done = true; play_beep = false; configured = true; diff --git a/firmware/baseband/proc_mictx.hpp b/firmware/baseband/proc_mictx.hpp index 0590d15d5..003b9fc1a 100644 --- a/firmware/baseband/proc_mictx.hpp +++ b/firmware/baseband/proc_mictx.hpp @@ -60,7 +60,7 @@ private: int8_t re { 0 }, im { 0 }; AudioLevelReportMessage level_message { }; - TXDoneMessage txdone_message { }; + TXProgressMessage txprogress_message { }; }; #endif diff --git a/firmware/baseband/proc_ook.cpp b/firmware/baseband/proc_ook.cpp index 4d2039328..0bf8dfb60 100644 --- a/firmware/baseband/proc_ook.cpp +++ b/firmware/baseband/proc_ook.cpp @@ -51,14 +51,15 @@ void OOKProcessor::execute(const buffer_c8_t& buffer) { // Repeat bit_pos = 0; cur_bit = shared_memory.bb_data.data[0] & 0x80; - txdone_message.progress = repeat_counter + 1; - shared_memory.application_queue.push(txdone_message); + txprogress_message.progress = repeat_counter + 1; + txprogress_message.done = false; + shared_memory.application_queue.push(txprogress_message); repeat_counter++; } else { // Stop cur_bit = 0; - txdone_message.done = true; - shared_memory.application_queue.push(txdone_message); + txprogress_message.done = true; + shared_memory.application_queue.push(txprogress_message); configured = false; } pause_counter = 0; @@ -109,8 +110,8 @@ void OOKProcessor::on_message(const Message* const p) { repeat_counter = 0; bit_pos = 0; cur_bit = 0; - txdone_message.progress = 0; - txdone_message.done = false; + txprogress_message.progress = 0; + txprogress_message.done = false; configured = true; } } diff --git a/firmware/baseband/proc_ook.hpp b/firmware/baseband/proc_ook.hpp index 75865fd03..e678b45c5 100644 --- a/firmware/baseband/proc_ook.hpp +++ b/firmware/baseband/proc_ook.hpp @@ -51,7 +51,7 @@ private: uint32_t tone_phase { 0 }, phase { 0 }, sphase { 0 }; int32_t tone_sample { 0 }, sig { 0 }, frq { 0 }; - TXDoneMessage txdone_message { }; + TXProgressMessage txprogress_message { }; }; #endif diff --git a/firmware/baseband/proc_siggen.cpp b/firmware/baseband/proc_siggen.cpp index a10c12410..905acda8d 100644 --- a/firmware/baseband/proc_siggen.cpp +++ b/firmware/baseband/proc_siggen.cpp @@ -33,8 +33,8 @@ void SigGenProcessor::execute(const buffer_c8_t& buffer) { for (size_t i = 0; i < buffer.count; i++) { if (!sample_count && auto_off) { - message.done = true; - shared_memory.application_queue.push(message); + txprogress_message.done = true; + shared_memory.application_queue.push(txprogress_message); } else sample_count--; diff --git a/firmware/baseband/proc_siggen.hpp b/firmware/baseband/proc_siggen.hpp index 18a25bfd8..f547cc0f0 100644 --- a/firmware/baseband/proc_siggen.hpp +++ b/firmware/baseband/proc_siggen.hpp @@ -46,7 +46,7 @@ private: int8_t sample { 0 }; int8_t re { 0 }, im { 0 }; - TXDoneMessage message { }; + TXProgressMessage txprogress_message { }; }; #endif diff --git a/firmware/baseband/proc_tones.cpp b/firmware/baseband/proc_tones.cpp index 27aa1921d..2e93ef3d4 100644 --- a/firmware/baseband/proc_tones.cpp +++ b/firmware/baseband/proc_tones.cpp @@ -52,12 +52,13 @@ void TonesProcessor::execute(const buffer_c8_t& buffer) { digit = shared_memory.bb_data.tones_data.message[digit_pos]; if (digit_pos >= message_length) { configured = false; - txdone_message.done = true; - shared_memory.application_queue.push(txdone_message); + txprogress_message.done = true; + shared_memory.application_queue.push(txprogress_message); return; } else { - txdone_message.progress = digit_pos; // Inform UI about progress - shared_memory.application_queue.push(txdone_message); + txprogress_message.progress = digit_pos; // Inform UI about progress + txprogress_message.done = false; + shared_memory.application_queue.push(txprogress_message); } digit_pos++; @@ -136,8 +137,8 @@ void TonesProcessor::on_message(const Message* const p) { if (audio_out) audio_output.configure(false); - txdone_message.done = false; - txdone_message.progress = 0; + txprogress_message.done = false; + txprogress_message.progress = 0; digit_pos = 0; sample_count = 0; @@ -148,8 +149,8 @@ void TonesProcessor::on_message(const Message* const p) { configured = true; } else { configured = false; - txdone_message.done = true; - shared_memory.application_queue.push(txdone_message); + txprogress_message.done = true; + shared_memory.application_queue.push(txprogress_message); } } } diff --git a/firmware/baseband/proc_tones.hpp b/firmware/baseband/proc_tones.hpp index d298922e3..85d9d1ba2 100644 --- a/firmware/baseband/proc_tones.hpp +++ b/firmware/baseband/proc_tones.hpp @@ -62,7 +62,7 @@ private: int8_t re { 0 }, im { 0 }; uint8_t as { 0 }, ai { 0 }; - TXDoneMessage txdone_message { }; + TXProgressMessage txprogress_message { }; AudioOutput audio_output { }; }; diff --git a/firmware/common/emu_cc1101.hpp b/firmware/common/emu_cc1101.hpp index 724e0049f..549535fe1 100644 --- a/firmware/common/emu_cc1101.hpp +++ b/firmware/common/emu_cc1101.hpp @@ -32,7 +32,6 @@ namespace cc1101 { // Data rate (Bauds) // Whitening: Everything except preamble and sync word, init value = 111111111 -// See datasheet page 38 for logic schematic // Packet format: preamble, sync word, (opt) length, (opt) address, payload, (opt) CRC // Preamble: 8*n bits of 10101010 // Sync word: 2 bytes (can be repeated twice) @@ -100,6 +99,12 @@ private: modulation_t modulation_ { TWO_FSK }; uint8_t num_preamble_ { 4 }; size_t deviation_ { 4000 }; + + uint16_t whitening_pn { 0x1FF }; + + void whitening_init(); + uint8_t whiten_byte(uint8_t byte); + }; } /* namespace cc1101 */ diff --git a/firmware/common/message.hpp b/firmware/common/message.hpp index d193cad80..c9c244958 100644 --- a/firmware/common/message.hpp +++ b/firmware/common/message.hpp @@ -73,7 +73,7 @@ public: ReplayThreadDone = 20, AFSKRxConfigure = 21, - TXDone = 30, + TXProgress = 30, Retune = 31, TonesConfigure = 32, @@ -604,10 +604,10 @@ public: ReplayConfig* const config; }; -class TXDoneMessage : public Message { +class TXProgressMessage : public Message { public: - constexpr TXDoneMessage( - ) : Message { ID::TXDone } + constexpr TXProgressMessage( + ) : Message { ID::TXProgress } { } diff --git a/firmware/common/portapack_persistent_memory.cpp b/firmware/common/portapack_persistent_memory.cpp index 37360ac52..7d8e7478e 100644 --- a/firmware/common/portapack_persistent_memory.cpp +++ b/firmware/common/portapack_persistent_memory.cpp @@ -51,9 +51,9 @@ using modem_baudrate_range_t = range_t; constexpr modem_baudrate_range_t modem_baudrate_range { 50, 9600 }; constexpr int32_t modem_baudrate_reset_value { 1200 }; -using modem_bw_range_t = range_t; +/*using modem_bw_range_t = range_t; constexpr modem_bw_range_t modem_bw_range { 1000, 50000 }; -constexpr int32_t modem_bw_reset_value { 15000 }; +constexpr int32_t modem_bw_reset_value { 15000 };*/ using modem_repeat_range_t = range_t; constexpr modem_repeat_range_t modem_repeat_range { 1, 99 }; @@ -151,14 +151,14 @@ void set_modem_baudrate(const int32_t new_value) { data->modem_baudrate = modem_baudrate_range.clip(new_value); } -int32_t modem_bw() { +/*int32_t modem_bw() { modem_bw_range.reset_if_outside(data->modem_bw, modem_bw_reset_value); return data->modem_bw; } void set_modem_bw(const int32_t new_value) { data->modem_bw = modem_bw_range.clip(new_value); -} +}*/ uint8_t modem_repeat() { modem_repeat_range.reset_if_outside(data->modem_repeat, modem_repeat_reset_value); diff --git a/firmware/common/portapack_persistent_memory.hpp b/firmware/common/portapack_persistent_memory.hpp index d1ece441d..5ff21dd69 100644 --- a/firmware/common/portapack_persistent_memory.hpp +++ b/firmware/common/portapack_persistent_memory.hpp @@ -61,8 +61,6 @@ void set_modem_baudrate(const int32_t new_value); uint8_t modem_repeat(); void set_modem_repeat(const uint32_t new_value); -int32_t modem_bw(); -void set_modem_bw(const int32_t new_value); uint32_t playing_dead(); void set_playing_dead(const uint32_t new_value); diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index 5c01174be8c22d063c207f3001114e9831e3f1e6..f890984ba9c651cfbd24f005f3935c8ed87f9742 100644 GIT binary patch delta 133447 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�l?!)mQ7ty$ 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 D