@@ -291,13 +291,14 @@ void OutputListModel::updateData(const QModbusDataUnit& data)
291291
292292// /
293293// / \brief OutputListModel::find
294+ // / \param deviceId
294295// / \param type
295296// / \param addr
296297// / \return
297298// /
298- QModelIndex OutputListModel::find (QModbusDataUnit::RegisterType type, quint16 addr) const
299+ QModelIndex OutputListModel::find (quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr) const
299300{
300- if (_parentWidget->_displayDefinition .PointType != type)
301+ if (_parentWidget->_displayDefinition .PointType != type || _parentWidget-> _displayDefinition . DeviceId != deviceId )
301302 return QModelIndex ();
302303
303304 const auto dd = _parentWidget->_displayDefinition ;
@@ -382,7 +383,7 @@ QVector<quint16> OutputWidget::data() const
382383// / \param simulations
383384// / \param data
384385// /
385- void OutputWidget::setup (const DisplayDefinition& dd, const ModbusSimulationMap & simulations, const QModbusDataUnit& data)
386+ void OutputWidget::setup (const DisplayDefinition& dd, const ModbusSimulationMap2 & simulations, const QModbusDataUnit& data)
386387{
387388 _descriptionMap.insert (descriptionMap ());
388389 _displayDefinition = dd;
@@ -393,10 +394,10 @@ void OutputWidget::setup(const DisplayDefinition& dd, const ModbusSimulationMap&
393394 _listModel->clear ();
394395
395396 for (auto && key : simulations.keys ())
396- _listModel->setData (_listModel->find (key.Type , key.Address ), true , SimulationRole);
397+ _listModel->setData (_listModel->find (key.DeviceId , key. Type , key.Address ), true , SimulationRole);
397398
398399 for (auto && key : _descriptionMap.keys ())
399- setDescription (key.first , key.second , _descriptionMap[key]);
400+ setDescription (key.DeviceId , key.Type , key. Address , _descriptionMap[key]);
400401
401402 updateData (data);
402403}
@@ -686,38 +687,40 @@ void OutputWidget::updateData(const QModbusDataUnit& data)
686687// / \brief OutputWidget::descriptionMap
687688// / \return
688689// /
689- AddressDescriptionMap OutputWidget::descriptionMap () const
690+ AddressDescriptionMap2 OutputWidget::descriptionMap () const
690691{
691- AddressDescriptionMap descriptionMap;
692+ AddressDescriptionMap2 descriptionMap;
692693 for (int i = 0 ; i < _listModel->rowCount (); i++)
693694 {
694695 const auto desc = _listModel->data (_listModel->index (i), DescriptionRole).toString ();
695696 const quint16 addr = _listModel->data (_listModel->index (i), AddressRole).toUInt () - (_displayDefinition.ZeroBasedAddress ? 0 : 1 );
696- descriptionMap[{_displayDefinition.PointType , addr }] = desc;
697+ descriptionMap[{_displayDefinition.DeviceId , _displayDefinition. PointType , addr }] = desc;
697698 }
698699 return descriptionMap;
699700}
700701
701702// /
702703// / \brief OutputWidget::setDescription
704+ // / \param deviceId
703705// / \param type
704706// / \param addr
705707// / \param desc
706708// /
707- void OutputWidget::setDescription (QModbusDataUnit::RegisterType type, quint16 addr, const QString& desc)
709+ void OutputWidget::setDescription (quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr, const QString& desc)
708710{
709- _listModel->setData (_listModel->find (type, addr), desc, DescriptionRole);
711+ _listModel->setData (_listModel->find (deviceId, type, addr), desc, DescriptionRole);
710712}
711713
712714// /
713715// / \brief OutputWidget::setSimulated
716+ // / \param deviceId
714717// / \param type
715718// / \param addr
716719// / \param on
717720// /
718- void OutputWidget::setSimulated (QModbusDataUnit::RegisterType type, quint16 addr, bool on)
721+ void OutputWidget::setSimulated (quint8 deviceId, QModbusDataUnit::RegisterType type, quint16 addr, bool on)
719722{
720- _listModel->setData (_listModel->find (type, addr), on, SimulationRole);
723+ _listModel->setData (_listModel->find (deviceId, type, addr), on, SimulationRole);
721724}
722725
723726// /
0 commit comments