Skip to content

Commit 22af6e4

Browse files
committed
Developing 1-based/0-based address switch
1 parent bb295ed commit 22af6e4

8 files changed

Lines changed: 122 additions & 46 deletions

File tree

omodsim/controls/scriptcontrol.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@ void ScriptControl::setByteOrder(const ByteOrder* order)
5454
_byteOrder = const_cast<ByteOrder*>(order);
5555
}
5656

57+
///
58+
/// \brief ScriptControl::setAddressBase
59+
/// \param base
60+
///
61+
void ScriptControl::setAddressBase(AddressBase base)
62+
{
63+
_addressBase = base;
64+
}
65+
5766
///
5867
/// \brief ScriptControl::isAutoCompleteEnabled
5968
/// \return
@@ -210,7 +219,7 @@ void ScriptControl::runScript(RunMode mode, int interval)
210219
_scriptCode = script();
211220

212221
_storage = QSharedPointer<Storage>(new Storage);
213-
_server = QSharedPointer<Server>(new Server(_mbMultiServer, _byteOrder));
222+
_server = QSharedPointer<Server>(new Server(_mbMultiServer, _byteOrder, _addressBase));
214223
_script = QSharedPointer<Script>(new Script(interval));
215224
_console = QSharedPointer<console>(new console(ui->console));
216225
connect(_script.get(), &Script::stopped, this, &ScriptControl::stopScript, Qt::QueuedConnection);
@@ -220,6 +229,7 @@ void ScriptControl::runScript(RunMode mode, int interval)
220229
_jsEngine.globalObject().setProperty("Server", _jsEngine.newQObject(_server.get()));
221230
_jsEngine.globalObject().setProperty("console", _jsEngine.newQObject(_console.get()));
222231
_jsEngine.globalObject().setProperty("Register", _jsEngine.newQMetaObject(&Register::staticMetaObject));
232+
_jsEngine.globalObject().setProperty("AddressBase", _jsEngine.newQMetaObject(&Address::staticMetaObject));
223233
_jsEngine.setInterrupted(false);
224234

225235
_console->clear();
@@ -255,6 +265,7 @@ void ScriptControl::stopScript()
255265
_jsEngine.globalObject().deleteProperty("Server");
256266
_jsEngine.globalObject().deleteProperty("console");
257267
_jsEngine.globalObject().deleteProperty("Register");
268+
_jsEngine.globalObject().deleteProperty("AddressBase");
258269

259270
_storage = nullptr;
260271
_server = nullptr;

omodsim/controls/scriptcontrol.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class ScriptControl : public QWidget
3131

3232
void setModbusMultiServer(ModbusMultiServer* server);
3333
void setByteOrder(const ByteOrder* order);
34+
void setAddressBase(AddressBase base);
3435

3536
bool isAutoCompleteEnabled() const;
3637
void enableAutoComplete(bool enable);
@@ -77,6 +78,7 @@ private slots:
7778
QSharedPointer<console> _console;
7879

7980
ByteOrder* _byteOrder = nullptr;
81+
AddressBase _addressBase = AddressBase::Base1;
8082
ModbusMultiServer* _mbMultiServer = nullptr;
8183
};
8284

omodsim/formmodsim.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,6 +660,8 @@ void FormModSim::onDefinitionChanged()
660660
const auto addr = dd.PointAddress - (dd.ZeroBasedAddress ? 0 : 1);
661661
_mbMultiServer.setDeviceId(dd.DeviceId);
662662
_mbMultiServer.addUnitMap(formId(), dd.PointType, addr, dd.Length);
663+
664+
ui->scriptControl->setAddressBase(dd.ZeroBasedAddress ? AddressBase::Base0 : AddressBase::Base1);
663665
ui->outputWidget->setup(dd, _dataSimulator->simulationMap(), _mbMultiServer.data(dd.PointType, addr, dd.Length));
664666
}
665667

omodsim/formmodsim.ui

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@
4848
<item>
4949
<widget class="QSplitter" name="splitter">
5050
<property name="frameShape">
51-
<enum>QFrame::Shape::NoFrame</enum>
51+
<enum>QFrame::NoFrame</enum>
5252
</property>
5353
<property name="orientation">
54-
<enum>Qt::Orientation::Vertical</enum>
54+
<enum>Qt::Vertical</enum>
5555
</property>
5656
<property name="childrenCollapsible">
5757
<bool>false</bool>
@@ -61,10 +61,10 @@
6161
<bool>true</bool>
6262
</property>
6363
<property name="frameShape">
64-
<enum>QFrame::Shape::WinPanel</enum>
64+
<enum>QFrame::WinPanel</enum>
6565
</property>
6666
<property name="frameShadow">
67-
<enum>QFrame::Shadow::Sunken</enum>
67+
<enum>QFrame::Sunken</enum>
6868
</property>
6969
<layout class="QHBoxLayout" name="horizontalLayout_3">
7070
<property name="spacing">
@@ -84,10 +84,10 @@
8484
<item>
8585
<widget class="QFrame" name="frame_5">
8686
<property name="frameShape">
87-
<enum>QFrame::Shape::NoFrame</enum>
87+
<enum>QFrame::NoFrame</enum>
8888
</property>
8989
<property name="frameShadow">
90-
<enum>QFrame::Shadow::Raised</enum>
90+
<enum>QFrame::Raised</enum>
9191
</property>
9292
<layout class="QFormLayout" name="formLayout">
9393
<property name="leftMargin">
@@ -131,7 +131,7 @@
131131
</size>
132132
</property>
133133
<property name="contextMenuPolicy">
134-
<enum>Qt::ContextMenuPolicy::NoContextMenu</enum>
134+
<enum>Qt::NoContextMenu</enum>
135135
</property>
136136
<property name="acceptDrops">
137137
<bool>false</bool>
@@ -159,7 +159,7 @@
159159
</size>
160160
</property>
161161
<property name="contextMenuPolicy">
162-
<enum>Qt::ContextMenuPolicy::NoContextMenu</enum>
162+
<enum>Qt::NoContextMenu</enum>
163163
</property>
164164
<property name="acceptDrops">
165165
<bool>false</bool>
@@ -189,7 +189,7 @@
189189
<item>
190190
<widget class="Line" name="line">
191191
<property name="orientation">
192-
<enum>Qt::Orientation::Vertical</enum>
192+
<enum>Qt::Vertical</enum>
193193
</property>
194194
</widget>
195195
</item>
@@ -202,7 +202,7 @@
202202
</sizepolicy>
203203
</property>
204204
<property name="frameShape">
205-
<enum>QFrame::Shape::NoFrame</enum>
205+
<enum>QFrame::NoFrame</enum>
206206
</property>
207207
<layout class="QVBoxLayout" name="verticalLayout_5">
208208
<property name="leftMargin">
@@ -247,20 +247,20 @@
247247
</size>
248248
</property>
249249
<property name="contextMenuPolicy">
250-
<enum>Qt::ContextMenuPolicy::NoContextMenu</enum>
250+
<enum>Qt::NoContextMenu</enum>
251251
</property>
252252
<property name="acceptDrops">
253253
<bool>false</bool>
254254
</property>
255255
<property name="alignment">
256-
<set>Qt::AlignmentFlag::AlignCenter</set>
256+
<set>Qt::AlignCenter</set>
257257
</property>
258258
</widget>
259259
</item>
260260
<item>
261261
<spacer name="horizontalSpacer_2">
262262
<property name="orientation">
263-
<enum>Qt::Orientation::Horizontal</enum>
263+
<enum>Qt::Horizontal</enum>
264264
</property>
265265
<property name="sizeHint" stdset="0">
266266
<size>
@@ -278,7 +278,7 @@
278278
<string>MODBUS Point Type</string>
279279
</property>
280280
<property name="alignment">
281-
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
281+
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
282282
</property>
283283
</widget>
284284
</item>
@@ -297,7 +297,7 @@
297297
</size>
298298
</property>
299299
<property name="focusPolicy">
300-
<enum>Qt::FocusPolicy::StrongFocus</enum>
300+
<enum>Qt::StrongFocus</enum>
301301
</property>
302302
<property name="frame">
303303
<bool>true</bool>
@@ -307,7 +307,7 @@
307307
<item>
308308
<spacer name="verticalSpacer">
309309
<property name="orientation">
310-
<enum>Qt::Orientation::Vertical</enum>
310+
<enum>Qt::Vertical</enum>
311311
</property>
312312
<property name="sizeHint" stdset="0">
313313
<size>
@@ -325,10 +325,10 @@
325325
<item>
326326
<spacer name="horizontalSpacer_3">
327327
<property name="orientation">
328-
<enum>Qt::Orientation::Horizontal</enum>
328+
<enum>Qt::Horizontal</enum>
329329
</property>
330330
<property name="sizeType">
331-
<enum>QSizePolicy::Policy::Fixed</enum>
331+
<enum>QSizePolicy::Fixed</enum>
332332
</property>
333333
<property name="sizeHint" stdset="0">
334334
<size>
@@ -341,7 +341,7 @@
341341
<item>
342342
<spacer name="horizontalSpacer">
343343
<property name="orientation">
344-
<enum>Qt::Orientation::Horizontal</enum>
344+
<enum>Qt::Horizontal</enum>
345345
</property>
346346
<property name="sizeHint" stdset="0">
347347
<size>
@@ -361,10 +361,10 @@
361361
</sizepolicy>
362362
</property>
363363
<property name="frameShape">
364-
<enum>QFrame::Shape::WinPanel</enum>
364+
<enum>QFrame::WinPanel</enum>
365365
</property>
366366
<property name="frameShadow">
367-
<enum>QFrame::Shadow::Sunken</enum>
367+
<enum>QFrame::Sunken</enum>
368368
</property>
369369
<layout class="QVBoxLayout" name="verticalLayout_3">
370370
<property name="spacing">

omodsim/jscompleter.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ JSCompleterModel::JSCompleterModel(QObject *parent)
104104
addMetaObject(Storage::staticMetaObject);
105105
addMetaObject(Server::staticMetaObject);
106106
addMetaObject(Register::staticMetaObject);
107+
addMetaObject(Address::staticMetaObject);
107108
}
108109
}
109110

omodsim/jshighlighter.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ LanguageData JSHighlighter::builtin = {
124124
};
125125

126126
LanguageData JSHighlighter::other = {
127+
{('A'), QLatin1String("AddressBase")},
127128
{('R'), QLatin1String("Register")},
128129
{('S'), QLatin1String("Server")},
129130
{('S'), QLatin1String("Script")},

0 commit comments

Comments
 (0)