You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.9 KiB
83 lines
1.9 KiB
#include "app_task_relay.h"
|
|
#include "app_common.h"
|
|
#include "../app/app_paraid.h"
|
|
|
|
struct _s_task_relay_ s_task_relay;
|
|
|
|
void L3_task_relay_init(void)
|
|
{
|
|
U8 i = 0;
|
|
//0.任务初始化
|
|
L1_task_init(&s_task_relay.task);
|
|
L3_task_s_go(s_task_relay,D_task_init);
|
|
|
|
//1.任务变量初始化
|
|
s_task_relay.pc = 0;
|
|
s_task_relay.pc_stmp = s_nos_tick.t_1s;
|
|
|
|
//2.读取flash参数
|
|
#if 0
|
|
if(1 == s_flash_data.page0_ok)
|
|
{
|
|
for(i=0;i<RELAY_NUM;i++)
|
|
{
|
|
s_relay_oper[i].relay_status = s_flash_data.f_page0.relay_status[i];
|
|
}
|
|
//3.继电器上电初始化
|
|
for(i=0;i<RELAY_NUM;i++)
|
|
{
|
|
// s_relay_oper[i].relay_handler(
|
|
// s_relay_oper[i].relay_status
|
|
// );
|
|
s_relay_oper[i].relay_handler(
|
|
L2_relay_convert_and_do(i,s_relay_oper[i].relay_status)
|
|
);
|
|
}
|
|
}
|
|
|
|
if(1 == s_flash_data.page1_ok)
|
|
{
|
|
for(i=0;i<RELAY_NUM;i++)
|
|
{
|
|
s_relay_oper[i].relay_oper_max_time = s_flash_data.f_page1.relay_oper_max_time[i];
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
|
|
|
|
#define TTSS_TASK_RELAY_01 0x1
|
|
#define TTSS_TASK_RELAY_02 0x2
|
|
#define TTSS_TASK_RELAY_03 0x3
|
|
|
|
void L3_task_relay_handle(struct _s_task_relay_ *s)
|
|
{
|
|
TTSS_Task_init();
|
|
L2_task_go(TTSS_TASK_RELAY_01);
|
|
TTSS_Task_step(TTSS_TASK_RELAY_01)
|
|
if(s->pc != 0)
|
|
{
|
|
if(PC_GUANJI == s->pc)
|
|
{
|
|
if(s_nos_tick.t_1s - s->pc_stmp >= 7) //至少经过6s 6s-7s
|
|
{
|
|
s->pc = 0;
|
|
s->pc_stmp = s_nos_tick.t_1s;
|
|
s_relay_oper[RELAY_PC].relay_handler(L2_relay_convert_and_do(RELAY_PC,RELAY_KAI));
|
|
s_relay_oper[RELAY_PC].relay_status = RELAY_KAI;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(s_nos_tick.t_1s - s->pc_stmp >= 2) //至少经过1s 1s-2s
|
|
{
|
|
s->pc = 0;
|
|
s->pc_stmp = s_nos_tick.t_1s;
|
|
s_relay_oper[RELAY_PC].relay_handler(L2_relay_convert_and_do(RELAY_PC,RELAY_KAI));
|
|
s_relay_oper[RELAY_PC].relay_status = RELAY_KAI;
|
|
}
|
|
}
|
|
}
|
|
L2_task_go_Tdelay(TTSS_TASK_RELAY_01,D_Tdelay_300ms);
|
|
TTSS_Task_end();
|
|
}
|
|
|