dreamsuccess 发表于 2013-3-18 21:58:32

网蜂zigbee提问

在zigbee协议栈中有个无线发送接收函数:


if ( AF_DataRequest( &TestB_Flash_DstAddr, &TestB_epDesc,
                     SAMPLEAPP_FLASH_CLUSTERID,
                     3,
                     buffer,
                     &TestB_TransID,
                     AF_DISCV_ROUTE,
                     AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
}
else
{
    // Error occurred in request to send.
}
这句函数不管是发送成功与否 都没有任何操作,倘若我们发送了一个数据包去控制终端,而出现丢包情况,无法执行 ,
我希望直到发送成功才不发送 不知道怎么解决呢?最好有程序体现谢谢

dreamsuccess 发表于 2013-3-21 21:34:19

怎么没人解答呢

1013850890 发表于 2013-3-21 22:41:42

我的想法:
发送方应该是无法知道包丢了没,因为包发出去了,有可能在传输的过程中丢失,
可以这样做,接收方在过了一段时间之后若还没收到包,就发一个消息给发送方,让其重发。

迪加 发表于 2013-3-25 00:34:24

你好,z-stack其实有收发确认帧机制,只是隐藏了,可以使用Packet Sniffer zigbee抓包软件看看数据情况。

liu1210 发表于 2013-3-25 16:22:26

afStatus_SUCCESS ?不是发送成功?,数据发送出去后,触发MAC_MCPS_DATA_CNF事件,在事件中进行数据丢失的处理

liu1210 发表于 2013-3-25 16:26:35

即如果触发了MAC_MCPS_DATA_CNF事件,同时获取到的状态是MAC_NO_ACK || MAC_CHANNEL_ACCESS_FAILURE,即数据发送失败。

liu1210 发表于 2013-3-25 17:06:54

1013850890 发表于 2013-3-21 22:41 static/image/common/back.gif
我的想法:
发送方应该是无法知道包丢了没,因为包发出去了,有可能在传输的过程中丢失,
可以这样做,接收 ...

如果没有时间同步的话,接收方是不知道包丢失的,因为它不知道什么时候发送的数据包,也就不知道该用多长的时间来判断数据包丢失

huangliang1229 发表于 2013-3-25 17:27:27

请问怎么在串口透传实验里,添加键盘发送程序,就是开发底板上的S1键,就行了

迪加 发表于 2013-3-31 23:51:37

huangliang1229 发表于 2013-3-25 17:27 static/image/common/back.gif
请问怎么在串口透传实验里,添加键盘发送程序,就是开发底板上的S1键,就行了 ...

可以结合网蜂配套的按键例程和数据发送例程来得出答案。
页: [1]
查看完整版本: 网蜂zigbee提问