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.c | 551 +++++++++++++++++++++++++++----------------------------
1 files changed, 270 insertions(+), 281 deletions(-)
diff --git a/Function/VALVE/valve_control.c b/Function/VALVE/valve_control.c
index 0c57aa3..25ade7a 100644
--- a/Function/VALVE/valve_control.c
+++ b/Function/VALVE/valve_control.c
@@ -1,302 +1,291 @@
#include "valve_control.h"
#include "gpio.h"
-#include "system_mem_para.h"
+#include "uart.h"
+#include "lcd.h"
+#include "gprs.h"
+#include "low_pwr_test.h"
+#include "tim.h"
+#include "system_log.h"
+#include "check_out.h"
+#include "master_slave_inter.h"
-__IO VALVE_CTRL_PARA_T valve_ctrl_para_g;
+VALVE_WORK_TYPE op_cl_valve_log_flag_g = VWT_NONE; // ��/�ط���־��־λ�������ж��Ƿ���Ҫ��־�洢�����棩
+SYS_ALARM_VALVE_T op_cl_valve_cause_id = AV_NORMAL; // ���ط�ԭ��ID��������ʾ/�ط�ԭ��ID�洢��
-void Motor_AB_GPIO_Init(void)
+FlagStatus valve_signal_complete_g = RESET; // ���ط���λ�ź�
+
+/*�ط���Ĭ��ֵ*/
+TYPE_CHECK_SIZE(VALVE_CTL_BYTES_T,22);//�˲�ṹ���С
+VALVE_CTL_BYTES_T __attribute__ ((aligned (2))) valve_ctl_bytes_g = {
+ {1, 1, 1, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0},
+ {0, 0, 1, 0, 1, 0},
+ {1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0},
+ {0},
+ {0},
+ {0},
+ {0, 0, 0, 0, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
+ {0},
+};
+
+static const VALVE_CLOSE_FUNC_TABLE_DRV_T valve_close_tab_func[] = {
+ {V_GPRS_CMD_CL, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_1},
+ {AV_FLOW_DIRECTION, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_1},
+ /*{���仯�ط�, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_1},*/
+ {AV_UNCAP_1, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_1},
+
+ {AV_VALVE_ERR, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_2},
+ {AV_BALANCE_1, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_2},
+ {AV_BALANCE_2, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_2},
+ {AV_BALANCE_3, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_2},
+ {AV_BALANCE_4, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_2},
+ {AV_BALANCE_5, 10, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_2},
+
+ {AV_SET_CUMULATE, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_3},
+ {AV_NO_USE_GAS, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_3},
+ {AV_NO_GPRS, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_3},
+ /* {���üƷ�, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_3},*/
+
+ {AV_LITH_LOW, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+ {AV_LITH_UNDER, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+ {AV_LITH_REMOVE, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+ {AV_ALKA_LOW, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+ {AV_ALKA_UNDER, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+ {AV_ALKA_REMOVE, 10, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+ {AV_GPRS_FAIL, 12, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_4},
+
+ /* {ȫΪSV101�IJ���, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_5},*/
+
+ {AV_TEMP_UP, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_TEMP_UP_UP, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_TEMP_DOWN, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_TEMP_DOWN_DOWN, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_PRESS_UP, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_PRESS_UP_UP, 10, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_PRESS_DOWN, 12, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+ {AV_PRESS_DOWN_DOWN, 14, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_6},
+
+ {AV_TEMP_ERR, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_7},
+ {AV_PRESS_ERR, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_7},
+ {AV_CPU_TEMP_UP, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_7},
+ {AV_CPU_TEMP_DOWN, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_7},
+ {AV_CPU_TEMP_DRASTIC_CHANGE, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_7},
+
+ {AV_FLOW_VEL_ERR, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_TOF_DIFF_ERR, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_SOUND_VEL_ERR, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_SNR_ERR, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_SIG_UP, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_SIG_TH_ERR, 10, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_GAIN_ERR, 12, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+ {AV_UT_LOSE, 14, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_8},
+
+ {AV_INPUT_WATER_ERR, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_9},
+ {AV_MEDIA_ERR, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_9},
+ {AV_DISMANTLE, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_9},
+ {AV_MEASURE_ERR, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_9},
+
+ {AV_LEAKAGE, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_LCD_UP, 2, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_LCD_TEMP_LOW, 4, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_FLOW_UP_1, 6, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_FLOW_UP_2, 8, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_FLOW_UP_3, 10, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_CONSTANT_TINY_FLOW, 12, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+ {AV_CONSTANT_FLOW, 14, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_10},
+
+ {AV_CL_HAVE_FLOW, 0, (uint16_t *)&valve_ctl_bytes_g.valve_ctr_11},
+};
+
+void Valve_IO_Init(void)
{
- OutputIO(Motor_A_PORT,Motor_A_PIN,OUT_PUSHPULL);
- OutputIO(Motor_B_PORT,Motor_B_PIN,OUT_PUSHPULL);
-}
-
-void Motor_OP_CL_GPIO_Init(void)
-{
- InputtIO(Motor_OP_PORT,Motor_OP_PIN,IN_NORMAL);
- InputtIO(Motor_CL_PORT,Motor_CL_PIN,IN_NORMAL);
-}
-
-
-void Motor_OP_CL_GPIO_Init_sleep_mode(void)
-{
- CloseIO(Motor_OP_PORT,Motor_OP_PIN);
- CloseIO(Motor_CL_PORT,Motor_CL_PIN);
-}
-void Force_Open_GPIO_Init(void)
-{
- InputtIO(VALVE_FORCE_OPEN_PORT,VALVE_FORCE_OPEN_PIN,IN_NORMAL);
-}
-
-void Force_Open_GPIO_Init_sleep_mode(void)
-{
- CloseIO(VALVE_FORCE_OPEN_PORT,VALVE_FORCE_OPEN_PIN);
-}
-
-
-void ValveMotorOpenRun(void)
-{
- Motor_AB_GPIO_Init();
- Motor_OP_CL_GPIO_Init();
- Motor_A_HIGH;
- Motor_B_HIGH;
- GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
- GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
-}
-
-void ValveMotorCloseRun(void)
-{
- Motor_AB_GPIO_Init();
- Motor_OP_CL_GPIO_Init();
- Motor_A_LOW;
- Motor_B_LOW;
- GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, ENABLE);
- GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, ENABLE);
-}
-
-void ValveMotorStop(void)
-{
- Motor_AB_GPIO_Init();
- Motor_OP_CL_GPIO_Init_sleep_mode();
- GPIO_EXTI_Init( Motor_OP_PORT, Motor_OP_PIN, EXTI_FALLING, DISABLE);
- GPIO_EXTI_Init( Motor_CL_PORT, Motor_CL_PIN, EXTI_FALLING, DISABLE);
- Motor_A_LOW;
- Motor_B_HIGH;
-}
-
-
-
-VALVE_STATUS Read_OP_CL_VALVE_Status(u16 delay_time_ms)
-{
- uint8_t Open_status,Close_status;
- Motor_OP_CL_GPIO_Init();
- if((delay_time_ms > 0)&&(delay_time_ms <101 )) //�˴�������Ŀǰ����Ҫ�ӳ٣��ӳ�ʱ���0����
- {
- delay_ms(delay_time_ms);
- }
- Open_status = Motor_OP_IO_READ;
- Close_status = Motor_CL_IO_READ;
-
- if((Open_status==(uint8_t)Bit_RESET)&&(Close_status==(uint8_t)Bit_SET))
- {
- return VALVE_OPEN;
- }else if((Open_status==(uint8_t)Bit_SET)&&(Close_status==(uint8_t)Bit_RESET))
- {
- return VALVE_CLOSE;
- }else if((Open_status==(uint8_t)Bit_SET)&&(Close_status==(uint8_t)Bit_SET))
- {
- return VALVE_ERROR;
- }else
- {
- return VALVE_ERROR;
- }
+ CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
+ InputtIO( VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN, IN_NORMAL);
+ OutputIO( VALVE_CMD_A_PORT, VALVE_CMD_A_PIN, OUT_PUSHPULL);
+ OutputIO( VALVE_CMD_B_PORT, VALVE_CMD_B_PIN, OUT_PUSHPULL);
+ OutputIO( VALVE_CMD_C_PORT, VALVE_CMD_C_PIN, OUT_PUSHPULL);
+ VALVE_SLEEP;
+ VALVE_PWR_OFF;
+}
+
+#define VALVE_SWITCHING_G6_G10 1750U
+#define VALVE_SWITCHING_G16_G25 2300U
+void Valve_OpenCloseTimeInit(void)
+{
+ if(check_cal_g.device_type == G6 || check_cal_g.device_type == G10)
+ BsTimer_Init(12000,VALVE_SWITCHING_G6_G10); // 1Khz = 1ms
+ else
+ BsTimer_Init(12000,VALVE_SWITCHING_G16_G25); // 1Khz = 1ms
+ BSTIM_EGR_UG_Setable(ENABLE); //ʹ��UG�Ĵ������ڸ���ARR��PSC
+ BSTIM_ISR_UIF_Clr();
}
-
-void ValveRunParaInit(void)
+// ����
+SYS_ALARM_VALVE_T Valve_Open(SYS_ALARM_VALVE_T op_cl_cause_id)
{
-// VALVE_STATUS valve_status;
- switch (save_valve_para_g.valve_type){
- case VM_PENGSHENG: ;
- case VM_HADE:
- save_valve_para_g.valve_status = Read_OP_CL_VALVE_Status(0);
+ if (__SYS_STATUS_BYTES_GET(valve_state) == VALVE_CL) // ����
+ {
+ Valve_Awaken_Init();
+ ValveCtl_BsTimer_Clk_Init();
+ /*���磬����*/
+ SYS_BST_EN;
+ VALVE_PWR_ON;
+ VALVE_OPEN;
+ BSTIM_CR1_CEN_Setable(ENABLE);//������ʱ��TIM
+ __VALVE_WORK_TYPE_SET(VWT_OPEN);
+ __SYS_STATUS_BYTES_STATUS(valve_state, VALVE_OPENING, AV_NORMAL);
+#ifdef RS232_PRINTF
+ printf("---> ������ <---\r\n");
+#endif
+ op_cl_valve_cause_id = op_cl_cause_id;
+ }
+ return AV_NORMAL;
+}
- break;
+// �ط�
+SYS_ALARM_VALVE_T Valve_Close(SYS_ALARM_VALVE_T op_cl_cause_id)
+{
+ if (__SYS_STATUS_BYTES_GET(valve_state) == VALVE_OP) // ���ſ�
+ {
+ Valve_Awaken_Init();
+ ValveCtl_BsTimer_Clk_Init();
+ /*���磬�ط�*/
+ SYS_BST_EN;
+ VALVE_PWR_ON;
+ VALVE_CLOSE;
+ BSTIM_CR1_CEN_Setable(ENABLE);//������ʱ��TIM
+ if (__SYS_STATUS_BYTES_GET(valve_lock) == SET)
+ __VALVE_WORK_TYPE_SET(VWT_FORCED_CLOSE);
+ else
+ __VALVE_WORK_TYPE_SET(VWT_NORMAL_CLOSE);
+ __SYS_STATUS_BYTES_STATUS(valve_state, VALVE_CLOSING, AV_NORMAL);
+#ifdef RS232_PRINTF
+ printf("---> �ط��� <---\r\n");
+#endif
+#if GPRS_PROTOCOL_SELECT
+ gprs_protocol_head_tail_g.gprs_protocol_normal_data_head.valve_close_reason = op_cl_valve_cause_id = op_cl_cause_id; // ����Զ���ط�ԭ��ID
+#else
+ op_cl_valve_cause_id = op_cl_cause_id; // ����Զ���ط�ԭ��ID
+#endif
- default:break;
- }
-
- //������Ҫ��ʼ���IJ���
-
+ }
+ return AV_NORMAL;
+}
+/*�жϿ��ط���λ*/
+void Valve_StateSet(void)
+{
+ if (__SYS_STATUS_BYTES_GET(valve_state) == VALVE_CLOSING || __SYS_STATUS_BYTES_GET(valve_state) == VALVE_OPENING)
+ {
+ IWDT_Clr();
+ if (valve_signal_complete_g) // �е�λ�ź�
+ {
+ valve_signal_complete_g = RESET;
+ if(zero_drift_valve_flag == 0)
+ __SYS_ALARM_BYTES_SET(valve_change,SET);
+ else
+ zero_drift_valve_flag = 0;
+ if (__SYS_STATUS_BYTES_GET(valve_state) == VALVE_CLOSING) // �ı�״̬��־λ
+ __SYS_STATUS_BYTES_STATUS(valve_state, VALVE_CL, AV_NORMAL);
+ else if (__SYS_STATUS_BYTES_GET(valve_state) == VALVE_OPENING)
+ __SYS_STATUS_BYTES_STATUS(valve_state, VALVE_OP, AV_NORMAL);
+#ifdef RS232_PRINTF
+ printf("---> ��/�ط���� <---\r\n");
+#endif
+ }
+#ifdef RS232_PRINTF
+ printf("PE2 = %d,PE3 = %d,PE4 = %d\r\n", GPIO_ReadOutputDataBit(VALVE_CMD_A_PORT, VALVE_CMD_A_PIN),
+ GPIO_ReadOutputDataBit(VALVE_CMD_B_PORT, VALVE_CMD_B_PIN),
+ GPIO_ReadOutputDataBit(VALVE_CMD_C_PORT, VALVE_CMD_C_PIN));
+#endif
+ }
}
-uint16_t GetValveRunMaxTime(CALIBER_TYPE caliber_type_l)
+/*���������������ж�*/
+uint8_t Valve_Open_SpecialJudge(__IO SYS_STATUS_T *state_bytes_p)
{
- switch (caliber_type_l){
- case DN25_TYPE: return VALVE_HADE_RUN_TIME_DN25 ;break;
- case DN32_TYPE: return VALVE_HADE_RUN_TIME_DN32 ;break;
- case DN40_TYPE: return VALVE_HADE_RUN_TIME_DN40 ;break;
- case DN50_TYPE: return VALVE_HADE_RUN_TIME_DN50 ;break;
- case DN80_TYPE: return VALVE_HADE_RUN_TIME_DN80 ;break;
- case DN100_TYPE: return VALVE_HADE_RUN_TIME_DN100 ;break;
- case DN150_TYPE: return VALVE_HADE_RUN_TIME_DN150 ;break;
- case DN200_TYPE: return VALVE_HADE_RUN_TIME_DN200 ;break;
- default: return VALVE_HADE_RUN_TIME_DN200 ;break;
+ /*���������ȼ�����״̬�֡������ֵȹ��ù��ܵ�����*/
+ uint8_t power_temp_press_status = state_bytes_p->lith_under | state_bytes_p->lith_low | state_bytes_p->lith_remove |
+ state_bytes_p->alka_under | state_bytes_p->alka_low | state_bytes_p->alka_remove |
+ state_bytes_p->temp_down | state_bytes_p->temp_down_down | state_bytes_p->temp_up | state_bytes_p->temp_up_up |
+ state_bytes_p->press_down | state_bytes_p->press_down_down | state_bytes_p->press_up | state_bytes_p->press_up_up;
+
+ return !power_temp_press_status;
+}
+
+void Valve_Process(SYS_ALARM_VALVE_T * pOp_cl_cause)
+{
+ if (LargeCurrent_LimitingProcess() & 1)
+ {
+ /*�����Ҫ�ط�*/
+ if (*pOp_cl_cause != V_KEY_OP && *pOp_cl_cause != AV_NORMAL)
+ {
+ uint8_t valve_ctl_temp = 0;
+ // �����ط�
+ if (*pOp_cl_cause == V_KEY_CL)
+ {
+#ifdef RS232_PRINTF
+ printf("�����Թط�\r\n");
+#endif
+ *pOp_cl_cause = Valve_Close(*pOp_cl_cause);
+ }
+ else
+ {
+ // �ط����жϹط�
+ for (uint8_t i = 0; i < VALVE_CLOSE_FUNC_TABLE_NUM; i++)
+ {
+ // ���
+ if (valve_close_tab_func[i].valve_close_flag == *pOp_cl_cause && valve_close_tab_func[i].valve_close_byte != NULL)
+ {
+ valve_ctl_temp = (*valve_close_tab_func[i].valve_close_byte >> valve_close_tab_func[i].offset_bit) & 0x0003;
+ if (valve_ctl_temp & 0x01) // ��Ҫ�ط�
+ {
+ if (valve_ctl_temp & 0x02) // ǿ���Թط�
+ {
+ //�Ѿ��о����Թط����ֲ�����ǿ���Թط�����Ҫ�ı�ط�ID�����ڸ�ֱ�۵���ʾ
+ if(__SYS_STATUS_BYTES_GET(valve_state) == VALVE_CL && __SYS_STATUS_BYTES_GET(valve_lock) == RESET)
+ {
+ __VALVE_WORK_TYPE_SET(VWT_LOCK);
+ op_cl_valve_cause_id = *pOp_cl_cause;
+ }
+ __SYS_STATUS_BYTES_STATUS(valve_lock, SET, AV_NORMAL); // ����
+#ifdef RS232_PRINTF
+ printf("ǿ���Թط�\r\n");
+#endif
+ }
+ else // �����Թط�
+ {
+#ifdef RS232_PRINTF
+ printf("�����Թط�\r\n");
+#endif
+ }
+ *pOp_cl_cause = Valve_Close(*pOp_cl_cause);
+ }
+ else
+ *pOp_cl_cause = AV_NORMAL;
+ break;
+ }
}
+ }
+ }
+ else if (*pOp_cl_cause == V_KEY_OP) // ����
+ {
+ //�춨ģʽ��ǿ���Թط����Զ���������Ҫ������־Ҳȥ��
+ if(__SYS_STATUS_BYTES_GET(valve_lock) == SET && sys_display_para_g.sys_and_display_mode == CALIB_MODE)
+ __SYS_STATUS_BYTES_STATUS(valve_lock, RESET, AV_NORMAL);
+ // �ж�ijЩ״̬�Ƿ�ָ�������״̬���жϣ�or �춨ģʽ
+// if (Valve_Open_SpecialJudge(&sys_admin_g.sys_admin.state_bytes) || (sys_display_para_g.sys_and_display_mode == CALIB_MODE))
+// {
+ *pOp_cl_cause = Valve_Open(*pOp_cl_cause);
+// }
+ }
+ }
+ Valve_StateSet();
}
-
-
-void ValveCtrlHade(CALIBER_TYPE caliber_type_l)
-{
- if(valve_ctrl_para_g.valve_ctrl_order == VC_OPEN){
- if(Read_OP_CL_VALVE_Status(0) == VALVE_OPEN){
- ValveMotorStop();
- save_valve_para_g.valve_status = VALVE_OPEN;
- valve_ctrl_para_g.close_time_cnt = 0;
- valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
-
- }else{
- if(0){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
-
- }else{
- valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
-
- ValveMotorOpenRun();
-
- save_valve_para_g.valve_status = VALVE_OPENING;
- valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
-
- }
-
- }
-
-
- }else if(valve_ctrl_para_g.valve_ctrl_order == VC_CLOSE){
- if(Read_OP_CL_VALVE_Status(0) == VALVE_CLOSE){
- ValveMotorStop();
- save_valve_para_g.valve_status = VALVE_CLOSE;
- valve_ctrl_para_g.open_time_cnt = 0;
- valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
-
- }else{
- if(0){ //?Զ����485�ɼ���������ӳ�ִ�з��Ŷ���
-
- }else{
-
- valve_ctrl_para_g.close_time_cnt = GetValveRunMaxTime(caliber_type_l);
- ValveMotorCloseRun();
-
- save_valve_para_g.valve_status = VALVE_CLOSING;
- valve_ctrl_para_g.valve_ctrl_order = VC_NONE;
-
- }
-
- }
- }else if(valve_ctrl_para_g.valve_ctrl_order == VC_LOCK){
- save_valve_para_g.valve_lock_state = VL_LOCK;
-
- }
-
-
- //?�жϿ��ط��Ƿ�λ
- if(save_valve_para_g.valve_status==VALVE_OPENING){
- if(valve_ctrl_para_g.open_time_cnt==0){
- //?��ʱ����
- ValveMotorStop();
- save_valve_para_g.valve_status = VALVE_ERROR;
-
- }else{
- valve_ctrl_para_g.open_time_cnt--;
- }
-
- if(valve_ctrl_para_g.force_open_status ==SET){
- //��������������ǿ�����ر�����
- ValveMotorStop();
- }
-
-
-
- }else if(save_valve_para_g.valve_status==VALVE_CLOSING){
- if(valve_ctrl_para_g.close_time_cnt==0){
- //?��ʱ����
- ValveMotorStop();
- save_valve_para_g.valve_status = VALVE_ERROR;
-
- }else{
- valve_ctrl_para_g.close_time_cnt--;
- }
-
- if(valve_ctrl_para_g.force_open_status ==SET){
- //�ط�����������ǿ�����ر�������״̬�ı�ɿ����У����ÿ�����ʱ
- ValveMotorStop();
- save_valve_para_g.valve_status = VALVE_OPENING;
- valve_ctrl_para_g.open_time_cnt = GetValveRunMaxTime(caliber_type_l);
- }
- }
-
-}
-
-
-//����������
-ErrorStatus ValveCtrlOrder(VALVE_CTEL_TYPE_T valve_ctrl_order_l)
-{
- switch(valve_ctrl_order_l){
- case VC_NONE:break;
- case VC_OPEN:
- if((save_valve_para_g.valve_status == VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){
- valve_ctrl_para_g.valve_ctrl_order = VC_OPEN;
- return PASS;
- }
- break;
-
- case VC_CLOSE:
- if((save_valve_para_g.valve_status != VALVE_CLOSE)&&(valve_ctrl_para_g.force_open_status==RESET)){
- valve_ctrl_para_g.valve_ctrl_order = VC_CLOSE;
- return PASS;
- }
- break;
-
- case VC_UNLOCK:
- save_valve_para_g.valve_lock_state = VL_UNLOCK;
- return PASS;
- break;
-
- case VC_LOCK:
- save_valve_para_g.valve_lock_state = VL_LOCK;
- return PASS;
- break;
-
- default: break;
- }
-
- return FAIL;
-}
-
-
-void ValveForceOpenSignalCheck(void)
-{
- uint8_t force_open_io_status=(uint8_t)Bit_RESET;
- Force_Open_GPIO_Init();
- if(VALVE_FORCE_OPEN_IO_READ==Bit_SET){
- delay_ms(5);
- if(VALVE_FORCE_OPEN_IO_READ==Bit_SET)
- force_open_io_status=(uint8_t)Bit_SET;
- }
-
- if(force_open_io_status==(uint8_t)Bit_SET){
- if(valve_ctrl_para_g.force_open_status !=SET){
- valve_ctrl_para_g.force_open_status =SET;
- //��ʼ����ǿ��
- }
-
-
- }else{
- if(valve_ctrl_para_g.force_open_status ==SET){
- valve_ctrl_para_g.force_open_status =RESET;
- //��ʼ�ر�ǿ��
- }
-
- }
-
-
- if((valve_ctrl_para_g.force_open_status ==SET)&&(Read_OP_CL_VALVE_Status(0)==VALVE_OPEN)){
- //?��ǿ�������Ƿ���״̬��ȡ�Ѿ�����λ����ʾ�Ƴ�ǿ����Դ��
- }
-
-}
-
-void valveCtrlPro(void) //? ���Ҫ������������ú���ValveCtrlOrder��VC_OPEN��;��δ����������
-{
-
- ValveForceOpenSignalCheck();//?ǿ���жϴ���
-
- ValveCtrlHade(equipment_basic_inf_g.caliber_type);//���·��Ų���������
-
-
-}
-
--
Gitblit v1.9.3