RAK421数据发送出错,无法保证数据传输的完整性?



  • 使用方式,进行定时器计时,每隔10ms发送800B字节,使用代码如下:
    0_1492389756792_QQ截图20170417084154.png

    在检查数据时,发现传输数据中有部分数据包没有接收到
    用示波器进行检查,发现部分数据没有传输,应该是只发送了一些读状态的命令,之后传输数据的部分并没有执行。实际检测,不发送数据的情况所占比例大概在3%左右。

    在我的应用中,需要保证发送数据的完整性,不能接受这么多丢包的情况。(其实我不是很确定这算不算丢包,因为实际上是在发送端,这部分数据根本没有被发送出去。)
    我是考虑,如果一次发送失败,可以尝试再次发送,但是我看RAK421的发送数据代码,其实并没有一种机制可以检测发送数据是否成功,并没有发送成功或失败的返回值。

    希望工程师给予解答,是否有解决的方法。



  • 另外,在rak_send_data函数中,有一个socket_flag的参数,pdf里说是端口描述符,想请问一下这个参数的物理意义是什么?在程序中并没有看到对这个参数配置的情况。



  • 如图1,蓝色为spi通信的clk,绿色为测试引脚,在执行rak_send_data语句前后进行引脚翻转(如图2),可以看到部分周期,只是执行了前面检测状态的语句,数据并没有发送出去。

    0_1492391965536_微信图片_20170417091919.jpg

    0_1492392236969_QQ截图20170417092112.png



  • 0_1492392353646_QQ截图20170417092511.png





  • 你这可能是发送太快,BUF满了,你判断一下rak_send_data函数的返回值是不是RAK_BUFFER_FULL,是的话就延时再发送。


登录后回复
 

与 RAK支持中心 的连接断开,我们正在尝试重连,请耐心等待