From 5ac1d0febb8de5e91ce2463baea68ddac3f66091 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Thu, 16 May 2024 20:00:17 +0800
Subject: [PATCH] 完善脉冲计费和485采集处理
---
Function/VALVE/valve_control.h | 388 ++++++++++---------------------------------------------
1 files changed, 72 insertions(+), 316 deletions(-)
diff --git a/Function/VALVE/valve_control.h b/Function/VALVE/valve_control.h
index 35721ae..1939904 100644
--- a/Function/VALVE/valve_control.h
+++ b/Function/VALVE/valve_control.h
@@ -2,343 +2,99 @@
#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;
+void Valve_CTRL_GPIO_Init(void);
- 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