From ff96464efe6947c7f8b19ba9150fabf3d71d6dff Mon Sep 17 00:00:00 2001 From: furrtek Date: Wed, 16 Sep 2015 15:43:43 +0200 Subject: [PATCH] Added AFSK BW and repeat parameters --- firmware/application/ui_afsksetup.cpp | 15 ++++++++-- firmware/application/ui_afsksetup.hpp | 28 ++++++++++++++++-- firmware/application/ui_lcr.cpp | 10 ++++--- firmware/application/ui_navigation.cpp | 6 ++-- firmware/baseband/main.cpp | 2 +- .../common/portapack_persistent_memory.cpp | 14 +++++++++ .../common/portapack_persistent_memory.hpp | 3 ++ firmware/common/portapack_shared_memory.hpp | 1 + firmware/portapack-h1-firmware.bin | Bin 386836 -> 387172 bytes 9 files changed, 67 insertions(+), 12 deletions(-) diff --git a/firmware/application/ui_afsksetup.cpp b/firmware/application/ui_afsksetup.cpp index 7fd85f90d..462f0563f 100644 --- a/firmware/application/ui_afsksetup.cpp +++ b/firmware/application/ui_afsksetup.cpp @@ -70,6 +70,7 @@ AFSKSetupView::AFSKSetupView( TransmitterModel& transmitter_model ) : transmitter_model(transmitter_model) { + uint8_t rpt; add_children({ { &text_title, @@ -79,6 +80,10 @@ AFSKSetupView::AFSKSetupView( &field_mark, &text_space, &field_space, + &text_bw, + &field_bw, + &text_repeat, + &field_repeat, &checkbox_lsb, &checkbox_parity, &checkbox_datasize, @@ -93,7 +98,11 @@ AFSKSetupView::AFSKSetupView( field_mark.set_value(persistent_memory::afsk_mark_freq()*100); field_space.set_value(persistent_memory::afsk_space_freq()*100); - + field_bw.set_value(persistent_memory::afsk_bw()); + rpt = (persistent_memory::afsk_config() >> 8) & 0xFF; + if (rpt > 99) rpt = 5; + field_repeat.set_value(rpt); + button_setfreq.on_select = [this,&nav](Button&){ auto new_view = new FrequencyKeypadView { nav, this->transmitter_model.tuning_frequency() }; new_view->on_changed = [this](rf::Frequency f) { @@ -119,14 +128,16 @@ AFSKSetupView::AFSKSetupView( }; button_done.on_select = [this,&nav](Button&){ - uint8_t afsk_config = 0; + uint32_t afsk_config = 0; persistent_memory::set_afsk_mark(field_mark.value()/100); persistent_memory::set_afsk_space(field_space.value()/100); + persistent_memory::set_afsk_bw(field_bw.value()); if (checkbox_lsb.value() == true) afsk_config |= 1; if (checkbox_parity.value() == true) afsk_config |= 2; if (checkbox_datasize.value() == true) afsk_config |= 4; + afsk_config |= (field_repeat.value() << 8); persistent_memory::set_afsk_config(afsk_config); nav.pop(); diff --git a/firmware/application/ui_afsksetup.hpp b/firmware/application/ui_afsksetup.hpp index 15e11282c..297f4a113 100644 --- a/firmware/application/ui_afsksetup.hpp +++ b/firmware/application/ui_afsksetup.hpp @@ -67,7 +67,7 @@ private: { 64, 104 }, 5, { 100, 32000 }, - 100, + 25, ' ' }; @@ -79,7 +79,31 @@ private: { 64, 120 }, 5, { 100, 32000 }, - 100, + 25, + ' ' + }; + + Text text_bw { + { 140, 104, 80, 16 }, + "BW: kHz" + }; + NumberField field_bw { + { 172, 104 }, + 3, + { 1, 40 }, + 1, + ' ' + }; + + Text text_repeat { + { 140, 120, 64, 16 }, + "Repeat: " + }; + NumberField field_repeat { + { 204, 120 }, + 2, + { 1, 99 }, + 1, ' ' }; diff --git a/firmware/application/ui_lcr.cpp b/firmware/application/ui_lcr.cpp index c0d64cff6..0476eb558 100644 --- a/firmware/application/ui_lcr.cpp +++ b/firmware/application/ui_lcr.cpp @@ -283,17 +283,19 @@ LCRView::LCRView( shared_memory.afsk_phase_inc_mark = persistent_memory::afsk_mark_freq()*(65536*1024)/2280; shared_memory.afsk_phase_inc_space = persistent_memory::afsk_space_freq()*(65536*1024)/2280; + shared_memory.afsk_fmmod = persistent_memory::afsk_bw()*33; // ? + memset(shared_memory.lcrdata, 0, 256); memcpy(shared_memory.lcrdata, lcrframe_f, 256); shared_memory.afsk_transmit_done = false; - shared_memory.afsk_repeat = 5; // DEFAULT + shared_memory.afsk_repeat = ((persistent_memory::afsk_config() >> 8) & 0xFF); context().message_map[Message::ID::TXDone] = [this, &transmitter_model](const Message* const p) { const auto message = static_cast(p); if (message->n > 0) { - char str[8] = "0/5... "; - str[0] = hexify(5-message->n); + char str[8] = "0... "; + str[0] = hexify(message->n); text_status.set(str); } else { text_status.set("Done ! "); @@ -301,7 +303,7 @@ LCRView::LCRView( } }; - text_status.set("0/5... "); + text_status.set("0... "); transmitter_model.enable(); }; diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index c0bc619d3..651bf4a06 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -149,9 +149,9 @@ SystemView::SystemView( // Initial view. // TODO: Restore from non-volatile memory? - if (persistent_memory::playing_dead() == 0x59) - navigation_view.push(new PlayDeadView { navigation_view, true }); - else + //if (persistent_memory::playing_dead() == 0x59) + // navigation_view.push(new PlayDeadView { navigation_view, true }); + //else navigation_view.push(new BMPView { navigation_view }); } diff --git a/firmware/baseband/main.cpp b/firmware/baseband/main.cpp index c8ee6370f..660bd9358 100755 --- a/firmware/baseband/main.cpp +++ b/firmware/baseband/main.cpp @@ -826,7 +826,7 @@ public: sample = sintab[(aphase & 0x03FF0000)>>16]; //FM - frq = sample * 500; + frq = sample * shared_memory.afsk_fmmod; phase = (phase + frq); sphase = phase + (256<<16); diff --git a/firmware/common/portapack_persistent_memory.cpp b/firmware/common/portapack_persistent_memory.cpp index ccf0c2c60..554894c1d 100644 --- a/firmware/common/portapack_persistent_memory.cpp +++ b/firmware/common/portapack_persistent_memory.cpp @@ -64,6 +64,10 @@ using afsk_bitrate_range_t = range_t; constexpr afsk_bitrate_range_t afsk_bitrate_range { 600, 9600 }; constexpr int32_t afsk_bitrate_reset_value { 1200 }; +using afsk_bw_range_t = range_t; +constexpr afsk_bw_range_t afsk_bw_range { 1, 40 }; +constexpr int32_t afsk_bw_reset_value { 15 }; + /* struct must pack the same way on M4 and M0 cores. */ struct data_t { // General config @@ -74,6 +78,7 @@ struct data_t { int32_t afsk_mark_freq; int32_t afsk_space_freq; // Todo: optimize size, only 256 bytes of NVRAM ! int32_t afsk_bitrate; + int32_t afsk_bw; uint32_t afsk_config; // Play dead unlock @@ -130,6 +135,15 @@ void set_afsk_bitrate(const int32_t new_value) { data->afsk_bitrate = afsk_bitrate_range.clip(new_value); } +int32_t afsk_bw() { + afsk_bw_range.reset_if_outside(data->afsk_bw, afsk_bw_reset_value); + return data->afsk_bw; +} + +void set_afsk_bw(const int32_t new_value) { + data->afsk_bw = afsk_bw_range.clip(new_value); +} + uint32_t afsk_config() { return data->afsk_config; } diff --git a/firmware/common/portapack_persistent_memory.hpp b/firmware/common/portapack_persistent_memory.hpp index db9970c8d..8b8da9661 100644 --- a/firmware/common/portapack_persistent_memory.hpp +++ b/firmware/common/portapack_persistent_memory.hpp @@ -49,6 +49,9 @@ void set_afsk_bitrate(const int32_t new_value); uint32_t afsk_config(); void set_afsk_config(const uint32_t new_value); +int32_t afsk_bw(); +void set_afsk_bw(const int32_t new_value); + uint32_t playing_dead(); void set_playing_dead(const uint32_t new_value); diff --git a/firmware/common/portapack_shared_memory.hpp b/firmware/common/portapack_shared_memory.hpp index fc9b2a7d6..9a8ccd554 100644 --- a/firmware/common/portapack_shared_memory.hpp +++ b/firmware/common/portapack_shared_memory.hpp @@ -48,6 +48,7 @@ struct SharedMemory { uint32_t afsk_phase_inc_mark; uint32_t afsk_phase_inc_space; uint8_t afsk_repeat; + uint32_t afsk_fmmod; bool afsk_transmit_done; }; diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 960b19d6f55410331523e33062f5f28212193b0a..9d94eb642a4cf853168858452431677d513b68fb 100644 GIT binary patch delta 31468 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 DCXWzE delta 31223 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

q=TIp4)LXq;w&!Zjpkohk{fx;GJlpN8ntGh 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

`!l02Bd}u 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