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.

af_datarequest消息并发

Other Parts Discussed in Thread: Z-STACK

z-Stack 1.2.2a 协议栈,协调器向多个终端发送消息时,能够支持并行发送么?

  • 同样的消息内容?那为什么不用广播?

  • 1、 嗯嗯,我的应用场景是一个协调器带5个终端,我要点对点的对从0号到4号终端,依次发送的指令(指令不同)。是不是可以依次发送5条指令,这五条指令之间没有加延时。这种指令下发合理么?

    2、另外,一个协调器对其中一个终端进行50k的数据传输(例如ota),参数设为

    /* The number of milliseconds to wait between data request polls to the coordinator. */
    -DPOLL_RATE=1000

    /* This is used after receiving a data indication to poll immediately
    * for queued messages...in milliseconds.
    */
    -DQUEUED_POLL_RATE=100

    这50k的数据肯定要分包发送,调用AF_DataRequest ( ) ,进行数据包发送,

    在一个1s的poll_rate周期内,协调器能放多少条数据包,等终端来取?协调上的这个待发送的数据缓存多大,协议栈里能看到么?

    我在实验的时候,发现如果10个数据包间隔500ms发送,终端会有丢包。是我发送间隔的原因导致失败么?

    如何才能做到效率最高的数据传输啊?

    这块不是很明白,希望ti的工作人员帮忙解答一下?十分感谢!!!!!

  • 1、协调器上会给每一个关联设备提供3条msg buffer。

    // Maximum msgs to hold per associated device.
    #define NWK_INDIRECT_MSG_MAX_PER 3 

    2、协调器hold 每一条msg的时间是NWK_INDIRECT_MSG_TIMEOUT=7(秒)
    3、给所有关联设备提供的msg buffer有12-3条 (目前理解12-3 是因为路由器的关联表中有存在协调器的可能性,协调器和路由器之间不会去data request)

    // Maximum total msgs to hold for all associated devices.
    #define NWK_INDIRECT_MSG_MAX_ALL \
     (NWK_MAX_DATABUFS_TOTAL - NWK_INDIRECT_MSG_MAX_PER)

    我的理解是对的么?
  • 我的问题和上面这个同学差不多:

    【需求】协调器同时给9个终端发送数据(内容不同),终端收到数据给协调器回复ACK后再发送一条数据。也就是同一个数据终端只有一条发送数据。zstack中定义的msg buffer最多为9条,每个设备一条。

    【现象】协调器并发数据时,会出现没有收到SRSP导致的发送失败(终端并没有收到数据)

    【问题】按zstack里NWK_INDIRECT_MSG_MAX_ALL的配置为9,应该最多有9条数据缓存才对。

    为什么会收不到MAC层的回应导致发送失败呢?有没有函数或方法可以查看MAC层buffer的发送状况?

    PS:期待回复,新年快乐!