Skip to content

Commit 3ac4be1

Browse files
committed
Begin work on 0.2.0 version
1 parent 9ae6ef3 commit 3ac4be1

File tree

129 files changed

+8928
-4461
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+8928
-4461
lines changed

bin/Windows/x64/Qt5Network.dll

-1.28 MB
Binary file not shown.

bin/Windows/x64/Qt5SerialPort.dll

-74 KB
Binary file not shown.

bin/Windows/x64/client.exe

2 KB
Binary file not shown.

bin/Windows/x64/core.dll

3 KB
Binary file not shown.

bin/Windows/x64/modbus.dll

22.5 KB
Binary file not shown.

bin/Windows/x64/server.exe

-512 Bytes
Binary file not shown.

src/client/client.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ CONFIG += no_keywords
66

77
DESTDIR = ../bin
88

9-
QT = core gui widgets network serialport xml
9+
QT = core gui widgets xml
1010

1111
unix:QMAKE_RPATHDIR += .
1212

src/client/gui/dataview/client_dataviewdelegate.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ QWidget *mbClientDataViewDelegate::createEditor(QWidget *parent, const QStyleOpt
5050
case mbClientDataViewModel::Column_Format:
5151
{
5252
QComboBox *cmb = new QComboBox(parent);
53-
QMetaEnum formats = QMetaEnum::fromType<mb::Format>();
54-
for (int i = 0; i < formats.keyCount(); i++)
55-
cmb->addItem(formats.key(i));
53+
QStringList ls = mb::enumFormatKeyList();
54+
Q_FOREACH (const QString &s, ls)
55+
cmb->addItem(s);
5656
return cmb;
5757
}
5858
default:

src/client/gui/dialogs/client_dialogdevice.cpp

Lines changed: 58 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@
2424
#include "ui_client_dialogdevice.h"
2525

2626
#include <QMetaEnum>
27-
#include <QSerialPort>
28-
#include <QSerialPortInfo>
2927
#include <QIntValidator>
3028

31-
#include <ModbusPortTCP.h>
32-
#include <ModbusPortSerial.h>
29+
#include <ModbusQt.h>
30+
3331
#include <client.h>
3432
#include <project/client_project.h>
3533
#include <project/client_port.h>
@@ -53,13 +51,12 @@ mbClientDialogDevice::mbClientDialogDevice(QWidget *parent) :
5351
{
5452
ui->setupUi(this);
5553

56-
QMetaEnum e;
54+
QStringList ls;
5755

5856
mbClientPort::Defaults dPort = mbClientPort::Defaults::instance();
5957
mbClientDevice::Defaults dDevice = mbClientDevice::Defaults::instance();
6058

61-
Modbus::PortTCP::Defaults td = Modbus::PortTCP::Defaults::instance();
62-
Modbus::PortSerial::Defaults sd = Modbus::PortSerial::Defaults::instance();
59+
Modbus::Defaults d = Modbus::Defaults::instance();
6360

6461
QSpinBox* sp;
6562
QLineEdit* ln;
@@ -76,103 +73,87 @@ mbClientDialogDevice::mbClientDialogDevice(QWidget *parent) :
7673
sp->setMaximum(255);
7774
sp->setValue(dDevice.unit); // default unit address
7875
// Port
79-
connect(ui->cmbPortType, SIGNAL(currentIndexChanged(int)), this, SLOT(setPortType(int)));
76+
connect(ui->cmbPort, SIGNAL(currentIndexChanged(int)), this, SLOT(setPort(int)));
8077

8178
// Port Name
8279
ln = ui->lnPortName;
8380
ln->setText(dPort.name);
8481
// Type
8582
cmb = ui->cmbPortType;
86-
e = QMetaEnum::fromType<Modbus::Type>();
87-
for (int i = 0; i < e.keyCount(); i++)
88-
cmb->addItem(QString(e.key(i)));
89-
cmb->setCurrentText(e.valueToKey(Modbus::TCP));
83+
cmb->addItem(Modbus::toString(Modbus::ASC));
84+
cmb->addItem(Modbus::toString(Modbus::RTU));
85+
cmb->addItem(Modbus::toString(Modbus::TCP));
86+
cmb->setCurrentText(Modbus::toString(Modbus::TCP));
9087
ui->stackedWidget->setCurrentWidget(ui->pgTCP);
91-
connect(ui->cmbPort, SIGNAL(currentIndexChanged(int)), this, SLOT(setPort(int)));
88+
connect(cmb, SIGNAL(currentIndexChanged(int)), this, SLOT(setPortType(int)));
9289

9390
//--------------------- SERIAL ---------------------
9491
// Serial Port
9592
cmb = ui->cmbSerialPortName;
96-
QList<QSerialPortInfo> ports = QSerialPortInfo::availablePorts();
97-
Q_FOREACH(QSerialPortInfo port, ports)
98-
cmb->addItem(port.portName());
93+
QStringList ports = Modbus::availableSerialPortList();
94+
Q_FOREACH(const QString &port, ports)
95+
cmb->addItem(port);
9996

10097
// Baud Rate
10198
cmb = ui->cmbBaudRate;
102-
e = QMetaEnum::fromType<QSerialPort::BaudRate>();
103-
for (int i = 0; i < e.keyCount(); i++)
104-
{
105-
if (e.value(i) != QSerialPort::UnknownBaud)
106-
cmb->addItem(QString::number(e.value(i)));
107-
}
108-
cmb->setCurrentText(QString::number(sd.baudRate));
99+
Modbus::List<int32_t> baudRates = Modbus::availableBaudRate();
100+
for (int32_t v : baudRates)
101+
cmb->addItem(QString::number(v));
102+
cmb->setCurrentText(QString::number(d.baudRate));
109103

110104
// Data Bits
111105
cmb = ui->cmbDataBits;
112-
e = QMetaEnum::fromType<QSerialPort::DataBits>();
113-
for (int i = 0; i < e.keyCount(); i++)
114-
{
115-
if (e.value(i) != QSerialPort::UnknownDataBits)
116-
cmb->addItem(e.key(i));
117-
}
118-
cmb->setCurrentText(mb::enumKeyTypeStr<QSerialPort::DataBits>(sd.dataBits));
106+
Modbus::List<int8_t> dataBits = Modbus::availableDataBits();
107+
for (int8_t v : dataBits)
108+
cmb->addItem(QString::number(v));
109+
cmb->setCurrentText(QString::number(d.dataBits));
119110

120111
// Parity
121112
cmb = ui->cmbParity;
122-
e = QMetaEnum::fromType<QSerialPort::Parity>();
123-
for (int i = 0; i < e.keyCount(); i++)
124-
{
125-
if (e.value(i) != QSerialPort::UnknownParity)
126-
cmb->addItem(QString(e.key(i)));
127-
}
128-
cmb->setCurrentText(mb::enumKeyTypeStr<QSerialPort::Parity>(sd.parity));
113+
Modbus::List<Modbus::Parity> parity = Modbus::availableParity();
114+
for (Modbus::Parity v : parity)
115+
cmb->addItem(Modbus::toString(v));
116+
cmb->setCurrentText(Modbus::toString(d.parity));
129117

130118
// Stop Bits
131119
cmb = ui->cmbStopBits;
132-
e = QMetaEnum::fromType<QSerialPort::StopBits>();
133-
for (int i = 0; i < e.keyCount(); i++)
134-
{
135-
if (e.value(i) != QSerialPort::UnknownStopBits)
136-
cmb->addItem(QString(e.key(i)));
137-
}
138-
cmb->setCurrentText(mb::enumKeyTypeStr<QSerialPort::StopBits>(sd.stopBits));
120+
Modbus::List<Modbus::StopBits> stopBits = Modbus::availableStopBits();
121+
for (Modbus::StopBits v : stopBits)
122+
cmb->addItem(Modbus::toString(v));
123+
cmb->setCurrentText(Modbus::toString(d.stopBits));
139124

140125
// Flow Control
141126
cmb = ui->cmbFlowControl;
142-
e = QMetaEnum::fromType<QSerialPort::FlowControl>();
143-
for (int i = 0; i < e.keyCount(); i++)
144-
{
145-
if (e.value(i) != QSerialPort::UnknownFlowControl)
146-
cmb->addItem(QString(e.key(i)));
147-
}
148-
cmb->setCurrentText(mb::enumKeyTypeStr<QSerialPort::FlowControl>(sd.flowControl));
127+
Modbus::List<Modbus::FlowControl> flowControl = Modbus::availableFlowControl();
128+
for (Modbus::FlowControl v : flowControl)
129+
cmb->addItem(Modbus::toString(v));
130+
cmb->setCurrentText(Modbus::toString(d.flowControl));
149131

150132
// Timeout first byte
151133
sp = ui->spTimeoutFB;
152134
sp->setMinimum(0);
153135
sp->setMaximum(INT_MAX);
154-
sp->setValue(sd.timeoutFirstByte); // default unit address
155-
136+
sp->setValue(d.timeoutFirstByte); // default slave address
156137
// Timeout first byte
157138
sp = ui->spTimeoutIB;
158139
sp->setMinimum(0);
159140
sp->setMaximum(INT_MAX);
160-
sp->setValue(sd.timeoutInterByte); // default unit address
141+
sp->setValue(d.timeoutInterByte); // default slave address
161142

162143
//--------------------- TCP ---------------------
163144
// Host
164145
ln = ui->lnHost;
165-
ln->setText(td.host);
146+
ln->setText(d.host);
166147
// Port
167148
sp = ui->spPort;
168149
sp->setMinimum(0);
169150
sp->setMaximum(USHRT_MAX);
170-
sp->setValue(td.port);
151+
sp->setValue(d.port);
171152
// Timeout
172153
sp = ui->spTimeout;
173154
sp->setMinimum(0);
174155
sp->setMaximum(INT_MAX);
175-
sp->setValue(td.timeout);
156+
sp->setValue(d.timeout);
176157

177158
//--------------------- ADVANCED ---------------------
178159
// Max Read Coils
@@ -213,31 +194,31 @@ mbClientDialogDevice::mbClientDialogDevice(QWidget *parent) :
213194

214195
// Register Order
215196
cmb = ui->cmbRegisterOrder;
216-
e = mb::metaEnum<mb::DataOrder>();
217-
for (int i = 1 ; i < e.keyCount(); i++) // pass 'DefaultOrder' for device
218-
cmb->addItem(QString(e.key(i)));
197+
ls = mb::enumDataOrderKeyList();
198+
for (int i = 1 ; i < ls.count(); i++) // pass 'DefaultOrder' for device
199+
cmb->addItem(QString(ls.at(i)));
219200

220201
// ByteArray format
221202
cmb = ui->cmbByteArrayFormat;
222-
e = mb::metaEnum<mb::DigitalFormat>();
223-
for (int i = 1 ; i < e.keyCount(); i++) // pass 'DefaultDigitalFormat' for device
224-
cmb->addItem(QString(e.key(i)));
203+
ls = mb::enumDigitalFormatKeyList();
204+
for (int i = 1 ; i < ls.count(); i++) // pass 'DefaultDigitalFormat' for device
205+
cmb->addItem(QString(ls.at(i)));
225206

226207
// ByteArray separator
227208
ln = ui->lnByteArraySeparator;
228209
ln->setText(mb::makeEscapeSequnces(dDevice.byteArraySeparator));
229210

230211
// String Length Type
231212
cmb = ui->cmbStringLengthType;
232-
e = mb::metaEnum<mb::StringLengthType>();
233-
for (int i = 1 ; i < e.keyCount(); i++) // pass 'DefaultStringLengthType' for device
234-
cmb->addItem(QString(e.key(i)));
213+
ls = mb::enumStringLengthTypeKeyList();
214+
for (int i = 1 ; i < ls.count(); i++) // pass 'DefaultStringLengthType' for device
215+
cmb->addItem(QString(ls.at(i)));
235216

236217
// String Encoding
237218
cmb = ui->cmbStringEncoding;
238-
e = mb::metaEnum<mb::StringEncoding>();
239-
for (int i = 1 ; i < e.keyCount(); i++) // pass 'DefaultStringEncoding' for device
240-
cmb->addItem(QString(e.key(i)));
219+
ls = mb::enumStringEncodingKeyList();
220+
for (int i = 1 ; i < ls.count(); i++) // pass 'DefaultStringEncoding' for device
221+
cmb->addItem(QString(ls.at(i)));
241222

242223
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
243224
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
@@ -361,8 +342,7 @@ void mbClientDialogDevice::setPortName(const QString &portName)
361342
void mbClientDialogDevice::fillPortForm(const MBSETTINGS &m)
362343
{
363344
mbClientPort::Strings ms = mbClientPort::Strings();
364-
Modbus::PortTCP::Strings ts = Modbus::PortTCP::Strings::instance();
365-
Modbus::PortSerial::Strings ss = Modbus::PortSerial::Strings::instance();
345+
Modbus::Strings ss = Modbus::Strings::instance();
366346

367347
QString portName = m.value(ms.name).toString();
368348
//ui->cmbPort->setCurrentText(portName);
@@ -378,16 +358,15 @@ void mbClientDialogDevice::fillPortForm(const MBSETTINGS &m)
378358
ui->spTimeoutFB->setValue(m.value(ss.timeoutFirstByte).toInt());
379359
ui->spTimeoutIB->setValue(m.value(ss.timeoutInterByte).toInt());
380360
//--------------------- TCP ---------------------
381-
ui->lnHost ->setText (m.value(ts.host ).toString());
382-
ui->spPort ->setValue(m.value(ts.port ).toInt());
383-
ui->spTimeout->setValue(m.value(ts.timeout).toInt());
361+
ui->lnHost ->setText (m.value(ss.host ).toString());
362+
ui->spPort ->setValue(m.value(ss.port ).toInt());
363+
ui->spTimeout->setValue(m.value(ss.timeout).toInt());
384364
}
385365

386366
void mbClientDialogDevice::fillPortData(MBSETTINGS &m)
387367
{
388368
mbClientPort::Strings ms = mbClientPort::Strings();
389-
Modbus::PortTCP::Strings ts = Modbus::PortTCP::Strings::instance();
390-
Modbus::PortSerial::Strings ss = Modbus::PortSerial::Strings::instance();
369+
Modbus::Strings ss = Modbus::Strings::instance();
391370

392371
m[ms.name] = ui->lnPortName->text();
393372
m[ms.type] = ui->cmbPortType->currentText();
@@ -401,9 +380,9 @@ void mbClientDialogDevice::fillPortData(MBSETTINGS &m)
401380
m[ss.timeoutFirstByte] = ui->spTimeoutFB ->value();
402381
m[ss.timeoutInterByte] = ui->spTimeoutIB ->value();
403382
//--------------------- TCP ---------------------
404-
m[ts.host ] = ui->lnHost ->text();
405-
m[ts.port ] = ui->spPort ->value();
406-
m[ts.timeout] = ui->spTimeout->value();
383+
m[ss.host ] = ui->lnHost ->text();
384+
m[ss.port ] = ui->spPort ->value();
385+
m[ss.timeout] = ui->spTimeout->value();
407386
}
408387

409388
void mbClientDialogDevice::setPort(int i)

0 commit comments

Comments
 (0)