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.

TI 15.4stack,非信标通讯中,sensor有时候无法接收到collector的信息?

sdk版本是2.4,例子有修改。

sensor和collector非信标模式通讯,一个collector连接了10sensor,sensor发送数据后,collector会及时回复信息。通讯48小时左右,其中个别sensor会出现连续1-3包左右的数据丢失。然后恢复正常通讯,抓包信息,排除掉线可能,sensor:数据ACK成功,poll回调成功,无数据回调触发。

因为collector每次回复,都是带一个时间,sensor时间没有更新,

使用过的处理方式:延长collector数据保留时间,加大sensor,poll次数,poll为500.

  • 偶尔丢包属于正常现象,建议你自己加逻辑去优化。当收到ApiMac_status_noAck,自己重新发送上次失败的信息。
  • ApiMac_status_noAck我是定时去发的,没有立即发送。

    sensor不是ApiMac_status_noAck,sensor发送数据,接收到ack,然后发送poll,poll回调成功,ack也是正确,应该进入data。我现在是打印信息sensor没有进入到data,去取collector发送过来的数据
  • 为了保证稳定性不建议客户去操作STACK的逻辑。dataCnfCB里面现在ApiMac_status_noAck就可以尝试重发一下。我回过你之前的帖子,你应该是不太在意低功耗,为什么不设置SENSOR为CONFIG_RX_ON_IDLE为true,即常在线设备来保证通讯的实时性。
  • 大哥,如果不考虑功耗,我就一直打开poll了。



    sensor发送数据,应该首先返回dataCnfCB,失败重发,成功,然后启动poll,poll成功,说明collector回复,后在dataInfCb。

    我现在是没有进入到dataInfCb。我的数据操作都在dataInfCb里面。

    这是不是说明,collector没有发送成功呀!!!!我senmsg函数返回true不就是成功吗?而且我在dataCnfCB里面都加了重发机制
  • 不是很理解你的意思 我有点晕。。。

    collector/sensor发送之后会进入dataCnfCB去处理 MAC Data Confirm callback.

    “sensor不是ApiMac_status_noAck,sensor发送数据,接收到ack,然后发送poll,poll回调成功,ack也是正确,应该进入data。我现在是打印信息sensor没有进入到data,去取collector发送过来的数据”

    你现在偶尔失败是抓包collector发送给sensor的数据有ACK返回,但是sensor 的dataIndCB没有反应我的理解对吗?
  • 是的,sensor的dataIndCB里面,没有反应。我的数据解析都在里面处理的额。

  • 能否上传抓包文件,并标注出现问题的位置。
  • 跑了4天出现了三次,很难抓到。通讯大概就是

    sensor 发送
    ack
    -------------------------------------------------------------》‘’collector发送‘’(--接收sensor的data状态回调,发送数据)
    sensor poll
    ack
    sensor无数据回调