Qt中生成hex的报文

489 阅读1分钟

要点:

  • 1.宏定义成字符串
// 宏定义  
#define DEVICE_INSTRUCT "0201"  
// 宏替换  
instruct =  QByteArray::fromHex("DEVICE_INSTRUCT");

// "!"仿照侯捷老师的标注习惯
// ! 函数字符串的内容其实是"DEVICE_INSTRUCT",而不是宏替换 
#define DEVICE_INSTRUCT 0201  
instruct =  QByteArray::fromHex("DEVICE_INSTRUCT");
  • 2.函数QByteArray::fromHex()返回hex进制数据(注意,不是字符)

正确代码段:

// 宏定义,其实是字符串  
#define DEVICE_INSTRUCT "0201"
QByteArray instruct;
instruct.resize(2);
// 字符串转成了hex 0x02 0x01
instruct =  QByteArray::fromHex(DEVICE_INSTRUCT);
// 显示,便于调试
qDebug() << "instruct: " << instruct.toHex();            //0201  
qDebug() << "instruct[0]" <<  (uint_8)instruct[0];  //02