This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Problem about proprietary protocol and ack

Hi,

In my develop environment , there have many proprietary device.  One device is working on PTX mode, and the other devices is working in PRX mode.

If the PTX device send a broadcast proprietary packet (need ACK), all of PRX devices may  send ACK message back. Does it correct?

How can "PTX device" know the "ACK message" is send from which PRX device?

Thank you,

Chianglin

  • Hi Chianglin, 

     

    To clear TX buffer you can call nrf_esb_flush_tx() 

    Maybe it's not clear in the documentation on infocenter (but it's clearer in the datasheet of nRF24 series, I would suggest to have a look at those), but noack bit will be used on the PRX to check if it should send the ACK packet back or not when the selective_auto_ack is set (Please have a look at the on_radio_disabled_rx() function where we have this check: 

     if ((m_config_local.selective_auto_ack == false) || ((m_rx_payload_buffer[1] & 0x01) == 1))

    This is the check if it should send ACK or not. This also requires you to use NRF_ESB_PROTOCOL_ESB_DPL instead of NRF_ESB_PROTOCOL_ESB (always ACK, as far as I understand)

Related