From e4424eb6b50d0300583c422dfb71d58e040f4b9e Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Tue, 11 Jun 2024 19:54:37 +0800
Subject: [PATCH] 继续测试优化
---
Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c | 126 +++++++++++++++++++++++++++++++++--------
1 files changed, 100 insertions(+), 26 deletions(-)
diff --git a/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c b/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c
index 4bd1e85..468bf02 100644
--- a/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c
+++ b/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c
@@ -3,6 +3,8 @@
#include "gpio.h"
#include "sizhu_ctrl_word.h"
#include "tim.h"
+#include "linked_list.h"
+#include "sizhu_alarm_record.h"
__IO int16_t pulse_count =0; //�����������һ������+1,���ս��㵽�ۻ�����,����֮������
__IO FlagStatus pulse_exti_flag = RESET;
@@ -120,9 +122,9 @@
delay_ms(1);
if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,1,Bit_SET)==SET){
- __SYS_STATUS_BYTES_GET(broken_line) = SET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
}else{
- __SYS_STATUS_BYTES_GET(broken_line) = RESET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
}
}else{
@@ -141,12 +143,12 @@
if((flow_meter_para_g.flow_meter_code !=ASMODBUS)&&(flow_meter_para_g.flow_meter_code !=AS100MODBUS)&&(flow_meter_para_g.flow_meter_code !=SIARGO_MODBUS)){
if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,501,Bit_RESET)==SET){
- __SYS_STATUS_BYTES_GET(broken_line) = SET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
}else{
- __SYS_STATUS_BYTES_GET(broken_line) = RESET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
}
}else{
- __SYS_STATUS_BYTES_GET(broken_line) = RESET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
}
}
@@ -169,9 +171,9 @@
delay_ms(1);
if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_SET)==SET){
- __SYS_STATUS_BYTES_GET(broken_line) = SET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
}else{
- __SYS_STATUS_BYTES_GET(broken_line) = RESET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
}
UV_LOSE_CHECK_DISABLE;
@@ -208,9 +210,9 @@
delay_ms(1);
if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_SET)==SET){
- __SYS_STATUS_BYTES_GET(broken_line) = SET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
}else{
- __SYS_STATUS_BYTES_GET(broken_line) = RESET ;
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
}
LV_LOSE_CHECK_DISABLE;
@@ -239,13 +241,30 @@
/*�ط�������*/
//��Ϊ��Ҫ�����ط��������ö��߹����������жϣ�����ط���������ѭ�����洦��
- CV_lose_check_GPIO_Clk_Init();
- Close_Valve_Alarm_Line_GPIO_Clk_sleep();
- CV_LOSE_CHECK_DISABLE;
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_CLOSE_VALVE)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_Init();
+ CV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(CV_ALM_A_PORT,CV_ALM_A_PIN,1,Bit_SET)==SET){
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+ CV_LOSE_CHECK_DISABLE;
+
+ }else{
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_sleep();
+ CV_LOSE_CHECK_DISABLE;
+ }
}
-#define ALARM_LINE_CONTINUE_TIMES 3 //������״̬����ALARM_LINE_CONTINUE_TIMES��ʱ��Ϊ��Ч
+#define ALARM_LINE_CONTINUE_TIMES 3 //���ܳ���250��������״̬����ALARM_LINE_CONTINUE_TIMES��ʱ��Ϊ��Ч
void PulseAndAlarmLineCheck(void)
{
@@ -265,7 +284,7 @@
delay_ms(1);
if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,1,Bit_SET)==SET){
- broken_line_cnt ++ ;
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
}else{
broken_line_cnt = 0 ;
}
@@ -286,7 +305,7 @@
if((flow_meter_para_g.flow_meter_code !=ASMODBUS)&&(flow_meter_para_g.flow_meter_code !=AS100MODBUS)&&(flow_meter_para_g.flow_meter_code !=SIARGO_MODBUS)){
if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,1,Bit_RESET)==SET){
- broken_line_cnt ++ ;
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
}else{
broken_line_cnt = 0 ;
}
@@ -294,8 +313,6 @@
broken_line_cnt = 0 ;
}
}
-
- BasicTimer16_Init(BT1,240,PULSE_CHECK_DELAY_MS*(SYSCLOCK_U/240/1000)); //PULSE_CHECK_DELAY_MS ��ʱ�������������ʱ��⣬�����������PULSE_CHECK_DELAY_MS��Ч��ȥ��
}else{
//����������
@@ -314,7 +331,7 @@
delay_ms(1);
if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_SET)==SET){
- broken_line_cnt ++ ;
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
}else{
broken_line_cnt = 0 ;
}
@@ -329,9 +346,9 @@
delay_ms(1);
if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_RESET)==SET){
- __SYS_STATUS_BYTES_GET(flow_meter_under_pwr) = SET ;
+ if(under_pwr_line_cnt < 250) under_pwr_line_cnt ++;
}else{
- __SYS_STATUS_BYTES_GET(flow_meter_under_pwr) = RESET ;
+ under_pwr_line_cnt = 0;
}
UV_LOSE_CHECK_DISABLE;
@@ -341,6 +358,11 @@
UV_lose_check_GPIO_Clk_Init();
Under_Pwr_INT_GPIO_Clk_sleep();
UV_LOSE_CHECK_DISABLE;
+ }
+
+ //Ƿѹ��������
+ if(under_pwr_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(flow_meter_under_pwr,ALARM_ID_FLOW_BAT_DOWN);
}
@@ -353,7 +375,7 @@
delay_ms(1);
if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_SET)==SET){
- broken_line_cnt ++ ;
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
}else{
broken_line_cnt = 0 ;
}
@@ -368,9 +390,9 @@
delay_ms(1);
if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_RESET)==SET){
- __SYS_STATUS_BYTES_GET(flow_meter_low_pwr) = SET ;
+ if(low_pwr_line_cnt < 250) low_pwr_line_cnt ++;
}else{
- __SYS_STATUS_BYTES_GET(flow_meter_low_pwr) = RESET ;
+ low_pwr_line_cnt = 0;
}
UV_LOSE_CHECK_DISABLE;
@@ -382,11 +404,63 @@
LV_LOSE_CHECK_DISABLE;
}
+ //�͵籨������
+ if(low_pwr_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(flow_meter_low_pwr,ALARM_ID_FLOW_BAT_LOW);
+ }
+
/*�ط�������*/
//��Ϊ��Ҫ�����ط�����ʼ���Բ����жϣ�����ѭ�����洦��
- CV_lose_check_GPIO_Clk_Init();
- Close_Valve_Alarm_Line_GPIO_Clk_sleep();
- CV_LOSE_CHECK_DISABLE;
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_CLOSE_VALVE)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_Init();
+ CV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(CV_ALM_A_PORT,CV_ALM_A_PIN,1,Bit_SET)==SET){
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
+ }else{
+ broken_line_cnt = 0 ;
+ }
+
+ CV_LOSE_CHECK_DISABLE;
+
+ }else if(__SYS_ALARM_CTL_BYTES_GET(ex_trigger_close_valve) == SET){
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_Init();
+ CV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(CV_ALM_A_PORT,CV_ALM_A_PIN,1,Bit_RESET)==SET){
+ if(close_valve_line_cnt < 250) close_valve_line_cnt ++ ;
+ }else{
+ close_valve_line_cnt = 0 ;
+ }
+
+ CV_LOSE_CHECK_DISABLE;
+
+ }else{
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_sleep();
+ CV_LOSE_CHECK_DISABLE;
+ }
+
+ //�ⲿ�����ط���������
+ if(close_valve_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(ex_trigger_close_valve,ALARM_ID_EX_TRIGGER_CLOSE_VALVE);
+ }
+
+
+
+ //���߱����� ��Ϊ�ܶ��߶����Ը��ö��ߣ����Զ��߷�������ж�
+ if(broken_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(broken_line,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+
}
--
Gitblit v1.9.3