對於你們中的一些人來說,這可能相當簡單。關於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