Files
LPT26x-HSF-4MB-Hilink_14.2.…/application/ws63/user_main/app_main.c
ekko.bao 8270708ef2 1. 解决本地注册设备的流程无法正常控制设备的问题
2. 修改之前的 版本固件命名不对的问题
3. 增加debug kit,但是默认不开启(还在调试中)
2025-11-04 21:27:55 +08:00

283 lines
7.4 KiB
C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* assis_thread.c
*
* Copyright (C) 2024 ShangHai High-flying Electronics Technology Co.,Ltd.
*
* This file is part of HSF.
*
*/
#include "hsf.h"
#include "errcode.h"
#include "systick.h"
#include "debug_kit/include/debug_kit.h"
#include "spotlight.h"
#ifdef HF_MCU_OTA
#include "mcu_update.h"
#endif
static void *dk_delayed_start(const char *arg)
{
(void)arg;
unsigned int wait_ms = 0;
while (!hf_hilink_main_is_runing()) {
msleep(100);
if ((wait_ms += 100) > 10000) { break; }
}
msleep(300);
debug_kit_init();
return NULL;
}
int g_module_id = HFM_TYPE_LPT262;
const int hf_lpt_262_gpio_fid_to_pid_map_table[HFM_MAX_FUNC_CODE]=
{
HFM_NOPIN, //HFGPIO_F_JTAG_TCK
HFM_NOPIN, //HFGPIO_F_JTAG_TDO
HFM_NOPIN, //HFGPIO_F_JTAG_TDI
HFM_NOPIN, //HFGPIO_F_JTAG_TMS
HFM_NOPIN, //HFGPIO_F_USBDP
HFM_NOPIN, //HFGPIO_F_USBDM
LPT26x_GPIO17, //HFGPIO_F_UART0_TX
HFM_NOPIN, //HFGPIO_F_UART0_RTS
LPT26x_GPIO18, //HFGPIO_F_UART0_RX
HFM_NOPIN, //HFGPIO_F_UART0_CTS
HFM_NOPIN, //HFGPIO_F_SPI_MISO
HFM_NOPIN, //HFGPIO_F_SPI_CLK
HFM_NOPIN, //HFGPIO_F_SPI_CS
HFM_NOPIN, //HFGPIO_F_SPI_MOSI
LPT26x_GPIO15, //HFGPIO_F_UART1_TX,
HFM_NOPIN, //HFGPIO_F_UART1_RTS,
LPT26x_GPIO16, //HFGPIO_F_UART1_RX,
HFM_NOPIN, //HFGPIO_F_UART1_CTS,
LPT26x_GPIO2, //HFGPIO_F_NLINK
LPT26x_GPIO10, //HFGPIO_F_NREADY
LPT26x_GPIO5, //HFGPIO_F_NRELOAD
HFM_NOPIN, //HFGPIO_F_SLEEP_RQ
HFM_NOPIN, //HFGPIO_F_SLEEP_ON
HFM_NOPIN, //HFGPIO_F_WPS
HFM_NOPIN, //HFGPIO_F_RESERVE1
HFM_NOPIN, //HFGPIO_F_RESERVE2
HFM_NOPIN, //HFGPIO_F_RESERVE3
HFM_NOPIN, //HFGPIO_F_RESERVE4
HFM_NOPIN, //HFGPIO_F_RESERVE5
HFM_NOPIN, //HFGPIO_F_USER_DEFINE
};
const int hf_lpt_263_gpio_fid_to_pid_map_table[HFM_MAX_FUNC_CODE]=
{
HFM_NOPIN, //HFGPIO_F_JTAG_TCK
HFM_NOPIN, //HFGPIO_F_JTAG_TDO
HFM_NOPIN, //HFGPIO_F_JTAG_TDI
HFM_NOPIN, //HFGPIO_F_JTAG_TMS
HFM_NOPIN, //HFGPIO_F_USBDP
HFM_NOPIN, //HFGPIO_F_USBDM
LPT26x_GPIO17, //HFGPIO_F_UART0_TX
HFM_NOPIN, //HFGPIO_F_UART0_RTS
LPT26x_GPIO18, //HFGPIO_F_UART0_RX
HFM_NOPIN, //HFGPIO_F_UART0_CTS
HFM_NOPIN, //HFGPIO_F_SPI_MISO
HFM_NOPIN, //HFGPIO_F_SPI_CLK
HFM_NOPIN, //HFGPIO_F_SPI_CS
HFM_NOPIN, //HFGPIO_F_SPI_MOSI
LPT26x_GPIO15, //HFGPIO_F_UART1_TX,
HFM_NOPIN, //HFGPIO_F_UART1_RTS,
LPT26x_GPIO16, //HFGPIO_F_UART1_RX,
HFM_NOPIN, //HFGPIO_F_UART1_CTS,
LPT26x_GPIO7, //HFGPIO_F_NLINK
LPT26x_GPIO8, //HFGPIO_F_NREADY
LPT26x_GPIO9, //HFGPIO_F_NRELOAD
HFM_NOPIN, //HFGPIO_F_SLEEP_RQ
HFM_NOPIN, //HFGPIO_F_SLEEP_ON
HFM_NOPIN, //HFGPIO_F_WPS
HFM_NOPIN, //HFGPIO_F_RESERVE1
HFM_NOPIN, //HFGPIO_F_RESERVE2
HFM_NOPIN, //HFGPIO_F_RESERVE3
HFM_NOPIN, //HFGPIO_F_RESERVE4
HFM_NOPIN, //HFGPIO_F_RESERVE5
HFM_NOPIN, //HFGPIO_F_USER_DEFINE
};
const int hf_lpt_162_gpio_fid_to_pid_map_table[HFM_MAX_FUNC_CODE]=
{
HFM_NOPIN, //HFGPIO_F_JTAG_TCK
HFM_NOPIN, //HFGPIO_F_JTAG_TDO
HFM_NOPIN, //HFGPIO_F_JTAG_TDI
HFM_NOPIN, //HFGPIO_F_JTAG_TMS
HFM_NOPIN, //HFGPIO_F_USBDP
HFM_NOPIN, //HFGPIO_F_USBDM
LPT26x_GPIO17, //HFGPIO_F_UART0_TX
HFM_NOPIN, //HFGPIO_F_UART0_RTS
LPT26x_GPIO18, //HFGPIO_F_UART0_RX
HFM_NOPIN, //HFGPIO_F_UART0_CTS
HFM_NOPIN, //HFGPIO_F_SPI_MISO
HFM_NOPIN, //HFGPIO_F_SPI_CLK
HFM_NOPIN, //HFGPIO_F_SPI_CS
HFM_NOPIN, //HFGPIO_F_SPI_MOSI
LPT26x_GPIO15, //HFGPIO_F_UART1_TX,
HFM_NOPIN, //HFGPIO_F_UART1_RTS,
LPT26x_GPIO16, //HFGPIO_F_UART1_RX,
HFM_NOPIN, //HFGPIO_F_UART1_CTS,
LPT26x_GPIO7, //HFGPIO_F_NLINK
LPT26x_GPIO8, //HFGPIO_F_NREADY
LPT26x_GPIO9, //HFGPIO_F_NRELOAD
HFM_NOPIN, //HFGPIO_F_SLEEP_RQ
HFM_NOPIN, //HFGPIO_F_SLEEP_ON
HFM_NOPIN, //HFGPIO_F_WPS
HFM_NOPIN, //HFGPIO_F_RESERVE1
HFM_NOPIN, //HFGPIO_F_RESERVE2
HFM_NOPIN, //HFGPIO_F_RESERVE3
HFM_NOPIN, //HFGPIO_F_RESERVE4
HFM_NOPIN, //HFGPIO_F_RESERVE5
HFM_NOPIN, //HFGPIO_F_USER_DEFINE
};
#ifdef ENABLE_BLE_SCAN
void hf_ble_scan_callback(gap_scan_result_data_t *scan_result_data)
{
// todo
return ;
}
int hfble_start_scan(void)
{
int ret = 0;
gap_ble_scan_params_t ble_scan_param = {
.scan_interval = 0x40, //30*8/5*2*2,
.scan_window = 0x20, //30*8/5/2,
.scan_type = 0x00,
.scan_phy = GAP_BLE_PHY_1M,
.scan_filter_policy = 0x00,
};
gap_ble_extern_scan_params_t ble_extern_scan_param = {
.filter_duplicate = 0,
.duration = 0,
.period = 0,
};
ret = gap_ble_set_scan_parameters(&ble_scan_param);
if(ret != 0){
HILINK_SAL_DEBUG("gap_ble_set_scan_parameters failed, errcode = 0x%X\r\n", ret);
return -1;
}
ret = gap_ble_set_scan_extern_parameters(&ble_extern_scan_param);
if(ret != 0){
HILINK_SAL_DEBUG("gap_ble_set_scan_extern_parameters failed, errcode = 0x%X\r\n", ret);
return -1;
}
ret = gap_ble_start_scan();
if(ret != 0){
HILINK_SAL_DEBUG("gap_ble_start_scan failed, errcode = 0x%X\r\n", ret);
return -1;
}
HILINK_SAL_DEBUG("*****************ble start scan*****************\r\n");
return 0;
}
#endif
static int USER_FUNC uart_recv_callback(uint32_t event,char *data,uint32_t len,uint32_t buf_len)
{
if(data == NULL)
return 0;
if(event == HFNET_UART0_DATA_READY)
HF_Debug(DEBUG_LEVEL_LOW,"[%d]uart 0 recv %d bytes data %d\n",event,len,buf_len);
else if(event == HFNET_UART1_DATA_READY)
HF_Debug(DEBUG_LEVEL_LOW,"[%d]uart 1 recv %d bytes data %d\n",event,len,buf_len);
if(hfsys_get_run_mode() == HFSYS_STATE_RUN_CMD)
return len;
return len;
}
void user_app_init(void)
{
u_printf("user app init\r\n");
}
void hfwifi_product_callback(HFWIFI_STATE state)
{
u_printf("wifi state:%d\r\n",state);
}
#define APPVER "1.0.0"
int hf_atcmd_appver(pat_session_t s,int argc,char *argv[],char *rsp,int len)
{
if(argc == 0)
{
sprintf(rsp,"=LPT262_Harmonyos_%s_%s",APPVER,"20250227");
return 0;
}
return -3;
}
const hfat_cmd_t user_define_at_cmds_table[]=
{
{"APPVER", hf_atcmd_appver, "AT+APPVER: get version. \r\n",NULL},
#ifdef HF_MCU_OTA
{"MCUOTA", hf_atcmd_mcu, "AT+MCUOTA: start mcu ota. \r\n",NULL},
{"MCUVER", hf_atcmd_mcuver, "AT+MCUVER: get mcu version. \r\n",NULL},
{"OTAWAITTIME", hf_atcmd_ota_wait_time, "AT+OTAWAITTIME: set/get uart send mcu ota time\r\n", NULL},
#endif
{NULL, NULL, NULL, NULL} //the last item must be null
};
int USER_FUNC user_app_main(void)
{
hfdbg_set_level(1);
//AT+UART uart0
if(hfnet_start_uart(HFTHREAD_PRIORITIES_LOW,(hfnet_callback_t)uart_recv_callback)!=HF_SUCCESS)
{
HF_Debug(DEBUG_WARN,"start uart fail!\r\n");
}
spotlight_main();
// 延后启动 debug kit等待 HiLink Main 运行后再启动,避免启动期资源竞争
// dk_delayed_start(NULL);
#ifdef HF_MCU_OTA
if(hf_mcu_init() != HF_SUCCESS)
HF_Debug(DEBUG_WARN,"init mcu ota fail!\r\n");
#endif
//See Wi-Fi Config tools APP for detailed usage of this thread, only debug mode open
if(hfdbg_get_level())
{
while(!hfnet_wifi_is_active())
{
msleep(50);
}
if(hfnet_start_assis(ASSIS_PORT)!=HF_SUCCESS)
{
HF_Debug(DEBUG_WARN,"start assis fail\r\n");
}
}
return 1;
}