From 1029322405e95dc1629134dbe7e25e05b515bc42 Mon Sep 17 00:00:00 2001 From: dqs105 <69909636+dqs105@users.noreply.github.com> Date: Sat, 19 Sep 2020 14:22:28 +0800 Subject: [PATCH 1/2] Fix "Stop After" Freeze. --- firmware/application/apps/ui_siggen.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/firmware/application/apps/ui_siggen.cpp b/firmware/application/apps/ui_siggen.cpp index 9a914014d..12ed16cc1 100644 --- a/firmware/application/apps/ui_siggen.cpp +++ b/firmware/application/apps/ui_siggen.cpp @@ -43,7 +43,11 @@ SigGenView::~SigGenView() { } void SigGenView::update_config() { - baseband::set_siggen_config(transmitter_model.channel_bandwidth(), options_shape.selected_index_value(), field_stop.value()); + if(checkbox_stop.value()) + baseband::set_siggen_config(transmitter_model.channel_bandwidth(), options_shape.selected_index_value(), field_stop.value()); + else + baseband::set_siggen_config(transmitter_model.channel_bandwidth(), options_shape.selected_index_value(), 0); + } void SigGenView::update_tone() { @@ -68,8 +72,10 @@ void SigGenView::start_tx() { void SigGenView::on_tx_progress(const uint32_t progress, const bool done) { (void) progress; - if (done) + if (done) { + transmitter_model.disable(); tx_view.set_transmitting(false); + } } SigGenView::SigGenView( @@ -98,6 +104,8 @@ SigGenView::SigGenView( options_shape.set_selected_index(0); text_shape.set(shape_strings[0]); + field_stop.set_value(1); + symfield_tone.set_sym(1, 1); // Default: 1000 Hz symfield_tone.on_change = [this]() { if (auto_update) From e89b7683efb2faaf62f2c3921aed965420e82c50 Mon Sep 17 00:00:00 2001 From: dqs105 <69909636+dqs105@users.noreply.github.com> Date: Sat, 19 Sep 2020 14:24:40 +0800 Subject: [PATCH 2/2] Fixed "Stop After" freeze & stronger CW signal --- firmware/baseband/proc_siggen.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firmware/baseband/proc_siggen.cpp b/firmware/baseband/proc_siggen.cpp index 905acda8d..dce9d4795 100644 --- a/firmware/baseband/proc_siggen.cpp +++ b/firmware/baseband/proc_siggen.cpp @@ -33,6 +33,7 @@ void SigGenProcessor::execute(const buffer_c8_t& buffer) { for (size_t i = 0; i < buffer.count; i++) { if (!sample_count && auto_off) { + configured = false; txprogress_message.done = true; shared_memory.application_queue.push(txprogress_message); } else @@ -40,7 +41,7 @@ void SigGenProcessor::execute(const buffer_c8_t& buffer) { if (tone_shape == 0) { // CW - re = 0; + re = 127; im = 0; } else {