1
1
#include " lf.h"
2
2
3
+ const LF::Config LF::defaultConfig;
4
+
3
5
LF::LF (Ui::MainWindow *ui, Util *addr, QWidget *parent): QObject(parent)
4
6
{
5
7
this ->parent = parent;
6
8
util = addr;
7
9
this ->ui = ui;
8
10
9
11
configPattern = new QRegularExpression (" (\\ d+)|Yes|No" );
12
+ currConfig = defaultConfig;
10
13
}
11
14
12
15
void LF::read ()
@@ -43,7 +46,7 @@ void LF::tune()
43
46
if (Util::getClientType () == Util::CLIENTTYPE_OFFICIAL)
44
47
util->execCMD (" hw tune l" );
45
48
else if (Util::getClientType () == Util::CLIENTTYPE_ICEMAN)
46
- util->execCMD (" lf tune" ); // TODO: if freq is set, append it as a parameter
49
+ util->execCMD (" lf tune --divisor " + QString::number (currConfig. divisor ));
47
50
Util::gotoRawTab ();
48
51
}
49
52
@@ -108,9 +111,39 @@ void LF::getConfig()
108
111
syncWithUI ();
109
112
}
110
113
111
- void LF::setConfig ()
114
+ void LF::setConfig (LF::Config config )
112
115
{
116
+ currConfig = config;
117
+ if (Util::getClientType () == Util::CLIENTTYPE_OFFICIAL)
118
+ {
119
+ util->execCMDWithOutput (QString (" lf config" )
120
+ + " q " + QString::number (currConfig.divisor )
121
+ + " b " + QString::number (currConfig.bitPerSample )
122
+ + " d " + QString::number (currConfig.decimation )
123
+ + " a " + QString (currConfig.averaging ? " 1" : " 0" )
124
+ + " t " + QString::number (currConfig.triggerThreshold )
125
+ + " s " + QString::number (currConfig.samplesToSkip ),
126
+ 500 );
127
+ util->execCMDWithOutput (" hw setlfdivisor " + QString::number (currConfig.divisor ), 500 );
128
+ }
129
+ else if (Util::getClientType () == Util::CLIENTTYPE_ICEMAN)
130
+ {
131
+ util->execCMDWithOutput (QString (" lf config" )
132
+ + " -a " + QString (currConfig.averaging ? " 1" : " 0" )
133
+ + " -b " + QString::number (currConfig.bitPerSample )
134
+ + " --dec " + QString::number (currConfig.decimation )
135
+ + " --divisor " + QString::number (currConfig.divisor )
136
+ + " -s " + QString::number (currConfig.samplesToSkip )
137
+ + " -t " + QString::number (currConfig.triggerThreshold ),
138
+ 500 );
139
+ util->execCMDWithOutput (" hw setlfdivisor -d " + QString::number (currConfig.divisor ), 500 );
140
+ }
141
+ }
113
142
143
+ void LF::resetConfig ()
144
+ {
145
+ setConfig (defaultConfig);
146
+ getConfig ();
114
147
}
115
148
116
149
float LF::divisor2Freq (uint8_t divisor)
@@ -125,7 +158,7 @@ uint8_t LF::freq2Divisor(float freq)
125
158
126
159
void LF::syncWithUI ()
127
160
{
128
- ui->LF_Conf_freqDivisorBox ->setValue (currConfig.divisor );
161
+ ui->LF_Conf_freqDivisorBox ->setValue (currConfig.divisor ); // will trigger valueChanged()
129
162
ui->LF_Conf_bitPerSampleBox ->setValue (currConfig.bitPerSample );
130
163
ui->LF_Conf_decimationBox ->setValue (currConfig.decimation );
131
164
ui->LF_Conf_averagingBox ->setChecked (currConfig.averaging );
0 commit comments