From 72def895431ad7a08e635b11f3da738e2b2c4618 Mon Sep 17 00:00:00 2001
From: wujiazhi <1147861305@qq.com>
Date: Thu, 13 Jun 2024 11:31:04 +0800
Subject: [PATCH] add lower model test
---
Function/VALVE/valve_control.h | 410 ++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 327 insertions(+), 83 deletions(-)
diff --git a/Function/VALVE/valve_control.h b/Function/VALVE/valve_control.h
index c132e12..cd3b534 100644
--- a/Function/VALVE/valve_control.h
+++ b/Function/VALVE/valve_control.h
@@ -2,99 +2,343 @@
#define _VALVE_CONTROL_H_
#include "define_all.h"
-#include "system_general_para.h"
+#include "administrator.h"
+// �������������ã����������洢�����棩
+#define __VALVE_WORK_TYPE_SET(__TYPE__) (op_cl_valve_log_flag_g = __TYPE__)
-/**********************IO����********************************/
-#define Motor_A_PIN GPIO_Pin_8
-#define Motor_A_PORT GPIOB
-#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_9
-#define Motor_B_PORT GPIOB
-#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_6
-#define Motor_OP_PORT GPIOB
-#define Motor_OP_IO_READ GPIO_ReadInputDataBit(Motor_OP_PORT,Motor_OP_PIN)
-
-#define Motor_CL_PIN GPIO_Pin_7
-#define Motor_CL_PORT GPIOB
-#define Motor_CL_IO_READ GPIO_ReadInputDataBit(Motor_OP_PORT,Motor_OP_PIN)
-
-#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)
-
-/**********************���Ʋ����궨��********************************/
-//���»�������ʱ��,���ʱ�䣬��������ʱ
-#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_NEED_SET(__NUM__, __HANDLE__, __FLAG_L__) \
+ do \
+ { \
+ (&valve_ctl_bytes_g)->__NUM__.__HANDLE__ = __FLAG_L__; \
+ } while (0)
-typedef enum
-{
- VM_NONE = 0U,
- VM_PENGSHENG, //��ʢ����
- VM_HADE, //���·���
-} VALVE_TYPE; // �����ͺ�
+#define __VALVE_CLOSE_BYTES_MODE_SET(__NUM__, __HANDLE__, __MODE_H__) \
+ do \
+ { \
+ (&valve_ctl_bytes_g)->__NUM__.__HANDLE__ = __MODE_H__; \
+ } while (0)
-
-typedef enum
-{
- VALVE_NONE = 0U,
- VALVE_OPEN,
- VALVE_CLOSE,
- VALVE_OPENING,
- VALVE_CLOSING,
- VALVE_ERROR,
-// VALVE_MISSING = 99U
-} VALVE_STATUS; // ����״̬����
-
-
-
-typedef enum
-{
- VL_UNLOCK = 0U,
- VL_LOCK
-} VALVE_LOCK_STATE_T; // ����״̬����
-
-typedef enum
-{
- VC_NONE = 0U,
- VC_OPEN ,
- VC_CLOSE,
- VC_UNLOCK, //����
- VC_LOCK //����
+#define __VALVE_CLOSE_BYTES_GET(__NUM__, __HANDLE__) ((&valve_ctl_bytes_g)->__NUM__.__HANDLE__)
-} VALVE_CTRL_TYPE_T; // ������������
-
-
-typedef struct{
+// ǿ�ƿ���
+#define VALVE_FORCED_OPEN_PORT GPIOA
+#define VALVE_FORCED_OPEN_PIN GPIO_Pin_1
- VALVE_STATUS valve_status;
- VALVE_CTRL_TYPE_T valve_ctrl_order;
- uint16_t open_time_cnt;
- uint16_t close_time_cnt;
+// ����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
+
- FlagStatus force_open_status;
-}VALVE_CTRL_PARA_T;
+// �����ŵ�λ�ź�
+//#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)
+
-extern __IO VALVE_CTRL_PARA_T valve_ctrl_para_g;
+// �ط��ֳ���
+#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)
-void Valve_CTRL_GPIO_Init(void);
+#define VALVE_CLOSE_FUNC_TABLE_NUM (sizeof(valve_close_tab_func) / sizeof(VALVE_CLOSE_FUNC_TABLE_DRV_T))
-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_CTRL_TYPE_T valve_ctrl_order_l) ;
+typedef enum
+{
+ VWT_NONE = 0U,
+ VWT_NORMAL_CLOSE,
+ VWT_FORCED_CLOSE,
+ VWT_OPEN,
+ VWT_LOCK,
+ VWT_UNLOCK
+} VALVE_WORK_TYPE; // ����������
+
+#pragma pack(1)
+
+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 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
+{
+ 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;
+
+ 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
--
Gitblit v1.9.3