Hello,
the current situation is nrf52832 can not receive the ack payload from nrf24le.
nrf52832 is DEVICE ,using the project from nrf5_sdk13.0.0\exzmples\multiprotocol\experimental_ble_app_gzll.After nrf52832 transfered data to nrf24le,nrf52832 could receive ack from nrf24le
(void nrf_gzll_device_tx_success() could callback successfully),but tx_info was always false and nrf52832 can not fetch the ack_payload from nrf24le.The founction code of nrf_gzll_device_tx_sucess() is as follow:
void nrf_gzll_device_tx_success(uint32_t pipe,nrf_gzll_device_tx_info_t tx_info)
{
uint8_t dummy[NRF_GZLL_CONST_MAX_PAYLOAD_LENGTH];
uint32_t dummy_length=0;
if(tx_info.payload_received_in_ack) //tx_info.payload_received_in_ack is always false
{
nrf_gzll_fetch_packet_from_rx_fifo(pipe,dummy,&dummy_length);
}
}
nrf24le is HOST, using the project nrfgo_sdk2.3.0\source_code\gazell_examples\gzll_host_ack_payload. It could receive the data from nrf52832,and it used the function,gzll_ack_payload_write(),to write the ack_payload. The main founction code is as follow:
void main(void)
{
uint8_t gzll_rx_payload[GZLL_MAX_PAYLOAD_LENGTH];
uint8_t gzll_rx_payload_length=0;
uint8_t gzll_ack_payload[5]={0x22,0x33,0x44,0x55,0x66};
mcu_init();
gzll_init();
EA=1;
gzll_rx_start();
for(;;)
{
if(gzll_rx_fifo_read(gzll_rx_payload,&gzll_rx_payload_length,0))
{
gzll_ack_payload_write(gzll_tx_payload,5,0);
}
}
}