first commit
This commit is contained in:
13
application/samples/radar/CMakeLists.txt
Executable file
13
application/samples/radar/CMakeLists.txt
Executable file
@ -0,0 +1,13 @@
|
||||
#===============================================================================
|
||||
# @brief cmake file
|
||||
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
#===============================================================================
|
||||
if(DEFINED CONFIG_SUPPORT_RADAR_STA_SAMPLE)
|
||||
add_subdirectory_if_exist(sta_sample)
|
||||
endif()
|
||||
|
||||
if(DEFINED CONFIG_SUPPORT_RADAR_SOFTAP_SAMPLE)
|
||||
add_subdirectory_if_exist(softap_sample)
|
||||
endif()
|
||||
|
||||
set(SOURCES "${SOURCES}" PARENT_SCOPE)
|
14
application/samples/radar/Kconfig
Executable file
14
application/samples/radar/Kconfig
Executable file
@ -0,0 +1,14 @@
|
||||
#===============================================================================
|
||||
# @brief Kconfig file.
|
||||
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
#===============================================================================
|
||||
choice
|
||||
prompt "Sample"
|
||||
|
||||
config SUPPORT_RADAR_STA_SAMPLE
|
||||
bool "Support RADAR STA Sample"
|
||||
|
||||
config SUPPORT_RADAR_SOFTAP_SAMPLE
|
||||
bool "Support RADAR SoftAP Sample."
|
||||
|
||||
endchoice
|
2
application/samples/radar/README.md
Executable file
2
application/samples/radar/README.md
Executable file
@ -0,0 +1,2 @@
|
||||
# hicfbb/radar_sensing/samples
|
||||
|
13
application/samples/radar/softap_sample/CMakeLists.txt
Executable file
13
application/samples/radar/softap_sample/CMakeLists.txt
Executable file
@ -0,0 +1,13 @@
|
||||
#===============================================================================
|
||||
# @brief cmake file
|
||||
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
#===============================================================================
|
||||
set(SOURCES
|
||||
"${SOURCES}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/radar_softap_sample.c"
|
||||
PARENT_SCOPE)
|
||||
|
||||
set(PUBLIC_HEADER
|
||||
"${PUBLIC_HEADER}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../include/middleware/services/radar/radar_service.h"
|
||||
PARENT_SCOPE)
|
212
application/samples/radar/softap_sample/radar_softap_sample.c
Executable file
212
application/samples/radar/softap_sample/radar_softap_sample.c
Executable file
@ -0,0 +1,212 @@
|
||||
/**
|
||||
* Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2023. All rights reserved.
|
||||
*
|
||||
* Description: Application core main function for standard \n
|
||||
*
|
||||
* History: \n
|
||||
* 2022-07-27, Create file. \n
|
||||
*/
|
||||
|
||||
#include "lwip/netifapi.h"
|
||||
#include "wifi_hotspot.h"
|
||||
#include "wifi_hotspot_config.h"
|
||||
#include "td_base.h"
|
||||
#include "td_type.h"
|
||||
#include "stdlib.h"
|
||||
#include "uart.h"
|
||||
#include "cmsis_os2.h"
|
||||
#include "soc_osal.h"
|
||||
#include "radar_service.h"
|
||||
|
||||
#define WIFI_IFNAME_MAX_SIZE 16
|
||||
#define WIFI_MAX_KEY_LEN 65
|
||||
#define WIFI_MAX_SSID_LEN 33
|
||||
#define WIFI_INIT_WAIT_TIME 500 // 5s
|
||||
#define WIFI_START_SOFTAP_DELAY 100 // 1s
|
||||
#define WIFI_IP_1 192
|
||||
#define WIFI_IP_2 168
|
||||
#define WIFI_IP_3 130
|
||||
#define WIFI_IP_4 1
|
||||
#define WIFI_IP_5 255
|
||||
|
||||
#define WIFI_CHANNEL_NUM 12
|
||||
#define WIFI_SECURITY_TYPE 3
|
||||
|
||||
#define WIFI_BECAON_INTERVAL 100
|
||||
#define WIFI_DTIM_PERIOD 2
|
||||
#define WIFI_GROUP_REKEY 86400
|
||||
#define WIFI_PROTOCOL_MODE 4
|
||||
#define WIFI_HIDDEN_SSID_FLAG 1
|
||||
|
||||
#define RADAR_STATUS_QUERY_DELAY 1000 // 10s
|
||||
#define RADAR_QUIT_DELAY_TIME 12 // 12s
|
||||
|
||||
#define RADAR_DEFAULT_TIMES 0
|
||||
#define RADAR_DEFAULT_LOOP 8
|
||||
#define RADAR_DEFAULT_ANT 0
|
||||
#define RADAR_DEFAULT_PERIOD 5000
|
||||
#define RADAR_DEFAULT_DBG_TYPE 3
|
||||
#define RADAR_DEFAULT_WAVE 2
|
||||
|
||||
#define RADAR_DBG_INFO_RPT_COEF 100
|
||||
#define RADAR_DBG_INFO_LEN 16
|
||||
|
||||
/*****************************************************************************
|
||||
Radar SoftAP+Socket sample用例
|
||||
*****************************************************************************/
|
||||
td_s32 radar_start_softap(td_void)
|
||||
{
|
||||
/* SoftAp接口的信息 */
|
||||
td_char ssid[WIFI_MAX_SSID_LEN] = "my_softAP";
|
||||
td_char pre_shared_key[WIFI_MAX_KEY_LEN] = "123456789";
|
||||
softap_config_stru hapd_conf = {0};
|
||||
softap_config_advance_stru config = {0};
|
||||
td_char ifname[WIFI_IFNAME_MAX_SIZE + 1] = "ap0"; /* 创建的SoftAp接口名 */
|
||||
struct netif *netif_p = TD_NULL;
|
||||
ip4_addr_t st_gw;
|
||||
ip4_addr_t st_ipaddr;
|
||||
ip4_addr_t st_netmask;
|
||||
IP4_ADDR(&st_ipaddr, WIFI_IP_1, WIFI_IP_2, WIFI_IP_3, WIFI_IP_4); /* IP地址设置:192.168.43.1 */
|
||||
IP4_ADDR(&st_netmask, WIFI_IP_5, WIFI_IP_5, WIFI_IP_5, 0); /* 子网掩码设置:255.255.255.0 */
|
||||
IP4_ADDR(&st_gw, WIFI_IP_1, WIFI_IP_2, WIFI_IP_3, WIFI_IP_4); /* 网关地址设置:192.168.43.2 */
|
||||
|
||||
(void)osDelay(WIFI_INIT_WAIT_TIME); /* 500: 延时5s,等待wifi初始化完毕 */
|
||||
PRINT("SoftAP try enable.\r\n");
|
||||
|
||||
(td_void)memcpy_s(hapd_conf.ssid, sizeof(hapd_conf.ssid), ssid, sizeof(ssid));
|
||||
(td_void)memcpy_s(hapd_conf.pre_shared_key, WIFI_MAX_KEY_LEN, pre_shared_key, WIFI_MAX_KEY_LEN);
|
||||
hapd_conf.security_type = WIFI_SECURITY_TYPE; /* 3: 加密方式设置为WPA_WPA2_PSK */
|
||||
hapd_conf.channel_num = WIFI_CHANNEL_NUM; /* 12:工作信道设置为12信道 */
|
||||
hapd_conf.wifi_psk_type = 0;
|
||||
|
||||
/* 配置SoftAp网络参数 */
|
||||
config.beacon_interval = WIFI_BECAON_INTERVAL; /* 100:Beacon周期设置为100ms */
|
||||
config.dtim_period = WIFI_DTIM_PERIOD; /* 2:DTIM周期设置为2 */
|
||||
config.gi = 0; /* 0:short GI默认关闭 */
|
||||
config.group_rekey = WIFI_GROUP_REKEY; /* 86400:组播秘钥更新时间设置为1天 */
|
||||
config.protocol_mode = WIFI_PROTOCOL_MODE; /* 4:协议类型设置为802.11b + 802.11g + 802.11n + 802.11ax */
|
||||
config.hidden_ssid_flag = WIFI_HIDDEN_SSID_FLAG; /* 1:不隐藏SSID */
|
||||
if (wifi_set_softap_config_advance(&config) != 0) {
|
||||
return -1;
|
||||
}
|
||||
/* 启动SoftAp接口 */
|
||||
if (wifi_softap_enable(&hapd_conf) != 0) {
|
||||
return -1;
|
||||
}
|
||||
/* 配置DHCP服务器 */
|
||||
netif_p = netif_find(ifname);
|
||||
if (netif_p == TD_NULL) {
|
||||
(td_void)wifi_softap_disable();
|
||||
return -1;
|
||||
}
|
||||
if (netifapi_netif_set_addr(netif_p, &st_ipaddr, &st_netmask, &st_gw) != 0) {
|
||||
(td_void)wifi_softap_disable();
|
||||
return -1;
|
||||
}
|
||||
if (netifapi_dhcps_start(netif_p, NULL, 0) != 0) {
|
||||
(td_void)wifi_softap_disable();
|
||||
return -1;
|
||||
}
|
||||
PRINT("SoftAp start success.\r\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void radar_print_res(radar_result_t *res)
|
||||
{
|
||||
PRINT("[RADAR_SAMPLE] lb:%u, hb:%u, hm:%u\r\n", res->lower_boundary, res->upper_boundary, res->is_human_presence);
|
||||
}
|
||||
|
||||
// 维测信息依次为:
|
||||
// 1.告知上层是否需要写入flash
|
||||
// 2.LNA * 10 + VGA
|
||||
// 3.原始回波峰值
|
||||
// 4.过去period帧的平均MO1底噪
|
||||
// 5.过去period帧的平均MO2底噪
|
||||
// 6.过去period帧的平均DP底噪
|
||||
// 7.过去period帧的平均帧间隔
|
||||
// 8.过去period帧中帧间隔超过Xms的帧数
|
||||
// 9.过去period帧中bitmap数量超过X门限的帧数
|
||||
// 10.过去period帧中bitmap比例超过X门限的帧数
|
||||
// 11.过去period帧中是在参与统计的帧数
|
||||
// 12.过去period帧中帧间隔最大值
|
||||
// 13.过去period帧中帧间隔最大值下标
|
||||
// 14.当前所使用的算法参数MO1门限
|
||||
// 15.当前所使用的算法参数MO2门限
|
||||
// 16.当前所使用的算法参数DP门限
|
||||
static void radar_print_dbg_info(int16_t *arr, uint8_t len)
|
||||
{
|
||||
if (len > RADAR_DBG_INFO_LEN || len == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
PRINT("dbg_info: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n",
|
||||
arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10],
|
||||
arr[11], arr[12], arr[13], arr[14], arr[15]);
|
||||
}
|
||||
|
||||
static void radar_init_para(void)
|
||||
{
|
||||
radar_dbg_para_t dbg_para;
|
||||
dbg_para.times = RADAR_DEFAULT_TIMES;
|
||||
dbg_para.loop = RADAR_DEFAULT_LOOP;
|
||||
dbg_para.ant = RADAR_DEFAULT_ANT;
|
||||
dbg_para.wave = RADAR_DEFAULT_WAVE;
|
||||
dbg_para.dbg_type = RADAR_DEFAULT_DBG_TYPE;
|
||||
dbg_para.period = RADAR_DEFAULT_PERIOD;
|
||||
uapi_radar_set_debug_para(&dbg_para);
|
||||
|
||||
radar_sel_para_t sel_para;
|
||||
sel_para.height = RADAR_HEIGHT_2M;
|
||||
sel_para.scenario = RADAR_SCENARIO_TYPE_HOME;
|
||||
sel_para.material = RADAR_MATERIAL_SINGLE;
|
||||
sel_para.fusion_track = true;
|
||||
sel_para.fusion_ai = true;
|
||||
uapi_radar_select_alg_para(&sel_para);
|
||||
|
||||
// 算法门限, 前三个使用tools/bin/radar_tool/radar_para_gen_tool工具标定, 后面五个使用本sample给出的默认值即可
|
||||
radar_alg_para_t alg_para;
|
||||
alg_para.d_th_1m = 32;
|
||||
alg_para.d_th_2m = 25;
|
||||
alg_para.p_th = 25;
|
||||
alg_para.t_th_1m = 13;
|
||||
alg_para.t_th_2m = 26;
|
||||
alg_para.b_th_ratio = 20;
|
||||
alg_para.b_th_cnt = 4;
|
||||
alg_para.a_th = 70;
|
||||
uapi_radar_set_alg_para(&alg_para, 0);
|
||||
|
||||
int16_t dly_time = RADAR_QUIT_DELAY_TIME;
|
||||
uapi_radar_set_delay_time(dly_time);
|
||||
}
|
||||
|
||||
int radar_demo_init(void *param)
|
||||
{
|
||||
PRINT("[RADAR_SAMPLE] radar_demo_init softap!\r\n");
|
||||
|
||||
param = param;
|
||||
radar_start_softap();
|
||||
uapi_radar_register_result_cb(radar_print_res);
|
||||
uapi_radar_register_debug_info_cb(radar_print_dbg_info, RADAR_DBG_INFO_RPT_COEF);
|
||||
radar_init_para();
|
||||
// 启动雷达
|
||||
(void)osDelay(WIFI_START_SOFTAP_DELAY);
|
||||
uapi_radar_set_status(RADAR_STATUS_START);
|
||||
|
||||
for (;;) {
|
||||
(void)osDelay(RADAR_STATUS_QUERY_DELAY);
|
||||
uint8_t sts;
|
||||
uapi_radar_get_status(&sts);
|
||||
uapi_radar_get_hardware_status(&sts);
|
||||
uint16_t time;
|
||||
uapi_radar_get_delay_time(&time);
|
||||
uint16_t iso;
|
||||
uapi_radar_get_isolation(&iso);
|
||||
radar_result_t res = {0};
|
||||
uapi_radar_get_result(&res);
|
||||
int16_t arr[RADAR_DBG_INFO_LEN] = {0};
|
||||
uapi_radar_get_debug_info(arr, RADAR_DBG_INFO_LEN);
|
||||
radar_print_dbg_info(arr, RADAR_DBG_INFO_LEN);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
13
application/samples/radar/sta_sample/CMakeLists.txt
Executable file
13
application/samples/radar/sta_sample/CMakeLists.txt
Executable file
@ -0,0 +1,13 @@
|
||||
#===============================================================================
|
||||
# @brief cmake file
|
||||
# Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2023-2023. All rights reserved.
|
||||
#===============================================================================
|
||||
set(SOURCES
|
||||
"${SOURCES}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/radar_sta_sample.c"
|
||||
PARENT_SCOPE)
|
||||
|
||||
set(PUBLIC_HEADER
|
||||
"${PUBLIC_HEADER}"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../../include/middleware/services/radar/radar_service.h"
|
||||
PARENT_SCOPE)
|
241
application/samples/radar/sta_sample/radar_sta_sample.c
Executable file
241
application/samples/radar/sta_sample/radar_sta_sample.c
Executable file
@ -0,0 +1,241 @@
|
||||
/**
|
||||
* Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2024-2024. All rights reserved.
|
||||
*
|
||||
* Description: Radar samples function \n
|
||||
*
|
||||
*/
|
||||
|
||||
#include "lwip/netifapi.h"
|
||||
#include "wifi_hotspot.h"
|
||||
#include "wifi_hotspot_config.h"
|
||||
#include "td_base.h"
|
||||
#include "td_type.h"
|
||||
#include "stdlib.h"
|
||||
#include "uart.h"
|
||||
#include "cmsis_os2.h"
|
||||
#include "soc_osal.h"
|
||||
#include "radar_service.h"
|
||||
#include "gpio.h"
|
||||
#include "pinctrl.h"
|
||||
|
||||
#define WIFI_IFNAME_MAX_SIZE 16
|
||||
#define WIFI_MAX_SSID_LEN 33
|
||||
#define WIFI_SCAN_AP_LIMIT 64
|
||||
#define WIFI_MAC_LEN 6
|
||||
#define WIFI_INIT_WAIT_TIME 500 // 5s
|
||||
#define WIFI_START_STA_DELAY 100 // 1s
|
||||
|
||||
#define RADAR_STATUS_START 1
|
||||
#define RADAR_STATUS_QUERY_DELAY 1000 // 10s
|
||||
#define RADAR_QUIT_DELAY_TIME 12 // 12s
|
||||
|
||||
#define RADAR_DEFAULT_TIMES 0
|
||||
#define RADAR_DEFAULT_LOOP 8
|
||||
#define RADAR_DEFAULT_ANT 0
|
||||
#define RADAR_DEFAULT_PERIOD 5000
|
||||
#define RADAR_DEFAULT_DBG_TYPE 3
|
||||
#define RADAR_DEFAULT_WAVE 2
|
||||
|
||||
#define RADAR_API_NO_HUMAN 0
|
||||
#define RADAR_API_RANGE_CLOSE 50
|
||||
#define RADAR_API_RANGE_NEAR 100
|
||||
#define RADAR_API_RANGE_MEDIUM 200
|
||||
#define RADAR_API_RANGE_FAR 600
|
||||
|
||||
#define RADAR_DBG_INFO_RPT_COEF 100
|
||||
#define RADAR_DBG_INFO_LEN 16
|
||||
|
||||
// led档位控制参数
|
||||
typedef enum {
|
||||
RADAR_INSIDE_1M,
|
||||
RADAR_INSIDE_2M,
|
||||
RADAR_INSIDE_6M,
|
||||
} radar_led_gear_t;
|
||||
|
||||
radar_led_gear_t g_radar_led_gear = RADAR_INSIDE_1M;
|
||||
|
||||
/*****************************************************************************
|
||||
STA 扫描-关联 sample用例
|
||||
*****************************************************************************/
|
||||
void radar_set_led_gear(radar_led_gear_t gear)
|
||||
{
|
||||
PRINT("[RADAR_SAMPLE] SET LED GEAR:%u!\r\n", gear);
|
||||
g_radar_led_gear = gear;
|
||||
}
|
||||
|
||||
static void radar_led_init(void)
|
||||
{
|
||||
// 1. 初始化所有GPIO并设置GPIO的类型
|
||||
uapi_gpio_init();
|
||||
// 2. 设置GPIO为输出
|
||||
errcode_t ret = uapi_gpio_set_dir(GPIO_13, GPIO_DIRECTION_OUTPUT);
|
||||
if (ret != ERRCODE_SUCC) {
|
||||
PRINT("[RADAR_SAMPLE] led uapi_gpio_set_dir failed %u!\r\n", ret);
|
||||
}
|
||||
// 3. 设置GPIO PIN模式为0,普通模式
|
||||
ret = uapi_pin_set_mode(GPIO_13, PIN_MODE_0);
|
||||
if (ret != ERRCODE_SUCC) {
|
||||
PRINT("[RADAR_SAMPLE] led uapi_pin_set_mode failed %u!\r\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
static void radar_set_led_on(void)
|
||||
{
|
||||
errcode_t ret = uapi_gpio_set_val(GPIO_13, GPIO_LEVEL_HIGH);
|
||||
if (ret!= ERRCODE_SUCC) {
|
||||
PRINT("[RADAR_SAMPLE] led ctrl failed %u!\r\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
static void radar_set_led_off(void)
|
||||
{
|
||||
errcode_t ret = uapi_gpio_set_val(GPIO_13, GPIO_LEVEL_LOW);
|
||||
if (ret!= ERRCODE_SUCC) {
|
||||
PRINT("[RADAR_SAMPLE] led ctrl failed %u!\r\n", ret);
|
||||
}
|
||||
}
|
||||
|
||||
static void radar_ctrl_led(radar_result_t *res)
|
||||
{
|
||||
switch (g_radar_led_gear) {
|
||||
case RADAR_INSIDE_1M:
|
||||
if (res->lower_boundary == 0 && res->upper_boundary == RADAR_API_RANGE_NEAR) {
|
||||
radar_set_led_on();
|
||||
} else {
|
||||
radar_set_led_off();
|
||||
}
|
||||
break;
|
||||
case RADAR_INSIDE_2M:
|
||||
if ((res->lower_boundary == RADAR_API_RANGE_NEAR &&
|
||||
res->upper_boundary == RADAR_API_RANGE_MEDIUM) ||
|
||||
(res->lower_boundary == 0 && res->upper_boundary == RADAR_API_RANGE_NEAR)) {
|
||||
radar_set_led_on();
|
||||
} else {
|
||||
radar_set_led_off();
|
||||
}
|
||||
break;
|
||||
default: // 默认6M档位
|
||||
if (res->is_human_presence == 1) {
|
||||
radar_set_led_on();
|
||||
} else {
|
||||
radar_set_led_off();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
td_s32 radar_start_sta(td_void)
|
||||
{
|
||||
(void)osDelay(WIFI_INIT_WAIT_TIME); /* 500: 延时0.5s, 等待wifi初始化完毕 */
|
||||
PRINT("STA try enable.\r\n");
|
||||
/* 创建STA接口 */
|
||||
if (wifi_sta_enable() != 0) {
|
||||
PRINT("sta enbale fail !\r\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* 连接成功 */
|
||||
PRINT("STA connect success.\r\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void radar_print_res(radar_result_t *res)
|
||||
{
|
||||
PRINT("[RADAR_SAMPLE] lb:%u, hb:%u, hm:%u\r\n", res->lower_boundary, res->upper_boundary, res->is_human_presence);
|
||||
|
||||
radar_ctrl_led(res);
|
||||
}
|
||||
|
||||
// 维测信息依次为:
|
||||
// 1.告知上层是否需要写入flash
|
||||
// 2.LNA * 10 + VGA
|
||||
// 3.原始回波峰值
|
||||
// 4.过去period帧的平均MO1底噪
|
||||
// 5.过去period帧的平均MO2底噪
|
||||
// 6.过去period帧的平均DP底噪
|
||||
// 7.过去period帧的平均帧间隔
|
||||
// 8.过去period帧中帧间隔超过Xms的帧数
|
||||
// 9.过去period帧中bitmap数量超过X门限的帧数
|
||||
// 10.过去period帧中bitmap比例超过X门限的帧数
|
||||
// 11.过去period帧中是在参与统计的帧数
|
||||
// 12.过去period帧中帧间隔最大值
|
||||
// 13.过去period帧中帧间隔最大值下标
|
||||
// 14.当前所使用的算法参数MO1门限
|
||||
// 15.当前所使用的算法参数MO2门限
|
||||
// 16.当前所使用的算法参数DP门限
|
||||
static void radar_print_dbg_info(int16_t *arr, uint8_t len)
|
||||
{
|
||||
if (len > RADAR_DBG_INFO_LEN || len == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
PRINT("dbg_info: %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\r\n",
|
||||
arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10],
|
||||
arr[11], arr[12], arr[13], arr[14], arr[15]);
|
||||
}
|
||||
|
||||
static void radar_init_para(void)
|
||||
{
|
||||
radar_dbg_para_t dbg_para;
|
||||
dbg_para.times = RADAR_DEFAULT_TIMES;
|
||||
dbg_para.loop = RADAR_DEFAULT_LOOP;
|
||||
dbg_para.ant = RADAR_DEFAULT_ANT;
|
||||
dbg_para.wave = RADAR_DEFAULT_WAVE;
|
||||
dbg_para.dbg_type = RADAR_DEFAULT_DBG_TYPE;
|
||||
dbg_para.period = RADAR_DEFAULT_PERIOD;
|
||||
uapi_radar_set_debug_para(&dbg_para);
|
||||
|
||||
radar_sel_para_t sel_para;
|
||||
sel_para.height = RADAR_HEIGHT_2M;
|
||||
sel_para.scenario = RADAR_SCENARIO_TYPE_HOME;
|
||||
sel_para.material = RADAR_MATERIAL_SINGLE;
|
||||
sel_para.fusion_track = true;
|
||||
sel_para.fusion_ai = true;
|
||||
uapi_radar_select_alg_para(&sel_para);
|
||||
|
||||
// 算法门限, 前三个使用tools/bin/radar_tool/radar_para_gen_tool工具标定, 后面五个使用本sample给出的默认值即可
|
||||
radar_alg_para_t alg_para;
|
||||
alg_para.d_th_1m = 32;
|
||||
alg_para.d_th_2m = 25;
|
||||
alg_para.p_th = 25;
|
||||
alg_para.t_th_1m = 13;
|
||||
alg_para.t_th_2m = 26;
|
||||
alg_para.b_th_ratio = 20;
|
||||
alg_para.b_th_cnt = 4;
|
||||
alg_para.a_th = 70;
|
||||
uapi_radar_set_alg_para(&alg_para, 0);
|
||||
|
||||
int16_t dly_time = RADAR_QUIT_DELAY_TIME;
|
||||
uapi_radar_set_delay_time(dly_time);
|
||||
}
|
||||
|
||||
int radar_demo_init(void *param)
|
||||
{
|
||||
PRINT("[RADAR_SAMPLE] radar_demo_init sta!\r\n");
|
||||
param = param;
|
||||
radar_led_init();
|
||||
radar_start_sta();
|
||||
uapi_radar_register_result_cb(radar_print_res);
|
||||
uapi_radar_register_debug_info_cb(radar_print_dbg_info, RADAR_DBG_INFO_RPT_COEF);
|
||||
radar_init_para();
|
||||
// 启动雷达
|
||||
(void)osDelay(WIFI_START_STA_DELAY);
|
||||
uapi_radar_set_status(RADAR_STATUS_START);
|
||||
|
||||
for (;;) {
|
||||
(void)osDelay(RADAR_STATUS_QUERY_DELAY);
|
||||
uint8_t sts;
|
||||
uapi_radar_get_status(&sts);
|
||||
uapi_radar_get_hardware_status(&sts);
|
||||
uint16_t time;
|
||||
uapi_radar_get_delay_time(&time);
|
||||
uint16_t iso;
|
||||
uapi_radar_get_isolation(&iso);
|
||||
radar_result_t res = {0};
|
||||
uapi_radar_get_result(&res);
|
||||
int16_t arr[RADAR_DBG_INFO_LEN] = {0};
|
||||
uapi_radar_get_debug_info(arr, RADAR_DBG_INFO_LEN);
|
||||
radar_print_dbg_info(arr, RADAR_DBG_INFO_LEN);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user