| | |
| | | |
| | | if (msg != NULL) |
| | | { |
| | | #if UWB_SERIAL_DATA_TRANSFER_EN == 0 |
| | | uwb_data_transfer_send_test(); |
| | | #else |
| | | #if ((UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_0) || (UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_1)) |
| | | uwb_serial_tx_msg_check(); |
| | | uwb_serial_rx_msg_check(); |
| | | #endif |
| | | #endif |
| | | switch (msg->event) |
| | | { |
| | | case UWB_PKT_TX_DONE_MSG: |
| | |
| | | } |
| | | else if ((ind->ranging_stage == RANGING_DM_TX) && (ind->tx_len)) |
| | | { |
| | | LOG_INFO(TRACE_MODULE_APP, "[TX][%d][%u] DM \r\n", ind->slot_idx, ind->tx_len); |
| | | #if ((UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_0) || (UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_1)) |
| | | uwb_serial_data_transfer_tx_done(); |
| | | #endif |
| | | } |
| | | else |
| | | { |
| | | LOG_INFO(TRACE_MODULE_APP, "[TX][%d][%u] DM\r\n", ind->slot_idx, ind->tx_len); |
| | | } |
| | | |
| | | #if DM_PRINT_PAYLOAD_EN |
| | | if (ind->tx_len) |
| | | { |
| | |
| | | int32_t freq_offset = phy_freq_offset_get(); |
| | | int32_t freq_offset_filter = average_filter(freq_offset); |
| | | LOG_INFO(TRACE_MODULE_APP, "CH Freq Offset %d\r\n", freq_offset_filter); |
| | | #if XTAL_AUTO_TUNE_EN |
| | | #if X38M4_AUTO_TUNE_EN |
| | | int32_t ppm = freq_offset_filter / (int32_t)(ch_center_freq_map[uwb_app_config.ppdu_params.ch_num] * 1e-6); |
| | | calib_xtal38m4_load_cap_auto_tune(ppm); |
| | | #endif |
| | |
| | | { |
| | | LOG_INFO(TRACE_MODULE_APP, "[RX][%d][%u] DM\r\n", ind->slot_idx, ind->rx_len); |
| | | |
| | | if (uwb_dm_rx_is_done()) |
| | | if (ind->rx_len > 33) |
| | | { |
| | | #if UWB_SERIAL_DATA_TRANSFER_EN |
| | | uwb_serial_rx_msg_update(uwb_dm_rx_pkt()); |
| | | #endif |
| | | #if ((UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_0) || (UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_1)) |
| | | struct DM_MDSDU_T *rx = uwb_dm_rx_pkt(); |
| | | uwb_receive_cb_write(&ind->rx_data[36], rx->len); |
| | | |
| | | #elif UWB_DATA_TRANSFER_MODE == UCI_DATA_TRANSFER_MODE |
| | | struct DM_MDSDU_T *rx = uwb_dm_rx_pkt(); |
| | | struct DATA_TRANSFER_T range_data; |
| | | memcpy(range_data.data, &ind->rx_data[36], rx->len); |
| | | range_data.length = rx->len; |
| | | uwbapi_report_ranging_data(&range_data); |
| | | #endif //((UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_0) || (UWB_DATA_TRANSFER_MODE == SERIAL_DATA_TRANSFER_MODE_1)) |
| | | } |
| | | } |
| | | |
| | |
| | | default: |
| | | break; |
| | | } |
| | | #if UWB_SERIAL_DATA_TRANSFER_EN |
| | | uwb_serial_tx_msg_check(); |
| | | uwb_serial_rx_msg_check(); |
| | | #endif |
| | | } |
| | | // Handle events |
| | | else |