- added test button
- added sample slip for performance investigation
This commit is contained in:
@@ -270,6 +270,11 @@ ControlComponent::ControlComponent (ReceiverInterface *pReceiverControlListener,
|
||||
m_buttonResetReset->setButtonText (TRANS("Reset"));
|
||||
m_buttonResetReset->addListener (this);
|
||||
|
||||
addAndMakeVisible (m_buttonTest = new TextButton ("Test"));
|
||||
m_buttonTest->setTooltip (TRANS("Test button"));
|
||||
m_buttonTest->setButtonText (TRANS("Test"));
|
||||
m_buttonTest->addListener (this);
|
||||
|
||||
addAndMakeVisible (m_entryAgcMu_0 = new TextEditor ("AGC Adaption Rate 0"));
|
||||
m_entryAgcMu_0->setTooltip (TRANS("AGC Adaption Rate 0"));
|
||||
m_entryAgcMu_0->setMultiLine (false);
|
||||
@@ -782,6 +787,7 @@ ControlComponent::~ControlComponent()
|
||||
m_labelNoiseStr = nullptr;
|
||||
m_labelSymbolReceivedCount = nullptr;
|
||||
m_buttonResetReset = nullptr;
|
||||
m_buttonTest = nullptr;
|
||||
m_entryAgcMu_0 = nullptr;
|
||||
toggleButtonCmaTrainingEnable = nullptr;
|
||||
toggleButtonDfeTrainingEnable = nullptr;
|
||||
@@ -1200,6 +1206,7 @@ void ControlComponent::resized()
|
||||
m_labelNoiseStr->setBounds (576, 624, 58, 24);
|
||||
m_labelSymbolReceivedCount->setBounds (544, 288, 90, 24);
|
||||
m_buttonResetReset->setBounds (512, 792, 64, 24);
|
||||
m_buttonTest->setBounds (512, 692, 64, 24);
|
||||
m_entryAgcMu_0->setBounds (560, 104, 64, 24);
|
||||
toggleButtonCmaTrainingEnable->setBounds (24, 320, 64, 24);
|
||||
toggleButtonDfeTrainingEnable->setBounds (280, 320, 64, 24);
|
||||
@@ -1329,6 +1336,12 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
|
||||
m_pReceiverControlListener->reset();
|
||||
//[/UserButtonCode_m_buttonResetReset]
|
||||
}
|
||||
else if (buttonThatWasClicked == m_buttonTest)
|
||||
{
|
||||
//[UserButtonCode_m_buttonResetReset] -- add your button handler code here..
|
||||
m_pReceiverControlListener->test();
|
||||
//[/UserButtonCode_m_buttonResetReset]
|
||||
}
|
||||
else if (buttonThatWasClicked == toggleButtonCmaTrainingEnable)
|
||||
{
|
||||
//[UserButtonCode_toggleButtonCmaTrainingEnable] -- add your button handler code here..
|
||||
|
||||
@@ -115,6 +115,7 @@ private:
|
||||
ScopedPointer<Label> m_labelNoiseStr;
|
||||
ScopedPointer<Label> m_labelSymbolReceivedCount;
|
||||
ScopedPointer<TextButton> m_buttonResetReset;
|
||||
ScopedPointer<TextButton> m_buttonTest;
|
||||
ScopedPointer<TextEditor> m_entryAgcMu_0;
|
||||
ScopedPointer<ToggleButton> toggleButtonCmaTrainingEnable;
|
||||
ScopedPointer<ToggleButton> toggleButtonDfeTrainingEnable;
|
||||
|
||||
+35
-9
@@ -51,6 +51,7 @@ Receiver::Receiver(LogHandler *pLogHandler)
|
||||
, m_frameReceiver()
|
||||
, m_pSymMapper(0)
|
||||
, m_tracker(1.0 - 5.0/EQ_UPD_INTERVAL)
|
||||
, m_is_slip(0)
|
||||
{
|
||||
m_params.numBitsPerSymbol = 2;
|
||||
m_params.samplerate = 48000;
|
||||
@@ -344,12 +345,6 @@ void Receiver::timerCallback()
|
||||
m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this);
|
||||
}
|
||||
|
||||
// printf("CMA\n");
|
||||
// cout << m_cma2.getWeights() << endl;
|
||||
|
||||
printf("m_timingGenerator\n");
|
||||
cout << m_timingGenerator.getMu() << endl;
|
||||
cout << m_timingGenerator.getMuVar() << endl;
|
||||
}
|
||||
|
||||
void Receiver::processPassband(RVec const &rf, size_t len)
|
||||
@@ -391,15 +386,30 @@ void Receiver::processPassband(RVec const &rf, size_t len)
|
||||
}
|
||||
|
||||
#ifndef DISABLE_UNUSED_STATISTICS
|
||||
SlidingVarProcessV(&m_statistics.RF, rf_noise.data(), len);
|
||||
SlidingVarProcessV(&m_statistics.RF, rf_noise.data(), rf_noise.size());
|
||||
#endif
|
||||
|
||||
// Digital Down Converter
|
||||
// @samplerate
|
||||
m_nco_ddc.mixRealComplexV(m_passbandBuffer, rf_noise, RealScalar(2)/*m_params.agcGain[0]*/, len);
|
||||
m_nco_ddc.mixRealComplexV(m_passbandBuffer, rf_noise, RealScalar(2)/*m_params.agcGain[0]*/, rf_noise.size());
|
||||
|
||||
CVec rf_duc;
|
||||
rf_duc.reserve(m_passbandBuffer.size());
|
||||
|
||||
size_t len_eff = 0;
|
||||
for (auto sample : m_passbandBuffer)
|
||||
{
|
||||
if (is_slip())
|
||||
{
|
||||
printf("isSlip()\n");
|
||||
continue;
|
||||
}
|
||||
rf_duc.resize(len_eff+1);
|
||||
rf_duc[len_eff++] = sample;
|
||||
}
|
||||
|
||||
// Arm Filtering and downsampling
|
||||
len_down = m_firArmDown.process(m_basebandBuffer, m_passbandBuffer, len);
|
||||
len_down = m_firArmDown.process(m_basebandBuffer, rf_duc, rf_duc.size());
|
||||
processBaseband(m_basebandBuffer, len_down);
|
||||
|
||||
|
||||
@@ -878,6 +888,22 @@ void Receiver::reset()
|
||||
m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this);
|
||||
}
|
||||
|
||||
void Receiver::test()
|
||||
{
|
||||
const ScopedLock sl (m_lock);
|
||||
|
||||
printf("CMA\n");
|
||||
cout << m_cma2.getWeights() << endl;
|
||||
|
||||
printf("m_timingGenerator\n");
|
||||
cout << "MU: " << m_timingGenerator.getMu() << endl;
|
||||
cout << "Var: " << m_timingGenerator.getMuVar() << endl;
|
||||
|
||||
m_ReceiverEnable = false;
|
||||
m_is_slip = 1;
|
||||
m_ReceiverEnable = true;
|
||||
}
|
||||
|
||||
void Receiver::statisticsReset()
|
||||
{
|
||||
m_frameReceiver.resetStats();
|
||||
|
||||
@@ -246,6 +246,7 @@ public:
|
||||
virtual const status_t& getStatus() = 0;
|
||||
virtual cpx_t getTracker(uint32 index) = 0;
|
||||
virtual void reset() = 0;
|
||||
virtual void test() = 0;
|
||||
virtual void statisticsReset() = 0;
|
||||
virtual void strReset() = 0;
|
||||
virtual void cprReset() = 0;
|
||||
@@ -412,6 +413,7 @@ private:
|
||||
params_t& getParams() override;
|
||||
status_t& getStatus() override;
|
||||
void reset() override;
|
||||
void test() override;
|
||||
void strReset() override;
|
||||
void cprReset() override;
|
||||
void dfeReset() override;
|
||||
@@ -430,6 +432,19 @@ private:
|
||||
{
|
||||
return m_dfe_off2.getWeights();
|
||||
}
|
||||
|
||||
size_t m_is_slip;
|
||||
|
||||
bool is_slip()
|
||||
{
|
||||
bool result = m_is_slip;
|
||||
if (m_is_slip)
|
||||
{
|
||||
m_is_slip--;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // _RECEIVER_H_
|
||||
|
||||
Reference in New Issue
Block a user