Skip to content

Commit f82777d

Browse files
committed
Added support for ByteOrder for device with GUI dialog (client+server)
1 parent e0c1195 commit f82777d

File tree

8 files changed

+60
-19
lines changed

8 files changed

+60
-19
lines changed

src/client/gui/dialogs/client_dialogdevice.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ mbClientDialogDevice::mbClientDialogDevice(QWidget *parent) :
7171
m_ui.spMaxReadInputRegisters = ui->spMaxReadInputRegisters ;
7272
m_ui.spMaxWriteMultipleCoils = ui->spMaxWriteMultipleCoils ;
7373
m_ui.spMaxWriteMultipleRegisters = ui->spMaxWriteMultipleRegisters;
74+
m_ui.cmbByteOrder = ui->cmbByteOrder ;
7475
m_ui.cmbRegisterOrder = ui->cmbRegisterOrder ;
7576
m_ui.cmbByteArrayFormat = ui->cmbByteArrayFormat ;
7677
m_ui.lnByteArraySeparator = ui->lnByteArraySeparator ;

src/client/gui/dialogs/client_dialogdevice.ui

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>329</width>
10-
<height>540</height>
10+
<height>566</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -354,7 +354,21 @@
354354
<attribute name="title">
355355
<string>Data</string>
356356
</attribute>
357-
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0,0,1">
357+
<layout class="QVBoxLayout" name="verticalLayout_2">
358+
<item>
359+
<layout class="QHBoxLayout" name="horizontalLayout_4">
360+
<item>
361+
<widget class="QLabel" name="label_28">
362+
<property name="text">
363+
<string>Byte order</string>
364+
</property>
365+
</widget>
366+
</item>
367+
<item>
368+
<widget class="QComboBox" name="cmbByteOrder"/>
369+
</item>
370+
</layout>
371+
</item>
358372
<item>
359373
<layout class="QHBoxLayout" name="horizontalLayout_3">
360374
<item>

src/client/gui/sendmessage/client_sendmessageui.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ void mbClientSendMessageUi::fillForm(mbClientDevice *device, const mbClientRunMe
491491
ls.append(mb::toVariant(data,
492492
format,
493493
Modbus::Memory_0x,
494-
mb::LessSignifiedFirst,
494+
device->byteOrder(),
495495
device->registerOrder(),
496496
device->byteArrayFormat(),
497497
device->stringEncoding(),
@@ -520,7 +520,7 @@ void mbClientSendMessageUi::fillForm(mbClientDevice *device, const mbClientRunMe
520520
ls.append(mb::toVariant(data,
521521
format,
522522
Modbus::Memory_0x,
523-
mb::LessSignifiedFirst,
523+
device->byteOrder(),
524524
device->registerOrder(),
525525
device->byteArrayFormat(),
526526
device->stringEncoding(),
@@ -551,7 +551,7 @@ void mbClientSendMessageUi::fillForm(mbClientDevice *device, const mbClientRunMe
551551
ls.append(mb::toVariant(data,
552552
format,
553553
Modbus::Memory_0x,
554-
mb::LessSignifiedFirst,
554+
device->byteOrder(),
555555
device->registerOrder(),
556556
device->byteArrayFormat(),
557557
device->stringEncoding(),
@@ -580,7 +580,7 @@ void mbClientSendMessageUi::fillForm(mbClientDevice *device, const mbClientRunMe
580580
ls.append(mb::toVariant(data,
581581
format,
582582
Modbus::Memory_0x,
583-
mb::LessSignifiedFirst,
583+
device->byteOrder(),
584584
device->registerOrder(),
585585
device->byteArrayFormat(),
586586
device->stringEncoding(),
@@ -638,7 +638,7 @@ void mbClientSendMessageUi::fillData(mbClientDevice *device, mbClientRunMessageP
638638
data = mb::toByteArray(s,
639639
format,
640640
Modbus::Memory_4x,
641-
mb::LessSignifiedFirst,
641+
device->byteOrder(),
642642
device->registerOrder(),
643643
device->byteArrayFormat(),
644644
device->stringEncoding(),
@@ -674,7 +674,7 @@ void mbClientSendMessageUi::fillData(mbClientDevice *device, mbClientRunMessageP
674674
data = mb::toByteArray(s,
675675
format,
676676
Modbus::Memory_0x,
677-
mb::LessSignifiedFirst,
677+
device->byteOrder(),
678678
device->registerOrder(),
679679
device->byteArrayFormat(),
680680
device->stringEncoding(),
@@ -709,7 +709,7 @@ void mbClientSendMessageUi::fillData(mbClientDevice *device, mbClientRunMessageP
709709
data = mb::toByteArray(s,
710710
format,
711711
Modbus::Memory_0x,
712-
mb::LessSignifiedFirst,
712+
device->byteOrder(),
713713
device->registerOrder(),
714714
device->byteArrayFormat(),
715715
device->stringEncoding(),
@@ -770,7 +770,7 @@ QStringList mbClientSendMessageUi::toStringListNumbers(const QByteArray &data, m
770770
QString s = mb::toVariant(numData,
771771
format,
772772
Modbus::Memory_4x,
773-
mb::LessSignifiedFirst,
773+
device->byteOrder(),
774774
device->registerOrder(),
775775
device->byteArrayFormat(),
776776
device->stringEncoding(),
@@ -788,7 +788,7 @@ QStringList mbClientSendMessageUi::toStringListNumbers(const QByteArray &data, m
788788
QString s = mb::toVariant(numData,
789789
format,
790790
Modbus::Memory_4x,
791-
mb::LessSignifiedFirst,
791+
device->byteOrder(),
792792
device->registerOrder(),
793793
device->byteArrayFormat(),
794794
device->stringEncoding(),
@@ -820,7 +820,7 @@ QByteArray mbClientSendMessageUi::fromStringListNumbers(const QStringList &ls, m
820820
data.append(mb::toByteArray(s,
821821
format,
822822
Modbus::Memory_4x,
823-
mb::LessSignifiedFirst,
823+
device->byteOrder(),
824824
device->registerOrder(),
825825
device->byteArrayFormat(),
826826
device->stringEncoding(),

src/core/gui/dialogs/core_dialogdevice.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,12 @@ void mbCoreDialogDevice::initializeBaseUi()
102102
sp->setMaximum(MB_MAX_REGISTERS);
103103
sp->setValue(dDevice.maxWriteMultipleRegisters);
104104

105+
// Byte Order
106+
cmb = m_ui.cmbByteOrder;
107+
ls = mb::enumDataOrderKeyList();
108+
for (int i = 1 ; i < ls.count(); i++) // pass 'DefaultOrder' for device
109+
cmb->addItem(QString(ls.at(i)));
110+
105111
// Register Order
106112
cmb = m_ui.cmbRegisterOrder;
107113
ls = mb::enumRegisterOrderKeyList();
@@ -148,6 +154,7 @@ MBSETTINGS mbCoreDialogDevice::cachedSettings() const
148154
m[prefix+vs.maxReadInputRegisters ] = m_ui.spMaxReadInputRegisters ->value ();
149155
m[prefix+vs.maxWriteMultipleCoils ] = m_ui.spMaxWriteMultipleCoils ->value ();
150156
m[prefix+vs.maxWriteMultipleRegisters] = m_ui.spMaxWriteMultipleRegisters->value ();
157+
m[prefix+vs.byteOrder ] = m_ui.cmbByteOrder ->currentText(); // TODO: Default order special processing
151158
m[prefix+vs.registerOrder ] = m_ui.cmbRegisterOrder ->currentText(); // TODO: Default order special processing
152159
m[prefix+vs.byteArrayFormat ] = m_ui.cmbByteArrayFormat ->currentText();
153160
m[prefix+vs.byteArraySeparator ] = m_ui.lnByteArraySeparator ->text ();
@@ -175,6 +182,7 @@ void mbCoreDialogDevice::setCachedSettings(const MBSETTINGS &m)
175182
it = m.find(prefix+vs.maxReadInputRegisters ); if (it != end) m_ui.spMaxReadInputRegisters ->setValue (it.value().toInt ());
176183
it = m.find(prefix+vs.maxWriteMultipleCoils ); if (it != end) m_ui.spMaxWriteMultipleCoils ->setValue (it.value().toInt ());
177184
it = m.find(prefix+vs.maxWriteMultipleRegisters); if (it != end) m_ui.spMaxWriteMultipleRegisters->setValue (it.value().toInt ());
185+
it = m.find(prefix+vs.byteOrder ); if (it != end) m_ui.cmbByteOrder ->setCurrentText(it.value().toString());
178186
it = m.find(prefix+vs.registerOrder ); if (it != end) m_ui.cmbRegisterOrder ->setCurrentText(it.value().toString());
179187
it = m.find(prefix+vs.byteArrayFormat ); if (it != end) m_ui.cmbByteArrayFormat ->setCurrentText(it.value().toString());
180188
it = m.find(prefix+vs.byteArraySeparator ); if (it != end) m_ui.lnByteArraySeparator ->setText (it.value().toString());
@@ -213,6 +221,7 @@ void mbCoreDialogDevice::fillForm(const MBSETTINGS &m)
213221
it = m.find(vs.maxReadInputRegisters ); if (it != end) m_ui.spMaxReadInputRegisters ->setValue (it.value().toInt ());
214222
it = m.find(vs.maxWriteMultipleCoils ); if (it != end) m_ui.spMaxWriteMultipleCoils ->setValue (it.value().toInt ());
215223
it = m.find(vs.maxWriteMultipleRegisters); if (it != end) m_ui.spMaxWriteMultipleRegisters->setValue (it.value().toInt ());
224+
it = m.find(vs.byteOrder ); if (it != end) m_ui.cmbByteOrder ->setCurrentText(it.value().toString());
216225
it = m.find(vs.registerOrder ); if (it != end) m_ui.cmbRegisterOrder ->setCurrentText(it.value().toString());
217226
it = m.find(vs.byteArrayFormat ); if (it != end) m_ui.cmbByteArrayFormat ->setCurrentText(it.value().toString());
218227
it = m.find(vs.byteArraySeparator ); if (it != end) m_ui.lnByteArraySeparator ->setText (it.value().toString());
@@ -231,6 +240,7 @@ void mbCoreDialogDevice::fillData(MBSETTINGS &m) const
231240
m[vs.maxReadInputRegisters ] = m_ui.spMaxReadInputRegisters ->value ();
232241
m[vs.maxWriteMultipleCoils ] = m_ui.spMaxWriteMultipleCoils ->value ();
233242
m[vs.maxWriteMultipleRegisters] = m_ui.spMaxWriteMultipleRegisters->value ();
243+
m[vs.byteOrder ] = m_ui.cmbByteOrder ->currentText (); // TODO: Default order special processing
234244
m[vs.registerOrder ] = m_ui.cmbRegisterOrder ->currentText (); // TODO: Default order special processing
235245
m[vs.byteArrayFormat ] = m_ui.cmbByteArrayFormat ->currentText ();
236246
m[vs.byteArraySeparator ] = m_ui.lnByteArraySeparator ->text ();

src/core/gui/dialogs/core_dialogdevice.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ class MB_EXPORT mbCoreDialogDevice : public mbCoreDialogEdit
6868
QSpinBox *spMaxReadInputRegisters ;
6969
QSpinBox *spMaxWriteMultipleCoils ;
7070
QSpinBox *spMaxWriteMultipleRegisters;
71+
QComboBox *cmbByteOrder ;
7172
QComboBox *cmbRegisterOrder ;
7273
QComboBox *cmbByteArrayFormat ;
7374
QLineEdit *lnByteArraySeparator ;

src/server/gui/dialogs/server_dialogdevice.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ mbServerDialogDevice::mbServerDialogDevice(QWidget *parent) :
7272
m_ui.spMaxReadInputRegisters = ui->spMaxReadInputRegisters ;
7373
m_ui.spMaxWriteMultipleCoils = ui->spMaxWriteMultipleCoils ;
7474
m_ui.spMaxWriteMultipleRegisters = ui->spMaxWriteMultipleRegisters;
75+
m_ui.cmbByteOrder = ui->cmbByteOrder ;
7576
m_ui.cmbRegisterOrder = ui->cmbRegisterOrder ;
7677
m_ui.cmbByteArrayFormat = ui->cmbByteArrayFormat ;
7778
m_ui.lnByteArraySeparator = ui->lnByteArraySeparator ;

src/server/gui/dialogs/server_dialogdevice.ui

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<x>0</x>
88
<y>0</y>
99
<width>265</width>
10-
<height>404</height>
10+
<height>438</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
@@ -273,8 +273,22 @@
273273
<attribute name="title">
274274
<string>Data</string>
275275
</attribute>
276-
<layout class="QFormLayout" name="formLayout_3">
277-
<item row="1" column="0" colspan="2">
276+
<layout class="QVBoxLayout" name="verticalLayout">
277+
<item>
278+
<layout class="QHBoxLayout" name="horizontalLayout_4">
279+
<item>
280+
<widget class="QLabel" name="label_22">
281+
<property name="text">
282+
<string>Byte order</string>
283+
</property>
284+
</widget>
285+
</item>
286+
<item>
287+
<widget class="QComboBox" name="cmbByteOrder"/>
288+
</item>
289+
</layout>
290+
</item>
291+
<item>
278292
<layout class="QHBoxLayout" name="horizontalLayout_3">
279293
<item>
280294
<widget class="QLabel" name="label_13">
@@ -288,7 +302,7 @@
288302
</item>
289303
</layout>
290304
</item>
291-
<item row="2" column="0" colspan="2">
305+
<item>
292306
<widget class="QGroupBox" name="grByteArray">
293307
<property name="title">
294308
<string>Byte Array</string>
@@ -317,7 +331,7 @@
317331
</layout>
318332
</widget>
319333
</item>
320-
<item row="3" column="0" colspan="2">
334+
<item>
321335
<widget class="QGroupBox" name="grString">
322336
<property name="title">
323337
<string>String</string>
@@ -346,7 +360,7 @@
346360
</layout>
347361
</widget>
348362
</item>
349-
<item row="4" column="0">
363+
<item>
350364
<spacer name="verticalSpacer">
351365
<property name="orientation">
352366
<enum>Qt::Vertical</enum>

src/server/gui/script/editor/server_scripthighlighter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ void mbServerScriptHighlighter::highlightBlock(const QString &text)
106106
}
107107
else
108108
{
109-
m_pos++;
109+
++m_pos;
110110
if (sym.isPunct() || sym.category() == QChar::Symbol_Math)
111111
setFormat(m_begin, 1, m_symbolFormat);
112112
}

0 commit comments

Comments
 (0)