1111#define READ_ACK_TIMEOUT 5000
1212#define BUF_SIZE 64
1313
14- Q_DECLARE_METATYPE (QTextBlock)
15- Q_DECLARE_METATYPE(QTextCursor)
14+ Q_DECLARE_METATYPE (QtMsgType)
1615
1716void Writer::init(const QString &portName, qint32 baudRate, uint8_t *buf,
1817 uint32_t addr, uint32_t len, uint32_t pageSize)
@@ -32,13 +31,13 @@ int Writer::write(uint8_t *data, uint32_t dataLen)
3231 ret = serialPort->write ((char *)data, dataLen);
3332 if (ret < 0 )
3433 {
35- qCritical () << " Failed to write: " << serialPort->errorString ();
34+ logErr ( QString ( " Failed to write: %1 " ). arg ( serialPort->errorString ()) );
3635 return -1 ;
3736 }
3837 else if ((uint32_t )ret < dataLen)
3938 {
40- qCritical () << " Data was partialy written, returned " << ret <<
41- " , expected " << dataLen;
39+ logErr ( QString ( " Data was partialy written, returned %1, expected %2 " )
40+ . arg (ret). arg ( dataLen)) ;
4241 return -1 ;
4342 }
4443
@@ -49,7 +48,7 @@ int Writer::handleWriteAck(RespHeader *header, uint32_t len, void *ackData)
4948{
5049 if (len != sizeof (RespWriteAck))
5150 {
52- qCritical () << " Write ack response is too short " << len;
51+ logErr ( QString ( " Write ack response is too short %1 " ). arg ( len)) ;
5352 return -1 ;
5453 }
5554
@@ -64,12 +63,12 @@ int Writer::handleBadBlock(RespHeader *header, uint32_t len)
6463
6564 if (len != sizeof (RespBadBlock))
6665 {
67- qCritical () << " Bad block response is too short " << len;
66+ logErr ( QString ( " Bad block response is too short %1 " ). arg ( len)) ;
6867 return -1 ;
6968 }
7069
71- qInfo () << QString (" Bad block at 0x%1" ).arg (badBlock->addr , 8 ,
72- 16 , QLatin1Char ( ' 0' ));
70+ logInfo ( QString (" Bad block at 0x%1" ).arg (badBlock->addr , 8 , 16 ,
71+ QLatin1Char (' 0' ) ));
7372
7473 return 0 ;
7574}
@@ -83,7 +82,7 @@ int Writer::handleStatus(RespHeader *header, uint32_t len, void *ackData)
8382 case STATUS_OK:
8483 break ;
8584 case STATUS_ERROR:
86- qCritical () << " Programmer send error" ;
85+ logErr ( " Programmer send error" ) ;
8786 return -1 ;
8887 case STATUS_BAD_BLOCK:
8988 handleBadBlock (header, len);
@@ -93,7 +92,7 @@ int Writer::handleStatus(RespHeader *header, uint32_t len, void *ackData)
9392 return -1 ;
9493 break ;
9594 default :
96- qCritical () << " Wrong status received " << status;
95+ logErr ( QString ( " Wrong status received %1 " ). arg ( status)) ;
9796 return -1 ;
9897 }
9998
@@ -104,7 +103,7 @@ int Writer::handleAck(RespHeader *header, uint32_t len, void *ackData)
104103{
105104 if (header->code != RESP_STATUS)
106105 {
107- qCritical () << " Wrong response code " << header->code ;
106+ logErr ( QString ( " Wrong response code %1 " ). arg ( header->code )) ;
108107 return -1 ;
109108 }
110109
@@ -119,20 +118,20 @@ int Writer::readAck(void *ackData)
119118
120119 if (!serialPort->waitForReadyRead (READ_ACK_TIMEOUT))
121120 {
122- qCritical () << " Write ACK was not received" ;
121+ logErr ( " Write ACK was not received" ) ;
123122 return -1 ;
124123 }
125124
126125 ret = serialPort->read ((char *)pbuf, BUF_SIZE);
127126 if (ret < 0 )
128127 {
129- qCritical () << " Failed to read ACK" ;
128+ logErr ( " Failed to read ACK" ) ;
130129 return -1 ;
131130 }
132131 else if ((uint32_t )ret < dataLen)
133132 {
134- qCritical () << " Response is too short, expected " << dataLen <<
135- " , received " << ret;
133+ logErr ( QString ( " Response is too short, expected %1, received %2 " )
134+ . arg (dataLen). arg ( ret)) ;
136135 return -1 ;
137136 }
138137
@@ -190,8 +189,8 @@ int Writer::writeData()
190189
191190 if (ack != bytesWritten)
192191 {
193- qCritical () << " Received wrong ack " << ack << " , expected " <<
194- bytesWritten;
192+ logErr ( QString ( " Received wrong ack %1 , expected%2 " ). arg (ack)
193+ . arg ( bytesWritten)) ;
195194 return -1 ;
196195 }
197196 bytesAcked = ack;
@@ -224,8 +223,8 @@ int Writer::serialPortCreate()
224223
225224 if (!serialPort->open (QIODevice::ReadWrite))
226225 {
227- qCritical () << " Failed to open serial port: " <<
228- serialPort->errorString ();
226+ logErr ( QString ( " Failed to open serial port: %1 " )
227+ . arg ( serialPort->errorString ()) );
229228 return -1 ;
230229 }
231230
@@ -243,8 +242,7 @@ void Writer::run()
243242 int ret = -1 ;
244243
245244 /* Required for logger */
246- qRegisterMetaType<QTextBlock>();
247- qRegisterMetaType<QTextCursor>();
245+ qRegisterMetaType<QtMsgType>();
248246
249247 if (serialPortCreate ())
250248 goto Exit;
@@ -262,3 +260,13 @@ void Writer::run()
262260 emit result (ret);
263261}
264262
263+ void Writer::logErr (const QString& msg)
264+ {
265+ emit log (QtCriticalMsg, msg);
266+ }
267+
268+ void Writer::logInfo (const QString& msg)
269+ {
270+ emit log (QtInfoMsg, msg);
271+ }
272+
0 commit comments