@@ -120,13 +120,13 @@ void mbClientScannerThread::run()
120120 settings[name] = v;
121121 }
122122 ModbusClientPort *clientPort = Modbus::createClientPort (settings, false );
123- QString sName ;
123+ QString sPort ;
124124 switch (clientPort->type ())
125125 {
126126 case Modbus::ASC:
127127 clientPort->connect (&ModbusClientPort::signalTx, this , &mbClientScannerThread::slotAsciiTx);
128128 clientPort->connect (&ModbusClientPort::signalRx, this , &mbClientScannerThread::slotAsciiRx);
129- sName = QString (" Scanner ASC:%1:%2:%3%4%5" )
129+ sPort = QString (" ASC:%1:%2:%3%4%5" )
130130 .arg (static_cast <ModbusSerialPort*>(clientPort->port ())->portName (),
131131 QString::number (static_cast <ModbusSerialPort*>(clientPort->port ())->baudRate ()),
132132 QString::number (static_cast <ModbusSerialPort*>(clientPort->port ())->dataBits ()),
@@ -136,7 +136,7 @@ void mbClientScannerThread::run()
136136 case Modbus::RTU:
137137 clientPort->connect (&ModbusClientPort::signalTx, this , &mbClientScannerThread::slotBytesTx);
138138 clientPort->connect (&ModbusClientPort::signalRx, this , &mbClientScannerThread::slotBytesRx);
139- sName = QString (" Scanner RTU:%1:%2:%3%4%5" )
139+ sPort = QString (" RTU:%1:%2:%3%4%5" )
140140 .arg (static_cast <ModbusSerialPort*>(clientPort->port ())->portName (),
141141 QString::number (static_cast <ModbusSerialPort*>(clientPort->port ())->baudRate ()),
142142 QString::number (static_cast <ModbusSerialPort*>(clientPort->port ())->dataBits ()),
@@ -146,17 +146,19 @@ void mbClientScannerThread::run()
146146 default :
147147 clientPort->connect (&ModbusClientPort::signalTx, this , &mbClientScannerThread::slotBytesTx);
148148 clientPort->connect (&ModbusClientPort::signalRx, this , &mbClientScannerThread::slotBytesRx);
149- sName = QString (" Scanner TCP:%1:%2" )
149+ sPort = QString (" TCP:%1:%2" )
150150 .arg (static_cast <ModbusTcpPort*>(clientPort->port ())->host (),
151151 QString::number (static_cast <ModbusTcpPort*>(clientPort->port ())->port ()));
152152 break ;
153153 }
154- clientPort->setObjectName (sName .toLatin1 ().constData ());
155- mbClient::LogInfo (s.name , QString (" Begin scanning '%1'" ).arg (sName ));
154+ mbClient::LogInfo (s.name , QString (" Begin scanning '%1'" ).arg (sPort ));
156155 for (uint16_t unit = m_unitStart; unit <= m_unitEnd; unit++)
157156 {
158157 if (!m_ctrlRun)
159158 break ;
159+ QString sPortUnit = QString (" %1,Unit=%2" ).arg (sPort , QString::number (unit));
160+ clientPort->setObjectName (sPortUnit .toLatin1 ().constData ());
161+ m_scanner->setStatDevice (sPortUnit );
160162 Modbus::StatusCode status;
161163 bool deviceIsFound = false ;
162164 Q_FOREACH (const mbClientScanner::FuncParams &f, m_request)
@@ -218,41 +220,41 @@ void mbClientScannerThread::run()
218220 }
219221 else if (Modbus::StatusIsBad (status))
220222 {
221- mbClient::LogInfo (sName , QString (" Unit= %1, Error (%2): %3" ).arg (QString::number (unit) , QString::number (status, 16 ), clientPort->lastErrorText ()));
223+ mbClient::LogInfo (s. name , QString (" %1, Error (%2): %3" ).arg (sPortUnit , QString::number (status, 16 ), clientPort->lastErrorText ()));
222224 }
223225 if (!m_ctrlRun)
224226 break ;
225227 }
226228 m_scanner->setStatPercent (++deviceCount*100 /m_combinationCountAll);
227229 }
228230 clientPort->close ();
229- mbClient::LogInfo (s.name , QString (" End scanning '%1'" ).arg (sName ));
231+ mbClient::LogInfo (s.name , QString (" End scanning '%1'" ).arg (sPort ));
230232 delete clientPort;
231233 }
232234 mbClient::LogInfo (s.name , QStringLiteral (" Finish scanning" ));
233235}
234236
235237void mbClientScannerThread::slotBytesTx (const Modbus::Char *source, const uint8_t *buff, uint16_t size)
236238{
237- mbClient::LogTxRx (mbClientScanner::Strings::instance ().name + QString ( " " ) + source, QStringLiteral (" Tx: " ) + Modbus::bytesToString (buff, size).data ());
239+ mbClient::LogTxRx (mbClientScanner::Strings::instance ().name , source + QStringLiteral (" Tx: " ) + Modbus::bytesToString (buff, size).data ());
238240 incStatTx ();
239241}
240242
241243void mbClientScannerThread::slotBytesRx (const Modbus::Char *source, const uint8_t *buff, uint16_t size)
242244{
243- mbClient::LogTxRx (mbClientScanner::Strings::instance ().name + QString ( " " ) + source, QStringLiteral (" Rx: " ) + Modbus::bytesToString (buff, size).data ());
245+ mbClient::LogTxRx (mbClientScanner::Strings::instance ().name , source + QStringLiteral (" Rx: " ) + Modbus::bytesToString (buff, size).data ());
244246 incStatRx ();
245247}
246248
247249void mbClientScannerThread::slotAsciiTx (const Modbus::Char *source, const uint8_t *buff, uint16_t size)
248250{
249- mbClient::LogTxRx (mbClientScanner::Strings::instance ().name + QString ( " " ) + source, QStringLiteral (" Tx: " ) + Modbus::asciiToString (buff, size).data ());
251+ mbClient::LogTxRx (mbClientScanner::Strings::instance ().name , source + QStringLiteral (" Tx: " ) + Modbus::asciiToString (buff, size).data ());
250252 incStatTx ();
251253}
252254
253255void mbClientScannerThread::slotAsciiRx (const Modbus::Char *source, const uint8_t *buff, uint16_t size)
254256{
255- mbClient::LogTxRx (mbClientScanner::Strings::instance ().name + QString ( " " ) + source, QStringLiteral (" Rx: " ) + Modbus::asciiToString (buff, size).data ());
257+ mbClient::LogTxRx (mbClientScanner::Strings::instance ().name , source + QStringLiteral (" Rx: " ) + Modbus::asciiToString (buff, size).data ());
256258 incStatRx ();
257259}
258260
0 commit comments