forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-04-30 ee3c90168f81ce19529904d80f9c9de4fed23bb8
Soft/system_run_fun.c
@@ -7,9 +7,10 @@
#include "extern_rtc.h"
#include "key.h"
#include "lcd_io_api.h"
#include "wireless_remote_comm.h"
RS485_START_REASON   start_rs485_g = RS485_START_REASON_NONE;
WRC_START_MEANS   start_wrc_g = WRC_MEANS_NONE;
void allGpioInit(void)
@@ -153,3 +154,55 @@
   
}
   
void sysRunFunCtrlPro(FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p,sClockBCD sys_clockBCD_in)
{
   uint8_t first_time[2] = {0,0};
   uint16_t   IntervalTime;
   /*rs485²É¼¯Æô¶¯¿ØÖÆ£¬ °´¼ü¡¢¶¨Ê±¡¢Òì³£±¨¾¯µÈ*/
   if(__SYS_STATUS_BYTES_GET(power_state) == SET)
      IntervalTime = wrc_para_sizhu_g.ext_power_data_interval;
   else
      IntervalTime = wrc_para_sizhu_g.bat_power_data_interval;
   if(IntervalTriggerHandle(sys_clockBCD_in,IntervalTime,first_time)==SET)
      start_rs485_g = RS485_START_REASON_RECORD;
   if(start_rs485_g  != RS485_START_REASON_NONE){
      start_rs485_g = RS485_START_REASON_NONE;
      sys_fun_run_ctrl_p->rs485_ctrl_flag.start_flag = SET;
   }
   /*·§¿Ø¿ØÖÆ£¬·§¿ØÍ¨¹ý°´¼ü»òÕßÖ¸Áî¡¢Òì³£µÈ¿ØÖÆ£¬ÐèÒª²Ù×÷ʱֱ½Óµ÷ÓÃValveCtrlOrderº¯Êý¼´¿É£¬²»ÔÚ´Ë´¦Æô¶¯*/
   /*Ô¶³ÌͨѶÆô¶¯¿ØÖÆ£¬°´¼ü¡¢¼ä¸ô¡¢ÖÜÆÚ¡¢Òì³£±¨¾¯µÈ*/
   if((wrc_para_sizhu_g.time_start_type&WRC_TIME_START_INTERVAL)==WRC_TIME_START_INTERVAL){
      for(uint16_t count_i=0;count_i<wrc_para_sizhu_g.timing_send_num;count_i++){
         if(count_i>=12)
            break;  //ʱ¼ä×éÊý×î´ó12¡£³¬¹ýÔòÍ˳ö
         if((sys_clockBCD_in.hour==wrc_para_sizhu_g.timing_send_time_BCD[count_i][0])&&(sys_clockBCD_in.min==wrc_para_sizhu_g.timing_send_time_BCD[count_i][1])&&(sys_clockBCD_in.sec==0))
            start_wrc_g = WRC_MEANS_RTC_TIMING;
      }
   }
   if((wrc_para_sizhu_g.time_start_type&WRC_TIME_START_TIMING)==WRC_TIME_START_TIMING){
      if(__SYS_STATUS_BYTES_GET(power_state) == SET)
         IntervalTime = wrc_para_sizhu_g.ext_power_send_interval;
      else
         IntervalTime = wrc_para_sizhu_g.bat_power_send_interval;
      if(IntervalTriggerHandle(sys_clockBCD_in,IntervalTime,wrc_para_sizhu_g.send_first_time_BCD)==SET)
         start_wrc_g = WRC_MEANS_RTC_INTERVAL;
   }
   if(start_wrc_g  != WRC_MEANS_NONE){
      start_wrc_g = WRC_MEANS_NONE;
      sys_fun_run_ctrl_p->wrc_ctrl_flag.start_flag = SET;
   }
}