1 #include "lms7002_pnlAFE_view.h"
2 #include <map>
3 #include "lms7002_gui_utilities.h"
4 using namespace lime;
5 
lms7002_pnlAFE_view(wxWindow * parent)6 lms7002_pnlAFE_view::lms7002_pnlAFE_view( wxWindow* parent )
7 :
8 pnlAFE_view( parent )
9 {
10 
11 }
12 
lms7002_pnlAFE_view(wxWindow * parent,wxWindowID id,const wxPoint & pos,const wxSize & size,long style)13 lms7002_pnlAFE_view::lms7002_pnlAFE_view( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style )
14     : pnlAFE_view(parent, id, pos, size, style), lmsControl(nullptr)
15 {
16     wndId2Enum[chkEN_G_AFE] = LMS7param(EN_G_AFE);
17     wndId2Enum[cmbISEL_DAC_AFE] = LMS7param(ISEL_DAC_AFE);
18     wndId2Enum[rgrMODE_INTERLEAVE_AFE] = LMS7param(MODE_INTERLEAVE_AFE);
19     wndId2Enum[cmbMUX_AFE_1] = LMS7param(MUX_AFE_1);
20     wndId2Enum[cmbMUX_AFE_2] = LMS7param(MUX_AFE_2);
21     wndId2Enum[chkPD_AFE] = LMS7param(PD_AFE);
22     wndId2Enum[chkPD_RX_AFE1] = LMS7param(PD_RX_AFE1);
23     wndId2Enum[chkPD_RX_AFE2] = LMS7param(PD_RX_AFE2);
24     wndId2Enum[chkPD_TX_AFE1] = LMS7param(PD_TX_AFE1);
25     wndId2Enum[chkPD_TX_AFE2] = LMS7param(PD_TX_AFE2);
26 
27     wxArrayString temp;
28     temp.clear();
29     for (int i = 0; i<8; ++i)
30     {
31         temp.push_back(wxString::Format(_("%i uA"), 325 + i * 75)); //nominal 625uA
32     }
33     cmbISEL_DAC_AFE->Set(temp);
34 
35     temp.clear();
36     temp.push_back(_("PGA output is connected to ADC input"));
37     temp.push_back(_("pdet_1 is connected to ADC ch. 1"));
38     temp.push_back(_("BIAS_TOP test outputs will be connected to ADC ch.1 input"));
39     temp.push_back(_("RSSI 1 output will be connected to ADC 1 input"));
40     cmbMUX_AFE_1->Set(temp);
41 
42     temp.clear();
43     temp.push_back(_("PGA output is connected to ADC input"));
44     temp.push_back(_("pdet_2 is connected to ADC channel 2"));
45     temp.push_back(_("RSSI 1 output will be connected to ADC 2 input"));
46     temp.push_back(_("RSSI 2 output will be connected to ADC 2 input"));
47     cmbMUX_AFE_2->Set(temp);
48 
49     LMS7002_WXGUI::UpdateTooltips(wndId2Enum, true);
50 }
51 
Initialize(lms_device_t * pControl)52 void lms7002_pnlAFE_view::Initialize(lms_device_t* pControl)
53 {
54     lmsControl = pControl;
55     assert(lmsControl != nullptr);
56 }
57 
ParameterChangeHandler(wxCommandEvent & event)58 void lms7002_pnlAFE_view::ParameterChangeHandler(wxCommandEvent& event)
59 {
60     assert(lmsControl != nullptr);
61     LMS7Parameter parameter;
62     try
63     {
64         parameter = wndId2Enum.at(reinterpret_cast<wxWindow*>(event.GetEventObject()));
65     }
66     catch (std::exception & e)
67     {
68         std::cout << "Control element(ID = " << event.GetId() << ") don't have assigned LMS parameter." << std::endl;
69         return;
70     }
71     LMS_WriteParam(lmsControl,parameter,event.GetInt());
72 }
73 
UpdateGUI()74 void lms7002_pnlAFE_view::UpdateGUI()
75 {
76     LMS7002_WXGUI::UpdateControlsByMap(this, lmsControl, wndId2Enum);
77 }
78