From 688a012443699b84e5b0b0c98cf50cab21dc8099 Mon Sep 17 00:00:00 2001 From: furrtek Date: Mon, 30 Jan 2017 13:10:30 +0000 Subject: [PATCH] Transmitter config widget Frequency manager duplicate alert Tone sets --- firmware/application/CMakeLists.txt | 2 + firmware/application/Makefile | 60 ++++++++++ firmware/application/baseband_api.cpp | 2 +- firmware/application/baseband_api.hpp | 2 +- firmware/application/bht.hpp | 25 +--- firmware/application/freqman.cpp | 2 +- firmware/application/freqman.hpp | 3 +- firmware/application/main.cpp | 4 +- firmware/application/pocsag_app.hpp | 2 +- firmware/application/tonesets.hpp | 119 +++++++++++++++++++ firmware/application/transmitter_model.cpp | 12 ++ firmware/application/transmitter_model.hpp | 4 + firmware/application/ui_bht_tx.cpp | 52 +++++---- firmware/application/ui_bht_tx.hpp | 31 +++-- firmware/application/ui_freqman.cpp | 16 ++- firmware/application/ui_freqman.hpp | 18 +-- firmware/application/ui_menu.cpp | 8 +- firmware/application/ui_menu.hpp | 6 +- firmware/application/ui_navigation.hpp | 2 +- firmware/application/ui_nuoptix.cpp | 52 +++------ firmware/application/ui_nuoptix.hpp | 65 ++--------- firmware/application/ui_receiver.cpp | 25 ---- firmware/application/ui_receiver.hpp | 9 -- firmware/application/ui_script.cpp | 110 ++++++++++++++++++ firmware/application/ui_script.hpp | 91 +++++++++++++++ firmware/application/ui_transmitter.cpp | 127 +++++++++++++++++++++ firmware/application/ui_transmitter.hpp | 107 +++++++++++++++++ firmware/baseband/proc_tones.cpp | 6 +- firmware/portapack-h1-havoc.bin | Bin 825796 -> 827256 bytes 29 files changed, 759 insertions(+), 203 deletions(-) create mode 100644 firmware/application/tonesets.hpp create mode 100644 firmware/application/ui_script.cpp create mode 100644 firmware/application/ui_script.hpp create mode 100644 firmware/application/ui_transmitter.cpp create mode 100644 firmware/application/ui_transmitter.hpp diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 7daa3d5a..4c54abd9 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -175,6 +175,7 @@ set(CPPSRC ui_record_view.cpp ui_replay_view.cpp ui_rssi.cpp + ui_script.cpp ui_sd_card_status_view.cpp ui_sd_wipe.cpp # ui_sd_card_debug.cpp @@ -183,6 +184,7 @@ set(CPPSRC ui_spectrum.cpp ui_textentry.cpp ui_touch_calibration.cpp + ui_transmitter.cpp ui_whipcalc.cpp ui_whistle.cpp # ui_loadmodule.cpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index afc6ec3b..190677e2 100644 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -5000,6 +5000,33 @@ ui_rssi.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_rssi.cpp.s .PHONY : ui_rssi.cpp.s +ui_script.obj: ui_script.cpp.obj + +.PHONY : ui_script.obj + +# target to build an object file +ui_script.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_script.cpp.obj +.PHONY : ui_script.cpp.obj + +ui_script.i: ui_script.cpp.i + +.PHONY : ui_script.i + +# target to preprocess a source file +ui_script.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_script.cpp.i +.PHONY : ui_script.cpp.i + +ui_script.s: ui_script.cpp.s + +.PHONY : ui_script.s + +# target to generate assembly for a file +ui_script.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_script.cpp.s +.PHONY : ui_script.cpp.s + ui_sd_card_status_view.obj: ui_sd_card_status_view.cpp.obj .PHONY : ui_sd_card_status_view.obj @@ -5189,6 +5216,33 @@ ui_touch_calibration.cpp.s: cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_touch_calibration.cpp.s .PHONY : ui_touch_calibration.cpp.s +ui_transmitter.obj: ui_transmitter.cpp.obj + +.PHONY : ui_transmitter.obj + +# target to build an object file +ui_transmitter.cpp.obj: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_transmitter.cpp.obj +.PHONY : ui_transmitter.cpp.obj + +ui_transmitter.i: ui_transmitter.cpp.i + +.PHONY : ui_transmitter.i + +# target to preprocess a source file +ui_transmitter.cpp.i: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_transmitter.cpp.i +.PHONY : ui_transmitter.cpp.i + +ui_transmitter.s: ui_transmitter.cpp.s + +.PHONY : ui_transmitter.s + +# target to generate assembly for a file +ui_transmitter.cpp.s: + cd /home/furrtek/portapack-hackrf && $(MAKE) -f firmware/application/CMakeFiles/application.elf.dir/build.make firmware/application/CMakeFiles/application.elf.dir/ui_transmitter.cpp.s +.PHONY : ui_transmitter.cpp.s + ui_whipcalc.obj: ui_whipcalc.cpp.obj .PHONY : ui_whipcalc.obj @@ -5793,6 +5847,9 @@ help: @echo "... ui_rssi.obj" @echo "... ui_rssi.i" @echo "... ui_rssi.s" + @echo "... ui_script.obj" + @echo "... ui_script.i" + @echo "... ui_script.s" @echo "... ui_sd_card_status_view.obj" @echo "... ui_sd_card_status_view.i" @echo "... ui_sd_card_status_view.s" @@ -5814,6 +5871,9 @@ help: @echo "... ui_touch_calibration.obj" @echo "... ui_touch_calibration.i" @echo "... ui_touch_calibration.s" + @echo "... ui_transmitter.obj" + @echo "... ui_transmitter.i" + @echo "... ui_transmitter.s" @echo "... ui_whipcalc.obj" @echo "... ui_whipcalc.i" @echo "... ui_whipcalc.s" diff --git a/firmware/application/baseband_api.cpp b/firmware/application/baseband_api.cpp index ea819bfb..a1f7149c 100644 --- a/firmware/application/baseband_api.cpp +++ b/firmware/application/baseband_api.cpp @@ -79,7 +79,7 @@ void WFMConfig::apply() const { audio::set_rate(audio::Rate::Hz_48000); } -void set_tones_data(const uint64_t bw, const uint32_t pre_silence, const uint16_t tone_count, +void set_tones_data(const uint32_t bw, const uint32_t pre_silence, const uint16_t tone_count, const bool dual_tone, const bool audio_out) { const TonesConfigureMessage message { (uint32_t)(262144 * bw) / 1536000, diff --git a/firmware/application/baseband_api.hpp b/firmware/application/baseband_api.hpp index 145e7e76..e95add7c 100644 --- a/firmware/application/baseband_api.hpp +++ b/firmware/application/baseband_api.hpp @@ -54,7 +54,7 @@ struct WFMConfig { void apply() const; }; -void set_tones_data(const uint64_t bw, const uint32_t pre_silence, const uint16_t tone_count, +void set_tones_data(const uint32_t bw, const uint32_t pre_silence, const uint16_t tone_count, const bool dual_tone, const bool audio_out); void set_audiotx_data(const uint32_t divider, const uint32_t bw, const bool ctcss_enabled, const uint32_t ctcss_phase_inc); void set_fifo_data(const int8_t * data); diff --git a/firmware/application/bht.hpp b/firmware/application/bht.hpp index 17849b37..561590a0 100644 --- a/firmware/application/bht.hpp +++ b/firmware/application/bht.hpp @@ -24,14 +24,14 @@ #include "ui_widget.hpp" #include "ui_navigation.hpp" +#include "tonesets.hpp" #include "encoders.hpp" #include "portapack.hpp" using namespace encoders; -#define CCIR_TONE_LENGTH (153600-1) // 1536000*0.1 -#define CCIR_DELTA_COEF (43.691) // (65536*1024)/1536000 -#define CCIR_SILENCE (614400-1) // 400ms +#define XY_TONE_LENGTH ((TONES_SAMPLERATE * 0.1) - 1) // 100ms +#define XY_SILENCE (TONES_SAMPLERATE * 0.4) // 400ms struct bht_city { std::string name; @@ -39,25 +39,6 @@ struct bht_city { bool recent; }; -const uint32_t ccir_deltas[16] = { - (uint32_t)(1981 * CCIR_DELTA_COEF), - (uint32_t)(1124 * CCIR_DELTA_COEF), - (uint32_t)(1197 * CCIR_DELTA_COEF), - (uint32_t)(1275 * CCIR_DELTA_COEF), - (uint32_t)(1358 * CCIR_DELTA_COEF), - (uint32_t)(1446 * CCIR_DELTA_COEF), - (uint32_t)(1540 * CCIR_DELTA_COEF), - (uint32_t)(1640 * CCIR_DELTA_COEF), - (uint32_t)(1747 * CCIR_DELTA_COEF), - (uint32_t)(1860 * CCIR_DELTA_COEF), - (uint32_t)(2400 * CCIR_DELTA_COEF), - (uint32_t)(930 * CCIR_DELTA_COEF), - (uint32_t)(2247 * CCIR_DELTA_COEF), - (uint32_t)(991 * CCIR_DELTA_COEF), - (uint32_t)(2110 * CCIR_DELTA_COEF), - (uint32_t)(1055 * CCIR_DELTA_COEF) -}; - const rf::Frequency bht_freqs[7] = { 31325000, 31387500, 31437500, 31475000, 31687500, 31975000, 88000000 }; std::string gen_message_ep(uint8_t city_code, size_t family_code_ep, uint32_t relay_state_A, uint32_t relay_state_B); diff --git a/firmware/application/freqman.cpp b/firmware/application/freqman.cpp index c23cd065..fceb560f 100644 --- a/firmware/application/freqman.cpp +++ b/firmware/application/freqman.cpp @@ -104,7 +104,7 @@ std::string freqman_item_string(freqman_entry &entry) { to_string_dec_int((value / 100) % 10000, 4, '0'); if (entry.description.size() <= 19) { - item_string = entry.frequency_str + ":" + entry.description; + item_string = entry.frequency_str + "M: " + entry.description; } else { memcpy(temp_buffer, entry.description.c_str(), 16); temp_buffer[16] = (char)0; diff --git a/firmware/application/freqman.hpp b/firmware/application/freqman.hpp index f8cb4b64..2b218635 100644 --- a/firmware/application/freqman.hpp +++ b/firmware/application/freqman.hpp @@ -34,7 +34,8 @@ using namespace ui; enum freqman_error { NO_ERROR = 0, ERROR_ACCESS, - ERROR_EMPTY + ERROR_EMPTY, + ERROR_DUPLICATE }; struct freqman_entry { diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index bc7832e0..9f55f77f 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -23,6 +23,7 @@ // Color bitmaps generated with: // Gimp image > indexed colors (16), then "xxd -i *.bmp" +//BUG: Set description in frequency save makes everything go crazy //BUG: Distorted audio in WFM receiver //BUG: (fixed ?) Bad console scroll init //BUG: POCSAG misses alphanum messages, cuts them off sometimes @@ -33,8 +34,7 @@ //TEST: Numbers //TEST: Jammer -//TODO: Frequency manager auto-remove duplicates -//TODO: "TX box" view or composite widget with frequency and bw settings, simple and advanced setup TX buttons... +//TODO: Script engine ? //TODO: Morse coder for foxhunts //TODO: Finish EPAR tx //TODO: IQ replay diff --git a/firmware/application/pocsag_app.hpp b/firmware/application/pocsag_app.hpp index ad8e2901..c1a7dc2e 100644 --- a/firmware/application/pocsag_app.hpp +++ b/firmware/application/pocsag_app.hpp @@ -68,7 +68,7 @@ private: static constexpr uint32_t sampling_rate = 1536000; static constexpr uint32_t baseband_bandwidth = 1750000; - bool logging { true }; + bool logging { false }; uint32_t batch_cnt = 0; uint32_t address { 0 }; uint32_t function { 0 }; diff --git a/firmware/application/tonesets.hpp b/firmware/application/tonesets.hpp new file mode 100644 index 00000000..9a674345 --- /dev/null +++ b/firmware/application/tonesets.hpp @@ -0,0 +1,119 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __TONESETS_H__ +#define __TONESETS_H__ + +#include "portapack.hpp" + +#define TONES_SAMPLERATE 1536000 +#define TONES_DELTA_COEF ((1ULL << 32) / 1536000) + +#define TONES_F2D(f) (uint32_t)(f * TONES_DELTA_COEF) + +#define DTMF_C0 TONES_F2D(1209) +#define DTMF_C1 TONES_F2D(1336) +#define DTMF_C2 TONES_F2D(1477) +#define DTMF_C3 TONES_F2D(1633) +#define DTMF_R0 TONES_F2D(697) +#define DTMF_R1 TONES_F2D(770) +#define DTMF_R2 TONES_F2D(852) +#define DTMF_R3 TONES_F2D(941) + +const uint32_t ccir_deltas[16] = { + TONES_F2D(1981), + TONES_F2D(1124), + TONES_F2D(1197), + TONES_F2D(1275), + TONES_F2D(1358), + TONES_F2D(1446), + TONES_F2D(1540), + TONES_F2D(1640), + TONES_F2D(1747), + TONES_F2D(1860), + TONES_F2D(2400), + TONES_F2D(930), + TONES_F2D(2247), + TONES_F2D(991), + TONES_F2D(2110), + TONES_F2D(1055) +}; + +// 0123456789ABCD#* +const uint32_t dtmf_deltas[16][2] = { + { DTMF_C1, DTMF_R3 }, + { DTMF_C0, DTMF_R0 }, + { DTMF_C1, DTMF_R0 }, + { DTMF_C2, DTMF_R0 }, + { DTMF_C0, DTMF_R1 }, + { DTMF_C1, DTMF_R1 }, + { DTMF_C2, DTMF_R1 }, + { DTMF_C0, DTMF_R2 }, + { DTMF_C1, DTMF_R2 }, + { DTMF_C2, DTMF_R2 }, + { DTMF_C3, DTMF_R0 }, + { DTMF_C3, DTMF_R1 }, + { DTMF_C3, DTMF_R2 }, + { DTMF_C3, DTMF_R3 }, + { DTMF_C2, DTMF_R3 }, + { DTMF_C0, DTMF_R3 } +}; + +const uint32_t eia_deltas[16] = { + TONES_F2D(600), + TONES_F2D(741), + TONES_F2D(882), + TONES_F2D(1023), + TONES_F2D(1164), + TONES_F2D(1305), + TONES_F2D(1446), + TONES_F2D(1587), + TONES_F2D(1728), + TONES_F2D(1869), + TONES_F2D(2151), + TONES_F2D(2433), + TONES_F2D(2010), + TONES_F2D(2292), + TONES_F2D(459), + TONES_F2D(1091) +}; + +const uint32_t zvei_deltas[16] = { + TONES_F2D(2400), + TONES_F2D(1060), + TONES_F2D(1160), + TONES_F2D(1270), + TONES_F2D(1400), + TONES_F2D(1530), + TONES_F2D(1670), + TONES_F2D(1830), + TONES_F2D(2000), + TONES_F2D(2200), + TONES_F2D(2800), + TONES_F2D(810), + TONES_F2D(970), + TONES_F2D(885), + TONES_F2D(2600), + TONES_F2D(680) +}; + +#endif/*__TONESETS_H__*/ diff --git a/firmware/application/transmitter_model.cpp b/firmware/application/transmitter_model.cpp index b0fdf032..8fd0d022 100644 --- a/firmware/application/transmitter_model.cpp +++ b/firmware/application/transmitter_model.cpp @@ -79,6 +79,14 @@ void TransmitterModel::set_vga(int32_t v_db) { update_vga(); } +uint32_t TransmitterModel::bandwidth() const { + return bandwidth_; +} + +void TransmitterModel::set_bandwidth(uint32_t v) { + bandwidth_ = v; +} + uint32_t TransmitterModel::sampling_rate() const { return sampling_rate_; } @@ -88,6 +96,10 @@ void TransmitterModel::set_sampling_rate(uint32_t v) { update_sampling_rate(); } +int32_t TransmitterModel::tx_gain() const { + return tx_gain_db_; +} + void TransmitterModel::set_tx_gain(int32_t v_db) { tx_gain_db_ = v_db; update_tx_gain(); diff --git a/firmware/application/transmitter_model.hpp b/firmware/application/transmitter_model.hpp index add8584f..669c254f 100644 --- a/firmware/application/transmitter_model.hpp +++ b/firmware/application/transmitter_model.hpp @@ -52,6 +52,9 @@ public: int32_t tx_gain() const; void set_tx_gain(int32_t v_db); + + uint32_t bandwidth() const; + void set_bandwidth(uint32_t v); uint32_t sampling_rate() const; void set_sampling_rate(uint32_t v); @@ -63,6 +66,7 @@ private: bool enabled_ { false }; bool rf_amp_ { true }; int32_t lna_gain_db_ { 0 }; + uint32_t bandwidth_ { 1 }; uint32_t baseband_bandwidth_ { max2837::filter::bandwidth_minimum }; int32_t vga_gain_db_ { 8 }; int32_t tx_gain_db_ { 47 }; diff --git a/firmware/application/ui_bht_tx.cpp b/firmware/application/ui_bht_tx.cpp index 34e6534c..cfdf91a9 100644 --- a/firmware/application/ui_bht_tx.cpp +++ b/firmware/application/ui_bht_tx.cpp @@ -63,7 +63,7 @@ void BHTView::start_tx() { generate_message(); - transmitter_model.set_tuning_frequency(bht_freqs[options_freq.selected_index()]); + //transmitter_model.set_tuning_frequency(bht_freqs[options_freq.selected_index()]); transmitter_model.set_sampling_rate(1536000); transmitter_model.set_rf_amp(true); transmitter_model.set_lna(40); @@ -74,11 +74,11 @@ void BHTView::start_tx() { // Setup for Xy for (uint8_t c = 0; c < 16; c++) { shared_memory.bb_data.tones_data.tone_defs[c].delta = ccir_deltas[c]; - shared_memory.bb_data.tones_data.tone_defs[c].duration = CCIR_TONE_LENGTH; + shared_memory.bb_data.tones_data.tone_defs[c].duration = XY_TONE_LENGTH; } audio::set_rate(audio::Rate::Hz_24000); - baseband::set_tones_data(field_bw.value(), CCIR_SILENCE, 20, false, checkbox_speaker.value()); + baseband::set_tones_data(transmitter_model.bandwidth(), XY_SILENCE, 20, false, checkbox_speaker.value()); } void BHTView::on_tx_progress(const int progress, const bool done) { @@ -94,8 +94,7 @@ void BHTView::on_tx_progress(const int progress, const bool done) { if (!checkbox_cligno.value()) { tx_mode = IDLE; - button_transmit.set_style(&style_val); - button_transmit.set_text("START"); + tx_view.set_transmitting(false); } else { chThdSleepMilliseconds(tempo_cligno.value() * 1000); // Dirty :( @@ -115,12 +114,11 @@ void BHTView::on_tx_progress(const int progress, const bool done) { } BHTView::BHTView(NavigationView& nav) { - (void)nav; size_t n; baseband::run_image(portapack::spi_flash::image_tag_tones); //baseband::run_image(portapack::spi_flash::image_tag_encoders); - + add_children({ &options_mode, &text_header, @@ -138,16 +136,17 @@ BHTView::BHTView(NavigationView& nav) { &text_receiver, &receiver_code, &checkbox_wcid, - &text_freq, - &options_freq, - &field_bw, + //&text_freq, + //&options_freq, + //&field_bw, &text_relais, &progressbar, &text_message, - &button_transmit, + //&button_transmit, &checkbox_cligno, &tempo_cligno, - &text_cligno + &text_cligno, + &tx_view }); options_mode.set_selected_index(0); // Start up in Xy mode @@ -159,12 +158,12 @@ BHTView::BHTView(NavigationView& nav) { family_code_ep.set_selected_index(2); subfamily_code.set_value(1); receiver_code.set_value(1); - options_freq.set_selected_index(0); + //options_freq.set_selected_index(0); tempo_cligno.set_value(1); progressbar.set_max(20); relay_states[0].set_selected_index(1); // R1 OFF - field_bw.set_value(10); + //field_bw.set_value(20); options_mode.on_change = [this](size_t mode, OptionsField::value_t) { _mode = mode; @@ -281,8 +280,8 @@ BHTView::BHTView(NavigationView& nav) { for (auto& relay_state : relay_states) { relay_state.on_change = relay_state_fn; relay_state.set_parent_rect({ - static_cast(26 + (n * 53)), - 174, + static_cast(4 + (n * 36)), + 158, 24, 24 }); relay_state.set_options(relay_options); @@ -290,22 +289,33 @@ BHTView::BHTView(NavigationView& nav) { n++; } - button_transmit.set_style(&style_val); + //button_transmit.set_style(&style_val); generate_message(); - - button_transmit.on_select = [this, &nav](Button&) { + + tx_view.on_edit_frequency = [this, &nav]() { + auto new_view = nav.push(receiver_model.tuning_frequency()); + new_view->on_changed = [this](rf::Frequency f) { + receiver_model.set_tuning_frequency(f); + }; + }; + + tx_view.on_start = [this]() { if ((tx_mode == IDLE) && (!_mode)) { // DEBUG if (speaker_enabled) chThdSleepMilliseconds(40 * 1000); // DEBUG 40s //if (speaker_enabled && _mode) // audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); tx_mode = SINGLE; - button_transmit.set_style(&style_cancel); - button_transmit.set_text("Wait"); + tx_view.set_transmitting(true); start_tx(); } }; + + tx_view.on_stop = [this]() { + tx_view.set_transmitting(false); + tx_mode = IDLE; + }; } } /* namespace ui */ diff --git a/firmware/application/ui_bht_tx.hpp b/firmware/application/ui_bht_tx.hpp index 19211750..8bee501c 100644 --- a/firmware/application/ui_bht_tx.hpp +++ b/firmware/application/ui_bht_tx.hpp @@ -23,6 +23,7 @@ #include "ui.hpp" #include "ui_widget.hpp" #include "ui_navigation.hpp" +#include "ui_transmitter.hpp" #include "ui_font_fixed_8x16.hpp" #include "bmp_bulb_on.hpp" @@ -196,7 +197,7 @@ private: "Tous" }; - Text text_freq { + /*Text text_freq { { 1 * 8, 8 * 16, 10 * 8, 16 }, "Frequence:" }; @@ -220,14 +221,14 @@ private: { 0, 99 }, 1, ' ' - }; + };*/ Text text_relais { - { 8, 19 * 8, 13 * 8, 16 }, - "Etats relais:" + { 1 * 8, 8 * 16 + 8, 7 * 8, 16 }, + "Relais:" }; - std::array relay_states; + std::array relay_states { }; ImageOptionsField::options_t relay_options = { { &bulb_ignore_bmp[0], 0 }, @@ -236,35 +237,41 @@ private: }; ProgressBar progressbar { - { 5 * 8, 27 * 8, 20 * 8, 16 }, + { 5 * 8, 13 * 16, 20 * 8, 16 }, }; Text text_message { - { 5 * 8, 29 * 8, 20 * 8, 16 }, + { 5 * 8, 14 * 16, 20 * 8, 16 }, "" }; - Button button_transmit { + /*Button button_transmit { { 2 * 8, 16 * 16, 12 * 8, 32 }, "START" - }; + };*/ Checkbox checkbox_cligno { - { 16 * 8, 16 * 16 + 4}, + { 18 * 8 + 4, 10 * 16}, 3, "J/N" }; NumberField tempo_cligno { - { 24 * 8, 16 * 16 + 8}, + { 25 * 8 + 4, 10 * 16 + 4}, 2, { 1, 99 }, 1, ' ' }; Text text_cligno { - { 26 * 8, 16 * 16 + 8, 2 * 8, 16 }, + { 27 * 8 + 4, 10 * 16 + 4, 2 * 8, 16 }, "s." }; + TransmitterView tx_view { + 16 * 16, + 10000, + 12 + }; + MessageHandlerRegistration message_handler_tx_done { Message::ID::TXDone, [this](const Message* const p) { diff --git a/firmware/application/ui_freqman.cpp b/firmware/application/ui_freqman.cpp index ea622c1f..31e4c5c4 100644 --- a/firmware/application/ui_freqman.cpp +++ b/firmware/application/ui_freqman.cpp @@ -43,10 +43,13 @@ void FrequencySaveView::on_save_timestamp(NavigationView& nav) { } void FrequencySaveView::focus() { - if (error == ERROR_ACCESS) + if (error == ERROR_ACCESS) { nav_.display_modal("Error", "File acces error", ABORT, nullptr); - else + } else { + if (error == ERROR_DUPLICATE) + nav_.display_modal("Error", "Frequency already saved", INFO, nullptr); button_save_timestamp.focus(); + } } void FrequencySaveView::on_tick_second() { @@ -68,6 +71,7 @@ FrequencySaveView::FrequencySaveView( value_ (value) { File freqs_file; + size_t n; if (!load_freqman_file(frequencies)) { if (!create_freqman_file(freqs_file)) { @@ -76,6 +80,13 @@ FrequencySaveView::FrequencySaveView( } } + for (n = 0; n < frequencies.size(); n++) { + if (frequencies[n].value == value_) { + error = ERROR_DUPLICATE; + break; + } + } + signal_token_tick_second = rtc_time::signal_tick_second += [this]() { this->on_tick_second(); }; @@ -223,6 +234,7 @@ FreqManView::FreqManView( add_children({ &menu_view, + &text_edit, &button_edit_freq, &button_edit_desc, &button_del, diff --git a/firmware/application/ui_freqman.hpp b/firmware/application/ui_freqman.hpp index e1d5c0f8..1f47ead3 100644 --- a/firmware/application/ui_freqman.hpp +++ b/firmware/application/ui_freqman.hpp @@ -136,21 +136,25 @@ private: MenuView menu_view { true }; + Text text_edit { + { 16, 194, 5 * 8, 16 }, + "Edit:" + }; Button button_edit_freq { - { 52, 194, 106, 30 }, - "Edit freq." + { 16, 194 + 16, 104, 32 }, + "Frequency" }; Button button_edit_desc { - { 52, 192 + 32, 106, 30 }, - "Edit desc." + { 16, 194 + 16 + 34, 104, 32 }, + "Description" }; Button button_del { - { 168, 192, 64, 64 }, - "Del" + { 160, 192, 72, 64 }, + "Delete" }; Button button_exit { - { 168, 264, 64, 32 }, + { 160, 264, 72, 32 }, "Exit" }; }; diff --git a/firmware/application/ui_menu.cpp b/firmware/application/ui_menu.cpp index 7713c8cb..e2c14ac0 100644 --- a/firmware/application/ui_menu.cpp +++ b/firmware/application/ui_menu.cpp @@ -44,6 +44,8 @@ void MenuItemView::unhighlight() { } void MenuItemView::paint(Painter& painter) { + Coord offset_x; + const auto r = screen_rect(); const auto paint_style = (highlighted() && (parent()->has_focus() || keep_highlight_)) ? style().invert() : style(); @@ -67,7 +69,9 @@ void MenuItemView::paint(Painter& painter) { final_item_color, final_bg_color ); - } + offset_x = 26; + } else + offset_x = 8; Style text_style { .font = paint_style.font, @@ -76,7 +80,7 @@ void MenuItemView::paint(Painter& painter) { }; painter.draw_string( - { r.location().x() + 26, r.location().y() + (r.size().height() - font_height) / 2 }, + { r.location().x() + offset_x, r.location().y() + (r.size().height() - font_height) / 2 }, text_style, item.text ); diff --git a/firmware/application/ui_menu.hpp b/firmware/application/ui_menu.hpp index 10e77176..e138c3c4 100644 --- a/firmware/application/ui_menu.hpp +++ b/firmware/application/ui_menu.hpp @@ -69,7 +69,7 @@ private: class MenuView : public View { public: - std::function on_left; + std::function on_left { }; MenuView(bool keep_highlight = false); @@ -102,9 +102,9 @@ private: void update_items(); void on_tick_second(); - bool keep_highlight_ = false; + bool keep_highlight_ { false }; - SignalToken signal_token_tick_second; + SignalToken signal_token_tick_second { }; Image arrow_more { { 228, 320 - 8, 8, 8 }, diff --git a/firmware/application/ui_navigation.hpp b/firmware/application/ui_navigation.hpp index cc3a8ca9..28bfecbf 100644 --- a/firmware/application/ui_navigation.hpp +++ b/firmware/application/ui_navigation.hpp @@ -71,7 +71,7 @@ private: }; ImageButton button_back { - { 0 * 8, 0 * 16, 16, 16 }, + { 2, 0 * 16, 16, 16 }, &bitmap_previous, Color::white(), Color::dark_grey() diff --git a/firmware/application/ui_nuoptix.cpp b/firmware/application/ui_nuoptix.cpp index e4d452f7..eecaa6a4 100644 --- a/firmware/application/ui_nuoptix.cpp +++ b/firmware/application/ui_nuoptix.cpp @@ -37,7 +37,7 @@ using namespace portapack; namespace ui { void NuoptixView::focus() { - button_tx.focus(); + number_timecode.focus(); } NuoptixView::~NuoptixView() { @@ -45,10 +45,6 @@ NuoptixView::~NuoptixView() { baseband::shutdown(); } -void NuoptixView::on_tuning_frequency_changed(rf::Frequency f) { - transmitter_model.set_tuning_frequency(f); -} - void NuoptixView::transmit(bool setup) { uint8_t mod, tone_code; uint8_t c; @@ -137,7 +133,7 @@ void NuoptixView::transmit(bool setup) { shared_memory.bb_data.tones_data.silence = NUOPTIX_TONE_LENGTH; // 49ms tone, 49ms space audio::set_rate(audio::Rate::Hz_24000); - baseband::set_tones_data(number_bw.value(), 0, 6 * 2, true, true); + baseband::set_tones_data(transmitter_model.bandwidth(), 0, 6 * 2, true, true); timecode++; } @@ -147,49 +143,37 @@ NuoptixView::NuoptixView( ) { baseband::run_image(portapack::spi_flash::image_tag_tones); - + add_children({ - &field_frequency, - &number_bw, - &text_kHz, + &tx_view, &number_timecode, &text_timecode, &text_mod, &pbar, - &button_tx, - &button_impro, &button_exit }); - number_bw.set_value(15); number_timecode.set_value(1); - field_frequency.set_value(transmitter_model.tuning_frequency()); - field_frequency.set_step(10000); - field_frequency.on_change = [this](rf::Frequency f) { - this->on_tuning_frequency_changed(f); - }; - field_frequency.on_edit = [this, &nav]() { - // TODO: Provide separate modal method/scheme? - auto new_view = nav.push(transmitter_model.tuning_frequency()); + tx_view.on_edit_frequency = [this, &nav]() { + auto new_view = nav.push(receiver_model.tuning_frequency()); new_view->on_changed = [this](rf::Frequency f) { - this->on_tuning_frequency_changed(f); - this->field_frequency.set_value(f); + receiver_model.set_tuning_frequency(f); }; }; - button_tx.on_select = [this](Button&){ - if (tx_mode == NORMAL) { - tx_mode = IDLE; - button_tx.set_text("TX"); - } else if (tx_mode == IDLE) { - tx_mode = NORMAL; - button_tx.set_text("STOP"); - transmit(true); - } + tx_view.on_start = [this]() { + tx_view.set_transmitting(true); + tx_mode = NORMAL; + transmit(true); }; - button_impro.on_select = [this](Button&){ + tx_view.on_stop = [this]() { + tx_view.set_transmitting(false); + tx_mode = IDLE; + }; + + /*button_impro.on_select = [this](Button&){ if (tx_mode == IMPROVISE) { tx_mode = IDLE; button_impro.set_text("IMPROVISE"); @@ -198,7 +182,7 @@ NuoptixView::NuoptixView( button_impro.set_text("STOP"); transmit(true); } - }; + };*/ button_exit.on_select = [&nav](Button&){ nav.pop(); diff --git a/firmware/application/ui_nuoptix.hpp b/firmware/application/ui_nuoptix.hpp index 8e6fd962..61865948 100644 --- a/firmware/application/ui_nuoptix.hpp +++ b/firmware/application/ui_nuoptix.hpp @@ -28,23 +28,14 @@ #include "ui_font_fixed_8x16.hpp" #include "baseband_api.hpp" #include "ui_navigation.hpp" -#include "ui_receiver.hpp" +#include "ui_transmitter.hpp" #include "rtc_time.hpp" +#include "tonesets.hpp" #include "message.hpp" #include "volume.hpp" #include "audio.hpp" -#define DTMF_DELTA_COEF (43.691) // (65536*1024)/1536000 -#define DTMF_C0 (uint32_t)(1209 * DTMF_DELTA_COEF) -#define DTMF_C1 (uint32_t)(1336 * DTMF_DELTA_COEF) -#define DTMF_C2 (uint32_t)(1477 * DTMF_DELTA_COEF) -#define DTMF_C3 (uint32_t)(1633 * DTMF_DELTA_COEF) -#define DTMF_R0 (uint32_t)(697 * DTMF_DELTA_COEF) -#define DTMF_R1 (uint32_t)(770 * DTMF_DELTA_COEF) -#define DTMF_R2 (uint32_t)(852 * DTMF_DELTA_COEF) -#define DTMF_R3 (uint32_t)(941 * DTMF_DELTA_COEF) - -#define NUOPTIX_TONE_LENGTH 75264 // 1536000*0.049s +#define NUOPTIX_TONE_LENGTH ((TONES_SAMPLERATE * 0.049) - 1) // 49ms namespace ui { @@ -64,48 +55,17 @@ private: IMPROVISE }; - tx_modes tx_mode = IDLE; - - // 0123456789ABCD#* - const uint32_t dtmf_deltas[16][2] = { - { DTMF_C1, DTMF_R3 }, - { DTMF_C0, DTMF_R0 }, - { DTMF_C1, DTMF_R0 }, - { DTMF_C2, DTMF_R0 }, - { DTMF_C0, DTMF_R1 }, - { DTMF_C1, DTMF_R1 }, - { DTMF_C2, DTMF_R1 }, - { DTMF_C0, DTMF_R2 }, - { DTMF_C1, DTMF_R2 }, - { DTMF_C2, DTMF_R2 }, - { DTMF_C3, DTMF_R0 }, - { DTMF_C3, DTMF_R1 }, - { DTMF_C3, DTMF_R2 }, - { DTMF_C3, DTMF_R3 }, - { DTMF_C2, DTMF_R3 }, - { DTMF_C0, DTMF_R3 } - }; + tx_modes tx_mode { IDLE }; void on_tuning_frequency_changed(rf::Frequency f); void transmit(bool setup); uint32_t timecode { 0 }; - FrequencyField field_frequency { - { 1 * 8, 4 }, - }; - - NumberField number_bw { - { 13 * 8, 4 }, - 2, - {1, 99}, - 1, - ' ' - }; - - Text text_kHz { - { 15 * 8, 4, 3 * 8, 16 }, - "kHz" + TransmitterView tx_view { + 11 * 16, + 10000, + 15 }; Text text_timecode { @@ -130,15 +90,10 @@ private: { 16, 236, 208, 16 } }; - Button button_tx { - { 64, 128, 112, 40 }, - "TX" - }; - - Button button_impro { + /*Button button_impro { { 64, 184, 112, 40 }, "IMPROVISE" - }; + };*/ Button button_exit { { 88, 270, 64, 32 }, diff --git a/firmware/application/ui_receiver.cpp b/firmware/application/ui_receiver.cpp index 1142eeed..d41c0b4d 100644 --- a/firmware/application/ui_receiver.cpp +++ b/firmware/application/ui_receiver.cpp @@ -370,29 +370,4 @@ void VGAGainField::on_focus() { } } -/* TXGainField **********************************************************/ - -TXGainField::TXGainField( - Point parent_pos -) : NumberField { - parent_pos, 2, - { max2837::tx::gain_db_range.minimum, max2837::tx::gain_db_range.maximum }, - max2837::tx::gain_db_step, - ' ', - } -{ - set_value(receiver_model.tx_gain()); - - on_change = [](int32_t v) { - receiver_model.set_tx_gain(v); - }; -} - -void TXGainField::on_focus() { - //Widget::on_focus(); - if( on_show_options ) { - on_show_options(); - } -} - } /* namespace ui */ diff --git a/firmware/application/ui_receiver.hpp b/firmware/application/ui_receiver.hpp index af70e018..65523b59 100644 --- a/firmware/application/ui_receiver.hpp +++ b/firmware/application/ui_receiver.hpp @@ -338,15 +338,6 @@ public: void on_focus() override; }; -class TXGainField : public NumberField { -public: - std::function on_show_options { }; - - TXGainField(Point parent_pos); - - void on_focus() override; -}; - } /* namespace ui */ #endif/*__UI_RECEIVER_H__*/ diff --git a/firmware/application/ui_script.cpp b/firmware/application/ui_script.cpp new file mode 100644 index 00000000..bfd68a30 --- /dev/null +++ b/firmware/application/ui_script.cpp @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui_script.hpp" + +#include "portapack.hpp" +#include "event_m0.hpp" + +#include + +using namespace portapack; + +namespace ui { + +void ScriptView::on_frequency_select() { + //button_edit_freq.focus(); +} + +void ScriptView::on_edit_freq(rf::Frequency f) { + //frequencies[menu_view.highlighted()].value = f; + setup_list(); +} + +void ScriptView::on_edit_desc(NavigationView& nav) { + +} + +void ScriptView::on_delete() { + //frequencies.erase(frequencies.begin() + menu_view.highlighted()); + setup_list(); +} + +void ScriptView::setup_list() { + size_t n; + + menu_view.clear(); + + /*for (n = 0; n < frequencies.size(); n++) { + menu_view.add_item({ freqman_item_string(frequencies[n]), ui::Color::white(), nullptr, [this](){ on_frequency_select(); } }); + }*/ + + menu_view.set_parent_rect({ 0, 0, 240, 168 }); + menu_view.set_highlighted(menu_view.highlighted()); // Refresh +} + +void ScriptView::focus() { + menu_view.focus(); +} + +ScriptView::ScriptView( + NavigationView& nav +) { + + add_children({ + &menu_view, + &text_edit, + &button_edit_freq, + &button_edit_desc, + &button_del, + &button_exit + }); + + setup_list(); + + button_edit_freq.on_select = [this, &nav](Button&) { + /*auto new_view = nav.push(frequencies[menu_view.highlighted()].value); + new_view->on_changed = [this](rf::Frequency f) { + on_edit_freq(f); + };*/ + }; + + button_edit_desc.on_select = [this, &nav](Button&) { + on_edit_desc(nav); + }; + + button_del.on_select = [this, &nav](Button&) { + nav.push("Confirm", "Are you sure ?", YESNO, + [this](bool choice) { + if (choice) { + on_delete(); + } + } + ); + }; + + button_exit.on_select = [this, &nav](Button&) { + nav.pop(); + }; +} + +} diff --git a/firmware/application/ui_script.hpp b/firmware/application/ui_script.hpp new file mode 100644 index 00000000..24ef7283 --- /dev/null +++ b/firmware/application/ui_script.hpp @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui.hpp" +#include "ui_widget.hpp" +#include "ui_painter.hpp" +#include "ui_menu.hpp" +#include "ui_navigation.hpp" +#include "ui_receiver.hpp" +#include "ui_textentry.hpp" +#include "rtc_time.hpp" + +namespace ui { + +enum script_keyword { + STOP = 0, + WAIT_N, + WAIT_RTC, + IF, + LOOP, + END, + TX, + RX +}; + +struct script_line { + script_keyword keyword; +}; + +class ScriptView : public View { +public: + ScriptView(NavigationView& nav); + + void focus() override; + + std::string title() const override { return "Script editor"; }; + +private: + void on_frequency_select(); + void on_edit_freq(rf::Frequency f); + void on_edit_desc(NavigationView& nav); + void on_delete(); + void setup_list(); + + std::vector script { }; + + MenuView menu_view { true }; + + Text text_edit { + { 16, 194, 5 * 8, 16 }, + "Edit:" + }; + Button button_edit_freq { + { 16, 194 + 16, 88, 32 }, + "Frequency" + }; + Button button_edit_desc { + { 16, 194 + 16 + 34, 88, 32 }, + "Description" + }; + Button button_del { + { 160, 192, 72, 64 }, + "Delete" + }; + + Button button_exit { + { 160, 264, 72, 32 }, + "Exit" + }; +}; + +} /* namespace ui */ diff --git a/firmware/application/ui_transmitter.cpp b/firmware/application/ui_transmitter.cpp new file mode 100644 index 00000000..5070902b --- /dev/null +++ b/firmware/application/ui_transmitter.cpp @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2014 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui_transmitter.hpp" + +#include "portapack.hpp" +using namespace portapack; + +#include "string_format.hpp" + +#include "max2837.hpp" + +namespace ui { + +/* TXGainField **********************************************************/ + +TXGainField::TXGainField( + Point parent_pos +) : NumberField { + parent_pos, 2, + { max2837::tx::gain_db_range.minimum, max2837::tx::gain_db_range.maximum }, + max2837::tx::gain_db_step, + ' ', + } +{ + set_value(transmitter_model.tx_gain()); + + on_change = [](int32_t v) { + transmitter_model.set_tx_gain(v); + }; +} + +/* TransmitterView *******************************************************/ + +void TransmitterView::on_tuning_frequency_changed(rf::Frequency f) { + receiver_model.set_tuning_frequency(f); +} + +void TransmitterView::on_bandwidth_changed(uint32_t bandwidth) { + transmitter_model.set_bandwidth(bandwidth); +} + +void TransmitterView::set_transmitting(const bool transmitting) { + if (transmitting) { + button_start.set_text("STOP"); + button_start.set_style(&style_stop); + } else { + button_start.set_text("START"); + button_start.set_style(&style_start); + } + + transmitting_ = transmitting; +} + +void TransmitterView::on_show() { + field_frequency.set_value(receiver_model.tuning_frequency()); +} + +TransmitterView::TransmitterView( + const Coord y, const uint32_t frequency_step, const uint32_t bandwidth +) { + set_parent_rect({ 0 * 8, y, 30 * 8, 2 * 16 }); + + add_children({ + &field_frequency, + &field_gain, + &field_bw, + &text_kHz, + &button_start + }); + + set_transmitting(false); + + field_frequency.set_value(receiver_model.tuning_frequency()); + field_frequency.set_step(frequency_step); + field_frequency.on_change = [this](rf::Frequency f) { + this->on_tuning_frequency_changed(f); + }; + field_frequency.on_edit = [this]() { + if (on_edit_frequency) + on_edit_frequency(); + }; + + field_bw.on_change = [this](int32_t bandwidth) { + transmitter_model.set_bandwidth(bandwidth); + }; + field_bw.set_value(bandwidth); + + button_start.on_select = [this](Button&){ + if (transmitting_) { + if (on_stop) + on_stop(); + } else { + if (on_start) + on_start(); + } + }; +} + +TransmitterView::~TransmitterView() { + /*audio::output::stop(); + + transmitter_model.disable(); + + baseband::shutdown();*/ +} + +} /* namespace ui */ diff --git a/firmware/application/ui_transmitter.hpp b/firmware/application/ui_transmitter.hpp new file mode 100644 index 00000000..73e8ccc5 --- /dev/null +++ b/firmware/application/ui_transmitter.hpp @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2014 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __UI_TRANSMITTER_H__ +#define __UI_TRANSMITTER_H__ + +#include "ui.hpp" +#include "ui_navigation.hpp" +#include "ui_painter.hpp" +#include "ui_widget.hpp" +#include "ui_receiver.hpp" +#include "ui_font_fixed_8x16.hpp" + +#include "rf_path.hpp" + +#include +#include +#include +#include + +namespace ui { + +class TXGainField : public NumberField { +public: + std::function on_show_options { }; + + TXGainField(Point parent_pos); +}; + +class TransmitterView : public View { +public: + std::function on_edit_frequency { }; + std::function on_start { }; + std::function on_stop { }; + + TransmitterView(const Coord y, const uint32_t frequency_step, const uint32_t bandwidth); + ~TransmitterView(); + + void on_show() override; + + void set_transmitting(const bool transmitting); + +private: + const Style style_start { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = Color::green(), + }; + const Style style_stop { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = Color::red(), + }; + + bool transmitting_ { false }; + + FrequencyField field_frequency { + { 0 * 8, 0 * 16 } + }; + + TXGainField field_gain { + { 11 * 8, 0 * 16 } + }; + + NumberField field_bw { + { 14 * 8, 0 * 16 }, + 2, + { 1, 99 }, + 1, + ' ' + }; + Text text_kHz { + { 16 * 8, 0 * 16, 3 * 8, 1 * 16 }, + "kHz" + }; + + Button button_start { + { 20 * 8, 0 * 16, 9 * 8, 32 }, + "START" + }; + + void on_tuning_frequency_changed(rf::Frequency f); + void on_bandwidth_changed(uint32_t bandwidth); +}; + +} /* namespace ui */ + +#endif/*__UI_TRANSMITTER_H__*/ diff --git a/firmware/baseband/proc_tones.cpp b/firmware/baseband/proc_tones.cpp index 59ade4be..003d1607 100644 --- a/firmware/baseband/proc_tones.cpp +++ b/firmware/baseband/proc_tones.cpp @@ -82,11 +82,11 @@ void TonesProcessor::execute(const buffer_c8_t& buffer) { tone_sample = 0; } else { if (!dual_tone) { - tone_sample = (sine_table_i8[(tone_a_phase & 0x03FC0000U) >> 18]); + tone_sample = (sine_table_i8[(tone_a_phase & 0xFF000000U) >> 24]); tone_a_phase += tone_a_delta; } else { - tone_sample = sine_table_i8[(tone_a_phase & 0x03FC0000U) >> 18] >> 1; - tone_sample += sine_table_i8[(tone_b_phase & 0x03FC0000U) >> 18] >> 1; + tone_sample = sine_table_i8[(tone_a_phase & 0xFF000000U) >> 24] >> 1; + tone_sample += sine_table_i8[(tone_b_phase & 0xFF000000U) >> 24] >> 1; tone_a_phase += tone_a_delta; tone_b_phase += tone_b_delta; diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index 75a770acff1d2ebbe52096b15fe2bf647662e4df..a5024266caacdcf3628684666d01b752d8ca1c07 100644 GIT binary patch delta 101290 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 UK>r6;0%*fGBuVw)ot*mr0MJ#f@&Et; delta 100084 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

NBjI`>Q(W|+rfBT%!S!#90M$l;xaX) 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%0Df?i(RNk2g^4-V-k=;fjR2mJ&xht>H<=kzY@ zr`N<-^=lB#eN7ywN@Cq#7kg)L;LG%yXPn`fqc=OF@L%eT!{KsKSI8U3;Zs5x#A|Lg(Q$Uk(<9UJi3ot{QEKmIGi!fU*ZuU(vEF&_h8{_l4nj zcOsLCZ-5fR;iMShm{wOljC|_l6JU-IEx*+{(kApe3#V>+l=c4izDBsT4 zxJ^)*l;p*sGE@8s^;RKyvBnagmsDDxSTEdp=V@+o(j7CEJ05k%IN}w)KuxH=b4uu zG)J*9+Fyv0dwAn)EmNBLm;RMI=%ggbPlFQE1z)2PjwIg15xfuk@=fuk(mR~0)bIlt z&{%rkZ^Y&t;m&n9=1B7I{`9g)hk(y`n!n{wMvfbZBN?B|5KMDU^Ns#Wa~InWU_kd4 zsQlM{HmLzpH!IoN1~I!rfc&(`o#cwO!4LbyL;R(Tz!4~h31+?RFcw(B9F0)pIRxqFg{d|9FiF3IEODOXvFzSW z;tJggWo$WpHJiocfsZJW(>_w9gc*MH9qEL8fTg(ekEW~+N58Ic`+XU%A~%CFc-+et zZ5F3lqUCPB$wI%>mkTsMq^8ys2#2}~^HcIL0e*FQ!~hDtWVE77P1l<1 zY7%RbYLaWBJwjztBwN=LO8I@(OYn0;P>!iBprCnLDvs^Vyjdc4<5)$qu7(4MTH}hj5F!_ zF;9FIg_WL0-I5*gwavWHZC7$;c^oq+=YG$`fr3SsQFLfd(I|6$VzL|{V-%Wegikua=eVX3OQV&v3YKgJX15VkU(;VkEWSbB z0f1#bJ@yYbE8Z>+(_is^VC!P?Pq1Ry#%ZZ)yO;|q-Iv?N;o_gJ6k~azB;$0We@Dzy zkA*(YJK}Vh`*{xHWt8G^G50&-D6=Hr1UHW}lG4|9eYwj^X={3}+180#6Adj*X5Rrb z4cO&ez^{O6)FPDyg7ciF3o#}N2NF@^y`L57SnUaK5@7+hoOFe1JS zjKByBhdfPKT{XT#g(DUmpEG=zXNWCrYuGv(1%n}rMkn<1{7r1!4*1p0u?2IoZ6mUc zQA!s132|_Uk-aO%-vH7_U3&d^;F{^H!|HA=TRo>&y>4|cTvwMl_!Sq)@N|PLTYWi% zhWH=OF_31{WSc5sgdc0_Om^$LqN$<^y-J^o7HZP$Y67FBWOZ6(Ll?og=iVc`SK&)+ z0BG@rq5uW}E#_14mG&dOeCu}!dPA!v_mYmbbu?-0bT$bxl>H+ zHr>@->3sa7^HY#_j-Q02fP+}7JHb*t#}6ve5?3PF7oR!1;EUCR7e$l~T1iL%RrNaX zW;8SkLoor62vBXsOCT);*J*$Zzy`eFRHUKDg#!qe0H$C_cKm4f8mJ&-1My%|m);nnpCe$czR}w+{eNt5U?OXlI@PplP`i&;-zZ&eXd_b4q93gdjdYB|u_V z5|sN{-fpo*-R5S^yJ70|CC{89Aw8j2hETs;yLDq_dgaW@)0JU$T3Fd`=g&h_pZvDX zF3J#AFHac$YGo@*%&N?=YQYn1hZ6u=>4ngbo|I*hpDTsf4HQoY)B7Y&q zhFvWc{M$|m*P^CJU{vn!aaW60#6T5z|cwLt+SCMVpVlnLc zcxpSB*gbn;uW2eyE~ba2z~O93M#?Xcr4=$Fn=(@F zD`|$Xuc{t70~Qsks((G5k)oI5oXsGpYfRx)s@h-pWk1V&4?Dio$Hu-V4jW(U?5aqE zrMpx@zlJDyX-L`B4_IF+;%3AP0+iYV5*kr*3jCF~<0KVcZdS^8UHyPrLIKCE*^yC& zyQ-sP5oD+LL~FkdFy7bg8TH^?VNPYg%69&aKU@gj^^L3FmK-4idZ%YFIjQy|J~r%q zF-^6Y-Tl6J-SnkciGxL7amB9dx5X?_(RE7EZIF-+t6x)OZYUcShR3}Dua!~qMqgL_ zulGrHTI7|D(pF!8dJx7F7?tQzV?NnRoDSQFWFPUXn_(q0lO28^xIrB2_AjxgI^bmm z{{qcT2HEjnumN?#$yWbM%&>grj7BBICnSDh#}70HU{9o{(as~;v44p-YNO?z0ha!O zSfFj=?f{$n0kjj+0*~SRVJ&3OBQ|s+n4DzmUj?HqgS-*@qA(|^!gy3hdKKVZp}H!} zp*xo!Ualz~pBT3zaz`6~g|&Pjc2_rfYxao=rfBfwbD_ks-)ppu8Vq}i(|QY8;G;*& z>;0revx^PdC-$D$8_VDxwtJsA9xt2YXHg%DW?XR}%lS|ore5M<^F9=x1IlqW!2BPI zX;FSpqR9x8F((6pksbd~v8=W~z{dPrOe_95l=nXJ;Am-A_4aV|XaYEo4sHmjsz8%E zkO$j0buiwViGIrlt~S9Pg|QaJ{@^#k2uM@|G+8|CebiPc$`66b5>>C?q_IcW7ut1D z{+Jo)ZBwratL|;far8z_Gq2VpW3+bE6d$UIF;k=16OAtnu+m0M4tS=Y-zX;Zx!I#f zN0xeY_`k`cG7|ZCLM*iG&>imprr->-0HLZ;&Hh~)Ih7gqi{gZ2WjbHG1RdsMJl8Hk zgD_c*cCfm^VTzJ}b_F?1QF4p>KR8VD_KRIdcX74OHVW%tdV5{|ix4|G1*RUQ98yvm zl@yJVlGKCBv?(cWCzZKVNr^-XkwY-loA!$dqua5uyvX7?}(FCb-E zDCMAX_aWu(_d<7nw3#q4ODLo1Y&rIhkkxxG5iIsIvA?Q<<$ne_w%KgXXJQ}K z1jZg&nmGY0ruqQIBhIcVm$(E2j$(V z#KPgMnqqc*B}u*rdhZuvM$cj;_LG0OV)$d2jf|hX53<^sM2+bLj7l28xc>($`$8N# zV1cWbQi!afZM46DLT3|Czyr)GOB@WTo}GAZYC8^7u}&tTtwA$F;F z$+!7`EE0pGxe5s5Mrc8hjoaXjEcguA*nZ5zPl1{u zT!nByLi(kKWY6gxh_ZNse^=qzpwJ1A^T@#R(3LiD#nR>G$st=Hl049V6vz9?!cU6i zuOw&rKT_fwLh&?zgA%_t6i@MoU)}#jc_m0t^RfL?<2$qNsX>NaF|^L_4E)PP!r!7? zLB>k&@7e}i6dh=cVOL)HAJ934P14!NBX6%b1P{f3Uoa$jMklLck{lkgDkjO1{|BpL zV@Ld*4j^OedBFPVcAEA{&Oo-yOEAn#@#`~Wx$whty@<$>rVE}(>9SND}c0R*PDJQ*D?u3`_I_jl5 z4|(YcKYJIKJ{)XX1z+w8zT0yiRjRgk-cf2_7TT8($im~I=bAzuqMT7Uc&6{YMScryYPfeuKFNGSp-!~17l;mBAQ`I0#(pi|zA{MM<=MpRG* zQXqYxG-ozG6s<$a%7@AdeW=l9<*`+1rbX?Zh|MrIGvixI+_fxsdU!pWx#lx0?W zP<$ixZ7k7}JjG*ygB1Y=v*562_?*fp82xZ^ICRwiBxXjeP|D=88-5ZiRORg7KjBn+ zkp1$L*yFmOZk5KO1$!_{t?1`xCqKCc2 z9{5@8g=n)9UB+JjS?nF*07*%b?`1#zEcQ?Aj;-?+Thy9W+2`$JLT++T@M$iV@(WDZ z9(2R_D;)ckI}3{id5~ghN~m=~M>elifTbxXjKr9Pk+}c7eI)L_04KXA_)r&{_luZV zveg|?9|hMy10jHX-aY{NlxuS7>vxpDYmcedul@}Nb$++UtUk_bLS@NS?|HbY-(n{n zjux!Ek**DF)lqOik8=`p2tXRx7;-T$pwAZ{e<%Ogx4+*MJ@#7#O@9z+j{+(ITfkKw ze?%iJ!}SY*b$~YjZv*xM_5;2G(03!6k?DId#J+;nOd!|B4G}^%;+GL$@+0`BkzWIq z1uXcQ&1)8uuhT%}BS?>Q@t@p5dgSkXJGf&oRqu_=_`_XHG9m;+bDOaF;$3}#)|KTBVZpA`{&qHFJzw;?qkEqw;wTJl2*KmC# zd08i}4_X@H`bcu`|HAd@8sY-(y4rPPTrbi}SdLySaXn*+ft+X1Kq<(S&ML}6PL#`O z5lbf{C)mGpJDK8&l{Ki5amB05D06X@a%d- z%)pejVakefGYcG1X7B(d+Q|AJ6}u!o?lvh?j(k^dv2R3uEqJ4k{I4q$CFM9D=p


uAB0R!?MhKldXZW@VMgAJDJmrjXTXIrw6bd{2m(xLV+5Pn;0D;wsI} zYER%qO5|0xH+Y4#=HQhUa-X>B>fqk16eX%znC-y)XPFMMD0~*ICRAR}9(0HqY1?rP ztS>M44%8MY7r;JeR_3b(S0ZQ<4$&^ zMa+qCz6nQQ{#d7ys;Pgk3E25P)FN8e ztFAubug{T>@)xeA_dqAAjK=vV_*Vh;VyieZXIfzW)bgTZkaj!Hmx73;Z8BKOi-hXm z_&$G+eL`MLp3V&2<)gsx0VK`8=cqR_P0g&Q#PA876+R=&g>r4Sn~MrMZP+Ctp7gMr z|E7FGGKNC==lBlgZ93v-_(GuD(5$AGtv<=Y3VimIXjaF1*tSz*a=H!HfnmG~Jj%}Y zfdhPqx5GZLlb?kI8p_7nuv(I^PSEg5fZJHoX)#-^_Oj8ZMPuTAjD%~K&SswKVM|ZL zK%Vgf_Tg!_X z-dU)shfSHp0RN3iXT`qe^S;-x`dk4g)CJ!6alXZ)$tr9fYc>k1Ey?qL;x;FnbXK%h z%=X0H98^C079~_oh7!SHC?Qtx3?;5dT(88*Nk#yKDA)zgQa6jXX~Ka?RQs1My3fHs z_1&-Zq~PcW<73$>`Q2ne=(b02+!&N8iLhzxbXXpWP6)G&vTmFv%I9M-2#@h9Y?g3K zkAh!(#gfm7IjOOo3Vp1UDObuY50;sIPJB%b10{y@5a4X*0awMorW@Jd^I}%oCB>__ z0B?iufUg?h&ntc2TcBO~jPriXd6azmJp3vg_OK6dhuQ`gpy$O>v5k)cI(Lfi_pp%{ zz%**bB*M`MYSa=0rmVtjdl~e<+xZf=p*R3cfrQH1U@s?Ih=v!&R(lk@Wzy;T3J^DX ztLvTk&{$om&4wbFjsqkDx&vs)U2ehg_k>!RcO+@KVY>#-EXRYbB=j0!AHaUR03zqd za4~*CY1{|ci%vnphK;!hX^1}p|E*~*7d7n(5P_*_lm4S=f5PL65j^`{GzQT$>T+tD z8PE%m6>3@wnzkU+G{IuUAY8WHQcPZA7Q;PXY?F$$UlbpTdsyk=u6~l@r8h#)&buTU zyOsw??IOTO13d}wb=aG|{B~IExC9Qz7wr2>Vwb2-Ll&ogO!|S2ySN%_$+4Q^ppEf&G{*LiVC3mHt zUHMgg$1uuU=Xp}FM}I-A;4-cixW%7qW3bOIbuSKFCT}P z8^T!h;@)P6zTr9>*X2zbVH~c<;W``T2Lpx!@&GcvMvy1ZhW#e?OY!*QY7@55(xHRA zir8zBE$%InZSe7aPPX(n=$}jp%os!N*_(WHbfmZOKyIOPd<(Q2@3O_=q;Qw*n`}Z{ z&cS+o26|DCGe~rO+?x36J79SBy!{RZt@#}SA(R_{c;BtceYe^!DEIxwefW?^`ESU% z1vw97pRd5-B@oK|Rmp5aW+^fcp~8}@c`Zub&(O&9^LKsPDoD#k=hu;n#E$s3{Mk*rt?EZy!?>e->x!{9k1B?IV0t8-5IP(e;U$ah1whgg=$iMguvEgU7$~u+_H3zD=p~7&?q4{~;#Nyw~gClQD0# z>)?M7D=o1d>4VTlLPODX5=1L}v<+uLIL7rj86O$(1*huy!6qG0_R=uky7D4O#_Q@L8psnp{G+`bd(#s$6(rq zWTFr9WV{}g4oB%Owp^4>KxtvEy80M@%nchKb1l==t6|||E^L3SE}MRoU-qzmf5IP# z)=RcNn(#LCCi~Hn187k`-r}-@P5Tq1)kA@PXi>QD7+>lmPNo-6rVYfAh{L9va9s!X zmU(V+`Q%8191B)s+PzNl3Ah5i4LJQF>&dYJ>rq}0cHc53&yW7BvLqw#fl%H`k^%x+8BF;2A4DafCK@F;&6 z6%hhQbBSv9dItRe~NhX2Cx z%!MpqS6^q2r{OBc6DE?`Iasw>5Lsr!7Wm#^qU(QJ{Ery0&uc5BFA&EOe z5ho%({c8LvunWnPK?~Ms_MBTBsQm@2Hv7aa<_`OBt_6%BZ*=|<7OBC0nu6}WO#OwP z$he6O_J|`4NBOr(4;@z07vHq!NssuV8m2rxcj+2*@=^G3*2#zbda$_~i)KI12Kzx| zZ{v{7EBAvt)W%oAxTas6m-e22zGCzjhD`@$06#g&$+4fx)P%2B2r~>V+yI7X09u2+ z5Tkrpvl0kNcoUlpor_!eIX9adK&{8IN3+!d@SIFO_8n4EVtffDKl0VEG8felZjJ!e zFDR;a3bq;7Mo9y6h~z^?r8<5x-uYdqakTK&SpQr2KmFocx-H>fgntYHF~s+HcP*5v zRO;P+rd3OJ^`{;-Q!O>dP4ShM9OUmgRVfGg^X`K@%g1sx($b1-^yy&0OpqXkBg_Nb z2&i-o(Fnia7oKOz*EA+S9Nx7AeShji)Q=!95!tB}W#%I7W`vOl$0M8pxDT)dPz`t! zunn*q@FCzc!1sV-02vS{)(#b7adRFZ4KNsxiHtPB2a8zV5X5f%2nm2z1P zr?|$qXLgv>Rb{4LwxjY{0D3EW+eLtf0U+-QPn57%!=)ETw(whAWy^tqEZ0`Iz|)?( zN+|EO{I%r{KEOY_DDK%Pn2qXD*7h9BSq5UiNc@l%d}1tIV~lDI2$aGfOUF=SAagQ zt@}bz)rVXIOp~hNsV{8R5&j!yNTeckw;pfX@x7_b>CH)uf5D$vB7YB}Xn&1ED2r@A ztKrpf6)8!@$>FXZXa<>-)xn;}aA6b-cxkH7LR*P_BS~N>193ac$Kk+%SShAFXjCS+ zEL2-GwaLN^du+8~O)K2lYwE++C073c4o$252W<5)(+-;Pa3Q&_QE7a)x@0t-tjBjl z^o8=x|;2 z6)3B-yl5#wdxej7vx(8td|fpp1rEbo9czk~y6VVt)nQmZP>U?*rBc zU}uy67?`hwzp&UCsY{~P(?_Y8Xpmd%PWHLKg|!{7rA6>^o5LtvtbUhWA0!%N>2$|mLbiuj)EK#Hxy_dLvJ`BxY#g>ZSe zdxe?2TVZj5P%^vSAk~c-hc;xR4Y3HvAvDku(n)xewu7LY%WKxd@Z@8J;Y2?tvBeC; zWrT-ePB*wstS@0BW2G#pF0XPOf$4Ypk`8qE`|k6WT!m(51m*Jx-{C%P8KlImN_?~X zY^dbx?oTcKm7EF4In3YkeX8U@3c$0~lG!O|y^qEn$vkO1Ou71#?{+;!S7AuZ_pnQ` zQh5sLGGQ~q7gcs`V9*^qIgW!1b!dg z=?4xT?_}}*|{vxoJ!<^hlgX&Par=W|ZSE*m|v+-T=lDB!;XI-V5uC&Pzcc5pV;P1Z0(Nn*}(Hk*&uq<+!FFlx2if+r_Qn zs|bCBxScb&j)y^PBgw4^t>Y)4lRLX;_21TUElltwmY?ALd@6Xl_<^5| z6{ucMVfpMPeW*PHqtYxZMKbEf1(F*M^M5$mgcNB~x>1Ssb><41`sB^Y)kkpF>t21> zHU(A+4)a(gH`U1wrby#;ZT{qjLnLb0ue&ros)etG(0uaNR_s&kPp2hTU97kS36SpldIh9Qg^9bwUgbEDs@*!2iSwDQl|cM z#nGWRk^F5yB5PZ!WX|G#wK;iPBvi@OwehQys~6ehYEJS|E_J=QF1gwcHr(&_yKV2< z5A$bz%$q7DtG#}f*h4aFkMLDaHnNA5sXfWnE;biw_T>TNqT$6JxR9_f8j7$AHY3(A zN`%;hPR?=aze#{u$`9c-d!Q|u{SM~N`fRH}b*K4;3n_IC%0AJ(E(QAp8La8P3jAR| zY2VP=)xz)evP(Ur^ol$Tk8xc!f=W+H%K!U;H6CRfmwpy^9YP`TSW-8HsQ?q;18k8! z5%va5#7NZvHlW^o)LVr#Vf~drXdxByW5Ma6=Ls5CZIo7}u1DdHMa;Qt2#V_lXzWM% zCf8vYB4h<7XLt7Yb4z7$8fXpEWGX;_ePJrN7yBM50>d=TLwUX6O3n4{Dw9qUeL9b)(2EylCK zW@%w~tM~qWRvX)9mfFA_yU`hOm4t2BwG+?$1}g_EwM7or9^{w2tj!`Rg`6 z8bmyR2>4`7a8`C;6AC8ZJE~bH9N_PP)SV`ob4X4i24xcfsQ}^+bpFvj)_IwnE*aJP2C}$b(gd~E%gTF6 z&xO<~|b4?&GzF0Y>i8 z2yFi|k2H7r;W1~Rhk|5h|L&(dNa|QypR_rt`XH996#PG@ zN(MCy#I?q=yJSSea2DWx_fFfclEQ|#Z3Rf@?ssi*YfCpjVBcj=!Wp3iX%Bb?qzDma z1L$84emBs@ld#HO_*OI{_I8+jipBPmx>UTXkbRrn_U;SeRxfT{02^XHh(lp;bX0CO zfWOw&T!%7~(AItKx2M*kwJ=KJR#{ldoU&fH-T})bam*?_1QQ#5X7t+(DlE66ukW$K zqAVUCu!dJT_;pGH*0_5$gvlHHM*Ndyv9Joc-oM?ltYiQfcy;ik6;RBwt1RzXHRd=t z84Xzb2oY5$pua^;TIRO`&21b2uhRq0SB7CtZ%yo9IlDYbL3vN`+x*1)C&8!I#QQ2K zHM05-pv;6I6QQFcRYdA5@OIy)GHzd|WC_Vrz~kyKrD+fIN+gV6CBVM|)`6DVlILlm?_z%Vaay46iqTwbR@QmY%eyk;?0 zDWc+0KRH-{VgX2R{c+zU)?j zDOn20aDUcqJi?~QpI3C7gp0-dKJPXS;cP(WhhKJEi13FVUv=9JS%61y{S@Fiz*>Mz zJ42dV*%>$RW(mkEp-AvRSbq^xS@G2m?s#0#Cb541HY`12t+=CBCe>Y9~(E~Ty; z_PM(-0PR%V>H7sAtOXmL1LkQ>5G_qwlU$u{Goe4yulC0br2_AOL$eQ0qY9GdWC+P+ zbbqsNg|Sl5%3ED4%tK-KD;&u9gKR;z6kjpLy#iln`feO$e#XGhQ>ru7|4qowI8_?OS5UxW%&~Ipnjjn|e#&NDg z@KPL9r44{OxX&^mh)WLwn%&Hw^wEGMCVIR3HA~;CXm&GyK;iXJPP3avxFhj*I0a+F za-_`S+pxRcgI)4C9E91s2dvHfF{JE7+)0Etp-X8M=x*Dshqx8HVLXJsucBlt?_Ixr>DphHl zaPDVugQdl|8s}!u50-wu{VxCijK?42WBmUc9)FCFRCoj(dtwleKL$z!dw+Y? z0;TKN5)@ipZ;-KMJB zIKu)IseRVrSt@hofbj+0?UU@J#CRM^OlouZTM;$1y=%8=B3Fkq^;!qqytCrrk~OE9 ze}ye6sFJUP9Q|GlK2;8swTAv3uLv4SImPdHvdzOKyXr8LMo7c^je>y$LY=iho$sr} z!U%s$zr#}T00ngp1A`=(8iv#lL7f^QP1i|Sl$&{?lQ~9!p5VoL-pnJN%#T>)MZ|uA z!2LM(_M?&4X%F!=E|z<}lv3p2Q6N?omKGLAt&Xm)v>egstMg%9E~eVenKNpu@qz2H zfYv$f4-7~6vQs;7{UU55SW3eoilhG~s`fC6m)Bh{)s>FLdlH&T=;}APCN%ZGp}Ox3 z(+Dlu8eu!iRGz(UFrlmKd!`HP5f5Ugd!8666{ysA_}ND{NMlBv_I4bfj`2I9# zAco8m@}-#-K-gT(u<%BbEVLl(a656@CRrLfp*Ld}`DZBSbvIeYOhaCaf-L_6cT7P< z`WWzsHONc7ibz9j8hM0BA5*MPAGH3)cLCQL1-xj1=k+mPaY`3P{)m_rB?N+NUaVwx-AEXcavTdTfUO)`{ zpL-LMVDQoJyT9N0oqOkT&Y3gMJ9B16XlS>;J%QBlLh}LpqWeiQ&z4p<!SL6JqNcYw@W!XKnM903)Oir4l;;XRnzRIUWO#b-<+{vmvE6uv5f`NLRhUDP?!>}UBCcc?+($ZX%`UQ?Q1X@R7o;+;d_&G{(egZF^pr^K&wD_= zpFO@2hiS111~&HeXz_oQOZPoMo=~hTj_AnKCE+prHw; z?l9k(ZS;{zWY&ZxjELBGYFp*KBPz>L-^M^OkKy)sH}3q@rIgEcFlvWK>fe#cY31M7 zN}p@59T%mq+P4>wgrpbSGr3lHMpy0kc}Bx?0oExB$SPqDa-@JHMs94cm`ZhgucXK( zSjW@z1!S1+l`Bos%U9Uq6l1LG`1v$uqMC}yC&i@$m(9+e5|1VC*_f<+9;c`@N?$;f zgk8UvJLW#S63{WTiON3KMp)ic!(@^;?1UUbIa4(>#C=F^t8@X?Bx(oxDI5$wnIzz9 zYDTd=b7$EuBMX1F409(&Mp1=oPpxE0L=`cMLALBn`sm#hCpuRjE_r0I^jtIyZBk zq(-)^?Jr=)o;hL7<=|y*Ea}vQduny-v37_VM4Av#3yPiapMp638DPHu%HoD3m43!H%fWHDCHm(D{I9+ zRFH=V@?sp_J{2SAH<`73OnL7$NjeDAE;kA+aY{%2p;U}(JEoE31uu0BI(o*pRCZbV zMm9#wA6alRU>xUw4iTbLk}z_mB}QpL45T<5~|n6CmWuB-z0 zZDm&EpJ79CY)Z^4zp8Xo=X5f(&k9)QM7V#rdIp}%MnHn?e~Hq;Hc9`{qVB>p4#?^35QaUaP(UXKpN4;rJ zFiH+@sf^$8MvmU^tKE_8=!=uAc3*6b+A#>Vy8*R(3~ofYYYK+IQ~qkGhK^jQ4>NGA zfF5fMZ=={Mr(RT`DhF5FI(!=dth!n!Vfg+4{*|U;rGUKyT=?dC2WqOZ0F6G}{ZF7@ zX_Oq;wx;we3p>wL@JLx+p|`JNiEEWR7IUCuX_S5lb0;=-3doDltd}u?nS%-8dy<2i zg}By6{C}_l(VTQy+Uwh>a7lWx<@1y~JDY_DT=9-$a^$LCgAwklvs3PX=U?P@p#dl1 zskjo^b1OXAp*0>U55t2x;A6l#Gz)C{r00}La#PR~p&Bq9$(jJB%|H`C+h&k*SZVZc z!--Njv}DzUq4h}>Tv{Jz8kRMCwb9C%BrWz|(yA6=U@vEM0hx3LTO#NiGckUsFSLI= zlL)-8EY<0Q?4Q!qJnrIWI-^I`cJ3 zU;_q>?D$ajX2D4GL6Wa(kc|m^KMN^rQzu{53kGs=STH<;pAfpRh-9$&+8sq?a%6*a zcMCmVMApSTuW-Y89A|L54P7ytd~E*n^hjs0REV&;s}n z@D|_{;A?;fFjj|&P{07d{eY2xX#lp=%pU1=!g0xX-&&T>A4n=~!1yp~VBaB5cADu! z>zm3R6MpDB3}%ADm{Sqv5C6LayOXNv&|MPlR#Vm{eIRYuG+ zo|ERZP=k?-6ehLPEk?{Yo|6W((9=eFwuWGN$B5Y)4=ifVO5bDBl(pVUg>k?BO6}kS zyfu>hWkK}*Z=~rR(Ws4>TJ=U9?1@&KOBwj5!3RtQkuRs?xU}JxZ=@XDJDG^Nt+w{W z1Ndvh+e6sKd{%l3CUs|}zjqAYome$wci$>*xKKa0l+T!JNPCGLXz(dLxPS~7MC@f; z072Ju&|bwvm9?~k5lg%BKVPa|83O{3b_~L|yDbSMOFH`E{hPKlywC4o6KbF1R5SGV z9duqXem8MJ%Bo^ARbaMG#bm+&ub25=!SB^s30L~bCQR7ZjzTqRIvu%?EEizzv2P*y zb5?WP`8$`Ey7ccQ^)EOH!%}us*SAR~16R#gak~=>lAiqRXLU&@aTT``DjuQUZTrKP z62c3ydb)KH*%jZ6EOG->IJ|t_v)F8XfaW|*4DsC69#aI>?y_$U_0p@}dMW8Dt$mpE z8|cJ#HAA^mT8`5Rix=W(?esI!4zw1jz}wpBR}Z6}Tia<&DOn~gZl`NXF<;OiJ=3zi zj3nV@MGGBJMh50MB~6O~(Y;4a#esH@O^N50vy~`JF?1Np>!m;85GX&JdNfpw%?X@8 z#n?EoEL298#8Na|?6)}KE(|8{&@H88u~63mmi>fRI~YS%bXkYOjxV7NkB~irPEVIV zN^*pBJw5y=`Azh9-iRr#IVYsAz4n}Pm{bVdL0a?}$|tt4w%QXHlOw!v*-JloTxqUi zD#*atUtZp{^2#sakFIi*p93N>6ilk zMEWb{LrmluVL6NkmSC~Yh{Y_1r+R7A5;8&R*wrM?dO+~C49dsuh85pV|~&GUz$-b`GofL$lUhy9=R2I`;z5kRZk)Ip#Ac% z$v_mogEY}hHVKt_y3b7J0^5a3@)a*+bkGYHvLW?t?@+FIrE2BQTp_t0_UQOpp<1DQ z9Y&p~IQpKR?pj4Q3gup!wi<;2Cu$b1CIf`YURu7I^h+4$y$v;OCoDX@M|vF*YLgyd zF;MXb-KaAM;9&RmZLDvpx!koCAk$eXDvFB+zR`W zwInJ+NZ)8*@eCQu4@}>vH0Z40$tyar=i=ROp{T|l-Ty2-y&g5ZVx#@?dd#Uso`U%e zO@0=$YFOlHcor+cPwVXcHj+05p?)K6*hG#C3D4R0ZYD*1!Y`gv2(uFp*ojdmrMcMo zZzVb*|2aC(N(QoQ{f(7uirs*a6`i3@|?jG&KBow=2VeItSi`8g^B^3 zxDBk|dydZCMurJXbadS|GEd+((evBL4E*h8SCfN6#U}gtYLdeXs?GMnl(a-fp2Q3m zO@1D0+!dSY_UFm@e#fO9Em6Dq@w<}lcuK_$uh4MOSaLd!u_@jDTXH~rUn*+B+(61P zY`&#a_n?h`pDhz_+(VM!m+JFd)j@0bkPNu=@VOLY`d|-vB>K2C45!!}Lla6D{EiGu zI4;GuMh&?5Wpu%D-2B6Q@;mG`zaue%co=8QL|Qf6F=;r;sg3OA@23y#B}4fA_O*M- zqr92JDH5!ui3MhwRr$WtfqURP7nldu0W(t}gAZ2#v+$KZyakwrtMTDlU>3g4_g(M9 zZj3HixMpDRHFI@7hg!b}0y4X}dVDin<8#NW{8YM>hEc%>W+?c3^VsqtK!Zub7%OqL|&%DFbl`9-yM8#0}BG;MJB+oB2ZPU zf(?5V{8W~L@7ry!dzm~FKi=^M>>2-prs#H_Q^)e023YIE#w4Dz*mg9eJ%c9e13h*(;8dIefMwp66VEaOC1}Ig_7U9KvYs0SRCuBS*C-NzxcFwgJM$ z=KBU>YY~G16Gn;c%n_5u+`)4mK)BeJAl|k(p0kbu|4!bv6J(GkTr_ZT$kwwFt)`pk~b}GH5gpr&}&6bnPiJGnOP^dL*+L9lMKoBKyGI@(Tzbmzc$&{lcfJ>Q#VmvH!hf9e5jk))-+U@ z!O$`MuVpN!8Z}hgO$`m^ZG^rUg*ad%u!$P$A+`n4d3>@Q(`o>~8hpD31r&COxx>u} ztVHFVWMogxy`x5J7LK7=PV$XhJq~G=xPBVfZ6K)rw7-B)3618$ceq+*VN%;|r^$R? zX6Gsjjdy)^nh(fkGfSz{5E{+7;5zIOUJZZ$qqL5nL1)V2`}X}q`CXyWGQ62A!H=ZGbgn6~F+-FZ+gVF`6{-t!0eioCid?ZU%{=>&IKJw}(G9HuH zEaR!GKa=sC^IyuCdpC#m(7wn1w?+~r2)YLP?pdR^hC+x;*zmkre(fwsb5v`6q?kQfz(;dHT-a zxexx%ag$GQ+^(}6_x6_@ckD99eJ~=5=e|HKNgIaz9nW*ScJkaCdpPdbW+?9^T%TFW zb1{F$uwvHqLXK89lHqxN!kS8`(xT{DQ{Jg(SOJ;FpOC_++qV2~1gC;-=L2G?Z5iL! z>^jUepwM;UuDn~3&4%z@AKMYoI;zmqzH&o)F(LXg(vtIJnxInCkIs|AV$~uP+>u<~ z!m?$mg(XXiM{@U95J)$)0nd^`Sz~dhCW;2$ku0Fg^Q(Z!n3HtTaT;IL}LYblUux z{&$AKcvPD11{DxaF;4L5QhB1~lo+8! z6Lo$^QuLKyEA3n`-8j&*0`!*@W!r#RmvRU=xKe8_!~Nf(HA+wOz9&n~);81z>=I*Q z@lt3qEr`}dtPuU`U;`Gy45Af~-}f+6&bQS4_a^l=H;Sl3Ap4d<;W zO&f-w4Fny4n@n+tfNFCXf<_Rt{78a)7@2+Jed3nu3EwJXyMO553m4C>^(@H zPI|+jeE{g;f?}jJn4klBeZ4}gy+VsFlEMf>Y9#%`Me>-Cn@STek-~&pwm;DKu#|8} z8GZ5+NgK?*++FlwVDsxip_`Lw!zHvgs#JT_zsbA|bIpZ-A{c?%E)jBrzWsz87_FM# z3=BJi({(*XX;7g<6ji~|&jyQHq3!}5JVcxEYdgQut+7<5 zgr=&#i%wKs!q=z+;r)rwBd4vt+;(-zZ3~KPQ0Bli;X2vP1j_v(REzHK=<+miq_8EG z?n@IV(;5#^^<)8KQzB{4q2gnL>TbGxD14fSimCdFv}@%%1le3Z`J7$kv)!QZ=;?#Q zL@OOQLe$y6946k&)5k`L!^azuZ#LhbhNo9(dAwe}$pxIA86o~e$W5bB_aKKHC9nb< ziG9H%>4ba4!8z(NIHNOLsXLYtw?L^llg>cgnL6`R)71(mxbXu@Ub4 zLLr*t;b?>^O;nc0^Ef^$l=L`}Rl(``G4eQ&Hdj#k^g;53(GP||owF9&(c;tDJn~8% zlwaEG#}A6mXNf}w@{6$gZo-zhC4r*L$|P$pbQv^1OPnXb$uUKfV$q3U3;SO7?S>dP0`;X=4uVbz?ptV+^*JT(!k+Z-f zsMYPPUUJqW`-7hfZ1(j7yWW&Rb0*zB2Fj|-q?gBt8QB`#)v5(_mNU@smopQt`8)(a zBMZaa0eXPUiyE`VJK}3#6X<`KzTBB~UA8#G?06P=gDNI@~@!iNyidEWxf9Z>Y%-`78+E^|8HyoBJ!z=*IW>S8ncOpI<~GjXg(S)J|_C#a68?-Q%yRXAVQ|EM_F z;*7Pwd!H!qW;IStJOp4;xg58qws5KBKL9-dqo=`ni8m!ER0Rkpl&292Y6`D<9`0S}1^s*5)f2^k^fWs^N8~TU6ZkPbp&GRG zH&3sBh?as=h=Kg7DdM{EMmGq0P(@wP93WU@egSQ8*Fr-K^ngx{(Y&c*RW^SaB@DpB zi*YZF(al4V8dQ>7F+)xF!RN>!mW#nLj?%a zJZQxT&Im3%=okUP336c5eOG!h!6|b6$9{O4xR)RAA+V1HC6*>_7b+TWBj+zgmoNyS@N< zI`OrfxB;;D1z{&6f#|`S@IXV?BVoCnX6eP`9LEU6zXxJqACUzROydw}Uyp`u5Z$g9 zPiLDlkwAc75svYJq`0sp!cQY^9PEz7MN$Q1^_z&`Zb^r z9Q>FN)&{WX5QpLE_H(nu7=f_AMGJ*XvY6wNDtk?|*cMGsz zuv&z#*$m?oF)Nxeb1UDwwuxgin(^*I*to6N(y~+|0dUs2I o+y1ki;%hyI$3nL?0QS_voUtC@26TO}WuI!kCgUR~_2*Ro1x<~g>Hq)$