Merge branch 'master' into ms-preserve-reporter-layout

ms-preserve-reporter-layout
Mooneer Salem 2023-07-11 18:50:13 -07:00
commit ec59a8f94b
8 changed files with 39 additions and 4 deletions

View File

@ -196,6 +196,7 @@
<li><a href="https://freedv-reporter.k6aq.net/">FreeDV Reporter</a></li>
</ul>
<p>The frequency that FreeDV reports is set by changing the “Report Frequency” drop down box in the main window. This is in kilohertz (kHz) and will turn red if the entered value is invalid. If Hamlib support is also enabled, this frequency will automatically remain in sync with the current VFO on the radio (i.e. if the frequency is changed in the application, the radio will also change its frequency).</p>
<p><em>Note: in some setups (such as when using ALE), it is not preferred to have the reporting frequency automatically be in sync with the radio. For example, in the case of ALE, the radios frequency changes multiple times per second while waiting for a contact, which is faster than FreeDV can pull the latest from the radio (every five seconds). This can be disabled by enabling “Manual Frequency Reporting” in Tools-&gt;Options.</em></p>
<p>FreeDV will also show the callsigns of previously received signals. To view those, click on the arrow next to the last received callsign at the bottom of the window. These are in descending order by time of receipt (i.e. the most recently received callsign will appear at the top of the list).</p>
<h1 data-number="7" id="multiple-mode-support"><span class="header-section-number">7</span> Multiple Mode Support</h1>
<p>FreeDV can simultaneously decode the following modes when selected prior to pushing “Start”:</p>
@ -626,6 +627,7 @@ FMA - Supports FMA extensions using YMM state</code></pre>
<li>Auto-size columns in Audio Options to improve readability. (PR #461)</li>
<li>Add support for modifying the drop down frequency list. (PR #460)</li>
<li>Preserve size and position of Audio Configuration dialog. (PR #466)</li>
<li>Add ability to suppress automatic frequency reporting on radio changes. (PR #469)</li>
</ul></li>
<li>Build system:
<ul>

View File

@ -339,6 +339,11 @@ is in kilohertz (kHz) and will turn red if the entered value is invalid. If Haml
this frequency will automatically remain in sync with the current VFO on the radio (i.e. if the frequency is changed
in the application, the radio will also change its frequency).
*Note: in some setups (such as when using ALE), it is not preferred to have the reporting frequency automatically be
in sync with the radio. For example, in the case of ALE, the radio's frequency changes multiple times per second while
waiting for a contact, which is faster than FreeDV can pull the latest from the radio (every five seconds). This can
be disabled by enabling "Manual Frequency Reporting" in Tools->Options.*
FreeDV will also show the callsigns of previously received signals. To view those, click on the arrow
next to the last received callsign at the bottom of the window. These are in descending order by time
of receipt (i.e. the most recently received callsign will appear at the top of the list).
@ -884,6 +889,7 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
* Auto-size columns in Audio Options to improve readability. (PR #461)
* Add support for modifying the drop down frequency list. (PR #460)
* Preserve size and position of Audio Configuration dialog. (PR #466)
* Add ability to suppress automatic frequency reporting on radio changes. (PR #469)
3. Build system:
* Bump Codec2 version to v1.1.1. (PR #437)
* Generate PDF/HTML docs only on PR merge. (PR #471)

View File

@ -33,6 +33,8 @@ ReportingConfiguration::ReportingConfiguration()
, reportingFrequency("/Reporting/Frequency", 0)
, manualFrequencyReporting("/Reporting/ManualFrequencyReporting", false)
, pskReporterEnabled("/Reporting/PSKReporter/Enable", false)
, freedvReporterEnabled("/Reporting/FreeDV/Enable", true)
@ -87,6 +89,8 @@ void ReportingConfiguration::load(wxConfigBase* config)
load_(config, reportingFrequencyList);
load_(config, manualFrequencyReporting);
// Special load handling for reporting below.
wxString freqStr = config->Read(reportingFrequency.getElementName(), oldFreqStr);
reportingFrequency.setWithoutProcessing(atoll(freqStr.ToUTF8()));
@ -109,6 +113,8 @@ void ReportingConfiguration::save(wxConfigBase* config)
save_(config, reportingFrequencyList);
save_(config, manualFrequencyReporting);
// Special save handling for reporting below.
wxString tempFreqStr = wxString::Format(wxT("%" PRIu64), reportingFrequency.getWithoutProcessing());
config->Write(reportingFrequency.getElementName(), tempFreqStr);

View File

@ -42,6 +42,8 @@ public:
// uint64_t inside the FreeDV application.
ConfigurationDataElement<uint64_t> reportingFrequency;
ConfigurationDataElement<bool> manualFrequencyReporting;
ConfigurationDataElement<bool> pskReporterEnabled;
ConfigurationDataElement<bool> freedvReporterEnabled;

View File

@ -116,6 +116,11 @@ OptionsDlg::OptionsDlg(wxWindow* parent, wxWindowID id, const wxString& title, c
sbSizerReportingRows->Add(sbSizerReportingGeneral, 0, wxALL | wxEXPAND, 5);
wxBoxSizer* sbSizerReportingManualFrequency = new wxBoxSizer(wxHORIZONTAL);
m_ckboxManualFrequencyReporting = new wxCheckBox(m_reportingTab, wxID_ANY, _("Manual Frequency Reporting"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
sbSizerReportingManualFrequency->Add(m_ckboxManualFrequencyReporting, 0, wxALL | wxEXPAND, 5);
sbSizerReportingRows->Add(sbSizerReportingManualFrequency, 0, wxALL | wxEXPAND, 5);
// PSK Reporter options
wxBoxSizer* sbSizerReportingPSK = new wxBoxSizer(wxHORIZONTAL);
m_ckboxPskReporterEnable = new wxCheckBox(m_reportingTab, wxID_ANY, _("Enable PSK Reporter"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
@ -737,7 +742,8 @@ void OptionsDlg::ExchangeData(int inout, bool storePersistent)
m_ckboxReportingEnable->SetValue(wxGetApp().appConfiguration.reportingConfiguration.reportingEnabled);
m_txt_callsign->SetValue(wxGetApp().appConfiguration.reportingConfiguration.reportingCallsign);
m_txt_grid_square->SetValue(wxGetApp().appConfiguration.reportingConfiguration.reportingGridSquare);
m_ckboxManualFrequencyReporting->SetValue(wxGetApp().appConfiguration.reportingConfiguration.manualFrequencyReporting);
// PSK Reporter options
m_ckboxPskReporterEnable->SetValue(wxGetApp().appConfiguration.reportingConfiguration.pskReporterEnabled);
@ -869,7 +875,8 @@ void OptionsDlg::ExchangeData(int inout, bool storePersistent)
wxGetApp().appConfiguration.reportingConfiguration.reportingEnabled = m_ckboxReportingEnable->GetValue();
wxGetApp().appConfiguration.reportingConfiguration.reportingCallsign = m_txt_callsign->GetValue();
wxGetApp().appConfiguration.reportingConfiguration.reportingGridSquare = m_txt_grid_square->GetValue();
wxGetApp().appConfiguration.reportingConfiguration.manualFrequencyReporting = m_ckboxManualFrequencyReporting->GetValue();
// PSK Reporter options
wxGetApp().appConfiguration.reportingConfiguration.pskReporterEnabled = m_ckboxPskReporterEnable->GetValue();
@ -1070,6 +1077,7 @@ void OptionsDlg::updateReportingState()
m_txtCtrlCallSign->Enable(false);
m_txt_callsign->Enable(true);
m_txt_grid_square->Enable(true);
m_ckboxManualFrequencyReporting->Enable(true);
m_ckboxPskReporterEnable->Enable(true);
m_ckboxFreeDVReporterEnable->Enable(true);
@ -1090,6 +1098,7 @@ void OptionsDlg::updateReportingState()
m_ckboxPskReporterEnable->Enable(false);
m_ckboxFreeDVReporterEnable->Enable(false);
m_freedvReporterHostname->Enable(false);
m_ckboxManualFrequencyReporting->Enable(false);
}
}
else
@ -1099,6 +1108,7 @@ void OptionsDlg::updateReportingState()
m_txtCtrlCallSign->Enable(false);
m_txt_callsign->Enable(false);
m_txt_grid_square->Enable(false);
m_ckboxManualFrequencyReporting->Enable(false);
m_ckboxPskReporterEnable->Enable(false);
m_ckboxFreeDVReporterEnable->Enable(false);
m_freedvReporterHostname->Enable(false);

View File

@ -130,6 +130,8 @@ class OptionsDlg : public wxDialog
wxTextCtrl *m_txt_callsign;
wxTextCtrl *m_txt_grid_square;
wxCheckBox *m_ckboxManualFrequencyReporting;
wxCheckBox *m_ckboxPskReporterEnable;
wxCheckBox *m_ckboxFreeDVReporterEnable;

View File

@ -648,7 +648,10 @@ void Hamlib::update_mode_status()
}
// Update frequency box
m_freqBox->SetValue(wxString::Format("%.4f", m_currFreq/1000.0/1000.0));
if (m_freqBox != nullptr)
{
m_freqBox->SetValue(wxString::Format("%.4f", m_currFreq/1000.0/1000.0));
}
// Refresh
m_modeBox->Refresh();

View File

@ -263,7 +263,11 @@ bool MainFrame::OpenHamlibRig() {
{
wxGetApp().m_hamlib->setFrequencyAndMode(wxGetApp().appConfiguration.reportingConfiguration.reportingFrequency, wxGetApp().appConfiguration.rigControlConfiguration.hamlibUseAnalogModes ? true : g_analog);
}
wxGetApp().m_hamlib->enable_mode_detection(m_txtModeStatus, m_cboReportFrequency, g_mode == FREEDV_MODE_2400B);
wxGetApp().m_hamlib->enable_mode_detection(
m_txtModeStatus,
wxGetApp().appConfiguration.reportingConfiguration.reportingEnabled &&
wxGetApp().appConfiguration.reportingConfiguration.manualFrequencyReporting ? nullptr : m_cboReportFrequency,
g_mode == FREEDV_MODE_2400B);
}
return status;