解决上位机协议中crc校验错误依然执行命令的问题

赋码仪新检测赋码命令测试成功
  解决找不到槽任务返回值的bug
  从机返回数据按地址排序
  解决从机无返回时报错异常通道与实际不符的bug
This commit is contained in:
ranchuan
2023-12-26 18:05:20 +08:00
parent 593cdbabdc
commit 8e7f3347d9
10 changed files with 84 additions and 18 deletions

View File

@@ -11,6 +11,7 @@ public:
Codec()
{
fullFrame = false;
failed = false;
}
virtual ~Codec() {}
// 返回true,则是一个完整的帧
@@ -31,7 +32,8 @@ public:
}
return myarray();
}
public:
bool failed;// true时解析失败
protected:
bool fullFrame;
myarray data;

View File

@@ -86,6 +86,7 @@ int CodecYm::packCheck(myarray data)
{
int ack = 0;
offset=0;
failed=false;
while(data.size()>=2){
if ((uint8_t(data[0]) != 0x59u) || (uint8_t(data[1]) != 0x6du))
{
@@ -129,6 +130,7 @@ int CodecYm::packCheck(myarray data)
// crc校验不对
qWarning("recv data check error:%02x,%02x %02x,%02x", chk_a, chk_b, int(data[data.size() - 2]),
int(data[data.size() - 1]));
failed=true;
}
// 保存此流水号
cmd_no = data[5] | (data[6] << 8);