how to limit the number of packet in each connection event?

Now I'm using nrf52840 as a master and some other ble chips as multi peripherals.

As I know, in ble link layer data header, there is a tag: MD(More Data) , by which, every peripheral can indicate the master : I has more data or not can be sent.

On the master side, I need nrf52840 to ignore the MD tag, just keep the way one packet one connection event, so each peripheral will under an "equal speed".

Because I can not enforce the peripherals to keep only one packet in their TX queue, this leads to nrf52840 always receive different number of packets from each peripheral in one connection event.

I'd searched here and found some tips on how to limit the packets sent from peripheral, but not receive by master.

So my question: is there any API or MACRO to let nrf52840(as a master) ignore the MD tag? or limit the number of packets to 1 in one connection event?

Thanks!

Parents
  • Hi,

    There is no API for limiting this explicitly. What you can do however, is to configure a short event length. It is only possible/allowed to send more packets within the connection event, and if you make the event short enough to only fit one packet then that should do the trick (though if you need to fit one large packet it may be possible to get e.g. two very small packets through in the same event length).

  • Hi Einar Thorsrud, thanx for your reply.

    I read from an other thread said sd_ble_opt_set can be used to limit the sender(in my project they are peripherals) to send only 1 packet in each connection event.

    If I ask my customer to change the peripherals chips to nrf52832, is that possible to use sd_ble_opt_set to fullfill the requirement?

    By the way, I'm developing under Zephyr, if this can work, which API should be used instead of sd_ble_opt_set?

    Thank you!

Reply
  • Hi Einar Thorsrud, thanx for your reply.

    I read from an other thread said sd_ble_opt_set can be used to limit the sender(in my project they are peripherals) to send only 1 packet in each connection event.

    If I ask my customer to change the peripherals chips to nrf52832, is that possible to use sd_ble_opt_set to fullfill the requirement?

    By the way, I'm developing under Zephyr, if this can work, which API should be used instead of sd_ble_opt_set?

    Thank you!

Children
No Data
Related