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] 增加阀控事件记录及修改阀控命令

---
 Function/LCD/lcd_cfg_api.c |  428 ++++++++++++++++++++++-------------------------------
 1 files changed, 180 insertions(+), 248 deletions(-)

diff --git a/Function/LCD/lcd_cfg_api.c b/Function/LCD/lcd_cfg_api.c
index 2ea5f75..0e5fff3 100644
--- a/Function/LCD/lcd_cfg_api.c
+++ b/Function/LCD/lcd_cfg_api.c
@@ -17,77 +17,39 @@
 #include "lcd_io_api.h"
 #include "system_general_para.h"
 #include "extern_rtc.h"
-
+#include "wireless_remote_comm.h"
+#include "linked_list.h"
 
 
 /*������ʾ*/
-void Lcd_Battery(float alka_vcc,float lith_vcc)
+void Lcd_Battery(PWR_VOL_T pwr_para_in)
 {
-//	__IO static uint8_t cal_cnt = 0;
-//	LCD_DISPLAY_SEG(_LCD_BATTERY_SHELL_23A); //������ʾ��ؿ�
-//	if(sys_display_para_g.sys_and_display_mode != CALIB_MODE)
-//	{
-//		if((calendar_g.Second & 4) == 0) //��������6�룬ͨѶ����4�룬һ��ѭ��
-//		{
-//			LCD_DISPLAY_SEG(_LCD_METER_23A);  //���������ַ�
-//			if(lith_bat_real_per_g > 0)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
-//			if(lith_bat_real_per_g > 20)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
-//			if(lith_bat_real_per_g > 40)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
-//			if(lith_bat_real_per_g > 70)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
-//		}
-//		else
-//		{
-//			LCD_DISPLAY_SEG(_LCD_SIGNAL_COMMUNICATION_23A); //��ͨѶ���ַ�
-//			if(alka_vcc >= 4.5f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
-//			if(alka_vcc >= 4.85f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
-//			if(alka_vcc >= 5.25f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
-//			if(alka_vcc >= 5.65f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
-//		}
-//	}else//�춨ģʽ��ʵʱʱ�䲻���£�����Ҫ���ַ�ʽ
-//	{
-//		cal_cnt++;
-//		if(cal_cnt <= 24)
-//		{
-//			LCD_DISPLAY_SEG(_LCD_METER_23A);  //���������ַ�
-////			if(lith_vcc >= 2.9f)
-////				LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
-////			if(lith_vcc >= 3.2f)
-////				LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
-////			if(lith_vcc >= 3.3f)
-////				LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
-////			if(lith_vcc >= 3.4f)
-////				LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
-//			if(lith_bat_real_per_g > 0)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
-//			if(lith_bat_real_per_g > 20)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
-//			if(lith_bat_real_per_g > 40)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
-//			if(lith_bat_real_per_g > 70)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
-//		}else 
-//		{
-//			if(cal_cnt > 40)
-//				cal_cnt = 0;
-//			LCD_DISPLAY_SEG(_LCD_SIGNAL_COMMUNICATION_23A); //��ͨѶ���ַ�
-//			if(alka_vcc >= 4.5f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
-//			if(alka_vcc >= 4.85f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
-//			if(alka_vcc >= 5.25f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
-//			if(alka_vcc >= 5.65f)
-//				LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
-//		}
-//	}
+	
+	LCD_DISPLAY_SEG(_LCD_BATTERY_SHELL_23A); //������ʾ��ؿ�
+	if((sys_clockBCD_g.sec & 0x04 ) == 0){
+		//��ʾ﮵�
+		LCD_DISPLAY_SEG(_LCD_METER_23A);  //���������ַ�
+		if(pwr_para_in.lith_synthesize_per > BAT_PERSENT_LEVEL_0)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
+		if(pwr_para_in.lith_synthesize_per > BAT_PERSENT_LEVEL_1)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
+		if(pwr_para_in.lith_synthesize_per > BAT_PERSENT_LEVEL_2)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
+		if(pwr_para_in.lith_synthesize_per > BAT_PERSENT_LEVEL_3)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
+		
+	}else{
+		//��ʾ���
+		LCD_DISPLAY_SEG(_LCD_SIGNAL_COMMUNICATION_23A); //��ͨѶ���ַ�
+		if(pwr_para_in.alka_vcc_per > BAT_PERSENT_LEVEL_0)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_1_23A);
+		if(pwr_para_in.alka_vcc_per > BAT_PERSENT_LEVEL_1)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_2_23A);
+		if(pwr_para_in.alka_vcc_per > BAT_PERSENT_LEVEL_2)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_3_23A);
+		if(pwr_para_in.alka_vcc_per > BAT_PERSENT_LEVEL_3)
+			LCD_DISPLAY_SEG(_LCD_BATTERY_4_23A);
+	}
 }
 
 /*
@@ -495,199 +457,169 @@
 
 
 /*������ʾ*/
-//void Lcd_ValveShow(VALVE_STATUS valve_state,SYS_ALARM_VALVE_T cl_valve_cause,uint8_t valve_lock)
-//{
-//	static uint8_t show_flag = 0;
-//	switch(valve_state)
-//	{
-//		case VALVE_OP:
-//			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
-//			LCD_DISPLAY_SEG(_LCD_OPEN_23A);
-//			break;
-//		case VALVE_CL:
-//			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
-//			LCD_DISPLAY_SEG(_LCD_CLOSE_23A);
-//			break;
-//		case VALVE_OPENING:
-//			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
-//			show_flag = !show_flag;
-//			if(show_flag)
-//				LCD_DISPLAY_SEG(_LCD_OPEN_23A);
-//			break;
-//		case VALVE_CLOSING:
-//			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
-//			show_flag = !show_flag;
-//			if(show_flag)
-//				LCD_DISPLAY_SEG(_LCD_CLOSE_23A);
-//			break;
-//		case VALVE_ERROR:
-//			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
-//			break;
-//		default:break;
-//	}
-//	if(valve_lock)
-//		LCD_DISPLAY_SEG(_LCD_LOCK_23A);
-//	if(valve_state == VALVE_CL && (cl_valve_cause <= 0x99))
-//	{
-//#ifdef LCD_NEW
-//		Lcd_DisplayDigit_23A(1,BCD_2_DECIMAL(cl_valve_cause) / 10);
-//		Lcd_DisplayDigit_23A(2,BCD_2_DECIMAL(cl_valve_cause) % 10);
-//#else
-//		switch(cl_valve_cause) //��δ�����ô����
-//		{
-//			default:
-////				Lcd_DisplayDigit_23A(1,5);
-//				break;
-//		}
-//#endif	
-//	}
-//}
+void Lcd_ValveShow(VALVE_STATUS valve_state,uint16_t valve_close_ID,VALVE_LOCK_STATE_T valve_lock_status)
+{
+	static uint8_t show_flag = 0;
+	switch(valve_state)
+	{
+		case VALVE_NONE:
+			break;
+		case VALVE_OPEN:
+			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
+			LCD_DISPLAY_SEG(_LCD_OPEN_23A);
+			break;
+		case VALVE_CLOSE:
+			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
+			LCD_DISPLAY_SEG(_LCD_CLOSE_23A);
+			break;
+		case VALVE_OPENING:
+			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
+			if((sys_clockBCD_g.sec & 0x01) == 0)
+				LCD_DISPLAY_SEG(_LCD_OPEN_23A);
+			break;
+		case VALVE_CLOSING:
+			LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
+			if((sys_clockBCD_g.sec & 0x01) == 0)
+				LCD_DISPLAY_SEG(_LCD_CLOSE_23A);
+			break;
+		case VALVE_ERROR:
+			if((sys_clockBCD_g.sec & 0x01) == 0)
+				LCD_DISPLAY_SEG(_LCD_VALVE_M_23A);
+			break;
+		default:break;
+	}
+	if(valve_lock_status == VL_LOCK)
+		LCD_DISPLAY_SEG(_LCD_LOCK_23A);
+	valve_close_ID &=(~0x8000); 
+	if(valve_state == VALVE_CLOSE && (valve_close_ID <= 0xff))
+	{
+		Lcd_DisplayDigit_23A(1,BCD_2_DECIMAL(valve_close_ID) / 10);
+		Lcd_DisplayDigit_23A(2,BCD_2_DECIMAL(valve_close_ID) % 10);
+	}
+}
 
 /*������ʾ*/
 #define ALARM_ID_SHOW_MAX 5
-void Lcd_WaringShow_New(uint8_t list_cnt,uint8_t sec_bcd)
+void Lcd_WaringShow(uint8_t list_cnt,uint8_t sec_bcd)
 {
-//	uint8_t i = 0;
-//#ifdef LCD_NEW
-//	i = 1;
-//#endif	
-//	static uint8_t sec_limit_flag = 0; //����ѭ��������ʾʱ��������ҳ������ʾ������������
-//	static uint8_t temp_list_cnt_flag = 0; //�����жϱ����Ƿ���ɾ
-//	static uint8_t show_min_flag = 0; //��ʾ�жϵ���Сֵ��־λ
-//	__IO static int8_t alarm_show_num = 0; //������ʾ�ij��ȣ����ڲ��������еı���ID
-//	__IO static SYS_ALARM_VALVE_T alarm_id = AV_NORMAL;
-//	ALARM_NODE_T * ptr = pList_head;
-//	if((sec_bcd & 1) && (ptr != NULL))//ÿ2S�޸�һ������ & ��������������
-//	{
-//		if(sec_limit_flag != sec_bcd)
-//		{
-//			sec_limit_flag = sec_bcd;
-//			if(temp_list_cnt_flag != list_cnt) //��������or��ʧʱ�������µı�����ʼ��ʾ
-//			{
-//				alarm_show_num = temp_list_cnt_flag = list_cnt; 
-//				if(list_cnt > ALARM_ID_SHOW_MAX) //����ѭ����ʾ��Сֵ
-//					show_min_flag = list_cnt - ALARM_ID_SHOW_MAX; 
-//				else
-//					show_min_flag = 0;
-//			}
-//			if(--alarm_show_num < show_min_flag) //һ��ѭ���󣬻ص���ʼֵ
-//				alarm_show_num = list_cnt - 1;
-//			/*�������*/
-//			for(uint8_t j = 0;j < alarm_show_num;j++)
-//				ptr = ptr->alarm_list_next;
-//			alarm_id = ptr->list_data;
-//		}
-//	}else if(ptr == NULL && temp_list_cnt_flag != 0) // ��ǰ�б���������û��
-//	{
-//		alarm_id = AV_NORMAL;
-//		temp_list_cnt_flag = list_cnt;
-//	}
-//	/*������ʾ*/
-//	if(alarm_id != AV_NORMAL)	
-//	{
-//		LCD_DISPLAY_SEG(_LCD_WARNING_23A);
-//		Lcd_DisplayDigit_23A(2 + i,BCD_2_DECIMAL(alarm_id) / 10);
-//		Lcd_DisplayDigit_23A(3 + i,BCD_2_DECIMAL(alarm_id) % 10);
-//	}
+	uint8_t i = 0;
+#ifdef LCD_NEW
+	i = 1;
+#endif	
+	static uint8_t sec_limit_flag = 0; //����ѭ��������ʾʱ��������ҳ������ʾ������������
+	static uint8_t temp_list_cnt_flag = 0; //�����жϱ����Ƿ���ɾ
+	static uint8_t show_min_flag = 0; //��ʾ�жϵ���Сֵ��־λ
+	__IO static int8_t alarm_show_num = 0; //������ʾ�ij��ȣ����ڲ��������еı���ID
+	__IO static SYS_ALARM_VALVE_T alarm_id = ALARM_ID_NORMAL;
+	ALARM_NODE_T * ptr = pList_head;
+	if((sec_bcd & 1) && (ptr != NULL))//ÿ2S�޸�һ������ & ��������������
+	{
+		if(sec_limit_flag != sec_bcd)
+		{
+			sec_limit_flag = sec_bcd;
+			if(temp_list_cnt_flag != list_cnt) //��������or��ʧʱ�������µı�����ʼ��ʾ
+			{
+				alarm_show_num = temp_list_cnt_flag = list_cnt; 
+				if(list_cnt > ALARM_ID_SHOW_MAX) //����ѭ����ʾ��Сֵ
+					show_min_flag = list_cnt - ALARM_ID_SHOW_MAX; 
+				else
+					show_min_flag = 0;
+			}
+			if(--alarm_show_num < show_min_flag) //һ��ѭ���󣬻ص���ʼֵ
+				alarm_show_num = list_cnt - 1;
+			/*�������*/
+			for(uint8_t j = 0;j < alarm_show_num;j++)
+				ptr = ptr->alarm_list_next;
+			alarm_id = ptr->list_data;
+		}
+	}else if(ptr == NULL && temp_list_cnt_flag != 0) // ��ǰ�б���������û��
+	{
+		alarm_id = ALARM_ID_NORMAL;
+		temp_list_cnt_flag = list_cnt;
+	}
+	/*������ʾ*/
+	if((alarm_id != ALARM_ID_NORMAL)&&(alarm_id <= 0xff))	
+	{
+		LCD_DISPLAY_SEG(_LCD_WARNING_23A);
+		Lcd_DisplayDigit_23A(2 + i,BCD_2_DECIMAL(alarm_id) / 10);
+		Lcd_DisplayDigit_23A(3 + i,BCD_2_DECIMAL(alarm_id) % 10);
+	}
 }
 
-/*������ʾ*/
-//void Lcd_WarningShow(SYS_ALARM_VALVE_T * warning_state,SYS_ALARM_VALVE_T * clear_state)
-//{
-//	uint8_t display_alarm_id_bcd = BCD_2_DECIMAL(*warning_state);
-//	//��������ʾ�����������ʾ��ͬʱ
-//	if(*warning_state == *clear_state && *clear_state != AV_NORMAL)
-//		*warning_state = *clear_state = AV_NORMAL;
-//	if(*warning_state == AV_NORMAL && *clear_state != AV_NORMAL)
-//		*clear_state = AV_NORMAL;
-//	switch(*warning_state)
-//	{
-//		case AV_NORMAL:
-//		case V_KEY_OP: //����ֻ����λ������ʾ
-//		case V_KEY_CL:
-//		case V_GPRS_CMD_OP:
-//		case V_GPRS_CMD_CL:
-//			break;
-//		default:
-//			LCD_DISPLAY_SEG(_LCD_WARNING_23A);
-//			Lcd_DisplayDigit_23A(2,display_alarm_id_bcd / 10);
-//			Lcd_DisplayDigit_23A(3,display_alarm_id_bcd % 10);
-//			break;
-//	}
-//}
+
 /*Զ����ʾ*/
-void Lcd_GprsShow(uint8_t gprs_state,uint8_t flag_4g,uint8_t signal_intensity)
+void Lcd_WrcShow(FlagStatus wrc_running_status,ErrorStatus last_wrc_result,uint8_t flag_4g,uint8_t signal_intensity)
 {
-//	static uint8_t temp_sig = 0;
-//	if(!flag_4g)
-//		LCD_DISPLAY_SEG(_LCD_4G_Flag_23A);
-//	/*�����ϴ�ʱ��ʾ*/
-//	if(gprs_soft_para_g.gprs_state != GPRS_IDLE && gprs_soft_para_g.gprs_state != GPRS_RESTART)
-//	{
-//		LCD_DISPLAY_SEG(_LCD_WIFI_23A);
-//		temp_sig++;
-//		switch(temp_sig)
-//		{
-//			case 1:
-//				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
-//				break;
-//			case 2:
-//				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
-//				break;
-//			case 3:
-//				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
-//				break;
-//			case 4:
-//				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_4_23A);
-//				break;
-//			case 5:
-//				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_4_23A);
-//				LCD_DISPLAY_SEG(_LCD_4G_5_23A);
-//				break;
-//			default:
-//				temp_sig = 0;
-//				break;
-//		}		
-//	}
-//	else
-//	{
-//		if(!gprs_state)//��һ��ͨѶ����
-//		{	
-//			LCD_DISPLAY_SEG(_LCD_WIFI_23A);
-//			LCD_DISPLAY_SEG(_LCD_4G_1_23A);
-//			if(signal_intensity > GMS_WORST)
-//				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
-//			if(signal_intensity > GMS_POOR)
-//				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
-//			if(signal_intensity > GMS_GENERAL)
-//				LCD_DISPLAY_SEG(_LCD_4G_4_23A);
-//			if(signal_intensity > GMS_BEST)
-//				LCD_DISPLAY_SEG(_LCD_4G_5_23A);
-//		}
-//	}
+	static uint8_t temp_sig = 0;
+	if((flag_4g>>4) == 4)
+		LCD_DISPLAY_SEG(_LCD_4G_Flag_23A);
+	/*�����ϴ�ʱ��ʾ*/
+	if(wrc_running_status == SET)
+	{
+		LCD_DISPLAY_SEG(_LCD_WIFI_23A);
+		temp_sig++;
+		switch(temp_sig)
+		{
+			case 1:
+				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
+				break;
+			case 2:
+				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
+				break;
+			case 3:
+				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
+				break;
+			case 4:
+				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_4_23A);
+				break;
+			case 5:
+				LCD_DISPLAY_SEG(_LCD_4G_1_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_4_23A);
+				LCD_DISPLAY_SEG(_LCD_4G_5_23A);
+				break;
+			default:
+				temp_sig = 0;
+				break;
+		}		
+	}
+	else
+	{
+		if(last_wrc_result == PASS)//��һ��ͨѶ����
+		{	
+			LCD_DISPLAY_SEG(_LCD_WIFI_23A);
+			LCD_DISPLAY_SEG(_LCD_4G_1_23A);
+			if(signal_intensity > GMS_WORST)
+				LCD_DISPLAY_SEG(_LCD_4G_2_23A);
+			if(signal_intensity > GMS_POOR)
+				LCD_DISPLAY_SEG(_LCD_4G_3_23A);
+			if(signal_intensity > GMS_GENERAL)
+				LCD_DISPLAY_SEG(_LCD_4G_4_23A);
+			if(signal_intensity > GMS_BEST)
+				LCD_DISPLAY_SEG(_LCD_4G_5_23A);
+		}
+	}
 	
 }
 /*�Ʒ���ʾ*/
-void Lcd_BillingShow(uint8_t bill_flag,uint8_t bill_mode,uint8_t price_mode)
+void Lcd_BillingShow(uint8_t bill_mode,uint8_t ladder_now)
 {
-//	if(bill_flag)//�мƷ�
-//	{
-//		if(bill_mode)//��̨�Ʒ�ģʽ
-//			LCD_DISPLAY_SEG(_LCD_BILLBACK_23A);
-//		if(price_mode == SPM_LADDER)
-//			LCD_DISPLAY_SEG(_LCD_LADDERBILL_23A);//���ݼ۸�
-//		else
-//			LCD_DISPLAY_SEG(_LCD_SINGLEBILL_23A);//��һ�۸�
-//	}
+
+	if(bill_mode == BM_DEVICE || bill_mode == BM_PLATFORM){
+		if(bill_mode == BM_PLATFORM)//��̨�Ʒ�ģʽ
+			LCD_DISPLAY_SEG(_LCD_BILLBACK_23A);
+		if(ladder_now > 0)
+			LCD_DISPLAY_SEG(_LCD_LADDERBILL_23A);//���ݼ۸�
+		else
+			LCD_DISPLAY_SEG(_LCD_SINGLEBILL_23A);//��һ�۸�
+	}
 }
 
 

--
Gitblit v1.9.3