对于使用者来说,最基本的就是先搞清楚无线收发。
无线收发有两种方式:
1、调用最基本的底层收发函数,即读写寄存器收发,不经过协议栈。这种收发方式最直接,但是没有安全和可靠性保障,不利于组网。
2、利用协议栈收发,应用层只关心数据本身
先说方式一,方式一的官方说法是Basic RF。它的数据包是802.15.4的格式。但是没有扫描的功能,没有节点,协调器,路由的说法,不会自动加入网路,重传数据包。
发送: 调用uint8 basicRfSendPacket(uint16 destAddr, uint8* pPayload, uint8 length) , 填入目的地址,要发送的数据载荷以及长度。
接收:通过不断查询标志位 while(!basicRfPacketIsReady());来检测是否收到数据包,这个标志位在接收中断中被置位;检测到收到数据后,通过basicRfReceive来读取数据。
方式二:
协议栈的发送函数
afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP,
uint16 cID, uint16 len, uint8 *buf, uint8 *transID,
uint8 options, uint8 radius )
第一个参数afAddrType_t *dstAdd 是 目的地址
第二个参数endPointDesc_t *srcEP 发送节点的描述符
第三个参数cID, 即消息ID号,接收方利用该I