对于你们中的一些人来说,这可能相当简单。关于C++的问题
我在看以下串行读取功能,我不能完全理解&prefix[2]
在这里所做的。这是否意味着只能填充两个字节或其他内容?
我还应该提到这是玩家/舞台平台的一部分。
while (1)
{
cnt = 0;
while (cnt != 1)
{
if ((cnt += read(fd, &prefix[2], 1)) < 0)
{
perror("Error reading packet header from robot connection: P2OSPacket():Receive():read():");
return (1);
}
}
if (prefix[0] == 0xFA && prefix[1] == 0xFB)
{
break;
}
GlobalTime->GetTimeDouble(×tamp);
prefix[0] = prefix[1];
prefix[1] = prefix[2];
}
感谢的人。你节省了我的头几个小时抓了一个简单的事情。我正在阅读阅读字节和丢失情节的大图。 – nixgadgets 2011-05-06 11:05:01
bdw为什么它以这种方式完成而不是在单个循环中读取标题或前3个字节? – nixgadgets 2011-05-06 11:06:29
您想检查流中每个位置的同步字节。读取3个字节时会出现很多问题。你需要一个状态机才能生存。移动字节要便宜得多。 – harper 2011-05-07 06:28:12