mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-14 10:28:54 +00:00
89 lines
2.4 KiB
C
89 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2023, RT-Thread Development Team
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Change Logs:
|
|
* Date Author Notes
|
|
* 2023/1/29 supperthomas Add first version
|
|
*/
|
|
|
|
#include "rtthread.h"
|
|
#include "msh.h"
|
|
#ifdef LPKG_USING_RTT_AUTO_EXE_CMD
|
|
#else
|
|
#define RTT_AUTO_CMD_THREAD_STACK_SIZE 20480
|
|
#define RTT_AUTO_CMD_THREAD_PRIORITY 10
|
|
#define RTT_AUTO_INIT_TIME_MS 5000
|
|
#define RTT_CMD_1_STR "version"
|
|
#define RTT_CMD_1_DELAY 1000
|
|
#define RTT_CMD_2_STR "free"
|
|
#define RTT_CMD_2_DELAY 1000
|
|
#define RTT_CMD_LOOP_1_STR "ps"
|
|
#define RTT_CMD_LOOP_1_DELAY_TIME 2000
|
|
#define RTT_CMD_LOOP_2_STR "help"
|
|
#define RTT_CMD_LOOP_2_DELAY_TIME 2000
|
|
|
|
#define RTT_CMD_LOOP_TIME 3
|
|
#endif
|
|
|
|
typedef struct
|
|
{
|
|
char *cmd_string;
|
|
rt_uint32_t delay_time;
|
|
} rtt_cmd_array;
|
|
|
|
rtt_cmd_array rtt_cmd_init_array[]=
|
|
{
|
|
{RTT_CMD_1_STR,RTT_CMD_1_DELAY},
|
|
{RTT_CMD_2_STR,RTT_CMD_2_DELAY}
|
|
};
|
|
|
|
#ifdef RTT_CMD_LOOP_FLAG
|
|
rtt_cmd_array rtt_cmd_loop_array[]=
|
|
{
|
|
{RTT_CMD_LOOP_1_STR,RTT_CMD_LOOP_1_DELAY_TIME},
|
|
{RTT_CMD_LOOP_2_STR,RTT_CMD_LOOP_2_DELAY_TIME}
|
|
};
|
|
#endif
|
|
|
|
static void auto_cmd_thread_entry(void *parameter)
|
|
{
|
|
|
|
rt_thread_mdelay(RTT_AUTO_INIT_TIME_MS);
|
|
for(int i = 0;i < sizeof(rtt_cmd_init_array)/sizeof(rtt_cmd_array);i++)
|
|
{
|
|
if(rtt_cmd_init_array[i].cmd_string != RT_NULL)
|
|
{
|
|
msh_exec(rtt_cmd_init_array[i].cmd_string,rt_strlen(rtt_cmd_init_array[i].cmd_string));
|
|
rt_thread_mdelay(rtt_cmd_init_array[i].delay_time);
|
|
}
|
|
}
|
|
#ifdef RTT_CMD_LOOP_FLAG
|
|
rt_uint32_t loop_time = RTT_CMD_LOOP_TIME;
|
|
while(loop_time--)
|
|
{
|
|
for(int i = 0;i < sizeof(rtt_cmd_loop_array)/sizeof(rtt_cmd_array);i++)
|
|
{
|
|
if(rtt_cmd_loop_array[i].cmd_string != RT_NULL)
|
|
{
|
|
msh_exec(rtt_cmd_loop_array[i].cmd_string,rt_strlen(rtt_cmd_loop_array[i].cmd_string));
|
|
rt_thread_mdelay(rtt_cmd_loop_array[i].delay_time);
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
|
|
static int cmd_auto_exe(void)
|
|
{
|
|
rt_thread_t tid;
|
|
rt_kprintf("\r\n Hello RTT_AUTO_EXE thread CREATE!\r\n");
|
|
tid = rt_thread_create("RTT_AUTO_EXE", auto_cmd_thread_entry, RT_NULL,
|
|
RTT_AUTO_CMD_THREAD_STACK_SIZE, RTT_AUTO_CMD_THREAD_PRIORITY, 20);
|
|
RT_ASSERT(tid != RT_NULL);
|
|
rt_thread_startup(tid);
|
|
return 0;
|
|
}
|
|
INIT_APP_EXPORT(cmd_auto_exe);
|