@@ -23,44 +23,46 @@ DataSimulator::~DataSimulator()
2323// /
2424// / \brief DataSimulator::startSimulation
2525// / \param mode
26+ // / \param deviceId
2627// / \param type
2728// / \param addr
2829// / \param params
2930// /
30- void DataSimulator::startSimulation (DataDisplayMode mode, QModbusDataUnit::RegisterType type, quint16 addr, const ModbusSimulationParams& params)
31+ void DataSimulator::startSimulation (DataDisplayMode mode, quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr, const ModbusSimulationParams& params)
3132{
3233 QVariant value;
3334 switch (params.Mode )
3435 {
3536 case SimulationMode::Increment:
3637 value = params.IncrementParams .Range .from ();
37- emit dataSimulated (mode, type, addr, value);
38+ emit dataSimulated (mode, deviceId, type, addr, value);
3839 break ;
3940
4041 case SimulationMode::Decrement:
4142 value = params.DecrementParams .Range .to ();
42- emit dataSimulated (mode, type, addr, value);
43+ emit dataSimulated (mode, deviceId, type, addr, value);
4344 break ;
4445
4546 default :
4647 break ;
4748 }
4849
49- _simulationMap[{ type, addr}] = { mode, params, value };
50+ _simulationMap[{ deviceId, type, addr}] = { mode, params, value };
5051 resumeSimulations ();
5152
52- emit simulationStarted (type, addr);
53+ emit simulationStarted (deviceId, type, addr);
5354}
5455
5556// /
5657// / \brief DataSimulator::stopSimulation
58+ // / \param deviceId
5759// / \param type
5860// / \param addr
5961// /
60- void DataSimulator::stopSimulation (QModbusDataUnit::RegisterType type, quint16 addr)
62+ void DataSimulator::stopSimulation (quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr)
6163{
62- _simulationMap.remove ({ type, addr});
63- emit simulationStopped (type, addr);
64+ _simulationMap.remove ({ deviceId, type, addr});
65+ emit simulationStopped (deviceId, type, addr);
6466}
6567
6668// /
@@ -99,7 +101,7 @@ void DataSimulator::restartSimulations()
99101 {
100102 const auto mode = _simulationMap[key].Mode ;
101103 const auto params = _simulationMap[key].Params ;
102- startSimulation (mode, key.first , key.second , params);
104+ startSimulation (mode, key.DeviceId , key.Type , key. Address , params);
103105 }
104106}
105107
@@ -109,9 +111,9 @@ void DataSimulator::restartSimulations()
109111// / \param addr
110112// / \return
111113// /
112- ModbusSimulationParams DataSimulator::simulationParams (QModbusDataUnit::RegisterType type, quint16 addr) const
114+ ModbusSimulationParams DataSimulator::simulationParams (quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr) const
113115{
114- const auto it = _simulationMap.find ({type, addr});
116+ const auto it = _simulationMap.find ({ deviceId, type, addr});
115117 return (it != _simulationMap.end ()) ? it->Params : ModbusSimulationParams ();
116118}
117119
@@ -145,19 +147,19 @@ void DataSimulator::on_timeout()
145147 switch (params.Mode )
146148 {
147149 case SimulationMode::Random:
148- randomSimulation (mode, key.first , key.second , params.RandomParams );
150+ randomSimulation (mode, key.DeviceId , key.Type , key. Address , params.RandomParams );
149151 break ;
150152
151153 case SimulationMode::Increment:
152- incrementSimulation (mode, key.first , key.second , params.IncrementParams );
154+ incrementSimulation (mode, key.DeviceId , key.Type , key. Address , params.IncrementParams );
153155 break ;
154156
155157 case SimulationMode::Decrement:
156- decrementSimailation (mode, key.first , key.second , params.DecrementParams );
158+ decrementSimailation (mode, key.DeviceId , key.Type , key. Address , params.DecrementParams );
157159 break ;
158160
159161 case SimulationMode::Toggle:
160- toggleSimulation (key.first , key.second );
162+ toggleSimulation (key.DeviceId , key.Type , key. Address );
161163 break ;
162164
163165 default :
@@ -181,13 +183,15 @@ T generateRandom(const QRange<double>& range)
181183
182184// /
183185// / \brief DataSimulator::randomSimulation
186+ // / \param mode
187+ // / \param deviceId
184188// / \param type
185189// / \param addr
186190// / \param params
187191// /
188- void DataSimulator::randomSimulation (DataDisplayMode mode, QModbusDataUnit::RegisterType type, quint16 addr, const RandomSimulationParams& params)
192+ void DataSimulator::randomSimulation (DataDisplayMode mode, quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr, const RandomSimulationParams& params)
189193{
190- auto && value = _simulationMap[{ type, addr}].CurrentValue ;
194+ auto && value = _simulationMap[{ deviceId, type, addr}].CurrentValue ;
191195 switch (type)
192196 {
193197 case QModbusDataUnit::Coils:
@@ -244,7 +248,7 @@ void DataSimulator::randomSimulation(DataDisplayMode mode, QModbusDataUnit::Regi
244248 }
245249
246250 if (value.isValid ())
247- emit dataSimulated (mode, type, addr, value);
251+ emit dataSimulated (mode, deviceId, type, addr, value);
248252}
249253
250254template <typename T>
@@ -257,13 +261,15 @@ T incrementValue(T value, T step, const QRange<double>& range)
257261
258262// /
259263// / \brief DataSimulator::incrementSimulation
264+ // / \param mode
265+ // / \param deviceId
260266// / \param type
261267// / \param addr
262268// / \param params
263269// /
264- void DataSimulator::incrementSimulation (DataDisplayMode mode, QModbusDataUnit::RegisterType type, quint16 addr, const IncrementSimulationParams& params)
270+ void DataSimulator::incrementSimulation (DataDisplayMode mode, quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr, const IncrementSimulationParams& params)
265271{
266- auto && value = _simulationMap[{ type, addr}].CurrentValue ;
272+ auto && value = _simulationMap[{ deviceId, type, addr}].CurrentValue ;
267273 switch (mode)
268274 {
269275 case DataDisplayMode::Int16:
@@ -273,6 +279,7 @@ void DataSimulator::incrementSimulation(DataDisplayMode mode, QModbusDataUnit::R
273279 case DataDisplayMode::Binary:
274280 case DataDisplayMode::UInt16:
275281 case DataDisplayMode::Hex:
282+ case DataDisplayMode::Ansi:
276283 value = incrementValue<quint16>(value.toUInt (), params.Step , params.Range );
277284 break ;
278285
@@ -308,7 +315,7 @@ void DataSimulator::incrementSimulation(DataDisplayMode mode, QModbusDataUnit::R
308315 }
309316
310317 if (value.isValid ())
311- emit dataSimulated (mode, type, addr, value);
318+ emit dataSimulated (mode, deviceId, type, addr, value);
312319}
313320
314321template <typename T>
@@ -321,13 +328,15 @@ T decrementValue(T value, T step, const QRange<double>& range)
321328
322329// /
323330// / \brief DataSimulator::decrementSimailation
331+ // / \param mode
332+ // / \param deviceId
324333// / \param type
325334// / \param addr
326335// / \param params
327336// /
328- void DataSimulator::decrementSimailation (DataDisplayMode mode, QModbusDataUnit::RegisterType type, quint16 addr, const DecrementSimulationParams& params)
337+ void DataSimulator::decrementSimailation (DataDisplayMode mode, quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr, const DecrementSimulationParams& params)
329338{
330- auto && value = _simulationMap[{ type, addr}].CurrentValue ;
339+ auto && value = _simulationMap[{ deviceId, type, addr}].CurrentValue ;
331340 switch (mode)
332341 {
333342 case DataDisplayMode::Int16:
@@ -337,6 +346,7 @@ void DataSimulator::decrementSimailation(DataDisplayMode mode, QModbusDataUnit::
337346 case DataDisplayMode::Binary:
338347 case DataDisplayMode::UInt16:
339348 case DataDisplayMode::Hex:
349+ case DataDisplayMode::Ansi:
340350 value = decrementValue<quint16>(value.toUInt (), params.Step , params.Range );
341351 break ;
342352
@@ -372,18 +382,19 @@ void DataSimulator::decrementSimailation(DataDisplayMode mode, QModbusDataUnit::
372382 }
373383
374384 if (value.isValid ())
375- emit dataSimulated (mode, type, addr, value);
385+ emit dataSimulated (mode, deviceId, type, addr, value);
376386}
377387
378388// /
379389// / \brief DataSimulator::toggleSimulation
390+ // / \param deviceId
380391// / \param type
381392// / \param addr
382393// /
383- void DataSimulator::toggleSimulation (QModbusDataUnit::RegisterType type, quint16 addr)
394+ void DataSimulator::toggleSimulation (quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr)
384395{
385- auto && value = _simulationMap[{ type, addr}].CurrentValue ;
396+ auto && value = _simulationMap[{ deviceId, type, addr}].CurrentValue ;
386397 value = !value.toBool ();
387398
388- emit dataSimulated (DataDisplayMode::Binary, type, addr, value);
399+ emit dataSimulated (DataDisplayMode::Binary, deviceId, type, addr, value);
389400}
0 commit comments