| | |
| | | |
| | | #include "define_all.h" |
| | | |
| | | // ·§²Ù×÷ÀàÐÍÉèÖã¨ÓÃÓÚÆô¶¯´æ´¢²¢´¢´æ£© |
| | | #define __VALVE_WORK_TYPE_SET(__TYPE__) (op_cl_valve_log_flag_g = __TYPE__) |
| | | |
| | | #define __VALVE_CLOSE_BYTES_NEED_SET(__NUM__, __HANDLE__, __FLAG_L__) \ |
| | | do \ |
| | | { \ |
| | | (&valve_ctl_bytes_g)->__NUM__.__HANDLE__ = __FLAG_L__; \ |
| | | } while (0) |
| | | /**********************IOÅäÖÃ********************************/ |
| | | #define Motor_A_PIN GPIO_Pin_10 |
| | | #define Motor_A_PORT GPIOE |
| | | #define Motor_A_HIGH GPIO_SetBits(Motor_A_PORT,Motor_A_PIN) |
| | | #define Motor_A_LOW GPIO_ResetBits(Motor_A_PORT,Motor_A_PIN) |
| | | |
| | | #define Motor_B_PIN GPIO_Pin_10 |
| | | #define Motor_B_PORT GPIOE |
| | | #define Motor_B_HIGH GPIO_SetBits(Motor_A_PORT,Motor_A_PIN) |
| | | #define Motor_B_LOW GPIO_ResetBits(Motor_A_PORT,Motor_A_PIN) |
| | | |
| | | #define Motor_OP_PIN GPIO_Pin_9 |
| | | #define Motor_OP_PORT GPIOE |
| | | #define Motor_OP_IO_READ GPIO_ReadInputDataBit(Motor_OP_PORT,Motor_OP_PIN) |
| | | |
| | | #define Motor_CL_PIN GPIO_Pin_9 |
| | | #define Motor_CL_PORT GPIOE |
| | | #define Motor_CL_IO_READ GPIO_ReadInputDataBit(Motor_OP_PORT,Motor_OP_PIN) |
| | | |
| | | |
| | | #define __VALVE_CLOSE_BYTES_MODE_SET(__NUM__, __HANDLE__, __MODE_H__) \ |
| | | do \ |
| | | { \ |
| | | (&valve_ctl_bytes_g)->__NUM__.__HANDLE__ = __MODE_H__; \ |
| | | } while (0) |
| | | /**********************¿ØÖƲÎÊýºê¶¨Òå********************************/ |
| | | //¹þµÂ»ù·§¿ª¹ØÊ±¼ä,×î´óʱ¼ä£¬³¬¹ý´ú±í³¬Ê± |
| | | #define VALVE_HADE_RUN_TIME_DN25 105U |
| | | #define VALVE_HADE_RUN_TIME_DN32 155U |
| | | #define VALVE_HADE_RUN_TIME_DN40 155U |
| | | #define VALVE_HADE_RUN_TIME_DN50 155U |
| | | #define VALVE_HADE_RUN_TIME_DN80 285U |
| | | #define VALVE_HADE_RUN_TIME_DN100 445U |
| | | #define VALVE_HADE_RUN_TIME_DN150 490U |
| | | #define VALVE_HADE_RUN_TIME_DN200 520U |
| | | |
| | | #define __VALVE_CLOSE_BYTES_GET(__NUM__, __HANDLE__) ((&valve_ctl_bytes_g)->__NUM__.__HANDLE__) |
| | | |
| | | // Ç¿ÖÆ¿ª·§ |
| | | #define VALVE_FORCED_OPEN_PORT GPIOA |
| | | #define VALVE_FORCED_OPEN_PIN GPIO_Pin_1 |
| | | |
| | | // ·§¿ØA |
| | | #define VALVE_CMD_A_PORT GPIOE |
| | | #define VALVE_CMD_A_PIN GPIO_Pin_2 |
| | | |
| | | // ·§¿ØB |
| | | #define VALVE_CMD_B_PORT GPIOE |
| | | #define VALVE_CMD_B_PIN GPIO_Pin_3 |
| | | |
| | | |
| | | // ·§¿ØC |
| | | #define VALVE_CMD_C_PORT GPIOE |
| | | #define VALVE_CMD_C_PIN GPIO_Pin_4 |
| | | |
| | | |
| | | // ¶Á·§Ãŵ½Î»ÐźŠ|
| | | //#define VALVE_SINGAL_READ HAL_GPIO_ReadPin(VALVE_SINGAL_GPIO_Port, VALVE_SINGAL_Pin) |
| | | // ·§ÃŵçÔ´ |
| | | #define VALVE_PWR_ON GPIO_SetBits(VALVE_CMD_A_PORT, VALVE_CMD_A_PIN) |
| | | #define VALVE_PWR_OFF GPIO_ResetBits(VALVE_CMD_A_PORT, VALVE_CMD_A_PIN) // ÐÝÃß |
| | | |
| | | // ¿ª·§ |
| | | #define VALVE_OPEN \ |
| | | do \ |
| | | { \ |
| | | GPIO_SetBits(VALVE_CMD_B_PORT, VALVE_CMD_B_PIN); \ |
| | | GPIO_ResetBits(VALVE_CMD_C_PORT, VALVE_CMD_C_PIN); \ |
| | | } while (0) |
| | | // ¹Ø·§ |
| | | #define VALVE_CLOSE \ |
| | | do \ |
| | | { \ |
| | | GPIO_ResetBits(VALVE_CMD_B_PORT, VALVE_CMD_B_PIN); \ |
| | | GPIO_SetBits(VALVE_CMD_C_PORT, VALVE_CMD_C_PIN); \ |
| | | } while (0) |
| | | // ·§ÐÝÃß |
| | | #define VALVE_SLEEP \ |
| | | do \ |
| | | { \ |
| | | GPIO_ResetBits(VALVE_CMD_B_PORT, VALVE_CMD_B_PIN); \ |
| | | GPIO_ResetBits(VALVE_CMD_C_PORT, VALVE_CMD_C_PIN); \ |
| | | } while (0) |
| | | |
| | | |
| | | // ¹Ø·§×Ö³¤¶È |
| | | #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_CLOSE_FUNC_TABLE_NUM (sizeof(valve_close_tab_func) / sizeof(VALVE_CLOSE_FUNC_TABLE_DRV_T)) |
| | | |
| | | typedef enum |
| | | { |
| | | VWT_NONE = 0U, |
| | | VWT_NORMAL_CLOSE, |
| | | VWT_FORCED_CLOSE, |
| | | VWT_OPEN, |
| | | VWT_LOCK, |
| | | VWT_UNLOCK |
| | | } VALVE_WORK_TYPE; // ·§²Ù×÷ÀàÐÍ |
| | | VM_NONE = 0U, |
| | | VM_PENGSHENG, //ÅôÊ¢·§Ìå |
| | | VM_HADE, //¹þµÂ·§Ìå |
| | | } VALVE_TYPE; // ·§ÃÅÐͺŠ|
| | | |
| | | #pragma pack(1) |
| | | |
| | | typedef struct |
| | | typedef enum |
| | | { |
| | | uint16_t gprs_cmd_need_close_valve_flag : 1; // Ô¶´«ÃüÁî |
| | | uint16_t gprs_cmd_close_valve_type : 1; |
| | | VALVE_NONE = 0U, |
| | | VALVE_OP, |
| | | VALVE_CL, |
| | | VALVE_OPENING, |
| | | VALVE_CLOSING, |
| | | VALVE_ERROR, |
| | | VALVE_MISSING = 99U |
| | | } VALVE_STATUS; // ·§ÃÅ״̬ÀàÐÍ |
| | | |
| | | 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 uncap_1_need_close_valve_flag : 1; // ¿ª¸Ç |
| | | uint16_t uncap_1_close_valve_type : 1; |
| | | |
| | | uint16_t uncap_2_need_close_valve_flag : 1; // ²ðÖ÷°å |
| | | uint16_t uncap_2_close_valve_type : 1; |
| | | uint16_t : 4; //Ô¤Áô |
| | | } VALVE_STATUS_CHANGE_T; |
| | | |
| | | typedef struct |
| | | typedef enum |
| | | { |
| | | uint16_t valve_error_need_close_valve_flag : 1; // ·§ÃÅÒì³£ |
| | | uint16_t valve_error_close_valve_type : 1; |
| | | VL_UNLOCK = 0U, |
| | | VL_LOCK |
| | | } VALVE_LOCK_STATE_T; // ·§ÃÅ״̬ÀàÐÍ |
| | | |
| | | 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; |
| | | typedef struct{ |
| | | |
| | | 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; |
| | | VALVE_STATUS valve_status; |
| | | uint16_t open_time_cnt; |
| | | uint16_t close_time_cnt; |
| | | |
| | | typedef struct |
| | | { |
| | | uint16_t set_cumulate_need_close_valve_flag : 1; // ÉèÖõÄÀÛ»ýÆøÁ¿µ½ |
| | | uint16_t set_cumulate_close_valve_type : 1; |
| | | }VALVE_CTRL_PARA_T; |
| | | |
| | | 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; |
| | | void valveCtrlPro(void); |
| | | void ValveRunParaInit(void); |
| | | |
| | | 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 reserve : 16; // ¸ù¾ÝÐÒ飬»ù±¾É϶¼ÊÇ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 cpu_temp_up_need_close_valve_flag : 1; // »·¾³Î¶ȳ¬ÉÏÏÞ |
| | | uint16_t cpu_temp_up_close_valve_type : 1; |
| | | |
| | | uint16_t cpu_temp_down_need_close_valve_flag : 1; // »·¾³Î¶ȳ¬ÏÂÏÞ |
| | | uint16_t cpu_temp_down_close_valve_type : 1; |
| | | |
| | | uint16_t cpu_temp_drastic_change_close_valve_flag : 1; // »·¾³Î¶Ⱦç±ä |
| | | uint16_t cpu_temp_drastic_change_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 input_water_err_need_close_valve_flag : 1; // ½øË® |
| | | uint16_t input_water_err_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 measure_err_err_need_close_valve_flag : 1; // ¼ÆÁ¿µ¥Ôª¹ÊÕÏ |
| | | uint16_t measure_err_err_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; // ¹Ø·§¿ØÖÆ×Ö |
| | | |
| | | typedef struct |
| | | { |
| | | const uint16_t valve_close_flag; |
| | | const uint8_t offset_bit; |
| | | uint16_t * valve_close_byte; |
| | | } VALVE_CLOSE_FUNC_TABLE_DRV_T; |
| | | |
| | | #pragma pack() |
| | | |
| | | extern SYS_ALARM_VALVE_T op_cl_valve_cause_id; |
| | | |
| | | extern VALVE_WORK_TYPE op_cl_valve_log_flag_g; |
| | | |
| | | extern FlagStatus valve_signal_complete_g; |
| | | |
| | | extern VALVE_CTL_BYTES_T valve_ctl_bytes_g; |
| | | |
| | | void Valve_IO_Init(void); |
| | | |
| | | void Valve_Process(SYS_ALARM_VALVE_T * pOp_cl_cause); |
| | | void Valve_StateSet(void); |
| | | void Valve_OpenCloseTimeInit(void); |
| | | |
| | | #endif |