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