lyzhangxiang 发表于 2017-9-6 23:02
仔细理解这种设计欠妥
暂不追究对错问题
如果是 只要有AF_DataRequest就会产生AF_DATA_CONFIRM_CMD 那 ...
AF_DataRequest是一个比较高级的函数接口了,只要返回了success,就说明输入的发送数据格式有效,而数据并不会发送出去,而是进入一个等待队列。其实串口通信也很类似,比如典型的UartWrite函数,返回值代表当前串口发送队列的状态。串口发送和无线发送最大的区别是,串口是一个字节一个字节的发送,而且发送完成时间是固定的,发送目标是固定的,发送结果也是固定的(100%能发出去)。无线就不一样,CSMA机制介入,导致每次函数调用填入发送数据,到发送的数据到空中,这段时间是随机的。同样CSMA机制还会导致填入的数据根本无法发出去。在zigbee网络里面还有一种情况就是你发送数据的时候目标正在休眠,数据要先缓存在MCU中等待目标唤醒后再发出去。