From d14dd3a2106de793fbe08dc5a12cf80defd3258a Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 15 May 2024 17:34:14 +0800
Subject: [PATCH] 继续脉冲和报警线处理

---
 Function/VALVE/valve_control.h |  387 ++++++++++---------------------------------------------
 1 files changed, 71 insertions(+), 316 deletions(-)

diff --git a/Function/VALVE/valve_control.h b/Function/VALVE/valve_control.h
index 35721ae..35efc21 100644
--- a/Function/VALVE/valve_control.h
+++ b/Function/VALVE/valve_control.h
@@ -2,343 +2,98 @@
 #define _VALVE_CONTROL_H_
 
 #include "define_all.h" 
+#include "system_general_para.h"
 
-// �������������ã����������洢�����棩
-#define __VALVE_WORK_TYPE_SET(__TYPE__) (op_cl_valve_log_flag_g = __TYPE__)
+/**********************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 __VALVE_CLOSE_BYTES_NEED_SET(__NUM__, __HANDLE__, __FLAG_L__) \
-  do                                                                  \
-  {                                                                   \
-    (&valve_ctl_bytes_g)->__NUM__.__HANDLE__ = __FLAG_L__;            \
-  } while (0)
+#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 __VALVE_CLOSE_BYTES_MODE_SET(__NUM__, __HANDLE__, __MODE_H__) \
-  do                                                                  \
-  {                                                                   \
-    (&valve_ctl_bytes_g)->__NUM__.__HANDLE__ = __MODE_H__;            \
-  } while (0)
+#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_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
+#define	VALVE_FORCE_OPEN_PIN			GPIO_Pin_12
+#define	VALVE_FORCE_OPEN_PORT           	GPIOC 
+#define	VALVE_FORCE_OPEN_IO_READ					GPIO_ReadInputDataBit(VALVE_FORCE_OPEN_PORT,VALVE_FORCE_OPEN_PIN)
 
-// ����B
-#define VALVE_CMD_B_PORT 	GPIOE
-#define VALVE_CMD_B_PIN		GPIO_Pin_3
+/**********************���Ʋ����궨��********************************/
+//���»�������ʱ��,���ʱ�䣬��������ʱ
+#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
 
-
-// ����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_OPEN,
+  VALVE_CLOSE,
+  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; //Ԥ��
+
+typedef enum
+{
+  VL_UNLOCK = 0U,
+	VL_LOCK
+} VALVE_LOCK_STATE_T; // ����״̬����
+
+typedef enum
+{
+	VC_NONE	= 0U,
+  VC_OPEN ,
+	VC_CLOSE,
+	VC_UNLOCK,             //����
+	VC_LOCK             //����
 	
-	uint16_t uncap_1_need_close_valve_flag : 1; // ����
-  uint16_t uncap_1_close_valve_type : 1;
+} VALVE_CTEL_TYPE_T; // ������������
+
+
+typedef struct{
 	
-	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
-{
-  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 reserve : 16; // ����Э�飬�����϶���SZV10X��صIJ�����ȼ��������
-} 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;
+	VALVE_STATUS	valve_status;
+	VALVE_CTEL_TYPE_T	valve_ctrl_order;
+	uint16_t	open_time_cnt;
+	uint16_t	close_time_cnt;
 	
-  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;
+	FlagStatus	force_open_status;
+}VALVE_CTRL_PARA_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;
+extern __IO VALVE_CTRL_PARA_T	valve_ctrl_para_g;
 
-  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);
+void	valveCtrlPro(FUN_START_CTRL_PARA_T * sys_fun_run_ctrl_p);
+void  ValveRunParaInit(VALVE_TYPE valve_type_in);
+void ValveMotorStop(void);
+ErrorStatus ValveCtrlOrder(VALVE_CTEL_TYPE_T valve_ctrl_order_l) ;
 
 #endif

--
Gitblit v1.9.3