From fa6053f85287163f6e2d5dba690bec05cbc95f4a Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 07 Jun 2024 17:00:49 +0800
Subject: [PATCH] 增加阀控事件记录及修改阀控命令

---
 HARDWARE/EXTI/exti.c |  188 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 130 insertions(+), 58 deletions(-)

diff --git a/HARDWARE/EXTI/exti.c b/HARDWARE/EXTI/exti.c
index 6ed076c..825ec2e 100644
--- a/HARDWARE/EXTI/exti.c
+++ b/HARDWARE/EXTI/exti.c
@@ -12,6 +12,9 @@
 #include "power_manage.h"
 #include "pulse_and_alarm_line.h"
 #include "tim.h"
+#include "wireless_remote_comm.h"
+#include "main.h"
+#include "lcd.h"
 
 void NMI_Handler(void)
 {
@@ -30,6 +33,7 @@
 {
 //	if(__SYS_DELAY_SEC_FLAG_GET(sys_active_time) == SET && LargeCurrent_LimitingProcess() == 3)
 		SysWakeUp_ClockCfg();
+	
 	if(GPIO_EXTI_EXTIISR_ChkEx(EXT_RTC_INT_PORT, EXT_RTC_INT_PIN)  == SET) //RTC�ж�
 	{
 		GPIO_EXTI_EXTIISR_ClrEx(EXT_RTC_INT_PORT, EXT_RTC_INT_PIN);
@@ -44,13 +48,26 @@
 			}
 		}
 
-		// �ж�GPRS��ʱʱ��
-		if (sys_delay_sec_para_g.gprs_timeout_para.delay_time)
+		// �ж���λ����ʱʱ��
+		if (sys_delay_sec_para_g.UC_active_time.delay_time)
 		{
-			if (!(--sys_delay_sec_para_g.gprs_timeout_para.delay_time))
-				sys_delay_sec_para_g.gprs_timeout_para.delay_flag = SET;
+			if (!(--sys_delay_sec_para_g.UC_active_time.delay_time))
+				sys_delay_sec_para_g.UC_active_time.delay_flag = SET;
 		}
 		
+		// �ж�GPRS��ʱʱ��
+		if (sys_delay_sec_para_g.wrc_timeout_para.delay_time)
+		{
+			if (!(--sys_delay_sec_para_g.wrc_timeout_para.delay_time))
+				sys_delay_sec_para_g.wrc_timeout_para.delay_flag = SET;
+		}
+		
+		//wrc�ر�ʱ�䵹��ʱ
+		if (wrc_ctrl_para_g.wrc_restart_time_sec_cnt)
+		{
+			if (!(--wrc_ctrl_para_g.wrc_restart_time_sec_cnt))
+				;
+		}
 
 	}
 	
@@ -60,71 +77,105 @@
 		
 		if(KEY1_IO_READ==Bit_RESET)
 		{
-			if(KEY3_IO_READ==Bit_RESET)
+			if((KEY3_IO_READ==Bit_RESET)&&(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0))
 			{
 				//����
 				if(__SYS_STATUS_BYTES_GET(account_state) == RESET ||__SYS_STATUS_BYTES_GET(valve_lock) == RESET )
-					ValveCtrlOrder(VC_OPEN);
-			}else if(KEY2_IO_READ==Bit_RESET)
+					ValveCtrlOrder(VC_OPEN,VALVE_CTRL_SOURCE_KEY);
+			}else if((KEY2_IO_READ==Bit_RESET)&&(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0))
 			{
 				//�ط�
 				if(__SYS_STATUS_BYTES_GET(account_state) == RESET)
-					ValveCtrlOrder(VC_OPEN);
+					ValveCtrlOrder(VC_CLOSE,VALVE_CTRL_SOURCE_KEY);
 			}else
 			{
 				//������Դ
+				if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) ==0){
+					//�״λ��ѣ�LCD�����ϵ磬ʹ��key2��key3������Ч�������״λ�����Ҫ��ʼ��Һ���������ñ�־λ
+					lcd_first_wake_up_flag_g = SET;
+					Lcd_GPIO_Init();
+					LCD_PWR_ON;	
+				}
 				
+				__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
+				lcd_wake_up_flag_g = SET;
+				Key_GPIO_Init();
+				
+				pwr_vol_g.lith_flag = LMS_KEY; //����Դ���ɼ�һ�ε�ص�ѹ
+				pwr_vol_g.alka_flag = AMS_KEY;
 			}
 			
 		}
 	}
 	
-	if(GPIO_EXTI_EXTIISR_ChkEx(KEY2_PORT, KEY2_PIN)  == SET) //key2�ж�
-	{
-		GPIO_EXTI_EXTIISR_ClrEx(KEY2_PORT, KEY2_PIN);
-		if(KEY2_IO_READ==Bit_RESET)			
-		{
-			
-		}
-	}
+//	if(GPIO_EXTI_EXTIISR_ChkEx(KEY2_PORT, KEY2_PIN)  == SET) //key2�ж�
+//	{
+//		GPIO_EXTI_EXTIISR_ClrEx(KEY2_PORT, KEY2_PIN);
+//		if(KEY2_IO_READ==Bit_RESET)			
+//		{
+//			lcd_wake_up_flag_g = SET;
+//			if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //��������ⰴ�����ü���ʱ��
+//				__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
+//			}
+//		}
+//	}
+//	
+//	if(GPIO_EXTI_EXTIISR_ChkEx(KEY3_PORT, KEY3_PIN)  == SET) //key3�ж�
+//	{
+//		GPIO_EXTI_EXTIISR_ClrEx(KEY3_PORT, KEY3_PIN);
+//		if(KEY3_IO_READ==Bit_RESET)			
+//		{
+//			if(KEY2_IO_READ==Bit_RESET)			
+//			{
+//				//�ɼ����������ݲ������ϱ�
+//				start_rs485_g = RS485_START_REASON_KEY;
+//				start_wrc_g = WRC_MEANS_KEY;
+//			}else{
+//				lcd_wake_up_flag_g = SET;
+//			}
+//			
+//			if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0){ //��������ⰴ�����ü���ʱ��
+//				__SYS_DELAY_SEC_TIME_SET_(sys_active_time,SYS_WAKE_UP_TIME);
+//			}
+//			
+//		}
+//	}
 	
-	if(GPIO_EXTI_EXTIISR_ChkEx(KEY3_PORT, KEY3_PIN)  == SET) //key3�ж�
-	{
-		GPIO_EXTI_EXTIISR_ClrEx(KEY3_PORT, KEY3_PIN);
-		if(KEY3_IO_READ==Bit_RESET)			
-		{
-			if(KEY2_IO_READ==Bit_RESET)			
-			{
-				//�ɼ����������ݲ������ϱ�
-				start_rs485_g = RS485_START_REASON_KEY;
-				start_wrc_g = WRC_MEANS_KEY;
-			}
-		}
-	}
-	
-	if(GPIO_EXTI_EXTIISR_ChkEx(KEY4_PORT, KEY4_PIN)  == SET) //key4�ж�
-	{
-		GPIO_EXTI_EXTIISR_ClrEx(KEY4_PORT, KEY4_PIN);
+//	if(GPIO_EXTI_EXTIISR_ChkEx(KEY4_PORT, KEY4_PIN)  == SET) //key4�ж�
+//	{
+//		GPIO_EXTI_EXTIISR_ClrEx(KEY4_PORT, KEY4_PIN);
 
+//	}
+	
+	
+	if(GPIO_EXTI_EXTIISR_ChkEx(Motor_OP_PORT, Motor_OP_PIN)  == SET) //���ſ��ص�λ�ź��õ�ͬһ���жϣ����Է�һ����
+	{
+			GPIO_EXTI_EXTIISR_ClrEx(Motor_OP_PORT, Motor_OP_PIN);
+			
+			if(save_valve_para_g.valve_status == VALVE_OPENING){  
+				if(Motor_OP_IO_READ == Bit_RESET){  //����״̬ȷ��
+					ValveMotorStop();//�ر�����
+					save_valve_para_g.valve_status = VALVE_OPEN;
+				}			
+			}else if(save_valve_para_g.valve_status == VALVE_CLOSING){  
+				if(Motor_CL_IO_READ == Bit_RESET){  //����״̬ȷ��
+					ValveMotorStop();//�ر�����
+					save_valve_para_g.valve_status = VALVE_CLOSE;
+				}
+			}
 	}
 	
-	if(GPIO_EXTI_EXTIISR_ChkEx(Motor_OP_PORT, Motor_OP_PIN)  == SET) //���ſ���λ�ж�
-	{
-		GPIO_EXTI_EXTIISR_ClrEx(Motor_OP_PORT, Motor_OP_PIN);
-		
-		ValveMotorStop();//�ر�����
-		save_valve_para_g.valve_status = VALVE_OPEN;
-		
-	}
+
+//	if(GPIO_EXTI_EXTIISR_ChkEx(Motor_CL_PORT, Motor_CL_PIN)  == SET) //���Źص�λ�ж�
+//	{
+//		GPIO_EXTI_EXTIISR_ClrEx(Motor_CL_PORT, Motor_CL_PIN);
+//		if(Motor_CL_IO_READ == Bit_RESET){  //����״̬ȷ��
+//			ValveMotorStop();//�ر�����
+//			save_valve_para_g.valve_status = VALVE_CLOSE;
+//		}
+//		
+//	}
 	
-	if(GPIO_EXTI_EXTIISR_ChkEx(Motor_CL_PORT, Motor_CL_PIN)  == SET) //���Źص�λ�ж�
-	{
-		GPIO_EXTI_EXTIISR_ClrEx(Motor_CL_PORT, Motor_CL_PIN);
-		
-		ValveMotorStop();//�ر�����
-		save_valve_para_g.valve_status = VALVE_CLOSE;
-		
-	}
 	
 	
 	if(GPIO_EXTI_EXTIISR_ChkEx(LITH_PWR_LOSE_PORT, LITH_PWR_LOSE_PIN)  == SET)
@@ -134,14 +185,14 @@
 //		__SYS_STATUS_ALARM_BYTES_SET(lith_remove);
 		pwr_vol_g.lith_lose_check_flag = SET;
 	}
-	if(GPIO_EXTI_EXTIISR_ChkEx(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN)  == SET)
-	{
-		GPIO_EXTI_EXTIISR_ClrEx(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN);
+//	if(GPIO_EXTI_EXTIISR_ChkEx(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN)  == SET)
+//	{
+//		GPIO_EXTI_EXTIISR_ClrEx(ALKA_PWR_LOSE_PORT, ALKA_PWR_LOSE_PIN);
 
-//		__SYS_STATUS_ALARM_BYTES_SET(alka_remove);
-		
-		pwr_vol_g.alka_lose_check_flag = SET;
-	}
+////		__SYS_STATUS_ALARM_BYTES_SET(alka_remove);
+//		
+//		pwr_vol_g.alka_lose_check_flag = SET;
+//	}
 	
 	
 	if(GPIO_EXTI_EXTIISR_ChkEx(LF_PULSE_INT_PORT, LF_PULSE_INT_PIN)  == SET) //�Ʒѵ�Ƶ����
@@ -151,13 +202,34 @@
 		if(((flow_meter_para_g.broken_line_multiplex & BROKEN_LINE_MUTIPLEX_PULSE)!=BROKEN_LINE_MUTIPLEX_PULSE)&&   \
 		((flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_PULSE)||(flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_RS485_AND_PULSE))){
 			pulse_exti_flag = SET;
-			BTx_CR1_CHEN_Setable(BT1,ENABLE);	//������ʱ��
-			
+			BTx_CR1_CHEN_Setable(BT1,ENABLE);	//������ʱ��			
 		}
+	}
+	
+	if(GPIO_EXTI_EXTIISR_ChkEx(HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN)  == SET) //����Ƴ��ж�
+	{
+		GPIO_EXTI_EXTIISR_ClrEx(HWIDO_EX_PWR_PORT, HWIDO_EX_PWR_PIN);
+		//����Ƴ��������ر�������
+		EX_PWR_OFF;
+//		__SYS_STATUS_BYTES_STATUS(power_state, RESET, ALARM_ID_NORMAL);
 
 	}
 	
 	
+	if(GPIO_EXTI_EXTIISR_ChkEx(LIMIT_TRIGGER_PORT, LIMIT_TRIGGER_PIN)  == SET) //��������
+	{
+		GPIO_EXTI_EXTIISR_ClrEx(LIMIT_TRIGGER_PORT, LIMIT_TRIGGER_PIN);
+		//��¼��������ʱ����Ϣ
+		arrayA_2_arrayB((uint8_t *)&sys_clockBCD_g.year,&limit_trigger_record_para_g.record_time_BCD.year,sizeof(sys_clockBCD_g),LITTLE_ENDIAN);
+		limit_trigger_record_para_g.trigger_times ++;
+		limit_trigger_record_para_g.RS485_running_flag = sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag;
+		limit_trigger_record_para_g.valve_running_flag = sys_fun_run_ctrl_g.valve_ctrl_flag.running_flag;
+		limit_trigger_record_para_g.wrc_running_flag = sys_fun_run_ctrl_g.wrc_ctrl_flag.running_flag;
+		limit_trigger_record_para_g.EXPWR_check_status = HWIDO_EX_PWR_IO_READ;
+		limit_trigger_record_para_g.EXPWR_ctrl_status = __SYS_STATUS_BYTES_GET(power_state);
+	}
+	
+	
 //	if(GPIO_EXTI_EXTIISR_ChkEx(VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN)  == SET)
 //	{
 //		GPIO_EXTI_EXTIISR_ClrEx(VALVE_FORCED_OPEN_PORT, VALVE_FORCED_OPEN_PIN);

--
Gitblit v1.9.3