主题中讨论的其他部件:SimpliciTI,
我一直在玩rfWsn示例,并决定我的应用程序需要一个更长的地址。
我遇到了一个API函数,用它来扩展地址的大小:
EasyLink _setCtrl(EASYLink_Ctrl_AddSize, 4);
此外,我还对项目的其他部分进行了更改,以适应较长的地址。 我遵循这一指南,大致了解需要改变的方面:
但是,我很快发现,发送/接收的数据包阵列也需要更改,以便为较长的地址腾出空间。 我在节点和集中器应用程序中都执行了此操作。
/*保存数据包*/ latestRxPacket.header.sourceAddress =(rxPacket->payload[0]<24)|//已更改以为较长地址腾出空间 (rxPacket->load[1]<<16)| (rxPacket->payload[2]<<8)| rxPacket->Payload[3]; latestRxPacket.header.packetType = rxPacket->payload[4]; latestRxPacket.dmSensorPacket.adcValue =(rxPacket->payload[5]<< 8)| rxPacket->Payload[6]; latestRxPacket.dmSensorPacket.batt =(rxPacket->payload[7]<< 8)| rxPacket->Payload[8]; latestRxPacket.dmSensorPacket.time100MiliSec =(rxPacket->payload[9]<< 24)| (rxPacket->load[10]<<16)| (rxPacket->load[11]<< 8)| rxPacket->Payload[12]; latestRxPacket.dmSensorPacket.Button = rxPacket->Payload[13]; /*接收到信号包*/ EVENT_POST (radioOperationEventHandle,radio_event_valid_packet_received);
实施此操作后,我观察Concentrator切换时,它的"RADIO_EVENT_VALIDE_PACKGE_Received"指示LED每 3次,节点发送1个数据包。 这也导致它崩溃了几次,但我不知道为什么会发生这种情况,也不知道是什么原因造成的。 为什么会发生这种情况?
我已附加了项目文件,这些文件应该会有所帮助。 我一直在两个CC1310启动板上运行它。 如果有人能对此进行测试并在此为我提供一些指导,我将不胜感激。
e2e.ti.com/.../rfWsnExamples_5F00_4ByteAddr.zip
编辑:要测试示例,您需要在收集器端对EasyLink地址过滤进行注释,因为现在它是为我的特定LaunchPad设置的(地址从IEEE地址生成)。