void PackUnpack::packWithCheckSum(QList<uchar> &pack) { int i; uchar dataHead; //数据头,在数据包的第2个位置,即模块ID之后 uchar checkSum; //数据校验和,在数据包的最后一个位置 //对于包长小于2的数据,不需要打包,因此直接跳出此方法,注意,最短的包只有包头和校验和,即系统复位 if (10 != pack.length())
时间: 2024-01-08 15:03:02 浏览: 47
custom-list-model.zip_List<Custom> list_list qt_qt list_qt lis
{ return; } //计算数据校验和 checkSum = 0; for (i = 0; i < 9; i++) { checkSum += pack.at(i); } //将数据头和数据校验和插入到数据包中 dataHead = pack.at(1); pack.insert(2, dataHead ^ checkSum); pack.append(checkSum); }
这段代码是一个打包数据并计算校验和的函数。首先判断数据包长度是否为10,如果不是则直接跳出函数。然后用循环计算数据校验和,将数据头和数据校验和插入到数据包中,并在最后一个位置添加数据校验和。
阅读全文