@@ -145,7 +145,6 @@ static void mac_data_poll_radio_disable_check(protocol_interface_rf_mac_setup_s
145145
146146static void mcps_data_confirm_cb (protocol_interface_rf_mac_setup_s * rf_mac_setup , mcps_data_conf_t * confirm , mac_pre_parsed_frame_t * ack_buf )
147147{
148-
149148 mac_data_poll_radio_disable_check (rf_mac_setup );
150149
151150 if ( get_sw_mac_api (rf_mac_setup ) ) {
@@ -1123,8 +1122,8 @@ static int8_t mac_ack_sap_rx_handler(mac_pre_parsed_frame_t *buf, protocol_inter
11231122 return 0 ;
11241123}
11251124
1126- static void mac_pd_data_confirm_handle (protocol_interface_rf_mac_setup_s * rf_mac_setup ) {
1127-
1125+ static void mac_pd_data_confirm_handle (protocol_interface_rf_mac_setup_s * rf_mac_setup )
1126+ {
11281127 if (rf_mac_setup -> active_pd_data_request ) {
11291128 mac_pre_build_frame_t * buffer = rf_mac_setup -> active_pd_data_request ;
11301129 if (mac_data_request_confirmation_finnish (rf_mac_setup , buffer ) ) {
@@ -1146,8 +1145,8 @@ static void mac_pd_data_confirm_handle(protocol_interface_rf_mac_setup_s *rf_mac
11461145}
11471146
11481147
1149- static void mac_pd_data_ack_handler (mac_pre_parsed_frame_t * buf ) {
1150-
1148+ static void mac_pd_data_ack_handler (mac_pre_parsed_frame_t * buf )
1149+ {
11511150 protocol_interface_rf_mac_setup_s * rf_mac_setup = buf -> mac_class_ptr ;
11521151
11531152 if (!rf_mac_setup -> active_pd_data_request ) {
@@ -1357,7 +1356,9 @@ static void mac_common_data_confirmation_handle (protocol_interface_rf_mac_setup
13571356 buf -> status = MLME_TRANSACTION_EXPIRED ;
13581357 } else if (m_event == MAC_UNKNOWN_DESTINATION ) {
13591358 buf -> status = MLME_UNAVAILABLE_KEY ;
1360- }
1359+ }/** else if (m_event == MAC_TX_PRECOND_FAIL) {
1360+ * Nothing to do, status already set to buf->status.
1361+ }**/
13611362 }
13621363}
13631364
@@ -1904,17 +1905,9 @@ void mcps_sap_pd_req_queue_write(protocol_interface_rf_mac_setup_s *rf_mac_setup
19041905 //Start TX process immediately
19051906 mac_data_request_init (rf_mac_setup , buffer );
19061907 if (mcps_pd_data_request (rf_mac_setup , buffer ) != 0 ) {
1907- rf_mac_setup -> active_pd_data_request = NULL ;
1908- mcps_data_conf_t confirm ;
1909- memset (& confirm , 0 , sizeof (mcps_data_conf_t ));
1910- confirm .msduHandle = buffer -> msduHandle ;
1911- confirm .status = buffer -> status ;
1912- bool requested_from_up = buffer -> upper_layer_request ;
1913- mcps_sap_prebuild_frame_buffer_free (buffer );
1914- if (requested_from_up ) {
1915- mcps_data_confirm_cb (rf_mac_setup , & confirm , NULL );
1916- }
1917- //Call
1908+ rf_mac_setup -> mac_tx_result = MAC_TX_PRECOND_FAIL ;
1909+ rf_mac_setup -> macTxRequestAck = false;
1910+ mcps_sap_pd_confirm (rf_mac_setup );
19181911 }
19191912
19201913 return ;
0 commit comments