Skip to content

Commit 3da19fd

Browse files
author
Ананьев Александр
committed
Added storing data in gloabl data unit map
1 parent 98c0b02 commit 3da19fd

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

omodsim/modbusdataunitmap.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#include <QDebug>
21
#include "modbusdataunitmap.h"
32

43
///
@@ -32,6 +31,17 @@ void setDataValue(QModbusDataUnitMap& modbusMap, QModbusDataUnit::RegisterType p
3231
if(idx >= 0) modbusMap[pointType].setValue(idx, value);
3332
}
3433

34+
///
35+
/// \brief ModbusDataUnitMap::ModbusDataUnitMap
36+
///
37+
ModbusDataUnitMap::ModbusDataUnitMap()
38+
{
39+
_modbusDataUnitGlobalMap.insert(QModbusDataUnit::Coils, { QModbusDataUnit::Coils, 0, 65535 });
40+
_modbusDataUnitGlobalMap.insert(QModbusDataUnit::DiscreteInputs, { QModbusDataUnit::DiscreteInputs, 0, 65535 });
41+
_modbusDataUnitGlobalMap.insert(QModbusDataUnit::InputRegisters, { QModbusDataUnit::InputRegisters, 0, 65535 });
42+
_modbusDataUnitGlobalMap.insert(QModbusDataUnit::HoldingRegisters, { QModbusDataUnit::HoldingRegisters, 0, 65535 });
43+
}
44+
3545
///
3646
/// \brief ModbusDataUnitMap::addUnitMap
3747
/// \param id
@@ -84,7 +94,10 @@ void ModbusDataUnitMap::setData(const QModbusDataUnit& data)
8494
const auto type = data.registerType();
8595

8696
for(int i = 0; i < length; i++)
97+
{
8798
setDataValue(_modbusDataUnitMap, type, addr + i, data.value(i));
99+
setDataValue(_modbusDataUnitGlobalMap, type, addr + i, data.value(i));
100+
}
88101
}
89102

90103
///
@@ -115,7 +128,7 @@ void ModbusDataUnitMap::updateDataUnitMap()
115128

116129
for(int i = 0; i < length; i++)
117130
{
118-
const auto value = getDataValue(_modbusDataUnitMap, type, startAddress + i);
131+
const auto value = getDataValue(_modbusDataUnitGlobalMap, type, startAddress + i);
119132
setDataValue(modbusMap, type, startAddress + i, value);
120133
}
121134
}

omodsim/modbusdataunitmap.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class ModbusDataUnitMap
1010
{
1111
public:
12-
explicit ModbusDataUnitMap() = default;
12+
explicit ModbusDataUnitMap();
1313

1414
void addUnitMap(int id, QModbusDataUnit::RegisterType pointType, quint16 pointAddress, quint16 length);
1515
void removeUnitMap(int id);
@@ -29,6 +29,7 @@ class ModbusDataUnitMap
2929
private:
3030
QMap<int, QModbusDataUnit> _dataUnits;
3131
QModbusDataUnitMap _modbusDataUnitMap;
32+
QModbusDataUnitMap _modbusDataUnitGlobalMap;
3233
};
3334

3435

0 commit comments

Comments
 (0)