Open
Description
else if (packer->state == 2)
{
//长度信息
packer->flen |= (uint16_t)d << 8;
packer->calc ^= d & 0x3F;
//数据包超长得情况下直接丢包
if ((packer->flen & 0x3FFF) > MAX_PACK_SIZE)
{
packer->state = 0;
}
packer->state = 3;
packer->cnt = 0;
}
问题:
当数据包超长时并不会直接丢包因为底下又重新给 state 赋值导致state = 0被覆盖。
解决方法:
在 packer->state = 0; 的下一行直接return 0;您看这样改是否妥当。
Metadata
Metadata
Assignees
Labels
No labels