Seite 1 von 1

QextSerialPort

Verfasst: 28. Oktober 2008 13:53
von surfman19
hi, kann ich so die gelesenen bytes in hex ausgeben?

Code: Alles auswählen

QextSerialPort *port;

...

int bytesRead = port->read(data, numBytes);
if (bytesRead != -1)
{
	data[bytesRead] = '\0';
}
else
{
	data[0] = '\0';
}

for(unsigned int i = 0; i < bytesRead; i++)
{
	cout << std::setfill('0') << std::setw(2) << uppercase << std::hex << (unsigned char)data[i];
}	

Verfasst: 28. Oktober 2008 18:27
von CaptnChaos
Das benutze ich in solchen Fällen.

Code: Alles auswählen

QByteArray debugDataHex(QByteArray data)
{
 QByteArray hexArray;
 for(int i = 0; i < data.size(); i++)
 {
  hexArray+= QByteArray::number(data[i], 16);
 }
 qDebug(hexArray);
 return hexArray;
}

Verfasst: 29. Oktober 2008 08:33
von surfman19

Code: Alles auswählen

QByteArray msg;
msg.resize(3);
msg[0] = 0x02;
msg[1] = 0x00;
msg[2] = 0xA8;

debugDataHex(msg);

gibt aus:
20ffffffffffffffa8
warum nicht gleicht:

Code: Alles auswählen

qdebug(msg.toHex()); ?
[/code]

Verfasst: 29. Oktober 2008 09:34
von CaptnChaos

Code: Alles auswählen

QByteArray debugDataHex(QByteArray data)
{
 QByteArray hexArray;
 for(int i = 0; i < data.size(); i++)
 {
  unsigned char c =  QByteArray::number(data[i], 16);
  hexArray+=c;
 }
 qDebug(hexArray);
 return hexArray;
}