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