我已经用 ascii 代码风格做了一个 tansmition,一切都很好,直到我进行了 crc 检查。在我的项目中 crc 是一个字节。在我的接收器中,我将所有内容都放入 std::string 中,如果 crc 小于 127,则一切正常。但是,如果我的 crc 大于 127,那么向我的 std::string 添加附加数据 - 下面的示例。
if crc = 80 -> in std:string "P"
if crc = 168 -> in std::string "�" (three diffrent signs)
我究竟做错了什么?我以为127上面有特殊字符,但现在我迷路了......
编辑:我试图让它变得简单,但我当然可以给你代码:)。
QSerialPort *serial = new QSerialPort;
std::string *buffer = new std::string;
//when 'readyRead' event comes from serial then:
QString tempBuffer = serial->readAll();
*buffer += tempBuffer.toStdString();
然后在不同的线程中我处理缓冲区数据。问题是当我发送一个大于 127 的字节时 - 在这种情况下,一些额外的字符会附加到我的缓冲区(如第一个示例中)。