|
回复 24# CC2430
请看我的源代码中以下句段:
UART_SendMsg.dat[0] = *pkt->cmd.Data++;//抽取温度数值低8位
UART_SendMsg.dat[1] = *pkt->cmd.Data--;//抽取温度数值高8位
osal_memcpy (UART_SendMsg.dat, pkt->cmd.Data, 10);
/*这三句将温度数值和64位的IEEE地址从接收到的数据包pkt中cmd.Data内存储的数据提取到保存到UART_SendMsg.dat数组中,这里有一点要注意,也是很多坛友存在疑惑的:从pkt->cmd.Data数组中的第3个元素(前两个分别存放了温度数值的低高8位)开始到第10个元素这8个,依次存放了64位(8字节)IEEE地址,顺序是从低到高,也就是说第3个元素中存放的是IEEE地址的最后一个字节。这个IEEE地址可以利用TI的一个工具软件SmartRF Flash Programmer自己设定,我为两个节点分别设置了FF FF FF FF FF FF FF 00(节点1)和FF FF FF FF FF FF FF 01(节点2)。这样就可以通过第3个元素来判断该消息是哪个节点发送过来的了:若为00,表示这个消息是节点1的,否则就是节点2的。当然,这是只有两个节点的情况,若多了就还要增加判断条件。 */ |
|