添加每2小时在idle状态下重启的功能
This commit is contained in:
parent
d27ad95916
commit
5d67920a44
@ -100,6 +100,8 @@ void poTT2_callback(rt_alarm_t alarm, time_t timestamp)
|
|||||||
// timerIsReady();
|
// timerIsReady();
|
||||||
// initTT();
|
// initTT();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint8_t rstCnt=0;
|
||||||
/**
|
/**
|
||||||
* 定时更新debug文件名
|
* 定时更新debug文件名
|
||||||
* @param alarm
|
* @param alarm
|
||||||
@ -107,7 +109,18 @@ void poTT2_callback(rt_alarm_t alarm, time_t timestamp)
|
|||||||
*/
|
*/
|
||||||
void updatelog_callback(rt_alarm_t alarm, time_t timestamp)
|
void updatelog_callback(rt_alarm_t alarm, time_t timestamp)
|
||||||
{
|
{
|
||||||
|
//idle且TT未开启状态下主动重启
|
||||||
|
if (++rstCnt >= 2)//每N小时一检
|
||||||
|
{
|
||||||
|
rstCnt = 0;
|
||||||
|
if (isIdle())
|
||||||
|
{
|
||||||
|
rt_hw_cpu_reset(); //reboot
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
updateDebuglogName();
|
updateDebuglogName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void addDefaultAlarm()
|
void addDefaultAlarm()
|
||||||
|
@ -41,6 +41,17 @@ static rt_thread_t deinitThread=RT_NULL;
|
|||||||
static rt_timer_t tmrToPNTT=RT_NULL;
|
static rt_timer_t tmrToPNTT=RT_NULL;
|
||||||
static uint8_t isWindowMode=0;//RTC引起TT开机
|
static uint8_t isWindowMode=0;//RTC引起TT开机
|
||||||
static uint8_t isFileMode=0;//file is ok
|
static uint8_t isFileMode=0;//file is ok
|
||||||
|
|
||||||
|
//是否为idle状态。idle状态下TT未开启,232无数据
|
||||||
|
uint8_t isIdle(void)
|
||||||
|
{
|
||||||
|
if (!isTCPok() && !isEthUP() &&!isFileMode && !isWindowMode && !isManualWindow() && !is232Busy()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
uint8_t isInFileMode(void)
|
uint8_t isInFileMode(void)
|
||||||
{
|
{
|
||||||
return isFileMode;
|
return isFileMode;
|
||||||
|
@ -78,21 +78,26 @@ static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
|
|||||||
struct rx_msg msg;
|
struct rx_msg msg;
|
||||||
//extern struct rt_event update_cfg;
|
//extern struct rt_event update_cfg;
|
||||||
//extern int time2Str(char *str);
|
//extern int time2Str(char *str);
|
||||||
|
static uint8_t is232parsing=0;
|
||||||
|
uint8_t is232Busy(void)
|
||||||
|
{
|
||||||
|
return rx_mq.entry | is232parsing;
|
||||||
|
}
|
||||||
static void serial_thread_entry(void *parameter)
|
static void serial_thread_entry(void *parameter)
|
||||||
{
|
{
|
||||||
// struct rx_msg msg;
|
// struct rx_msg msg;
|
||||||
rt_err_t result;
|
rt_err_t result;
|
||||||
size_t rx_length=0;//单次收到的数据长度
|
size_t rx_length=0;//单次收到的数据长度
|
||||||
static char rx_buffer[RT_SERIAL_RB_BUFSZ + 1];
|
static char rx_buffer[RT_SERIAL_RB_BUFSZ + 1];
|
||||||
|
memset(rx_buffer,0,RT_SERIAL_RB_BUFSZ + 1);//清空rx_buffer
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
rt_memset(&msg, 0, sizeof(msg));
|
rt_memset(&msg, 0, sizeof(msg));
|
||||||
/* 从消息队列中读取消息*/
|
/* 从消息队列中读取消息*/
|
||||||
|
is232parsing=0;
|
||||||
result = rt_mq_recv(&rx_mq, &msg, sizeof(msg), RT_WAITING_FOREVER);
|
result = rt_mq_recv(&rx_mq, &msg, sizeof(msg), RT_WAITING_FOREVER);
|
||||||
|
is232parsing=1;
|
||||||
if (result == RT_EOK)
|
if (result == RT_EOK)
|
||||||
{
|
{
|
||||||
/* 从串口读取数据*/
|
/* 从串口读取数据*/
|
||||||
|
Loading…
Reference in New Issue
Block a user