| | |
| | | #ifndef _SIZHU_CTRL_WORD_H |
| | | #define _SIZHU_CTRL_WORD_H |
| | | #include "define_all.h" |
| | | |
| | | #include "extern_rtc.h" |
| | | //#include "sizhu_alarm_record.h" |
| | | |
| | | #define __SYS_STATUS_BYTES_GET(__HANDLE__) (system_status_word_g.status_word.__HANDLE__) |
| | | |
| | | |
| | | //ÒÔÏÂ״̬ÖÃλÊʺϵ¥bit״̬ÖÃ룬²»Êʺ϶àbit״̬£¬±ÈÈç·§ÃÅ״̬ռ¶à¸öbit£¬²»ÄÜÓà |
| | | //ÒÔÏÂ״̬ÖÃλÊʺϵ¥bit״̬ÖÃλ(Ò»°ãÓжÔÓ¦±¨¾¯)£¬²»Êʺ϶àbit״̬£¬±ÈÈç·§ÃÅ״̬ռ¶à¸öbit£¬²»ÄÜÓà |
| | | #define __SYS_STATUS_BYTES_STATUS(__HANDLE__, __FLAG__, __ID__) \ |
| | | do \ |
| | | { \ |
| | |
| | | } while (0) |
| | | |
| | | |
| | | #define __SYS_ALARM_BYTES_SET(__HANDLE__, __FLAG__) (system_alarm_word_g.alarm_word.__HANDLE__ = __FLAG__) |
| | | //ûÓжÔӦ״̬×ֵı¨¾¯×Öµ¥¶ÀÖÃλ |
| | | #define __SYS_ALARM_BYTES_SET(__HANDLE__,__ID__) \ |
| | | do \ |
| | | { \ |
| | | if(__SYS_ALARM_CTL_BYTES_GET(__HANDLE__)){ \ |
| | | system_alarm_word_for_valve_g.alarm_word.__HANDLE__ = SET; \ |
| | | sizhuAlarmRecord(ALARM_HAPPEN,__ID__); \ |
| | | if(__SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) ==SET){ \ |
| | | if(AlarmCntIncrease(__ID__) ==SET){ \ |
| | | system_alarm_word_g.alarm_word.__HANDLE__ = SET; \ |
| | | AlarmTriggerWrcFlag = SET; \ |
| | | } \ |
| | | } \ |
| | | Alarm_List_Node_PushBack(&pList_head,__ID__); \ |
| | | } \ |
| | | } while (0) |
| | | |
| | | //ÒÔÏÂ״̬ÖÃλÊʺϵ¥bit״̬ÖÃ룬²»Êʺ϶àbit״̬£¬±ÈÈç·§ÃÅ״̬ռ¶à¸öbit£¬²»ÄÜÓà |
| | | //״̬×ֺͱ¨¾¯×ÖͬʱÖÃ룬µ«Ö»Êʺϵ¥bit״̬ÖÃ룬²»Êʺ϶àbit״̬£¬±ÈÈç·§ÃÅ״̬ռ¶à¸öbit£¬²»ÄÜÓá£ÁíÍâÓÐЩ±¨¾¯Ã»ÓжÔӦ״̬×ֵ쬱ÈÈ縴λ¡¢²ÎÊýÐ޸ĵȱ¨¾¯£¬ÔòÒ²²»ÄÜÓã¬ÐèÒªµ¥¶À´¦Àí |
| | | #define __SYS_STATUS_ALARM_BYTES_SET(__HANDLE__,__ID__) \ |
| | | do \ |
| | | { \ |
| | | if ((__SYS_STATUS_BYTES_GET(__HANDLE__) != SET)&&(__SYS_ALARM_CTL_BYTES_GET(__HANDLE__))){ \ |
| | | system_status_word_g.status_word.__HANDLE__ = \ |
| | | system_status_word_g.status_word.__HANDLE__ = SET; \ |
| | | system_alarm_word_for_valve_g.alarm_word.__HANDLE__ = SET; \ |
| | | sizhuAlarmRecord(ALARM_HAPPEN,__ID__); \ |
| | | if(__SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) ==SET){ \ |
| | | system_alarm_word_g.alarm_word.__HANDLE__ = SET; } \ |
| | | if(AlarmCntIncrease(__ID__) ==SET){ \ |
| | | system_alarm_word_g.alarm_word.__HANDLE__ = SET; \ |
| | | AlarmTriggerWrcFlag = SET; \ |
| | | } \ |
| | | } \ |
| | | Alarm_List_Node_PushBack(&pList_head,__ID__); \ |
| | | } \ |
| | | } while (0) |
| | |
| | | |
| | | #define __SYS_ALARM_CTL_BYTES_GET(__HANDLE__) (system_alarm_ctrl_word_g.alarm_ctl_word.__HANDLE__) |
| | | |
| | | #define __SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) (system_alarm_report_ctrl_word_g.alarm_report_ctrl_word.__HANDLE__) |
| | | #define __SYS_ALARM_REPORT_CTL_BYTES_GET(__HANDLE__) (system_alarm_report_ctrl_word_g.alarm_ctl_word.__HANDLE__) |
| | | |
| | | |
| | | #define SYSTEM_SINGLE_BIT_SET1 0x0001 |
| | |
| | | } SYS_ALARM_VALVE_T; // ±¨¾¯ºÍ¹Ø·§ÀàÐÍID |
| | | |
| | | #pragma pack(1) |
| | | /*********************************ϵͳ״̬×ÖÏà¹Ø**************************************/ |
| | | /*********************************ϵͳ״̬×ÖÏà¹Ø£¬×´Ì¬×ÖÈç¹ûÓжÔÓ¦±¨¾¯×Ö£¬ÔòÃû³ÆÐèÒªÒ»Ñù**************************************/ |
| | | typedef struct system_status_word_inf |
| | | { |
| | | uint16_t lcd_mode : 3; |
| | |
| | | uint16_t calibration_mode: 1; |
| | | uint16_t account_open: 1; |
| | | uint16_t : 2; |
| | | uint16_t show_balance : 1; |
| | | uint16_t show_price: 1; |
| | | uint16_t show_logo : 1; |
| | | uint16_t no_show_balance : 1; |
| | | uint16_t no_show_price: 1; |
| | | uint16_t no_show_logo : 1; |
| | | uint16_t : 3; |
| | | uint16_t billing_type: 2; |
| | | |
| | |
| | | /*********************************¹¦ÄÜ¿ØÖÆ×ÖÏà¹Ø**************************************/ |
| | | |
| | | |
| | | /*********************************±¨¾¯¿ØÖÆ×ÖÏà¹Ø**************************************/ |
| | | /*********************************±¨¾¯¿ØÖÆ×ÖÏà¹Ø£¬×´Ì¬×ÖÈç¹ûÓжÔÓ¦±¨¾¯×Ö£¬ÔòÃû³ÆÐèÒªÒ»Ñù**************************************/ |
| | | typedef struct |
| | | { |
| | | uint16_t : 4; // Ô¤Áô |
| | |
| | | SYS_ALARM_T alarm_ctl_word; |
| | | }SYSTEM_ALARM_CTRL_WORD_T; // ±¨¾¯¿ØÖÆ×Ö |
| | | |
| | | typedef union |
| | | { |
| | | uint16_t alarm_ctl_send_union[SYSTEM_ALARM_WORD_INF_LENGTH >> 1]; |
| | | SYS_ALARM_T alarm_report_ctrl_word; |
| | | } SYSTEM_ALARM_REPORT_CTRL_WORD_T; // ±¨¾¯Éϱ¨¿ØÖÆ |
| | | //typedef union |
| | | //{ |
| | | // uint16_t alarm_ctl_send_union[SYSTEM_ALARM_WORD_INF_LENGTH >> 1]; |
| | | // SYS_ALARM_T alarm_report_ctrl_word; |
| | | //} SYSTEM_ALARM_REPORT_CTRL_WORD_T; // ±¨¾¯Éϱ¨¿ØÖÆ ¸ñʽ¸ú±¨¾¯¿ØÖÆ×ÖÒ»Ñù£¬ËùÒÔ²»ÓÃÔÙ¶¨ÒåÒ»¸ö½á¹¹ÌåÁË |
| | | /*********************************±¨¾¯¿ØÖÆ×ÖÏà¹Ø**************************************/ |
| | | |
| | | |
| | | /*********************************¹Ø·§¿ØÖÆ×ÖÏà¹Ø**************************************/ |
| | | //¹Ø·§¿ØÖÆ×Ö2λ±ê־붨Òå |
| | | #define VALVE_CTRL_FLAG_NONE 0x00 |
| | | #define VALVE_CTRL_FLAG_ONLY_CLSOSE 0x01 |
| | | #define VALVE_CTRL_FLAG_LOCK_AND_CLSOSE 0x03 |
| | | |
| | | //¹Ø·§¿ØÖÆ×ֽṹÌ嶨Òå |
| | | typedef struct |
| | | { |
| | | uint16_t gprs_cmd_need_close_valve_flag : 1; // Ô¶´«ÃüÁî |
| | |
| | | } VALVE_CTL_BYTES_T; // ¹Ø·§¿ØÖÆ×Ö |
| | | |
| | | // ¹Ø·§×Ö³¤¶È |
| | | #define VALVE_CTL_LENGTH (sizeof(VALVE_STATUS_CHANGE_T) + sizeof(VALVE_BILLING_CHANGE_1_T) + sizeof(VALVE_BILLING_CHANGE_2_T) + \ |
| | | sizeof(VALVE_VOLTAGE_CHANGE_1_T) + sizeof(VALVE_VOLTAGE_CHANGE_2_T) + sizeof(VALVE_TP_ERR_1_T) + \ |
| | | sizeof(VALVE_TP_ERR_2_T) + sizeof(VALVE_MEASURE_ERR_1_T) + sizeof(VALVE_MEASURE_ERR_2_T) + \ |
| | | sizeof(VALVE_OTHER_ERR_1_T) + sizeof(VALVE_OTHER_ERR_2_T)) |
| | | #define VALVE_CTL_LEN sizeof(VALVE_CTL_BYTES_T) |
| | | //#define VALVE_CTL_LENGTH (sizeof(VALVE_STATUS_CHANGE_T) + sizeof(VALVE_BILLING_CHANGE_1_T) + sizeof(VALVE_BILLING_CHANGE_2_T) + \ |
| | | // sizeof(VALVE_VOLTAGE_CHANGE_1_T) + sizeof(VALVE_VOLTAGE_CHANGE_2_T) + sizeof(VALVE_TP_ERR_1_T) + \ |
| | | // sizeof(VALVE_TP_ERR_2_T) + sizeof(VALVE_MEASURE_ERR_1_T) + sizeof(VALVE_MEASURE_ERR_2_T) + \ |
| | | // sizeof(VALVE_OTHER_ERR_1_T) + sizeof(VALVE_OTHER_ERR_2_T)) |
| | | |
| | | typedef union |
| | | { |
| | | uint16_t valve_ctrl_bytes_union[VALVE_CTL_LEN >> 1]; |
| | | VALVE_CTL_BYTES_T valve_ctrl_bytes; |
| | | }VALVE_CTL_BYTES_UNION_T; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //±¨¾¯´ÎÊý¿ØÖƽṹÌå |
| | | #define DAY_ALARM_TIMES 3 |
| | | typedef struct |
| | | { |
| | | SYS_ALARM_VALVE_T alarm_id; |
| | | uint16_t alarm_word_offset_bit; //¶ÔÓ¦±¨¾¯×ֵį«ÒÆÁ¿ |
| | | uint16_t close_valve_word_offset_bit; //¶ÔÓ¦¹Ø·§×ֵį«ÒÆÁ¿ |
| | | uint8_t day_times; //ÿÌìÉϱ¨´ÎÊý |
| | | uint16_t day_cnt; |
| | | } ALARM_CTRL_PARA_T; // ¹Ø·§¿ØÖÆ×Ö |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | #pragma pack() |
| | | |
| | | extern FlagStatus AlarmTriggerWrcFlag; |
| | | |
| | | extern SYSTEM_STATUS_WORD_T system_status_word_g; |
| | | extern SYSTEM_FUNCTION_CTRL_WORD_T system_function_ctrl_word_g; |
| | | extern SYSTEM_ALARM_WORD_T system_alarm_word_g; |
| | | extern SYSTEM_ALARM_WORD_T system_alarm_word_for_valve_g; //ÓÃÓÚ·§¿Ø£¬Éϱ¨ÍêÇå³ý |
| | | extern SYSTEM_ALARM_WORD_T system_alarm_word_for_valve_g; //ÓÃÓÚ·§¿Ø£¬ÅжÏÍê·§¿ØÖ®ºóÇåÁã |
| | | extern SYSTEM_ALARM_CTRL_WORD_T system_alarm_ctrl_word_g; |
| | | extern SYSTEM_ALARM_REPORT_CTRL_WORD_T system_alarm_report_ctrl_word_g; |
| | | extern VALVE_CTL_BYTES_T valve_ctl_bytes_g; |
| | | extern SYSTEM_ALARM_CTRL_WORD_T system_alarm_report_ctrl_word_g; |
| | | extern VALVE_CTL_BYTES_UNION_T valve_ctl_bytes_g; |
| | | |
| | | |
| | | |
| | | FlagStatus AlarmCntIncrease(SYS_ALARM_VALVE_T alarm_id); |
| | | void AlarmCntClearAll(void); |
| | | void EveryDayClearAlarmCnt(const sClockBCD sys_clockBCD_in ); |
| | | void SysAlarmCtrlPro(void); |
| | | #endif |