- added dedicated entry for DDC frequency and STR rate for each TX and RX

git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@868 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-05-23 15:26:11 +00:00
parent d373328292
commit 41173acc49
4 changed files with 93 additions and 36 deletions
+72 -32
View File
@@ -305,25 +305,45 @@ ControlComponent::ControlComponent (ReceiverInterface *pReceiverControlListener,
m_entryNumBitsPerSymbol->setPopupMenuEnabled (true);
m_entryNumBitsPerSymbol->setText (TRANS("2"));
addAndMakeVisible (m_entrySymbolRate = new TextEditor ("Symbolrate"));
m_entrySymbolRate->setTooltip (TRANS("Symbolrate"));
m_entrySymbolRate->setMultiLine (false);
m_entrySymbolRate->setReturnKeyStartsNewLine (false);
m_entrySymbolRate->setReadOnly (false);
m_entrySymbolRate->setScrollbarsShown (false);
m_entrySymbolRate->setCaretVisible (true);
m_entrySymbolRate->setPopupMenuEnabled (true);
m_entrySymbolRate->setText (TRANS("192000.000"));
addAndMakeVisible (m_entrySymbolRate_rx = new TextEditor ("Symbolrate RX"));
m_entrySymbolRate_rx->setTooltip (TRANS("Symbolrate RX"));
m_entrySymbolRate_rx->setMultiLine (false);
m_entrySymbolRate_rx->setReturnKeyStartsNewLine (false);
m_entrySymbolRate_rx->setReadOnly (false);
m_entrySymbolRate_rx->setScrollbarsShown (false);
m_entrySymbolRate_rx->setCaretVisible (true);
m_entrySymbolRate_rx->setPopupMenuEnabled (true);
m_entrySymbolRate_rx->setText (TRANS("192000.000"));
addAndMakeVisible (m_entryDdcFrequency = new TextEditor ("DDC Frequency"));
m_entryDdcFrequency->setTooltip (TRANS("DDC Frequency"));
m_entryDdcFrequency->setMultiLine (false);
m_entryDdcFrequency->setReturnKeyStartsNewLine (false);
m_entryDdcFrequency->setReadOnly (false);
m_entryDdcFrequency->setScrollbarsShown (false);
m_entryDdcFrequency->setCaretVisible (true);
m_entryDdcFrequency->setPopupMenuEnabled (true);
m_entryDdcFrequency->setText (TRANS("192000.000"));
addAndMakeVisible (m_entryDdcFrequency_rx = new TextEditor ("DDC Frequency RX"));
m_entryDdcFrequency_rx->setTooltip (TRANS("DDC Frequency RX"));
m_entryDdcFrequency_rx->setMultiLine (false);
m_entryDdcFrequency_rx->setReturnKeyStartsNewLine (false);
m_entryDdcFrequency_rx->setReadOnly (false);
m_entryDdcFrequency_rx->setScrollbarsShown (false);
m_entryDdcFrequency_rx->setCaretVisible (true);
m_entryDdcFrequency_rx->setPopupMenuEnabled (true);
m_entryDdcFrequency_rx->setText (TRANS("192000.000"));
addAndMakeVisible (m_entrySymbolRate_tx = new TextEditor ("Symbolrate TX"));
m_entrySymbolRate_tx->setTooltip (TRANS("Symbolrate TX"));
m_entrySymbolRate_tx->setMultiLine (false);
m_entrySymbolRate_tx->setReturnKeyStartsNewLine (false);
m_entrySymbolRate_tx->setReadOnly (false);
m_entrySymbolRate_tx->setScrollbarsShown (false);
m_entrySymbolRate_tx->setCaretVisible (true);
m_entrySymbolRate_tx->setPopupMenuEnabled (true);
m_entrySymbolRate_tx->setText (TRANS("192000.000"));
addAndMakeVisible (m_entryDdcFrequency_tx = new TextEditor ("DDC Frequency TX"));
m_entryDdcFrequency_tx->setTooltip (TRANS("DDC Frequency TX"));
m_entryDdcFrequency_tx->setMultiLine (false);
m_entryDdcFrequency_tx->setReturnKeyStartsNewLine (false);
m_entryDdcFrequency_tx->setReadOnly (false);
m_entryDdcFrequency_tx->setScrollbarsShown (false);
m_entryDdcFrequency_tx->setCaretVisible (true);
m_entryDdcFrequency_tx->setPopupMenuEnabled (true);
m_entryDdcFrequency_tx->setText (TRANS("192000.000"));
addAndMakeVisible (m_labelDdcDeltaFreq = new Label ("DDC Frequency Offset",
TRANS("-999.000000")));
@@ -684,8 +704,10 @@ ControlComponent::ControlComponent (ReceiverInterface *pReceiverControlListener,
m_entrySTRLoopFilterLag_0->addListener(this);
m_entrySTRLoopFilterLag_1->addListener(this);
m_entryNumBitsPerSymbol->addListener(this);
m_entryDdcFrequency->addListener(this);
m_entrySymbolRate->addListener(this);
m_entryDdcFrequency_rx->addListener(this);
m_entrySymbolRate_rx->addListener(this);
m_entryDdcFrequency_tx->addListener(this);
m_entrySymbolRate_tx->addListener(this);
// Texteditor Select All on focus
m_entryCmaMu->setSelectAllWhenFocused(true);
@@ -701,8 +723,10 @@ ControlComponent::ControlComponent (ReceiverInterface *pReceiverControlListener,
m_entrySTRLoopFilterLag_0->setSelectAllWhenFocused(true);
m_entrySTRLoopFilterLag_1->setSelectAllWhenFocused(true);
m_entryNumBitsPerSymbol->setSelectAllWhenFocused(true);
m_entryDdcFrequency->setSelectAllWhenFocused(true);
m_entrySymbolRate->setSelectAllWhenFocused(true);
m_entryDdcFrequency_rx->setSelectAllWhenFocused(true);
m_entrySymbolRate_rx->setSelectAllWhenFocused(true);
m_entryDdcFrequency_tx->setSelectAllWhenFocused(true);
m_entrySymbolRate_tx->setSelectAllWhenFocused(true);
m_userParamEntryinProgress = false;
m_tooltipWindow = new TooltipWindow (this, 500);
@@ -755,8 +779,10 @@ ControlComponent::~ControlComponent()
toggleButtonDfeTrainingEnable = nullptr;
m_buttonDfeOffUpdateFromCma = nullptr;
m_entryNumBitsPerSymbol = nullptr;
m_entrySymbolRate = nullptr;
m_entryDdcFrequency = nullptr;
m_entrySymbolRate_rx = nullptr;
m_entryDdcFrequency_rx = nullptr;
m_entrySymbolRate_tx = nullptr;
m_entryDdcFrequency_tx = nullptr;
m_labelDdcDeltaFreq = nullptr;
m_labelStrDeltaFreq = nullptr;
m_labelCprState = nullptr;
@@ -1170,8 +1196,10 @@ void ControlComponent::resized()
toggleButtonDfeTrainingEnable->setBounds (280, 320, 64, 24);
m_buttonDfeOffUpdateFromCma->setBounds (184, 296, 64, 24);
m_entryNumBitsPerSymbol->setBounds (320, 736, 32, 24);
m_entrySymbolRate->setBounds (264, 760, 88, 24);
m_entryDdcFrequency->setBounds (264, 784, 88, 24);
m_entrySymbolRate_rx->setBounds (264, 760, 88, 24);
m_entryDdcFrequency_rx->setBounds (264, 784, 88, 24);
m_entrySymbolRate_tx->setBounds (264-2*88, 760, 88, 24);
m_entryDdcFrequency_tx->setBounds (264-2*88, 784, 88, 24);
m_labelDdcDeltaFreq->setBounds (16, 208, 98, 24);
m_labelStrDeltaFreq->setBounds (280, 208, 98, 24);
m_labelCprState->setBounds (24, 32, 112, 24);
@@ -1525,16 +1553,26 @@ void ControlComponent::textEditorFocusLost (TextEditor &textEditor)
m_pTransmitterControlListener->setNumBitPerSymbol(m_params.numBitsPerSymbol);
}
if (textEditor.getName() == m_entrySymbolRate->getName())
if (textEditor.getName() == m_entrySymbolRate_rx->getName())
{
m_params.symbolrate = textEditor.getText().getFloatValue();
m_pTransmitterControlListener->setSymbolRate(m_params.symbolrate);
}
if (textEditor.getName() == m_entryDdcFrequency->getName())
if (textEditor.getName() == m_entryDdcFrequency_rx->getName())
{
m_params.ddc_freq = textEditor.getText().getFloatValue();
m_pTransmitterControlListener->setCarrierFrequency(m_params.ddc_freq);
}
if (textEditor.getName() == m_entrySymbolRate_tx->getName())
{
float symbolrate = textEditor.getText().getFloatValue();
m_pTransmitterControlListener->setSymbolRate(symbolrate);
}
if (textEditor.getName() == m_entryDdcFrequency_tx->getName())
{
float ddc_freq = textEditor.getText().getFloatValue();
m_pTransmitterControlListener->setCarrierFrequency(ddc_freq);
}
m_pReceiverControlListener->setParams(m_params);
@@ -1580,8 +1618,10 @@ void ControlComponent::changeListenerCallback(juce::ChangeBroadcaster* source)
if (!m_userParamEntryinProgress)
{
m_entryNumBitsPerSymbol->setText(String(m_params.numBitsPerSymbol), juce::NotificationType::dontSendNotification);
m_entrySymbolRate->setText(String(m_params.symbolrate, 3), juce::NotificationType::dontSendNotification);
m_entryDdcFrequency->setText(String(m_params.ddc_freq, 3), juce::NotificationType::dontSendNotification);
m_entrySymbolRate_rx->setText(String(m_params.symbolrate, 3), juce::NotificationType::dontSendNotification);
m_entryDdcFrequency_rx->setText(String(m_params.ddc_freq, 3), juce::NotificationType::dontSendNotification);
m_entrySymbolRate_tx->setText(String(m_pTransmitterControlListener->getSymbolRate(), 3), juce::NotificationType::dontSendNotification);
m_entryDdcFrequency_tx->setText(String(m_pTransmitterControlListener->getCarrierFrequency(), 3), juce::NotificationType::dontSendNotification);
m_entryCmaMu->setText(String((float)1E3*m_params.eqMuCma, 3), juce::NotificationType::dontSendNotification);
m_entryDfeMu->setText(String((float)1E3*m_params.eqMuDfe, 3), juce::NotificationType::dontSendNotification);
m_entryAgcMu_0->setText(String((float)1E3*m_params.agcMu[0], 3), juce::NotificationType::dontSendNotification);
+4 -2
View File
@@ -120,8 +120,10 @@ private:
ScopedPointer<ToggleButton> toggleButtonDfeTrainingEnable;
ScopedPointer<TextButton> m_buttonDfeOffUpdateFromCma;
ScopedPointer<TextEditor> m_entryNumBitsPerSymbol;
ScopedPointer<TextEditor> m_entrySymbolRate;
ScopedPointer<TextEditor> m_entryDdcFrequency;
ScopedPointer<TextEditor> m_entrySymbolRate_rx;
ScopedPointer<TextEditor> m_entryDdcFrequency_rx;
ScopedPointer<TextEditor> m_entrySymbolRate_tx;
ScopedPointer<TextEditor> m_entryDdcFrequency_tx;
ScopedPointer<Label> m_labelDdcDeltaFreq;
ScopedPointer<Label> m_labelStrDeltaFreq;
ScopedPointer<Label> m_labelCprState;
+3 -1
View File
@@ -694,6 +694,8 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len)
void Receiver::initDDC()
{
printf("Receiver::initDDC: ddc_freq=%f\n", m_params.ddc_freq);
m_nco_ddc.init(m_params.ddc_freq/m_params.samplerate, 0);
}
@@ -795,7 +797,7 @@ void Receiver::setParams(const params_t &params)
{
const ScopedLock sl (m_lock);
params_t lastParams = m_params;
m_params = params;
// DDC frequency has changed
+14 -1
View File
@@ -28,9 +28,11 @@ public:
virtual void reset() = 0;
virtual void setBuffersize(uint32_t size) = 0;
virtual void setCarrierFrequency(float frequency_hz) = 0;
virtual void setSamplerate(float samplerate_hz) = 0;
virtual void setCarrierFrequency(float frequency_hz) = 0;
virtual float getCarrierFrequency() = 0;
virtual void setSymbolRate(float symbolrate_bit_per_sec) = 0;
virtual float getSymbolRate() = 0;
virtual void setNumBitPerSymbol(uint32_t numBitPerSymbol) = 0;
virtual void getData(float *pRF, uint32_t len) = 0;
@@ -226,11 +228,22 @@ private:
m_carrierFreq = frequency_hz;
m_duc.init(m_carrierFreq/m_samplerate, 0);
}
float getCarrierFrequency() override
{
return m_carrierFreq;
}
void setSymbolRate(float symbolrate_bit_per_sec) override
{
m_symbolrate = symbolrate_bit_per_sec;
paramChanged();
}
float getSymbolRate() override
{
return m_symbolrate;
}
void setNumBitPerSymbol(uint32_t numBitPerSymbol) override
{
m_numBitPerSymbol = numBitPerSymbol;