- 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:
+72
-32
@@ -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);
|
||||
|
||||
@@ -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
@@ -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 ¶ms)
|
||||
{
|
||||
const ScopedLock sl (m_lock);
|
||||
params_t lastParams = m_params;
|
||||
|
||||
|
||||
m_params = params;
|
||||
|
||||
// DDC frequency has changed
|
||||
|
||||
+14
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user