#ifndef _SIZHU_CTRL_WORD_H
|
#define _SIZHU_CTRL_WORD_H
|
#include "define_all.h"
|
|
|
#define __SYS_STATUS_BYTES_GET(__HANDLE__) (system_status_word_g.status_word.__HANDLE__)
|
|
|
#define __SYS_STATUS_BYTES_STATUS(__HANDLE__, __FLAG__, __ID__) \
|
do \
|
{ \
|
if (__SYS_STATUS_BYTES_GET(__HANDLE__) != __FLAG__) \
|
{ \
|
(system_status_word_g.status_word.__HANDLE__ = __FLAG__); \
|
if(__FLAG__ == RESET) \
|
Alarm_List_Node_Deleted(&pList_head,__ID__); \
|
} \
|
} while (0)
|
|
|
#define __SYS_ALARM_BYTES_SET(__HANDLE__, __FLAG__) (system_alarm_word_g.alarm_word.__HANDLE__ = __FLAG__)
|
|
|
#define __SYS_STATUS_ALARM_BYTES_SET(__HANDLE__) \
|
do \
|
{ \
|
if (__SYS_STATUS_BYTES_GET(__HANDLE__) != SET) \
|
system_status_word_g.status_word.__HANDLE__ = \
|
system_alarm_word_g.alarm_word.__HANDLE__ = SET; \
|
} while (0)
|
|
|
#define __SYS_FUNC_CFG_BYTES_GET(__HANDLE__) (system_function_ctrl_word_g.fun_ctrl_word.__HANDLE__)
|
|
#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 SYSTEM_SINGLE_BIT_SET1 0x0001
|
#define SYSTEM_SINGLE_BIT_SET0 0x0000
|
|
/*******************************˼ÖþÐÂϵͳ״̬×Ö******************************/
|
#define SSW_LCD_ALWAYS_SHOW_MODE 0x0001
|
#define SSW_LCD_FLOW_SHOW_MODE 0x0002
|
#define SSW_WORK_STATE_CALIBRATION 0x0001
|
#define SSW_WORK_STATE_PARA_CONFIG 0x0002
|
#define SSW_WORK_STATE_PARA_SHOW 0x0003
|
|
#define SSW_VALVE_STATUS_OPEN 0x0001
|
#define SSW_VALVE_STATUS_CLOSE 0x0002
|
#define SSW_VALVE_STATUS_OPENING 0x0003
|
#define SSW_VALVE_STATUS_CLOSEING 0x0004
|
#define SSW_VALVE_STATUS_ERR 0x0005
|
|
#define SSW_BILLING_TYPE_TERMINAL 0x0001
|
#define SSW_BILLING_TYPE_CENTER 0x0002
|
|
#define SSW_MEDIA_STATUS_WATER 0x0001
|
#define SSW_MEDIA_STATUS_AIR 0x0002
|
#define SSW_MEDIA_STATUS_GAS 0x0003
|
|
#define SSW_CHANNEL_REMOVAL_STATUS_UP 0x0001
|
#define SSW_CHANNEL_REMOVAL_STATUS_DOWN 0x0002
|
#define SSW_CHANNEL_REMOVAL_STATUS_MID 0x0003
|
/*******************************˼ÖþÐÂϵͳ״̬×Ö******************************/
|
|
|
/*******************************˼ÖþÐÂϵͳ¹¦ÄÜ¿ØÖÆ×Ö******************************/
|
#define SFCW_CURRENT_LOOP_WORK_CONDITION 0x0004
|
#define SFCW_CURRENT_LOOP_LOW_LIMIT 0x0002
|
#define SFCW_CURRENT_LOOP_OPEN 0x0001
|
|
#define SFCW_LCD_BIDIRECTIONAL 0x0004
|
#define SFCW_LCD_NORMAL_SHOW_MODE 0x0000
|
#define SFCW_LCD_FLOW_SHOW_MODE 0x0002
|
#define SFCW_LCD_ALWAYS_SHOW_MODE 0x0001
|
|
#define SFCW_PRE_CORRECTION_TYPE 0x0000
|
#define SFCW_TEM_CORRECTION_TYPE 0x0000
|
|
#define SFCW_MANUAL_UP_CHANNEL_REMOVAL_CTRL 0x0004
|
#define SFCW_MANUAL_DOWN_CHANNEL_REMOVAL_CTRL 0x0002
|
#define SFCW_MANUAL_MID_CHANNEL_REMOVAL_CTRL 0x0001
|
#define SFCW_MANUAL_ALL_CHANNEL_REMOVAL_CTRL 0x0006
|
|
#define SFCW_BILLING_TYPE_NONE 0x0000
|
#define SFCW_BILLING_TYPE_TERMINAL 0x0001
|
#define SFCW_BILLING_TYPE_CENTER 0x0002
|
|
|
|
/*******************************±¨¾¯ID******************************/
|
typedef enum
|
{
|
ALARM_ID_NORMAL = 0x0U,
|
ALARM_ID_SYSTEM_START, // ¸´Î» ½ö½öÊDZ¨¾¯ÀàÐͲ»²úÉú¹Ø·§
|
ALARM_ID_EX_POWER_STATUS_CHANGE,
|
ALARM_ID_COVER_OPEN,//¿ª¸Ç1ÊÇ¿ª¸Ç
|
ALARM_ID_MAINBOARD_REMOVAL,//¿ª¸Ç2ÊÇÖ÷°åÒÆ³ý
|
ALARM_ID_GPRS_FAILED,
|
ALARM_ID_LCD_NUMBER_OVERRUN,
|
|
|
ALARM_ID_LITH_BAT_LOW = 0x10, // ﮵çµÍµç±¨¾¯/¹Ø·§
|
ALARM_ID_LITH_BAT_DOWN,
|
ALARM_ID_LITH_BAT_REMOVAL,
|
ALARM_ID_ALKA_BAT_LOW,
|
ALARM_ID_ALKA_BAT_DOWN,
|
ALARM_ID_ALKA_BAT_REMOVAL,
|
ALARM_ID_VALVE_BAT_LOW,
|
ALARM_ID_VALVE_BAT_DOWN,
|
ALARM_ID_RTC_BAT_LOW,
|
|
ALARM_ID_TEM_TRANSMITTER_FAILURE = 0x20, // ζÈÒì³£±¨¾¯/¹Ø·§
|
ALARM_ID_TEM_EXCEED_UP_LIMIT,
|
ALARM_ID_TEM_EXCEED_UP_UP_LIMIT,
|
ALARM_ID_TEM_EXCEED_LOW_LIMIT,
|
ALARM_ID_TEM_EXCEED_LOW_LOW_LIMIT,
|
ALARM_ID_PRE_TRANSMITTER_FAILURE,
|
ALARM_ID_PRE_EXCEED_UP_LIMIT,
|
ALARM_ID_PRE_EXCEED_UP_UP_LIMIT,
|
ALARM_ID_PRE_EXCEED_LOW_LIMIT,
|
ALARM_ID_PRE_EXCEED_LOW_LOW_LIMIT,
|
ALARM_ID_AMBIENT_TEM_EXCEED_UP_LIMIT = 0x30,
|
ALARM_ID_AMBIENT_TEM_EXCEED_LOW_LIMIT,
|
ALARM_ID_AMBIENT_TEM_SUDDEN_CHANGE,//»·Î¾ç±ä
|
ALARM_ID_LCD_AMBIENT_TEM_EXCEED_LOW_LIMIT,//ÒºÏÔµÍÎÂ
|
|
ALARM_ID_MEASURE_SONIC_SENSOR_LOSS = 0x40, // ̽ͷ¶ªÊ§±¨¾¯/¹Ø·§
|
ALARM_ID_MEASURE_FLOW_VELOCITY_ABNORMAL,//Á÷ËÙÒì³£
|
ALARM_ID_MEASURE_TIME_DIFF_ABNORMAL,//ʱ¼ä²îÒì³£
|
ALARM_ID_MEASURE_SOUND_VELOCITY_ABNORMAL,//ÉùËÙÒì³£
|
ALARM_ID_MEASURE_SNR_ABNORMAL,//ÐÅÔë±ÈÒì³£
|
ALARM_ID_MEASURE_SIHNAL_OVERFLOW_ABNORMAL,//ÐźÅÒç³öÒì³£
|
ALARM_ID_MEASURE_THRESHOLD_ABNORMAL,//ÐźÅãÐÖµÒì³£
|
ALARM_ID_MEASURE_GAIN_ABNORMAL,//ÐźÅÔöÒæÒì³£
|
ALARM_ID_MEDIUM_WATER,//½øË®
|
ALARM_ID_MEDIUM_ABNORMAL,//½éÖÊÒì³£
|
ALARM_ID_DISMANTLE_METER_ABNORMAL = 0x50,//²ð±íÒì³£
|
ALARM_ID_METERING_UNIT_ABNORMAL , // ¼ÆÁ¿µ¥ÔªÒì³£
|
ALARM_ID_MEASURE_CHANNEL_REMOVAL,//ÉùµÀÇгý
|
|
ALARM_ID_FLOW_EXCEED_UP_LIMIT = 0x60,//Á÷Á¿³¬ÏÞ1
|
ALARM_ID_FLOW_EXCEED_UP_UP_LIMIT,//Á÷Á¿³¬ÏÞ2
|
ALARM_ID_FLOW_EXCEED_UP_UP_LIMIT2,//Á÷Á¿³¬ÏÞ3
|
ALARM_ID_FLOW_BIDIRECTIONAL,//·´ÏòÁ÷Á¿
|
ALARM_ID_FLOW_CONSTANT,//ºãÁ÷
|
ALARM_ID_FLOW_SMALL,//СÁ÷Á¿
|
ALARM_ID_GAS_LEAK,//ÆøÌåй©
|
|
ALARM_ID_VALVE_ABNORMAL = 0x70,//·§ÃÅÒì³£±¨¾¯
|
ALARM_ID_VALVE_CLOSE_GAS_RUNNING_ABNORMAL,//¹Ø·§×߯ø
|
|
ALARM_ID_FLOW_BAT_LOW = 0x80,//¶Ô½ÓÉ豸µÍµç
|
ALARM_ID_FLOW_BAT_DOWN,//¶Ô½ÓÉ豸µôµç
|
ALARM_ID_PULSE_BROKEN,//Âö³åÏß¶ÏÏß
|
ALARM_ID_E2P_W_ABNORMAL,//eepromдÒì³£
|
ALARM_ID_E2P_R_ABNORMAL,//eeprom¶ÁÒì³£
|
ALARM_ID_READ_485_ABNORMAL,//¶Á485Òì³£
|
ALARM_ID_485_READING_SMALLER_ABNORMAL,//485¶ÁÊýÒì³£±äС
|
|
ALARM_ID_BALANCE_SMALLER1 = 0x90,//Óà¶îÉÙ¶î
|
ALARM_ID_BALANCE_SMALLER2, // Óà¶îÉÙ¶î1±¨¾¯/¹Ø·§
|
ALARM_ID_BALANCE_SMALLER3,
|
ALARM_ID_BALANCE_SMALLER4,
|
ALARM_ID_BALANCE_SMALLER5,
|
ALARM_ID_CUMULATIVE_GAS_ARRIVE,//ÀÛ»ýÆøÁ¿µ½
|
ALARM_ID_N_DAYS_NO_GAS_ARRIVE,//¶àÌìÎÞÓÃÆø
|
ALARM_ID_N_DAYS_NO_REPORT_ARRIVE,//¶àÌìÎÞÉϱ¨
|
|
ALARM_ID_OP_VALVE_KEY = 0x996, // ½ö½öÊǹط§ÀàÐͲ»²úÉú±¨¾¯
|
ALARM_ID_CL_VALVE_KEY,
|
ALARM_ID_OP_VALVE_CMD,
|
ALARM_ID_CL_VALVE_CMD,
|
} SYS_ALARM_VALVE_T; // ±¨¾¯ºÍ¹Ø·§ÀàÐÍID
|
|
#pragma pack(1)
|
/*********************************ϵͳ״̬×ÖÏà¹Ø**************************************/
|
typedef struct system_status_word_inf
|
{
|
uint16_t lcd_mode : 3;
|
uint16_t : 1;
|
uint16_t account_state : 1;
|
uint16_t flow_direction : 1;
|
uint16_t : 2;
|
uint16_t : 1; // Ô¤Áô
|
uint16_t power_state : 1;
|
uint16_t : 1;
|
uint16_t cover_open :1;
|
uint16_t mainboard_remove :1;
|
uint16_t : 3;
|
|
uint16_t valve_state : 3;
|
uint16_t valve_lock : 1;
|
uint16_t set_cumulate_up_to : 1;
|
uint16_t no_use_gas_date_up_to : 1;
|
uint16_t no_gprs_date_up_to : 1;
|
uint16_t virtual_billing : 1;
|
uint16_t billing_type : 2;
|
uint16_t : 1; // Ô¤Áô
|
uint16_t balance_small_1 : 1;
|
uint16_t balance_small_2 : 1;
|
uint16_t balance_small_3 : 1;
|
uint16_t balance_small_4 : 1;
|
uint16_t balance_small_5 : 1;
|
|
uint16_t lith_low : 1;
|
uint16_t lith_down : 1;
|
uint16_t lith_remove : 1;
|
uint16_t alka_low : 1;
|
uint16_t alka_down : 1;
|
uint16_t alka_remove : 1;
|
uint16_t : 2;
|
uint16_t gprs_status : 1;
|
uint16_t : 3;
|
uint16_t valve_bat_low: 1;
|
uint16_t valve_bat_down: 1;
|
uint16_t rtc_err: 1;
|
uint16_t : 1;
|
|
uint16_t temp_err : 1;
|
uint16_t temp_up : 1;
|
uint16_t temp_up_up : 1;
|
uint16_t temp_down : 1;
|
uint16_t temp_down_down : 1;
|
uint16_t cpu_temp_up : 1;
|
uint16_t cpu_temp_down : 1;
|
uint16_t tem_sudden_change: 1;
|
uint16_t press_err : 1;
|
uint16_t press_up : 1;
|
uint16_t press_up_up : 1;
|
uint16_t press_down : 1;
|
uint16_t press_down_down : 1;
|
uint16_t : 3;
|
|
uint16_t flow_ver_err : 1;
|
uint16_t tof_diff_err : 1;
|
uint16_t sound_vel_err : 1;
|
uint16_t snr_err : 1;
|
uint16_t sig_up : 1;
|
uint16_t sig_th_err : 1;
|
uint16_t gain_err : 1;
|
uint16_t ut_lose : 1;
|
uint16_t media_status : 2;
|
uint16_t dismantle : 1;
|
uint16_t : 1;
|
uint16_t channel_removal_status:2;
|
uint16_t : 2;
|
|
uint16_t gas_leakage : 1;
|
uint16_t lcd_up : 1;
|
uint16_t lcd_temp_low : 1;
|
uint16_t flow_up_1 : 1;
|
uint16_t flow_up_2 : 1;
|
uint16_t flow_up_3 : 1;
|
uint16_t small_flow:1;
|
uint16_t constant_flow : 1;
|
uint16_t cl_have_flow : 1;
|
uint16_t : 2;
|
uint16_t current_loop_open: 1;
|
uint16_t : 4;
|
}SYSTEM_STA_WORD_T;
|
#define SYSTEM_STATUS_WORD_INF_LENGTH sizeof(SYSTEM_STA_WORD_T)
|
|
typedef union
|
{
|
u16 status_word_union[SYSTEM_STATUS_WORD_INF_LENGTH>>1];
|
SYSTEM_STA_WORD_T status_word;
|
}SYSTEM_STATUS_WORD_T;
|
/*********************************ϵͳ״̬×ÖÏà¹Ø**************************************/
|
|
|
|
/*********************************¹¦ÄÜ¿ØÖÆ×ÖÏà¹Ø**************************************/
|
typedef struct
|
{
|
uint16_t current_loop_set : 3;
|
uint16_t : 1;
|
uint16_t small_flow_cut_off : 1;
|
uint16_t : 2;
|
uint16_t bidirectional_measure: 1;
|
uint16_t lcd_mode: 3;
|
uint16_t : 5;
|
|
uint16_t compressibility_factor_choose : 2;
|
uint16_t compressibility_factor_type : 1;
|
uint16_t pre_correction_type : 3;
|
uint16_t pre_err_process_mode: 2;
|
uint16_t : 3;
|
uint16_t tem_correction_type : 3;
|
uint16_t tem_err_process_mode : 2;
|
|
uint16_t penalty_measure2 : 1;
|
uint16_t penalty_measure3 : 1;
|
uint16_t : 6;
|
uint16_t measure_channel_removal : 3;
|
uint16_t manual_flow_para_ctrl: 1;
|
uint16_t : 4;
|
|
uint16_t balance_sufficient_allow_open_valve: 1;
|
uint16_t exti_flag: 1;
|
uint16_t virtual_billing : 1;
|
uint16_t : 1;
|
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 : 3;
|
uint16_t billing_mode: 2;
|
|
uint16_t : 16;
|
}SYSTEM_FUN_CTRL_WORD_T;
|
#define SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH sizeof(SYSTEM_FUN_CTRL_WORD_T)
|
|
typedef union system_function_ctrl_word_inf //ϵͳ¹¦ÄÜ¿ØÖÆ×Ö
|
{
|
u16 fun_ctrl_union[SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH>>1];
|
SYSTEM_FUN_CTRL_WORD_T fun_ctrl_word;
|
}SYSTEM_FUNCTION_CTRL_WORD_T;
|
/*********************************¹¦ÄÜ¿ØÖÆ×ÖÏà¹Ø**************************************/
|
|
|
/*********************************±¨¾¯¿ØÖÆ×ÖÏà¹Ø**************************************/
|
typedef struct
|
{
|
uint16_t : 4; // Ô¤Áô
|
uint16_t account_status : 1;
|
uint16_t flow_bidirectional : 1;
|
uint16_t : 2;
|
uint16_t system_start : 1;
|
uint16_t power_state : 1;
|
uint16_t : 1;
|
uint16_t cover_open : 1;
|
uint16_t mainboard_remove : 1;
|
uint16_t : 3;
|
|
uint16_t valve_error : 1;
|
uint16_t valve_state_change : 1;
|
uint16_t : 2;
|
uint16_t set_cumulate_up_to : 1;
|
uint16_t no_use_gas_date_up_to : 1;
|
uint16_t no_gprs_date_up_to : 1;
|
uint16_t : 4;
|
uint16_t balance_small_1 : 1;
|
uint16_t balance_small_2 : 1;
|
uint16_t balance_small_3 : 1;
|
uint16_t balance_small_4 : 1;
|
uint16_t balance_small_5 : 1;
|
|
uint16_t lith_low : 1;
|
uint16_t lith_down : 1;
|
uint16_t lith_remove : 1;
|
uint16_t alka_low : 1;
|
uint16_t alka_down : 1;
|
uint16_t alka_remove : 1;
|
uint16_t : 2;
|
uint16_t gprs_status : 1;
|
uint16_t : 3;
|
uint16_t valve_bat_low:1;
|
uint16_t valve_bat_down:1;
|
uint16_t rtc_err: 1;
|
uint16_t : 1;
|
|
uint16_t temp_err : 1;
|
uint16_t temp_up : 1;
|
uint16_t temp_up_up : 1;
|
uint16_t temp_down : 1;
|
uint16_t temp_down_down : 1;
|
uint16_t cpu_temp_up : 1;
|
uint16_t cpu_temp_down : 1;
|
uint16_t tem_sudden_change : 1;
|
uint16_t press_err : 1;
|
uint16_t press_up : 1;
|
uint16_t press_up_up : 1;
|
uint16_t press_down : 1;
|
uint16_t press_down_down : 1;
|
uint16_t : 3;
|
|
uint16_t flow_vel_err : 1;
|
uint16_t tof_diff_err : 1;
|
uint16_t sound_vel_err : 1;
|
uint16_t snr_err : 1;
|
uint16_t sig_up : 1;
|
uint16_t sig_th_err : 1;
|
uint16_t gain_err : 1;
|
uint16_t ut_lose : 1;
|
uint16_t media_water : 1;
|
uint16_t media_err : 1;
|
uint16_t dismantle : 1;
|
uint16_t : 1;
|
uint16_t channel_removal : 1;
|
uint16_t : 3;
|
|
uint16_t gas_leakage : 1;
|
uint16_t lcd_up : 1;
|
uint16_t lcd_temp_low : 1;
|
uint16_t flow_up_1 : 1;
|
uint16_t flow_up_2 : 1;
|
uint16_t flow_up_3 : 1;
|
uint16_t constant_status : 2;
|
uint16_t cl_have_flow : 1;
|
uint16_t : 7;
|
|
uint16_t gas_cumulate_amend : 1;
|
uint16_t balance_amend : 1;
|
uint16_t temp_para_amend : 1;
|
uint16_t press_para_amend : 1;
|
uint16_t billing_para_amend : 1;
|
uint16_t current_loop_para_amend: 1;
|
uint16_t low_pulse_para_amend: 1;
|
uint16_t : 1;
|
uint16_t gas_cal_amend : 1;
|
uint16_t gas_para_amend : 1;
|
uint16_t pluse_cal_amend : 1;
|
uint16_t ut_err_amend : 1;
|
uint16_t ut_cal_amend : 1;
|
uint16_t : 3;
|
} SYS_ALARM_T;
|
|
#define SYSTEM_ALARM_WORD_INF_LENGTH sizeof(SYS_ALARM_T)
|
|
typedef union
|
{
|
uint16_t alarm_word_union[SYSTEM_ALARM_WORD_INF_LENGTH >> 1];
|
SYS_ALARM_T alarm_word;
|
}SYSTEM_ALARM_WORD_T; // ±¨¾¯×Ö
|
|
typedef union
|
{
|
uint16_t alarm_ctl_word_union[SYSTEM_ALARM_WORD_INF_LENGTH >> 1];
|
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 struct
|
{
|
uint16_t gprs_cmd_need_close_valve_flag : 1; // Ô¶´«ÃüÁî
|
uint16_t gprs_cmd_close_valve_type : 1;
|
|
uint16_t flow_direction_need_close_valve_flag : 1; // Á÷ÏòÒì³£
|
uint16_t flow_direction_close_valve_type : 1;
|
|
uint16_t power_sta_need_close_valve_flag : 1; // Íâµç±ä»¯
|
uint16_t power_sta_close_valve_type : 1;
|
|
uint16_t : 2;
|
|
uint16_t cover_open_need_close_valve_flag : 1; // ¿ª¸Ç
|
uint16_t cover_open_close_valve_type : 1;
|
|
uint16_t main_board_removal_need_close_valve_flag : 1; // ¿ª¸Ç
|
uint16_t main_board_removal_close_valve_type : 1;
|
|
uint16_t : 4;
|
} VALVE_STATUS_CHANGE_T;
|
|
typedef struct
|
{
|
uint16_t valve_error_need_close_valve_flag : 1; // ·§ÃÅÒì³£
|
uint16_t valve_error_close_valve_type : 1;
|
|
uint16_t balance_1_need_close_valve_flag : 1; // Óà¶îÉÙ¶î1
|
uint16_t balance_1_close_valve_type : 1;
|
|
uint16_t balance_2_need_close_valve_flag : 1; // Óà¶îÉÙ¶î2
|
uint16_t balance_2_close_valve_type : 1;
|
|
uint16_t balance_3_need_close_valve_flag : 1; // Óà¶îÉÙ¶î3
|
uint16_t balance_3_close_valve_type : 1;
|
|
uint16_t balance_4_need_close_valve_flag : 1; // Óà¶îÉÙ¶î4
|
uint16_t balance_4_close_valve_type : 1;
|
|
uint16_t balance_5_need_close_valve_flag : 1; // Óà¶îÉÙ¶î5
|
uint16_t balance_5_close_valve_type : 1;
|
uint16_t : 4;
|
} VALVE_BILLING_CHANGE_1_T;
|
|
typedef struct
|
{
|
uint16_t set_cumulate_need_close_valve_flag : 1; // ÉèÖõÄÀÛ»ýÆøÁ¿µ½
|
uint16_t set_cumulate_close_valve_type : 1;
|
|
uint16_t no_use_gas_need_close_valve_flag : 1; // ÎÞÓÃÆøÌìÊýµ½
|
uint16_t no_use_gas_close_valve_type : 1;
|
|
uint16_t no_gprs_need_close_valve_flag : 1; // ÎÞÉϱ¨ÌìÊý
|
uint16_t no_gprs_close_valve_type : 1;
|
uint16_t : 10;
|
} VALVE_BILLING_CHANGE_2_T;
|
|
typedef struct
|
{
|
uint16_t lith_low_need_close_valve_flag : 1; // ﮵çµÍµç
|
uint16_t lith_low_close_valve_type : 1;
|
|
uint16_t lith_down_need_close_valve_flag : 1; // ﮵çÇ·/µôµç
|
uint16_t lith_down_close_valve_type : 1;
|
|
uint16_t lith_remove_need_close_valve_flag : 1; // ﮵çÒÆ³ý
|
uint16_t lith_remove_close_valve_type : 1;
|
|
uint16_t alka_low_need_close_valve_flag : 1; // ¼îµçµÍµç
|
uint16_t alka_low_close_valve_type : 1;
|
|
uint16_t alka_down_need_close_valve_flag : 1; // ¼îµçÇ·/µôµç
|
uint16_t alka_down_close_valve_type : 1;
|
|
uint16_t alka_remove_need_close_valve_flag : 1; // ¼îµçÒÆ³ý
|
uint16_t alka_remove_close_valve_type : 1;
|
|
uint16_t gprs_fail_need_close_valve_flag : 1; // gprsʧ°Ü
|
uint16_t gprs_fail_close_valve_type : 1;
|
uint16_t : 2;
|
} VALVE_VOLTAGE_CHANGE_1_T;
|
|
typedef struct
|
{
|
uint16_t flow_bat_low_need_close_valve_flag :1;
|
uint16_t flow_bat_low_need_close_valve_type :1;
|
|
uint16_t flow_bat_down_need_close_valve_flag :1;
|
uint16_t flow_bat_down_need_close_valve_type :1;
|
|
uint16_t read_485_abnormal_need_close_valve_flag :1;
|
uint16_t read_485_abnormal_need_close_valve_type :1;
|
|
uint16_t read_485_smaller_abnormal_need_close_valve_flag :1;
|
uint16_t read_485_smaller_abnormal_need_close_valve_type :1;
|
|
uint16_t pulse_broken_need_close_valve_flag :1;
|
uint16_t pulse_broken_need_close_valve_type :1;
|
|
uint16_t valve_bat_low_need_close_valve_flag :1;
|
uint16_t valve_bat_low_need_close_valve_type :1;
|
|
uint16_t valve_bat_down_need_close_valve_flag :1;
|
uint16_t valve_bat_down_need_close_valve_type :1;
|
|
uint16_t : 2; // ¸ù¾ÝÐÒ飬»ù±¾É϶¼ÊÇSZV10XÏà¹ØµÄ²ÎÊý£¬È¼Æø±íÎÞÓÃ
|
} VALVE_VOLTAGE_CHANGE_2_T;
|
|
typedef struct
|
{
|
uint16_t temp_up_need_close_valve_flag : 1; // ζȳ¬ÉÏÏÞ
|
uint16_t temp_up_close_valve_type : 1;
|
|
uint16_t temp_up_up_need_close_valve_flag : 1; // ζȳ¬ÉÏÉÏÏÞ
|
uint16_t temp_up_up_close_valve_type : 1;
|
|
uint16_t temp_down_need_close_valve_flag : 1; // ζȳ¬ÏÂÏÞ
|
uint16_t temp_down_close_valve_type : 1;
|
|
uint16_t temp_down_down_need_close_valve_flag : 1; // ζȳ¬ÏÂÏÂÏÞ
|
uint16_t temp_down_down_close_valve_type : 1;
|
|
uint16_t press_up_need_close_valve_flag : 1; // ѹÁ¦³¬ÉÏÏÞ
|
uint16_t press_up_close_valve_type : 1;
|
|
uint16_t press_up_up_need_close_valve_flag : 1; // ѹÁ¦³¬ÉÏÉÏÏÞ
|
uint16_t press_up_up_close_valve_type : 1;
|
|
uint16_t press_down_need_close_valve_flag : 1; // ѹÁ¦³¬ÏÂÏÞ
|
uint16_t press_down_close_valve_type : 1;
|
|
uint16_t press_down_down_need_close_valve_flag : 1; // ѹÁ¦³¬ÏÂÏÂÏÞ
|
uint16_t press_down_down_close_valve_type : 1;
|
} VALVE_TP_ERR_1_T;
|
|
typedef struct
|
{
|
uint16_t temp_err_need_close_valve_flag : 1; // ζȴíÎó
|
uint16_t temp_err_close_valve_type : 1;
|
|
uint16_t press_err_need_close_valve_flag : 1; // ѹÁ¦´íÎó
|
uint16_t press_err_close_valve_type : 1;
|
|
uint16_t ambient_temp_up_need_close_valve_flag : 1; // »·¾³Î¶ȳ¬ÉÏÏÞ
|
uint16_t ambient_temp_up_close_valve_type : 1;
|
|
uint16_t ambient_temp_down_need_close_valve_flag : 1; // »·¾³Î¶ȳ¬ÏÂÏÞ
|
uint16_t ambient_temp_down_close_valve_type : 1;
|
|
uint16_t ambient_temp_sudden_change_need_close_valve_flag : 1; // »·¾³Î¶ȳ¬ÏÂÏÞ
|
uint16_t ambient_temp_sudden_change_close_valve_type : 1;
|
uint16_t : 6;
|
} VALVE_TP_ERR_2_T;
|
|
typedef struct
|
{
|
uint16_t flow_vel_err_need_close_valve_flag : 1; // Á÷ËÙÒì³£
|
uint16_t flow_vel_err_close_valve_type : 1;
|
|
uint16_t tof_diff_err_need_close_valve_flag : 1; // ·ÉÐÐʱ¼ä²îÒì³£
|
uint16_t tof_diff_err_close_valve_type : 1;
|
|
uint16_t sound_vel_err_need_close_valve_flag : 1; // ÉùËÙÒì³£
|
uint16_t sound_vel_err_close_valve_type : 1;
|
|
uint16_t snr_err_need_close_valve_flag : 1; // ÐÅÔë±ÈÒì³££¨Signal to Noise Ratio£©
|
uint16_t snr_err_close_valve_type : 1;
|
|
uint16_t sig_up_need_close_valve_flag : 1; // ÐźÅÒç³ö
|
uint16_t sig_up_close_valve_type : 1;
|
|
uint16_t sig_th_err_need_close_valve_flag : 1; // ÐźÅãÐÖµÒì³££¨Threshold£©
|
uint16_t sig_th_err_close_valve_type : 1;
|
|
uint16_t gain_err_need_close_valve_flag : 1; // ÔöÒæÒì³£
|
uint16_t gain_err_close_valve_type : 1;
|
|
uint16_t ut_lose_need_close_valve_flag : 1; // ̽ͷ¶ªÊ§£¨Ultrasonic Transducer£©
|
uint16_t ut_lose_close_valve_type : 1;
|
} VALVE_MEASURE_ERR_1_T;
|
|
typedef struct
|
{
|
uint16_t flooding_water_need_close_valve_flag : 1; // ½øË®
|
uint16_t flooding_water_close_valve_type : 1;
|
|
uint16_t media_err_need_close_valve_flag : 1; // ½éÖÊÒì³£
|
uint16_t media_err_close_valve_type : 1;
|
|
uint16_t dismantle_need_close_valve_flag : 1; // ²ð±í
|
uint16_t dismantle_close_valve_type : 1;
|
|
uint16_t metering_unit_abnormal_need_close_valve_flag : 1;//¼ÆÁ¿µ¥ÔªÒì³£
|
uint16_t metering_unit_abnormal_need_close_valve_type : 1;//¼ÆÁ¿µ¥ÔªÒì³£
|
|
uint16_t : 8;
|
} VALVE_MEASURE_ERR_2_T;
|
|
typedef struct
|
{
|
uint16_t leakage_need_close_valve_flag : 1; // ÆøÌåй©£¨½ÓÍⲿ±¨¾¯Æ÷Åжϣ©
|
uint16_t leakage_close_valve_type : 1;
|
|
uint16_t lcd_up_need_close_valve_flag : 1; // lcdÏÔʾ³¬ÏÞ
|
uint16_t lcd_up_close_valve_type : 1;
|
|
uint16_t lcd_temp_low_need_close_valve_flag : 1; // lcdµÍÎÂ
|
uint16_t lcd_temp_low_close_valve_type : 1;
|
|
uint16_t flow_up_1_need_close_valve_flag : 1; // Á÷Á¿³¬ÏÞ1
|
uint16_t flow_up_1_close_valve_type : 1;
|
|
uint16_t flow_up_2_need_close_valve_flag : 1; // Á÷Á¿³¬ÏÞ2
|
uint16_t flow_up_2_close_valve_type : 1;
|
|
uint16_t flow_up_3_need_close_valve_flag : 1; // Á÷Á¿³¬ÏÞ3
|
uint16_t flow_up_3_close_valve_type : 1;
|
|
uint16_t cl_constant_flow_need_close_valve_flag : 1; // ¹Ø·§ºãÁ÷£¨Î¢Ð¡Á÷Á¿Ð¹Â©£©
|
uint16_t cl_constant_flow_valve_type : 1;
|
|
uint16_t op_constant_flow_close_valve_flag : 1; // ¿ª·§ºãÁ÷
|
uint16_t op_constant_flow_valve_type : 1;
|
} VALVE_OTHER_ERR_1_T;
|
|
typedef struct
|
{
|
uint16_t cl_have_flow_need_close_valve_flag : 1; // ¹Ø·§×߯ø
|
uint16_t cl_have_flow_valve_type : 1;
|
|
uint16_t e2p_write_err_need_close_valve_flag : 1; // e2pдÒì³£
|
uint16_t e2p_write_err_flow_valve_type : 1;
|
|
uint16_t e2p_read_err_need_close_valve_flag : 1; // e2p¶ÁÒì³£
|
uint16_t e2p_read_err_flow_valve_type : 1;
|
uint16_t : 10;
|
} VALVE_OTHER_ERR_2_T;
|
|
typedef struct
|
{
|
VALVE_STATUS_CHANGE_T valve_ctr_1;
|
VALVE_BILLING_CHANGE_1_T valve_ctr_2;
|
VALVE_BILLING_CHANGE_2_T valve_ctr_3;
|
VALVE_VOLTAGE_CHANGE_1_T valve_ctr_4;
|
VALVE_VOLTAGE_CHANGE_2_T valve_ctr_5;
|
VALVE_TP_ERR_1_T valve_ctr_6;
|
VALVE_TP_ERR_2_T valve_ctr_7;
|
VALVE_MEASURE_ERR_1_T valve_ctr_8;
|
VALVE_MEASURE_ERR_2_T valve_ctr_9;
|
VALVE_OTHER_ERR_1_T valve_ctr_10;
|
VALVE_OTHER_ERR_2_T valve_ctr_11;
|
} 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)
|
|
#pragma pack()
|
|
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_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;
|
#endif
|