#ifndef _SYSTEM_REALTIME_RUN_PARA_H #define _SYSTEM_REALTIME_RUN_PARA_H #include "stm32f10x.h" #include "system_general_para.h" #pragma pack(1) typedef struct { u8 hour; u8 min; u8 sec; //¹«ÀúÈÕÔÂÄêÖÜ u8 month; u8 date; u8 week; u16 year; }calendar_obj; typedef struct { uint8_t year; //Ä꣬BCD Âë 00~99 uint8_t month; //Ô£¬BCD Âë 01~12 uint8_t day; //ÈÕ£¬BCD Âë 01~31 uint8_t hour; //ʱ£¬BCD Âë 00~23 uint8_t min; //·Ö£¬BCD Âë 00~59 uint8_t sec; //Ã룬BCD Âë 00~59 }sClockBCD; typedef struct { //ϵͳ u8 system_mode; /*¹¤×÷״̬*/ u16 system_workstatus; //»·Î float ambient_temperature; //ϵͳÍâÉè±êÖ¾ u8 system_int_flag; u8 system_ble_connect; u8 system_gprs_connect; u8 system_485_connect; u8 system_key4_down; u16 system_key4_authorize_cnt; //key4Ð޸IJÎÊýÊÚȨ¼ÆÊý¡£0´ú±íÎÞ°´¼üÊÚȨ£¬°´¼üÊÚȨ60·ÖÖÓÓÐЧ£¬ u8 system_set_authorize_flag; //ÉèÖÃÊÚȨ±êÖ¾£¬0´ú±íδÊÚȨ£¬²»ÄÜÉèÖã»1´ú±íÓÐÊÚȨ·Ç¼ÆÁ¿Ð޸ģ»2´ú±íÓÐÊÚȨËùÓвÎÊýÐÞ¸Ä //ϵͳµÄȨÏÞ±êÖ¾ u8 system_user; //µç³Ø u8 lith_bat_vol; u8 lith_bat_percent; u8 alka_bat_vol; u8 alka_bat_percent; //Ìõ¼þ¹Ø·§Ïà¹Ø u8 day_up_result; u8 previous_hour; //ÉÏһСʱ u8 current_hour; //µ±Ç°Ð¡Ê± u8 no_up_close_day_flag; // ÎÞÉϱ¨¹Ø·§ÌìÊýµ½±êÖ¾ double PreviousDayCumulant;//ÉÏÒ»ÌìµÄÀÛ¼Æ×ÜÁ¿£¬ÓÃÓÚÓ뵱ǰÀÛ¼Æ×ÜÁ¿±È½Ï£¬Èç¹ûÏàµÈ´ú±íµ±ÌìÎÞÓÃÆø double PreviousCumulant; //ÉÏÒ»¸öÀÛ»ýÁ¿ u8 CumulantCloseFlag;//ÀÛ»ýÁ¿¹Ø·§ÌìÊýµ½±êÖ¾ }SYSTEM_REALTIME_RUN_PARA_T; typedef struct { sClockBCD meter_time; double sc_accumulation; double wc_accumulation; double sc_accumulation_calibration; double wc_accumulation_calibration; double sc_accumulation_error; double wc_accumulation_error; float wc_instant; float sc_instant; float temperature; float pressure; u8 meter_bat_vol; u8 mer_bat_percent; u8 meter_status[4]; float gas_get_factor; //ѹËõÒò×Ó float C_coe; //CϵÊý float K_coe; //KϵÊý float reserved1; float reserved2; }LLJ_PARA_T; typedef struct { double residual_amount; //Ê£ÓàÁ¿ double cumulative_gas_usage; double cumulative_fee_usage; int current_price; double step_cumulative_gas_usage; u8 current_step; u8 billing_base_readable_flag; double rs485_settlement_total_gas_base; double rs485_settlement_balance_base; double rs485_settlement_cumulative_gas_usage_base; double rs485_settlement_cumulative_fee_usage_base; double rs485_settlement_step_cumulative_gas_usage_base; u8 step_billing_first_time_arrive_flag; }BILLING_PARA_T; typedef struct { //É豸ʵʱ״̬ u8 extern_power_connect_status; u8 system_power_in_cnt; u8 system_power_out_cnt; u8 cover_open_status; u8 mainboard_remove_status; //¼Æ·ÑÓë·§ÃÅ״̬ u8 balance_small_1_Status; u8 balance_small_2_Status; u8 balance_small_3_Status; u8 balance_small_4_Status; u8 balance_small_5_Status; u8 many_days_no_gas_Status; u8 many_days_no_report_Status; u8 cumulant_reaches_set_value_Status; //µç³ØÓë¶Ô½ÓÉ豸״̬ u8 lith_bat_low_status; u8 lith_bat_down_status; u8 lith_bat_remove_status; u8 alka_bat_low_status; u8 alka_bat_down_status; u8 alka_bat_remove_status; u8 flow_bat_low_status; u8 flow_bat_down_status; u8 rs485_com_status; u8 pulse_broken_status; u8 valve_bat_low_status; u8 valve_bat_down_status; u8 rtc_bat_status; u8 gprs_com_status; u8 Data_Send_failed_time; //ͨѶÊý¾Ý·¢ËÍʧ°Ü´ÎÊý //ÎÂѹ״̬ u8 system_tem_alarm_fault_status; u8 system_tem_alarm_up_status; u8 system_tem_alarm_up_up_status; u8 system_tem_alarm_low_status; u8 system_tem_alarm_low_low_status; u8 system_pre_alarm_fault_status; u8 system_pre_alarm_up_status; u8 system_pre_alarm_up_up_status; u8 system_pre_alarm_low_status; u8 system_pre_alarm_low_low_status; u8 ambient_tem_alarm_up_status; u8 ambient_tem_alarm_low_status; u8 ambient_temp_sudden_change_status;//»·Î¾ç±ä //¼ÆÁ¿×´Ì¬ //ÆäËû״̬ u8 gas_leak_status; u8 lcd_overrun_status; u8 lcd_temp_low_status; u8 flow_up1_status; u8 flow_up2_status; u8 flow_up3_status; u8 valve_close_but_flow_status; u8 e2p_write_abnormal_status; u8 e2p_read_abnormal_status; }SYSTEM_STATUS_PARA_T; #pragma pack() /*±¨¾¯Éϱ¨¿ØÖƲÎÊý*/ #define ALARM_EVERYDAY_TIMES 2 //ÿÌìÉϱ¨´ÎÊý£¬±ÈÈç2´ú±íÿÌì×î¶à·´¸´±¨¾¯2´Î¡£»Ö¸´Õý³£ÔÙ³öÏÖÒì³£²ÅÄÜ·´¸´±¨¾¯¡£ #define ALARM_CONTINUE_TIMES 4 //Á¬Ðø³öÏÖÎÊÌâ´ÎÊý£¬±ÈÈç4´ú±íÁ¬Ðø4´Î¼ì²âµ½Òì³£Ôò±¨¾¯ #define ALARM_END_CONTINUE_TIMES 4 //Á¬Ðø³öÏÖÎÊÌâ´ÎÊý£¬±ÈÈç4´ú±íÁ¬Ðø4´Î¼ì²âµ½Òì³£Ôò±¨¾¯ typedef struct alarm_report_para_t { u8 Last_day; u8 alarm_all_flag; //×ܱ¨¾¯±êÖ¾ //¿ª¸Ç //É豸ʵʱ״̬ u8 system_start_flag; u8 extern_power_connect_flag; u8 cover_open_flag; u8 mainboard_remove_flag; //¼Æ·ÑÓë·§ÃÅ״̬ u8 balance_small_1_flag; u8 balance_small_2_flag; u8 balance_small_3_flag; u8 balance_small_4_flag; u8 balance_small_5_flag; u8 many_days_no_gas_flag; u8 many_days_no_report_flag; u8 cumulant_reaches_set_value_flag; u8 valve_op_cl_flag; u8 valve_abnormal_flag; //µç³ØÓë¶Ô½ÓÉ豸״̬ u8 lith_bat_low_flag; u8 lith_bat_down_flag; u8 lith_bat_remove_flag; u8 alka_bat_low_flag; u8 alka_bat_down_flag; u8 alka_bat_remove_flag; u8 flow_bat_low_flag; u8 flow_bat_down_flag; u8 gprs_com_flag; u8 rs485_com_flag; u8 rs485_read_small_flag; u8 pulse_broken_flag; u8 valve_bat_low_flag; u8 valve_bat_down_flag; u8 rtc_bat_flag; //ÎÂѹ״̬ u8 system_tem_alarm_fault_flag; u8 system_tem_alarm_up_flag; u8 system_tem_alarm_up_up_flag; u8 system_tem_alarm_low_flag; u8 system_tem_alarm_low_low_flag; u8 system_pre_alarm_fault_flag; u8 system_pre_alarm_up_flag; u8 system_pre_alarm_up_up_flag; u8 system_pre_alarm_low_flag; u8 system_pre_alarm_low_low_flag; u8 ambient_tem_alarm_up_flag; u8 ambient_tem_alarm_low_flag; u8 ambient_temp_sudden_change_flag;//»·Î¾ç±ä //¼ÆÁ¿×´Ì¬ //ÆäËû״̬ u8 gas_leak_flag; u8 lcd_overrun_flag; u8 lcd_temp_low_flag; u8 flow_up1_flag; u8 flow_up2_flag; u8 flow_up3_flag; u8 valve_close_but_flow_flag; u8 e2p_write_abnormal_flag; u8 e2p_read_abnormal_flag; //µ¥ÈÕÉÏ·¢´ÎÊý¿ØÖÆ //É豸ʵʱ״̬ u8 extern_power_connect_cnt; u8 cover_open_cnt; u8 mainboard_remove_cnt; //¼Æ·ÑÓë·§ÃÅ״̬ u8 balance_small_1_cnt; u8 balance_small_2_cnt; u8 balance_small_3_cnt; u8 balance_small_4_cnt; u8 balance_small_5_cnt; u8 many_days_no_gas_cnt; u8 many_days_no_report_cnt; u8 cumulant_reaches_set_value_cnt; u8 valve_op_cl_cnt; u8 valve_abnormal_cnt; //µç³ØÓë¶Ô½ÓÉ豸״̬ u8 lith_bat_low_cnt; u8 lith_bat_down_cnt; u8 lith_bat_remove_cnt; u8 alka_bat_low_cnt; u8 alka_bat_down_cnt; u8 alka_bat_remove_cnt; u8 flow_bat_low_cnt; u8 flow_bat_down_cnt; u8 gprs_com_cnt; u8 rs485_com_cnt; u8 rs485_read_small_cnt; u8 pulse_broken_cnt; u8 valve_bat_low_cnt; u8 valve_bat_down_cnt; u8 rtc_bat_cnt; //ÎÂѹ״̬ u8 system_tem_alarm_fault_cnt; u8 system_tem_alarm_up_cnt; u8 system_tem_alarm_up_up_cnt; u8 system_tem_alarm_low_cnt; u8 system_tem_alarm_low_low_cnt; u8 system_pre_alarm_fault_cnt; u8 system_pre_alarm_up_cnt; u8 system_pre_alarm_up_up_cnt; u8 system_pre_alarm_low_cnt; u8 system_pre_alarm_low_low_cnt; u8 ambient_tem_alarm_up_cnt; u8 ambient_tem_alarm_low_cnt; u8 ambient_temp_sudden_change_cnt;//»·Î¾ç±ä //¼ÆÁ¿×´Ì¬ //ÆäËû״̬ u8 gas_leak_cnt; u8 lcd_overrun_cnt; u8 lcd_temp_low_cnt; u8 flow_up1_cnt; u8 flow_up2_cnt; u8 flow_up3_cnt; u8 valve_close_but_flow_cnt; u8 e2p_write_abnormal_cnt; u8 e2p_read_abnormal_cnt; //ÆäËû±¨¾¯Óõ½µÄ²ÎÊý u8 sys_restart_report_delay_cnt; }ALARM_REPORT_PARA_T; void alarm_cnt_clear(void); extern calendar_obj calendar; extern sClockBCD Time_BCD_g; //BCD extern LLJ_PARA_T llg_data_g; extern BILLING_PARA_T billing_para_g; extern SYSTEM_STATUS_PARA_T system_status_para_g; extern ALARM_REPORT_PARA_T alarm_report_para_g; #endif