keil/include/components/app/src/uwb_radar_task.c
@@ -1,5 +1,5 @@
/*
 * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and
 * Copyright (c) 2019-2025 Beijing Hanwei Innovation Technology Ltd. Co. and
 * its subsidiaries and affiliates (collectly called MKSEMI).
 *
 * All rights reserved.
@@ -43,14 +43,14 @@
#include "mk_power.h"
#include "mk_uwb.h"
#include "mk_radar.h"
#include "mk_sleep_timer.h"
#include "mk_misc.h"
#include "uwb_api.h"
#include "uwb_radar_task.h"
#include "uwb_radar.h"
#if UWB_RADAR_DETECT_PROCESS_EN
#include "mk8000_present_interface.h"
#include "MK8000_presence_interface.h"
#endif
// #include "board.h"
#define DEBUG_MEM_ADDR 0x02010000
@@ -116,7 +116,7 @@
    uint16_t header;
    uint16_t length;
    uint32_t seq;
    float acd_out[PULSE_PERIOD_POINTS(0) * 2];
    float adc_out[PULSE_PERIOD_POINTS(0) * 2];
    uint16_t check_num;
    uint16_t end;
};
@@ -126,7 +126,7 @@
    uint16_t header;
    uint16_t length;
    uint32_t seq;
    float acd_out[PULSE_PERIOD_POINTS(1) * 2];
    float adc_out[PULSE_PERIOD_POINTS(1) * 2];
    uint16_t check_num;
    uint16_t end;
};
@@ -136,7 +136,7 @@
    uint16_t header;
    uint16_t length;
    uint32_t seq;
    float acd_out[PULSE_PERIOD_POINTS(2) * 2];
    float adc_out[PULSE_PERIOD_POINTS(2) * 2];
    uint16_t check_num;
    uint16_t end;
};
@@ -146,7 +146,7 @@
    uint16_t header;
    uint16_t length;
    uint32_t seq;
    float acd_out[PULSE_PERIOD_POINTS(3) * 2];
    float adc_out[PULSE_PERIOD_POINTS(3) * 2];
    uint16_t check_num;
    uint16_t end;
};
@@ -156,7 +156,7 @@
    uint16_t header;
    uint16_t length;
    uint32_t seq;
    float acd_out[PULSE_PERIOD_POINTS(4) * 2];
    float adc_out[PULSE_PERIOD_POINTS(4) * 2];
    uint16_t check_num;
    uint16_t end;
};
@@ -166,7 +166,7 @@
    uint16_t header;
    uint16_t length;
    uint32_t seq;
    float acd_out[OUT_FRAME_LEN * UWB_RADAR_RX_PORT_NUM];
    float adc_out[OUT_FRAME_LEN * UWB_RADAR_RX_PORT_NUM];
    uint16_t check_num;
    uint16_t end;
};
@@ -217,6 +217,7 @@
                        power_on_radio(1, 1);
                        radar_start(radar_env.rx_ant_idx);
                        power_mode_request(POWER_UNIT_APP, POWER_MODE_SLEEP);
                        // LOG_INFO(TRACE_MODULE_APP, "radar start\r\n");
                    }
                    break;
@@ -227,15 +228,17 @@
                        radar_disable();
                        power_mode_request(POWER_UNIT_APP, POWER_MODE_POWER_DOWN);
                        radar_data_process((uint32_t *)DEBUG_MEM_ADDR, xfer_pack.sample_1tnr.acd_out, &data_len);
                        radar_data_process((uint32_t *)DEBUG_MEM_ADDR, xfer_pack.sample_1tnr.adc_out, &data_len);
                        uwb_radar_destroy_event();
                        // LOG_INFO(TRACE_MODULE_APP, "radar done\r\n");
#if UWB_RADAR_UCI_EN
                        uwbapi_report_radar_raw_data(data_len, (uint8_t *)xfer_pack.sample_1tnr.acd_out);
                        uwbapi_report_radar_raw_data(data_len, (uint8_t *)xfer_pack.sample_1tnr.adc_out);
                        LOG_INFO(TRACE_MODULE_APP, "Radar output data len: %u\r\n", data_len);
#else
#if UWB_RADAR_DETECT_PROCESS_EN
                        // board_led_on(BOARD_LED_1);
                        mcu_target_detect_process(xfer_pack.sample_1tnr.acd_out, PULSE_PERIOD_POINTS(UWB_RADAR_PULSE_PERIOD), &pre_para, &present);
                        mcu_target_detect_process(xfer_pack.sample_1tnr.adc_out, PULSE_PERIOD_POINTS(UWB_RADAR_PULSE_PERIOD), &pre_para, &present);
                        /* Object detection, the result shows */
                        if (present.flag)
                        {
@@ -253,7 +256,7 @@
                        LOG_INFO(TRACE_MODULE_APP, "Radar output data len: %u\r\n", data_len);
                        xfer_pack.sample_1tnr.length = data_len + SAMPLE_PACK_FIX_LENGTH;
                        xfer_pack.sample_1tnr.seq = radar_env.rx_ant_idx;
                        uint16_t check_num = uwb_radar_data_checksum((const uint8_t *)xfer_pack.sample_1tnr.acd_out, data_len);
                        uint16_t check_num = uwb_radar_data_checksum((const uint8_t *)xfer_pack.sample_1tnr.adc_out, data_len);
#if UWB_RADAR_1TNR_MODE == 1
                        xfer_pack.sample_1tnr.check_num = check_num;
@@ -325,22 +328,23 @@
                            radar_disable();
                            power_mode_request(POWER_UNIT_APP, POWER_MODE_POWER_DOWN);
                            radar_data_process((uint32_t *)DEBUG_MEM_ADDR, xfer_pack.sample_1tnr.acd_out, &data_len);
                            radar_data_process((uint32_t *)DEBUG_MEM_ADDR, xfer_pack.sample_1tnr.adc_out, &data_len);
#if UWB_RADAR_UCI_EN
                            uwbapi_report_radar_raw_data(data_len, (uint8_t *)xfer_pack.sample_1tnr.acd_out);
                            uwbapi_report_radar_raw_data(data_len, (uint8_t *)xfer_pack.sample_1tnr.adc_out);
                            LOG_INFO(TRACE_MODULE_APP, "Radar output data len: %u\r\n", data_len);
#else
#if RADAR_PRINT_EN
                            LOG_INFO(TRACE_MODULE_APP | TRACE_NO_OPTION, "--------------%u--------------\r\n", data_len);
                            for (uint8_t i = 0; i < PULSE_PERIOD_POINTS(UWB_RADAR_PULSE_PERIOD); i++)
                            {
                                LOG_INFO(TRACE_MODULE_APP | TRACE_NO_OPTION, "%.2f %.2f\n", xfer_pack.sample_1tnr.acd_out[i * 2],
                                         xfer_pack.sample_1tnr.acd_out[i * 2 + 1]);
                                LOG_INFO(TRACE_MODULE_APP | TRACE_NO_OPTION, "%.2f %.2f\n", xfer_pack.sample_1tnr.adc_out[i * 2],
                                         xfer_pack.sample_1tnr.adc_out[i * 2 + 1]);
                            }
#endif
#if UWB_RADAR_DETECT_PROCESS_EN
                            // board_led_on(BOARD_LED_1);
                            mcu_target_detect_process(xfer_pack.sample_1tnr.acd_out, PULSE_PERIOD_POINTS(UWB_RADAR_PULSE_PERIOD), &pre_para, &present);
                            mcu_target_detect_process(xfer_pack.sample_1tnr.adc_out, PULSE_PERIOD_POINTS(UWB_RADAR_PULSE_PERIOD), &pre_para, &present);
                            /* Object detection, the result shows */
                            if (present.flag)
                            {
@@ -357,7 +361,7 @@
                            LOG_INFO(TRACE_MODULE_APP, "Radar output data len: %u\r\n", data_len);
                            xfer_pack.sample_1tnr.length = data_len + SAMPLE_PACK_FIX_LENGTH;
                            xfer_pack.sample_1tnr.seq = radar_env.rx_ant_idx;
                            uint16_t check_num = uwb_radar_data_checksum((const uint8_t *)xfer_pack.sample_1tnr.acd_out, data_len);
                            uint16_t check_num = uwb_radar_data_checksum((const uint8_t *)xfer_pack.sample_1tnr.adc_out, data_len);
#if UWB_RADAR_1TNR_MODE == 1
                            xfer_pack.sample_1tnr.check_num = check_num;
                            xfer_pack.sample_1tnr.end = 0xAAAA;