This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

rfeasylinkbeforelink及rfeasylinkRx相关问题

问题1:

 使用rfeasylinkbeforelink函数进行数据发送,多个板子一起发送数据,1个板子使用rfeasylinkRx进行接收,怎样保证不丢包? 
问题2:
 使用rfeasylinkbeforelink函数进行数据发送的时候,是不是在下一包数据发送之前会重发当前失败的数据包,但是如果有新的数据了就不再重发当前发送失败的包了? 
  • 1、rfEasyLinkListenBeforeTalk吧?多个一起发确实容易丢包,建议分批发送
    2、rfEasyLinkListenBeforeTalk展示的是在发送之前,先评估信道是否空闲【RSSI低于阈值】,没有重发
    为防丢包,建议用rfWsnConcentrator例程,收到数据后有ACK返回,可以软件里自行实现重传机制,比如设定一段时间,没有收到ACK即进行重传

    见下面补充回答

  • 谢谢,还有一个问题,以下这段代码的作用是什么呢?

    /*
    * Set to 1 if you want to attempt to retransmit a packet that couldn't be
    * transmitted after the CCA
    */
    #define RFEASYLINKLBT_RETRANSMIT_PACKETS 1

    #if RFEASYLINKLBT_RETRANSMIT_PACKETS
    bool bAttemptRetransmission = false;
    #endif // RFEASYLINKLBT_RETRANSMIT_PACKETS

  • 把这个给忘了。。。是的,这个可以设置重发,上面回复已改,解释如下:

    If the macro RFEASYLINKLBT_RETRANSMIT_PACKETS is set to 1 the application will attempt to retransmit any failed packets indefinitely; if set to 0 it will skip the failed packet and move on to the next packet in sequence. This cycle will continue.

  • 好的,谢谢,再问您一个问题,在easylinklistenbeforetalk中,listen部分的代码是哪一部分,我没太看明白,望赐教一下