Skip to content

Commit d3c0562

Browse files
committed
Add cached settings to Client.Ui.Scanner
1 parent 1cd7f70 commit d3c0562

File tree

4 files changed

+120
-5
lines changed

4 files changed

+120
-5
lines changed

src/client/gui/client_ui.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,13 +206,15 @@ MBSETTINGS mbClientUi::cachedSettings() const
206206
{
207207
MBSETTINGS m = mbCoreUi::cachedSettings();
208208
mb::unite(m, m_sendMessageUi->cachedSettings());
209+
mb::unite(m, m_scannerUi->cachedSettings());
209210
return m;
210211
}
211212

212213
void mbClientUi::setCachedSettings(const MBSETTINGS &settings)
213214
{
214215
mbCoreUi::setCachedSettings(settings);
215216
m_sendMessageUi->setCachedSettings(settings);
217+
m_scannerUi->setCachedSettings(settings);
216218
}
217219

218220
void mbClientUi::menuSlotViewProject()

src/client/gui/scanner/client_scannerui.cpp

Lines changed: 88 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,29 @@
1212
#include "client_scanner.h"
1313
#include "client_scannermodel.h"
1414

15+
mbClientScannerUi::Strings::Strings() :
16+
prefix (QStringLiteral("Ui.Scanner.")),
17+
type (prefix+Modbus::Strings::instance().type),
18+
timeout (prefix+Modbus::Strings::instance().timeout),
19+
tries (prefix+QStringLiteral("tries")),
20+
unitStart (prefix+QStringLiteral("unitStart")),
21+
unitEnd (prefix+QStringLiteral("unitEnd")),
22+
host (prefix+Modbus::Strings::instance().host),
23+
port (prefix+Modbus::Strings::instance().port),
24+
serialPortName(prefix+Modbus::Strings::instance().serialPortName),
25+
baudRateList (QStringLiteral("baudRateList")),
26+
dataBitsList (QStringLiteral("dataBitsList")),
27+
parityList (QStringLiteral("parityList") ),
28+
stopBitsList (QStringLiteral("stopBitsList"))
29+
{
30+
31+
}
32+
33+
const mbClientScannerUi::Strings &mbClientScannerUi::Strings::instance()
34+
{
35+
static Strings s;
36+
return s;
37+
}
1538

1639
mbClientScannerUi::mbClientScannerUi(QWidget *parent) :
1740
QDialog(parent),
@@ -25,7 +48,7 @@ mbClientScannerUi::mbClientScannerUi(QWidget *parent) :
2548
m_scanner = new mbClientScanner(this);
2649
connect(m_scanner, &mbClientScanner::stateChanged, this, &mbClientScannerUi::stateChange);
2750

28-
51+
QVariantList vls;
2952
QLineEdit *ln;
3053
QSpinBox* sp;
3154
QComboBox* cmb;
@@ -70,6 +93,26 @@ mbClientScannerUi::mbClientScannerUi(QWidget *parent) :
7093
Q_FOREACH(const QString &port, ports)
7194
cmb->addItem(port);
7295

96+
// Baud Rate List
97+
vls.clear();
98+
vls.append(QString::number(md.baudRate));
99+
setValues(ui->lsBaudRate, vls);
100+
101+
// Data Bits List
102+
vls.clear();
103+
vls.append(QString::number(md.dataBits));
104+
setValues(ui->lsDataBits, vls);
105+
106+
// Parity List
107+
vls.clear();
108+
vls.append(Modbus::toString(md.parity));
109+
setValues(ui->lsParity, vls);
110+
111+
// Stop Bits List
112+
vls.clear();
113+
vls.append(Modbus::toString(md.stopBits));
114+
setValues(ui->lsStopBits, vls);
115+
73116
//--------------------- TCP ---------------------
74117
// Host
75118
ln = ui->lnTcpHost;
@@ -108,6 +151,49 @@ mbClientScannerUi::~mbClientScannerUi()
108151
delete ui;
109152
}
110153

154+
MBSETTINGS mbClientScannerUi::cachedSettings() const
155+
{
156+
MBSETTINGS m;
157+
const Strings &s = Strings::instance();
158+
159+
m[s.type ] = ui->cmbType ->currentText();
160+
m[s.timeout ] = ui->spTimeout ->value ();
161+
m[s.tries ] = ui->spTries ->value ();
162+
m[s.unitStart ] = ui->spUnitStart ->value ();
163+
m[s.unitEnd ] = ui->spUnitEnd ->value ();
164+
m[s.host ] = ui->lnTcpHost ->text ();
165+
m[s.port ] = ui->spTcpPort ->value ();
166+
m[s.serialPortName] = ui->cmbSerialPortName->currentText();
167+
m[s.baudRateList ] = getValues(ui->lsBaudRate);
168+
m[s.dataBitsList ] = getValues(ui->lsDataBits);
169+
m[s.parityList ] = getValues(ui->lsParity );
170+
m[s.stopBitsList ] = getValues(ui->lsStopBits);
171+
172+
return m;
173+
}
174+
175+
void mbClientScannerUi::setCachedSettings(const MBSETTINGS &m)
176+
{
177+
const Strings &s = Strings::instance();
178+
179+
MBSETTINGS::const_iterator it;
180+
MBSETTINGS::const_iterator end = m.end();
181+
//bool ok;
182+
183+
it = m.find(s.type ); if (it != end) ui->cmbType ->setCurrentText(it.value().toString());
184+
it = m.find(s.timeout ); if (it != end) ui->spTimeout ->setValue (it.value().toInt() );
185+
it = m.find(s.tries ); if (it != end) ui->spTries ->setValue (it.value().toInt() );
186+
it = m.find(s.unitStart ); if (it != end) ui->spUnitStart ->setValue (it.value().toInt() );
187+
it = m.find(s.unitEnd ); if (it != end) ui->spUnitEnd ->setValue (it.value().toInt() );
188+
it = m.find(s.host ); if (it != end) ui->lnTcpHost ->setText (it.value().toString());
189+
it = m.find(s.port ); if (it != end) ui->spTcpPort ->setValue (it.value().toInt() );
190+
it = m.find(s.serialPortName); if (it != end) ui->cmbSerialPortName->setCurrentText(it.value().toString());
191+
it = m.find(s.baudRateList ); if (it != end) setValues(ui->lsBaudRate, it.value().toList());
192+
it = m.find(s.dataBitsList ); if (it != end) setValues(ui->lsDataBits, it.value().toList());
193+
it = m.find(s.parityList ); if (it != end) setValues(ui->lsParity , it.value().toList());
194+
it = m.find(s.stopBitsList ); if (it != end) setValues(ui->lsStopBits, it.value().toList());
195+
}
196+
111197
void mbClientScannerUi::slotEditBaudRate()
112198
{
113199
QVariantList ls = getValues(ui->lsBaudRate);
@@ -215,7 +301,7 @@ void mbClientScannerUi::closeEvent(QCloseEvent *)
215301
//m_scanner->stopScanning();
216302
}
217303

218-
QVariantList mbClientScannerUi::getValues(const QListWidget *w)
304+
QVariantList mbClientScannerUi::getValues(const QListWidget *w) const
219305
{
220306
QVariantList ls;
221307
for (int i = 0; i < w->count(); i++)

src/client/gui/scanner/client_scannerui.h

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
#include <QDialog>
55

6+
#include <mbcore.h>
7+
68
namespace Ui {
79
class mbClientScannerUi;
810
}
@@ -16,10 +18,35 @@ class mbClientScannerUi : public QDialog
1618
{
1719
Q_OBJECT
1820

21+
public:
22+
struct Strings
23+
{
24+
const QString prefix ;
25+
const QString type ;
26+
const QString timeout ;
27+
const QString tries ;
28+
const QString unitStart ;
29+
const QString unitEnd ;
30+
const QString host ;
31+
const QString port ;
32+
const QString serialPortName;
33+
const QString baudRateList ;
34+
const QString dataBitsList ;
35+
const QString parityList ;
36+
const QString stopBitsList ;
37+
38+
Strings();
39+
static const Strings &instance();
40+
};
41+
1942
public:
2043
explicit mbClientScannerUi(QWidget *parent = nullptr);
2144
~mbClientScannerUi();
2245

46+
public:
47+
MBSETTINGS cachedSettings() const;
48+
void setCachedSettings(const MBSETTINGS &settings);
49+
2350
private Q_SLOTS:
2451
void slotEditBaudRate();
2552
void slotEditDataBits();
@@ -42,7 +69,7 @@ private Q_SLOTS:
4269
void closeEvent(QCloseEvent*) override;
4370

4471
private:
45-
QVariantList getValues(const QListWidget *w);
72+
QVariantList getValues(const QListWidget *w) const;
4673
void setValues(QListWidget *w, const QVariantList &v);
4774

4875
private:

src/client/gui/sendmessage/client_sendmessageui.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ MBSETTINGS mbClientSendMessageUi::cachedSettings() const
173173
{
174174
MBSETTINGS m;
175175
const Strings &s = Strings::instance();
176-
const QString &prefix = Strings().settings_prefix;
176+
const QString &prefix = s.settings_prefix;
177177

178178
m[prefix+s.function ] = ui->cmbFunction ->currentText();
179179
//m[prefix+s.readAdrType ] = ui->cmbReadAdrType ->currentText();
@@ -195,7 +195,7 @@ MBSETTINGS mbClientSendMessageUi::cachedSettings() const
195195
void mbClientSendMessageUi::setCachedSettings(const MBSETTINGS &m)
196196
{
197197
const Strings &s = Strings::instance();
198-
const QString &prefix = Strings().settings_prefix;
198+
const QString &prefix = s.settings_prefix;
199199

200200
MBSETTINGS::const_iterator it;
201201
MBSETTINGS::const_iterator end = m.end();

0 commit comments

Comments
 (0)