- added AGC reset button

This commit is contained in:
2022-07-10 18:02:47 +02:00
parent 89f1f2bd07
commit 50890ed5d2
5 changed files with 28 additions and 45 deletions
+2 -1
View File
@@ -12,6 +12,7 @@
"bitset": "cpp",
"memory": "cpp",
"random": "cpp",
"optional": "cpp"
"optional": "cpp",
"math.h": "c"
}
}
+10 -42
View File
@@ -643,6 +643,10 @@ ControlComponent::ControlComponent (ReceiverInterface *pReceiverControlListener,
m_buttonResetStr->setButtonText (TRANS("Reset"));
m_buttonResetStr->addListener (this);
addAndMakeVisible (m_buttonResetAGC = new TextButton ("AGC Reset button"));
m_buttonResetAGC->setButtonText (TRANS("Reset"));
m_buttonResetAGC->addListener (this);
addAndMakeVisible (comboBoxCmaMode = new ComboBox ("CmaMode"));
comboBoxCmaMode->setEditableText (false);
comboBoxCmaMode->setJustificationType (Justification::centredLeft);
@@ -833,6 +837,7 @@ ControlComponent::~ControlComponent()
m_sliderAwgn_dB = nullptr;
m_buttonResetCPR = nullptr;
m_buttonResetStr = nullptr;
m_buttonResetAGC = nullptr;
comboBoxCmaMode = nullptr;
toggleButtonCMAEnable = nullptr;
m_labelPowerDecision = nullptr;
@@ -1252,6 +1257,7 @@ void ControlComponent::resized()
m_sliderAwgn_dB->setBounds (568, 520, 150, 24);
m_buttonResetCPR->setBounds (192, 232, 64, 24);
m_buttonResetStr->setBounds (456, 232, 64, 24);
m_buttonResetAGC->setBounds (708, 232, 64, 24);
comboBoxCmaMode->setBounds (96, 296, 72, 24);
toggleButtonCMAEnable->setBounds (24, 296, 64, 24);
m_labelPowerDecision->setBounds (24, 616, 58, 24);
@@ -1264,14 +1270,10 @@ void ControlComponent::resized()
void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
{
//[UserbuttonClicked_Pre]
bool isOn = buttonThatWasClicked->getToggleState();
//[/UserbuttonClicked_Pre]
if (buttonThatWasClicked == toggleButtonCPREnable)
{
//[UserButtonCode_toggleButtonCPREnable] -- add your button handler code here..
if (isOn)
{
m_params.cpr_mode = cpr_mode_enabled;
@@ -1281,12 +1283,9 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_params.cpr_mode = cpr_mode_disabled;
}
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonCPREnable]
}
else if (buttonThatWasClicked == toggleButtonDFEEnable)
{
//[UserButtonCode_toggleButtonDFEEnable] -- add your button handler code here..
if (isOn)
{
m_params.eq_mode = eq_mode_dfe;
@@ -1296,11 +1295,9 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_params.eq_mode = eq_mode_disabled;
}
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonDFEEnable]
}
else if (buttonThatWasClicked == toggleButtonSTREnable)
{
//[UserButtonCode_toggleButtonSTREnable] -- add your button handler code here..
if (isOn)
{
m_params.str_mode = str_mode_enabled;
@@ -1310,41 +1307,29 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_params.str_mode = str_mode_disabled;
}
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonSTREnable]
}
else if (buttonThatWasClicked == m_buttonDfeOnUpdateFromDfeOff)
{
//[UserButtonCode_m_buttonDfeOnUpdateFromDfeOff] -- add your button handler code here..
m_pReceiverControlListener->dfeOnUpdateFromDfeOff();
//[/UserButtonCode_m_buttonDfeOnUpdateFromDfeOff]
}
else if (buttonThatWasClicked == m_buttonResetDFE)
{
//[UserButtonCode_m_buttonResetDFE] -- add your button handler code here..
m_pReceiverControlListener->dfeReset();
//[/UserButtonCode_m_buttonResetDFE]
}
else if (buttonThatWasClicked == m_buttonResetCMA)
{
//[UserButtonCode_m_buttonResetCMA] -- add your button handler code here..
m_pReceiverControlListener->cmaReset();
//[/UserButtonCode_m_buttonResetCMA]
}
else if (buttonThatWasClicked == m_buttonResetReset)
{
//[UserButtonCode_m_buttonResetReset] -- add your button handler code here..
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..
if (isOn)
{
m_params.cmaMode = cma_mode_training_enabled;
@@ -1354,11 +1339,9 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_params.cmaMode = cma_mode_training_disabled;
}
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonCmaTrainingEnable]
}
else if (buttonThatWasClicked == toggleButtonDfeTrainingEnable)
{
//[UserButtonCode_toggleButtonDfeTrainingEnable] -- add your button handler code here..
if (isOn)
{
m_params.dfeMode = dfe_mode_training_enabled;
@@ -1368,17 +1351,13 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_params.dfeMode = dfe_mode_training_disabled;
}
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonDfeTrainingEnable]
}
else if (buttonThatWasClicked == m_buttonDfeOffUpdateFromCma)
{
//[UserButtonCode_m_buttonDfeOffUpdateFromCma] -- add your button handler code here..
m_pReceiverControlListener->dfeOffUpdateFromCma();
//[/UserButtonCode_m_buttonDfeOffUpdateFromCma]
}
else if (buttonThatWasClicked == toggleButtonAgcEnable)
{
//[UserButtonCode_toggleButtonAgcEnable] -- add your button handler code here..
if (isOn)
{
m_params.agc_mode = agc_mode_enabled;
@@ -1388,53 +1367,42 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_params.agc_mode = agc_mode_disabled;
}
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonAgcEnable]
}
else if (buttonThatWasClicked == toggleButtonAgcMuForceTrack)
{
//[UserButtonCode_toggleButtonAgcMuForceTrack] -- add your button handler code here..
m_params.agcMu_index = (uint32_t)isOn;
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonAgcMuForceTrack]
}
else if (buttonThatWasClicked == toggleButtonSTRLoopFilterForceTrack)
{
//[UserButtonCode_toggleButtonSTRLoopFilterForceTrack] -- add your button handler code here..
m_params.str_loopfilter_coeff_index = (uint32_t)isOn;
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonSTRLoopFilterForceTrack]
}
else if (buttonThatWasClicked == toggleButtonCPRLoopFilterForceTrack)
{
//[UserButtonCode_toggleButtonCPRLoopFilterForceTrack] -- add your button handler code here..
m_params.cpr_loopfilter_coeff_index = (uint32_t)isOn;
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonCPRLoopFilterForceTrack]
}
else if (buttonThatWasClicked == toggleButtonDfeAutoUpdateEnable)
{
//[UserButtonCode_toggleButtonDfeAutoUpdateEnable] -- add your button handler code here..
m_params.dfeAutoUpdateEnable = isOn;
m_pReceiverControlListener->setParams(m_params);
//[/UserButtonCode_toggleButtonDfeAutoUpdateEnable]
}
else if (buttonThatWasClicked == m_buttonResetStatistic)
{
//[UserButtonCode_m_buttonResetStatistic] -- add your button handler code here..
m_pReceiverControlListener->statisticsReset();
//[/UserButtonCode_m_buttonResetStatistic]
}
else if (buttonThatWasClicked == m_buttonResetCPR)
{
//[UserButtonCode_m_buttonResetCPR] -- add your button handler code here..
m_pReceiverControlListener->cprReset();
//[/UserButtonCode_m_buttonResetCPR]
}
else if (buttonThatWasClicked == m_buttonResetStr)
{
//[UserButtonCode_m_buttonResetStr] -- add your button handler code here..
m_pReceiverControlListener->strReset();
//[/UserButtonCode_m_buttonResetStr]
}
else if (buttonThatWasClicked == m_buttonResetAGC)
{
m_pReceiverControlListener->agcReset();
}
else if (buttonThatWasClicked == toggleButtonCMAEnable)
{
+1
View File
@@ -161,6 +161,7 @@ private:
ScopedPointer<Slider> m_sliderAwgn_dB;
ScopedPointer<TextButton> m_buttonResetCPR;
ScopedPointer<TextButton> m_buttonResetStr;
ScopedPointer<TextButton> m_buttonResetAGC;
ScopedPointer<ComboBox> comboBoxCmaMode;
ScopedPointer<ToggleButton> toggleButtonCMAEnable;
ScopedPointer<Label> m_labelPowerDecision;
+13 -2
View File
@@ -27,6 +27,8 @@ const radio_float_t STR_GAIN_LAG_AQU = (radio_float_t)0.50E-6; // 5E-7
const radio_float_t STR_GAIN_LEAD_TRK = (radio_float_t)8.00E-5; // 8E-4
const radio_float_t STR_GAIN_LAG_TRK = (radio_float_t)1.00E-7; // 1E-6
const radio_float_t AGC_MIN_VALUE = (radio_float_t)1.0;
const radio_float_t AGC_MAX_VALUE = (radio_float_t)4.0;
const radio_float_t AGC_INITIAL_VALUE = (radio_float_t)2.0;
const radio_float_t AGC_ADAPTION_RATE_ACQ = (radio_float_t)0.01;
const radio_float_t AGC_ADAPTION_RATE_TRK = (radio_float_t)0.0001;
@@ -204,7 +206,9 @@ void Receiver::init()
initSymbolMapper();
// AGC
AGC_Init(&agcBlind, EQ_UPD_INTERVAL, AGC_INITIAL_VALUE);
AGC_Init(&agcBlind, EQ_UPD_INTERVAL, AGC_MIN_VALUE, AGC_MAX_VALUE);
AGC_reset(&agcBlind, AGC_INITIAL_VALUE);
// Channel estimation filter
m_cma2.init(2*EQ_DFE_K+1);
@@ -900,7 +904,7 @@ void Receiver::test()
cout << "Var: " << m_timingGenerator.getMuVar() << endl;
m_ReceiverEnable = false;
m_is_slip = 1;
m_is_slip = 0;
m_ReceiverEnable = true;
}
@@ -911,6 +915,13 @@ void Receiver::statisticsReset()
m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this);
}
void Receiver::agcReset()
{
AGC_reset(&agcBlind, radio_float_t(1));
m_tracker.reset();
m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this);
}
void Receiver::strReset()
{
m_timingGenerator.reset();
+2
View File
@@ -248,6 +248,7 @@ public:
virtual void reset() = 0;
virtual void test() = 0;
virtual void statisticsReset() = 0;
virtual void agcReset() = 0;
virtual void strReset() = 0;
virtual void cprReset() = 0;
virtual void cmaReset() = 0;
@@ -414,6 +415,7 @@ private:
status_t& getStatus() override;
void reset() override;
void test() override;
void agcReset() override;
void strReset() override;
void cprReset() override;
void dfeReset() override;