QextSerialPort

Alles rund um die Programmierung mit Qt
Antworten
surfman19
Beiträge: 52
Registriert: 22. August 2008 18:20

QextSerialPort

Beitrag 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];
}	
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag 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;
}
surfman19
Beiträge: 52
Registriert: 22. August 2008 18:20

Beitrag 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]
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag 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;
}
Antworten