Skip to content

Commit ea4597b

Browse files
committed
Added modbus message start address description (0-based)
1 parent 2daaf79 commit ea4597b

2 files changed

Lines changed: 19 additions & 18 deletions

File tree

omodsim/controls/modbusmessagewidget.cpp

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ void ModbusMessageWidget::update()
193193
QString("%1 (%2)").arg(formatUInt8Value(_dataDisplayMode, func), func) :
194194
formatUInt8Value(_dataDisplayMode, func);
195195
addItem(tr("<b>Function Code:</b> %1").arg(function));
196+
const auto addrBase = tr("(0-based)");
196197

197198
switch(_mm->function())
198199
{
@@ -202,7 +203,7 @@ void ModbusMessageWidget::update()
202203
auto req = reinterpret_cast<const ReadCoilsRequest*>(_mm);
203204
const auto startAddress = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->startAddress()) : "??";
204205
const auto length = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->length()): "??";
205-
addItem(tr("<b>Start Address:</b> %1").arg(startAddress));
206+
addItem(tr("<b>Start Address:</b> %1 %2").arg(startAddress, addrBase));
206207
addItem(tr("<b>Length:</b> %1").arg(length));
207208
}
208209
else
@@ -221,7 +222,7 @@ void ModbusMessageWidget::update()
221222
auto req = reinterpret_cast<const ReadDiscreteInputsRequest*>(_mm);
222223
const auto startAddress = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->startAddress()) : "??";
223224
const auto length = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->length()): "??";
224-
addItem(tr("<b>Start Address:</b> %1").arg(startAddress));
225+
addItem(tr("<b>Start Address:</b> %1 %2").arg(startAddress, addrBase));
225226
addItem(tr("<b>Length:</b> %1").arg(length));
226227
}
227228
else
@@ -240,7 +241,7 @@ void ModbusMessageWidget::update()
240241
auto req = reinterpret_cast<const ReadHoldingRegistersRequest*>(_mm);
241242
const auto startAddress = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->startAddress()) : "??";
242243
const auto length = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->length()): "??";
243-
addItem(tr("<b>Start Address:</b> %1").arg(startAddress));
244+
addItem(tr("<b>Start Address:</b> %1 %2").arg(startAddress, addrBase));
244245
addItem(tr("<b>Length:</b> %1").arg(length));
245246
}
246247
else
@@ -259,7 +260,7 @@ void ModbusMessageWidget::update()
259260
auto req = reinterpret_cast<const ReadInputRegistersRequest*>(_mm);
260261
const auto startAddress = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->startAddress()) : "??";
261262
const auto length = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->length()): "??";
262-
addItem(tr("<b>Start Address:</b> %1").arg(startAddress));
263+
addItem(tr("<b>Start Address:</b> %1 %2").arg(startAddress, addrBase));
263264
addItem(tr("<b>Length:</b> %1").arg(length));
264265
}
265266
else
@@ -278,15 +279,15 @@ void ModbusMessageWidget::update()
278279
auto req = reinterpret_cast<const WriteSingleCoilRequest*>(_mm);
279280
const auto outputAddress = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->address()) : "??";
280281
const auto outputValue = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->value()) : "??";
281-
addItem(tr("<b>Output Address:</b> %1").arg(outputAddress));
282+
addItem(tr("<b>Output Address:</b> %1 %2").arg(outputAddress, addrBase));
282283
addItem(tr("<b>Output Value:</b> %1").arg(outputValue));
283284
}
284285
else
285286
{
286287
auto resp = reinterpret_cast<const WriteSingleCoilResponse*>(_mm);
287288
const auto outputAddress = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->address()) : "??";
288289
const auto outputValue = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->value()) : "??";
289-
addItem(tr("<b>Output Address:</b> %1").arg(outputAddress));
290+
addItem(tr("<b>Output Address:</b> %1 %2").arg(outputAddress, addrBase));
290291
addItem(tr("<b>Output Value:</b> %1").arg(outputValue));
291292
}
292293
break;
@@ -297,15 +298,15 @@ void ModbusMessageWidget::update()
297298
auto req = reinterpret_cast<const WriteSingleRegisterRequest*>(_mm);
298299
const auto registerAddress = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->address()) : "??";
299300
const auto registerValue = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->value()) : "??";
300-
addItem(tr("<b>Register Address:</b> %1").arg(registerAddress));
301+
addItem(tr("<b>Register Address:</b> %1 %2").arg(registerAddress, addrBase));
301302
addItem(tr("<b>Register Value:</b> %1").arg(registerValue));
302303
}
303304
else
304305
{
305306
auto resp = reinterpret_cast<const WriteSingleRegisterResponse*>(_mm);
306307
const auto registerAddress = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->address()) : "??";
307308
const auto registerValue = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->value()) : "??";
308-
addItem(tr("<b>Register Address:</b> %1").arg(registerAddress));
309+
addItem(tr("<b>Register Address:</b> %1 %2").arg(registerAddress, addrBase));
309310
addItem(tr("<b>Register Value:</b> %1").arg(registerValue));
310311
}
311312
break;
@@ -374,7 +375,7 @@ void ModbusMessageWidget::update()
374375
const auto quantity = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->quantity()) : "??";
375376
const auto byteCount = req->isValid() ? formatUInt8Value(_dataDisplayMode, req->byteCount()) : "?";
376377
const auto values = req->isValid() ? formatUInt8Array(_dataDisplayMode, req->values()) : "???";
377-
addItem(tr("<b>Starting Address:</b> %1").arg(startAddr));
378+
addItem(tr("<b>Starting Address:</b> %1 %2").arg(startAddr, addrBase));
378379
addItem(tr("<b>Quantity of Outputs:</b> %1").arg(quantity));
379380
addItem(tr("<b>Byte Count:</b> %1").arg(byteCount));
380381
addItem(tr("<b>Output Value:</b> %1").arg(values));
@@ -384,7 +385,7 @@ void ModbusMessageWidget::update()
384385
auto resp = reinterpret_cast<const WriteMultipleCoilsResponse*>(_mm);
385386
const auto startAddr = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->startAddress()) : "??";
386387
const auto quantity = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->quantity()) : "??";
387-
addItem(tr("<b>Starting Address:</b> %1").arg(startAddr));
388+
addItem(tr("<b>Starting Address:</b> %1 %2").arg(startAddr, addrBase));
388389
addItem(tr("<b>Quantity of Outputs:</b> %1").arg(quantity));
389390
}
390391
break;
@@ -397,7 +398,7 @@ void ModbusMessageWidget::update()
397398
const auto quantity = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->quantity()) : "??";
398399
const auto byteCount = req->isValid() ? formatUInt8Value(_dataDisplayMode, req->byteCount()) : "?";
399400
const auto values = req->isValid() ? formatUInt16Array(_dataDisplayMode, req->values(), _byteOrder) : "???";
400-
addItem(tr("<b>Starting Address:</b> %1").arg(startAddr));
401+
addItem(tr("<b>Starting Address:</b> %1 %2").arg(startAddr, addrBase));
401402
addItem(tr("<b>Quantity of Registers:</b> %1").arg(quantity));
402403
addItem(tr("<b>Byte Count:</b> %1").arg(byteCount));
403404
addItem(tr("<b>Registers Value:</b> %1").arg(values));
@@ -407,7 +408,7 @@ void ModbusMessageWidget::update()
407408
auto resp = reinterpret_cast<const WriteMultipleRegistersResponse*>(_mm);
408409
const auto startAddr = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->startAddress()) : "??";
409410
const auto quantity = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->quantity()) : "??";
410-
addItem(tr("<b>Starting Address:</b> %1").arg(startAddr));
411+
addItem(tr("<b>Starting Address:</b> %1 %2").arg(startAddr, addrBase));
411412
addItem(tr("<b>Quantity of Registers:</b> %1").arg(quantity));
412413
}
413414
break;
@@ -468,7 +469,7 @@ void ModbusMessageWidget::update()
468469
const auto address = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->address()) : "??";
469470
const auto andMask = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->andMask()) : "??";
470471
const auto orMask = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->orMask()) : "??";
471-
addItem(tr("<b>Address:</b> %1").arg(address));
472+
addItem(tr("<b>Address:</b> %1 %2").arg(address, addrBase));
472473
addItem(tr("<b>And Mask:</b> %1").arg(andMask));
473474
addItem(tr("<b>Or Mask:</b> %1").arg(orMask));
474475
}
@@ -478,7 +479,7 @@ void ModbusMessageWidget::update()
478479
const auto address = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->address()) : "??";
479480
const auto andMask = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->andMask()) : "??";
480481
const auto orMask = resp->isValid() ? formatUInt16Value(_dataDisplayMode, resp->orMask()) : "??";
481-
addItem(tr("<b>Address:</b> %1").arg(address));
482+
addItem(tr("<b>Address:</b> %1 %2").arg(address, addrBase));
482483
addItem(tr("<b>And Mask:</b> %1").arg(andMask));
483484
addItem(tr("<b>Or Mask:</b> %1").arg(orMask));
484485
}
@@ -494,9 +495,9 @@ void ModbusMessageWidget::update()
494495
const auto writeLength = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->writeLength()) : "??";
495496
const auto writeByteCount = req->isValid() ? formatUInt8Value(_dataDisplayMode, req->writeByteCount()) : "?";
496497
const auto writeValues = req->isValid() ? formatUInt16Array(_dataDisplayMode, req->writeValues(), _byteOrder) : "???";
497-
addItem(tr("<b>Read Starting Address:</b> %1").arg(readStartAddr));
498+
addItem(tr("<b>Read Starting Address:</b> %1 %2").arg(readStartAddr, addrBase));
498499
addItem(tr("<b>Quantity to Read:</b> %1").arg(readLength));
499-
addItem(tr("<b>Write Starting Address:</b> %1").arg(writeStartAddr));
500+
addItem(tr("<b>Write Starting Address:</b> %1 %2").arg(writeStartAddr, addrBase));
500501
addItem(tr("<b>Quantity to Write:</b> %1").arg(writeLength));
501502
addItem(tr("<b>Write Byte Count:</b> %1").arg(writeByteCount));
502503
addItem(tr("<b>Write Registers Value:</b> %1").arg(writeValues));
@@ -516,7 +517,7 @@ void ModbusMessageWidget::update()
516517
{
517518
auto req = reinterpret_cast<const ReadFifoQueueRequest*>(_mm);
518519
const auto fifoAddr = req->isValid() ? formatUInt16Value(_dataDisplayMode, req->fifoAddress()) : "??";
519-
addItem(tr("<b>FIFO Point Address:</b> %1").arg(fifoAddr));
520+
addItem(tr("<b>FIFO Point Address:</b> %1 %2").arg(fifoAddr, addrBase));
520521
}
521522
else
522523
{

omodsim/omodsim.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ CONFIG += c++17
44
CONFIG -= debug_and_release
55
CONFIG -= debug_and_release_target
66

7-
VERSION = 1.5.1
7+
VERSION = 1.5.2
88

99
QMAKE_TARGET_PRODUCT = "Open ModSim"
1010
QMAKE_TARGET_DESCRIPTION = "An Open Source Modbus Slave (Server) Utility"

0 commit comments

Comments
 (0)