1
我在試圖與XBee進行通信的嵌入式平臺上實現了以下代碼。 ,下面執行的代碼的嵌入式平臺是不的的XBee:如何發送有效載荷到XBee
int main()
{
char payload[12] = {0x61,0x88,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0xEC,0x00,0x00}
payload[2] = 0x10;
payload[9] = 0x01;
char data = 'H'; // Send simple ASCII character to XBee
payload[11]= data;
while (1)
sendByteofData(payload,12);
}
void sendByteOfData(char * payload, int len)
{
int x;
for (x=0;x<4;x++)
// This function sends IEEE 802.15.4 frames, and I know it
// works because they are detected in the [sniffer][3].
send_IEEE_802_15_4_frame(payload,len);
}
payload[2] = payload[2] % 256 + 1;
payload[9] = payload[9] % 256 + 1;
if (payload[9] % 256 == 0)
payload[9] = 0x01;
else
payload[9] %= 256;
}
令我驚訝的,上面的代碼實際發送一個字節從嵌入式平臺的成功的XBee。然而,main()結尾處的無限循環應該產生了一個字節流。
我的懷疑是我需要正確設置payload[2]
和payload[9]
,上面顯示的增量模256算法可能存在缺陷。
如何獲得連續的字節流?
修改'sendByteOfData()'中的payload []'是錯誤的編碼;爲什麼不在'main()'中完成這個遞增?實際上,程序名稱是完全誤導的,因爲'sendByteOfData()'將傳輸*多於一個字節*。 – sawdust