P8UWaterPlasticIES4G/app/UWater_lcd_app.c

1788 lines
46 KiB
C
Raw Normal View History

2024-06-03 15:49:39 +08:00
/*******************************************************************************
* @Copyright (c) :(C)2017, Qingdao ieslab Co., Whn
* @FileName :GP22Gas_lcd_app.c
* @Author :Team
* @Version :V1.0
* @Date :2017<EFBFBD><EFBFBD>8<EFBFBD><EFBFBD>25<EFBFBD><EFBFBD> 11:00:39
* @Description :the function of the entity of GP22Gas_lcd_app.c
*******************************************************************************/
#include "type.h"
#include "UWater_lcd_driver.h"
#include "UWater_lcd_app.h"
#include "UWater_gp22_app.h"
#include "UWater_rtcc_app.h"
#include "UWater_key_app.h"
#include "UWater_power_app.h"
#include "UWater_frame_app.h"
#include "UWater_pt_app.h"
#include "UWater_valve_app.h"
#include "UWater_valve_driver.h"
#include "nb_driver_bc25.h"
#include "sys_processor.h"
#include "UWater_sys.h"
/*------------------------------ Variable Define -------------------------------------*/
//״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
static u8 s_lcd_status_state; //<2F><><EFBFBD><EFBFBD>״ָ̬ʾ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//static u8 s_lcd_rf_state; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״ָ̬ʾ״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
static u8 s_lcd_time_state; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//static u8 s_lcd_ram_state; //RAM<41><4D><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
static u8 s_lcd_key_state; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//static u8 s_lcd_init_state; //<2F><>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//static u8 s_lcd_up_state= 0;
//static u8 s_lcd_characters_state=1;//<2F>̻<EFBFBD><CCBB>ַ<EFBFBD>ָʾ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//static u8 s_lcd_VAL_state_SET = 1;//
//static u8 s_lcd_VAL_Met_state = 1;//
//static u8 s_lcd_VAL_Ram_state = 1;//
//static u8 s_lcd_VAL_GSM_state = 1;
//static u8 s_lcd_first_power_state;
//<2F>˵<EFBFBD><CBB5><EFBFBD>
static u8 s_fst_num; //һ<><D2BB><EFBFBD>˵<EFBFBD><CBB5>IJ˵<C4B2><CBB5><EFBFBD>
static u8 s_sec_num; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>IJ˵<C4B2><CBB5><EFBFBD>
//<2F><>ʱ<EFBFBD><CAB1>״̬<D7B4><CCAC>
//static u32 s_Lcd_time_old_num = 0;
//static u32 s_Lcd_time_num = 0;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u8 s_vol_app_state; //<2F><>¼<EFBFBD>ϴε<CFB4><CEB5>ص<EFBFBD>ѹ״̬
static u8 s_low_flow_alarm_app_state; //<2F><>¼<EFBFBD>ϴγ<CFB4><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>״̬
static u8 s_alarm_app_state; //<2F><>¼<EFBFBD>ϴα<CFB4><CEB1><EFBFBD>״̬
static u8 s_failure_app_state; //<2F><>¼<EFBFBD>ϴι<CFB4><CEB9><EFBFBD>״̬
static u8 s_active_RF_app_state; //<2F><>¼<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>״̬
static u8 s_valve_app_state; //<2F><>¼<EFBFBD>ϴη<CFB4><CEB7><EFBFBD>״̬
//static u8 s_lcd_check_gp30_msg;
static u8 s_lcd_check_gp30_app_msg;
//static u8 key_message =0;
//static u8 s_lcd_valve_stat;//<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
//static u8 s_pay_state=0;// Ԥ<><D4A4><EFBFBD><EFBFBD>״̬
static u8 s_a1_index; //<2F><>¼<EFBFBD>Ǽ춨״̬<D7B4><CCAC>GP30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u8 s_a2_index; //<2F><>¼<EFBFBD>ڶ<EFBFBD><DAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u8 s_a3_index; //<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u8 s_a4_index; //<2F><>¼<EFBFBD>춨״̬<D7B4><CCAC>GP30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u32 s_a1_backup; //<2F><>¼<EFBFBD>Ǽ춨״̬<D7B4>µ<EFBFBD>ǰLCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u32 s_a2_backup; //<2F><>¼A2<41><32>ǰLCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u32 s_a3_backup; //<2F><>¼A3<41><33>ǰLCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static u32 s_a4_backup; //<2F><>¼<EFBFBD>춨״̬<D7B4>µ<EFBFBD>ǰLCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//static u16 s_nb_active_time;//NB<4E><42>Ծʱ<D4BE><CAB1>
/*------------------------------ function declare -------------------------------------*/
//static void LcdSet1sTimer(u32 time5ms_span);
//static u8 LcdCheck1sTimer(void);
static u32 GetA1Data(u8 index);
static u32 GetA2Data(u8 index);
static u32 GetA3Data(u8 index);
static u32 GetA4Data(u8 index);
static void LcdDispayFLoat(float lcd_data, u8 point);
static void LcdDispayU32Data(u32 lcd_data, u8 point);
static void LcdDisplayMenu(u8 num);
static void LcdDisplayA1(u8 num);
static void LcdDisplayA2(u8 num);
static void LcdDisplayA3(u8 num);
static void LcdDisplayA4(u8 num);
/****************************************/
/*************************************************
Function:void KeySet1sTimer(u16 time5ms_span)
Description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>5ms<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
Input: time5ms_span:ʱ<EFBFBD><EFBFBD>
Return: SUCCESS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>ERROR <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>
Others:<EFBFBD>ڲ<EFBFBD><EFBFBD>ӿ<EFBFBD>
*************************************************/
//static void LcdSet1sTimer(u32 time1s_span)
//{
// s_Lcd_time_num = time1s_span * 1000 * 1000;
// s_Lcd_time_old_num = Timer1usGetTick();
//}
/*************************************************
Function: u8 KeyCheck1sTimer(void)
Description: <EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<EFBFBD>
Input: void
Return: <EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰֵ
Others: <EFBFBD>ڲ<EFBFBD><EFBFBD>ӿ<EFBFBD>
*************************************************/
//static u8 LcdCheck1sTimer(void)
//{
// u32 tmp_count = 0;
// tmp_count = Timer1usGetTick() - s_Lcd_time_old_num;
// if(tmp_count >= s_Lcd_time_num)
// {
// return 0;
// }
// else
// {
// return 1;
// }
//}
///*************************************************
//Function:void KeySet5msTimer(u16 time5ms_span)
//Description: <20><><EFBFBD><EFBFBD>5ms<6D><73>ʱ<EFBFBD><CAB1>
//Input: time5ms_span:ʱ<><CAB1>
//Return: SUCCESS<53><53><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ERROR <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>
//Others:<3A>ڲ<EFBFBD><DAB2>ӿ<EFBFBD>
//*************************************************/
//static void LcdSet_first5msTimer(u32 time5ms_span)
//{
// s_Lcd_first_time_num = time5ms_span * 1000 * 5;
// s_Lcd_first_time_old_num = Timer1usGetTick();
//}
///*************************************************
//Function: u8 KeyCheck5msTimer(void)
//Description: <20><><EFBFBD>鶨ʱ<E9B6A8><CAB1><EFBFBD><EFBFBD>ǰֵ<C7B0><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ʱʱ<CAB1>
//Input: void
//Return: <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ǰֵ
//Others: <09>ڲ<EFBFBD><DAB2>ӿ<EFBFBD>
//*************************************************/
//static u8 Lcd_firstCheck5msTimer(void)
//{
// u32 tmp_count = 0;
// tmp_count = Timer1usGetTick() - s_Lcd_first_time_old_num;
// if(tmp_count >= s_Lcd_first_time_num)
// {
// return 0;
// }
// else
// {
// return 1;
// }
//}
/*************************************************************************************
* @fun_name static void LcdUpdateData()
* @brief LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdUpdateData()
{
if (s_fst_num == A1 && s_sec_num != AB0)
{
if (s_a1_backup != GetA1Data(s_a1_index))
{
LcdDisplayA1(s_sec_num);
}
}
if (s_fst_num == A2 && s_sec_num != AB0)
{
if (s_a2_backup != GetA2Data(s_a2_index))
{
LcdDisplayA2(s_sec_num);
}
}
if (s_fst_num == A3 && s_sec_num != AB0)
{
if (s_a3_backup != GetA3Data(s_a3_index))
{
LcdDisplayA3(s_sec_num);
}
}
if (s_fst_num == A4 && s_sec_num != AB0)
{
if (s_a4_backup != GetA4Data(s_a4_index))
{
LcdDisplayA4(s_sec_num);
}
}
}
/*************************************************************************************
* @fun_name static void LcdDispayU32Data(u32 lcd_data, u8 point)
* @brief LCD<EFBFBD><EFBFBD>ʾU32<EFBFBD><EFBFBD>
* @param[in] u32 lcd_data, u8 point
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdDispayU32Data(u32 lcd_data, u8 point)
{
s8 index = 8;
u8 n;
if (lcd_data != 0)
{
while (lcd_data && index >= 0)
{
LcdDisplayData(index--, lcd_data % 10);
lcd_data /= 10;
}
}
else
{
n=6-point;
while(n&&(point!=0))
{
LcdDisplayData(index--,0);
n--;
}
if(0==point) // whn 2017-10-12
{
LcdDisplayData(8,0);
}
}
//<2F><>ʾС<CABE><D0A1><EFBFBD><EFBFBD>
switch(point)
{
case 0:
{
LcdDisplayFun(LcdGetDisplayFun());
break;
}
case 1:
{
LcdDisplayFun(LcdGetDisplayFun() | FUN_P1);
break;
}
case 2:
{
LcdDisplayFun(LcdGetDisplayFun() | FUN_P2);
break;
}
case 3:
{
LcdDisplayFun(LcdGetDisplayFun() | FUN_P3);
break;
}
case 4:
{
LcdDisplayFun(LcdGetDisplayFun() | FUN_P4);
break;
}
default:
{
LcdDisplayFun(LcdGetDisplayFun());
}
}
}
///*************************************************************************************
// * @fun_name static void LcdDispayTimeU32Data(u32 lcd_time_data)
// * @brief LCD<43><44>ʾu32<33><32>
// * @param[in] u32 lcd_data, u8 point
// * @param[out] None
// * @retval None
// * @other None
// *************************************************************************************/
//static void LcdDispayTimeU32Data(u32 lcd_time_data)
//{
// if (lcd_time_data <100)
// {
// if (lcd_time_data == 0)
// {
// LcdDisplayData(7, 0);
// LcdDisplayData(6, 0);
// LcdDisplayData(5, 0);
// }
// else if(s_a1_backup < 10)
// {
// LcdDisplayData(6, 0);
// LcdDisplayData(5, 0);
// LcdDispayU32Data(s_a1_backup, 0);
// }
// else
// {
// LcdDisplayData(5, 0);
// LcdDispayU32Data(s_a1_backup, 0);
// }
// }
// else
// {
// s8 index = 7;
// while (lcd_time_data && index >= 0)
// {
// LcdDisplayData(index--, lcd_time_data % 10);
// lcd_time_data /= 10;
// }
// }
//}
/*************************************************************************************
* @fun_name static void LcdDispayFLoat(float lcd_data, u8 point)
* @brief LCD<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] float lcd_data, u8 point
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdDispayFLoat(float lcd_data, u8 point)
{
s8 index = 9;
u64 udata = 0;
float temp = lcd_data;
if (temp < 0)
{
temp = -temp;
}
switch(point)
{
case 0:
{
temp=1000000*temp;
LcdDisplayFun(LcdGetDisplayFun());//<2F><><EFBFBD><EFBFBD>ʾС<CABE><D0A1><EFBFBD><EFBFBD>
break;
}
case 1:
{
temp=100000*temp;
LcdDisplayFun(LcdGetDisplayFun() | FUN_P1 |FUN_P1G|FUN_P2G|FUN_P3G|FUN_P4G|FUN_P5G);//<2F><>ʾP1С<31><D0A1><EFBFBD><EFBFBD> gaishanxiugai
break;
}
case 2:
{
temp=10000*temp;
LcdDisplayFun(LcdGetDisplayFun() | FUN_P2 |FUN_P2G|FUN_P3G|FUN_P4G|FUN_P5G);//<2F><>ʾP2С<32><D0A1><EFBFBD><EFBFBD>
break;
}
case 3:
{
temp=1000*temp;
LcdDisplayFun(LcdGetDisplayFun() | FUN_P3 |FUN_P3G|FUN_P4G|FUN_P5G);//<2F><>ʾP3С<33><D0A1><EFBFBD><EFBFBD>
break;
}
case 4:
{
temp=100*temp;
LcdDisplayFun(LcdGetDisplayFun() | FUN_P4 |FUN_P4G|FUN_P5G); //<2F><>ʾP4С<34><D0A1><EFBFBD><EFBFBD>
break;
}
case 5:
{
temp=10*temp;
LcdDisplayFun(LcdGetDisplayFun() | FUN_P5 |FUN_P5G); //<2F><>ʾP5С<35><D0A1><EFBFBD><EFBFBD>
break;
}
default:
{
temp=temp;
LcdDisplayFun(LcdGetDisplayFun());//<2F><><EFBFBD><EFBFBD>ʾС<CABE><D0A1><EFBFBD><EFBFBD>
}
}
udata = (u64) (temp );
if (udata != 0)
{
while (udata && index >= 0)
{
LcdDisplayData(index--, udata % 10);
udata /= 10;
}
}
else
{
LcdDisplayData(9, 0);//gaishanxiugai
}
//<2F><>ʾС<CABE><D0A1><EFBFBD><EFBFBD>
if (point > 0 && point < 6)
{
LcdDisplayFun(LcdGetDisplayFun() | (FUN_REVERSE << point));
while (index >= (3 + point))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
{
LcdDisplayData(index--, 0);
}
}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if (index >=0&& (lcd_data < 0))
{
LcdDisplayData(index--, DIS_HG);
}
}
/*************************************************************************************
* @fun_name static u32 GetA1Data(u8 index)
* @brief LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] index
* @param[out] data
* @retval None
* @other None
*************************************************************************************/
static u32 GetA1Data(u8 index)
{
u32 data = 0;
if (index == 0x55)
{
data = RtccGetWorkHourApp(); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>ʱ<EFBFBD><CAB1>
}
else if(index==GP30_APP_INS_FLOW)
{
data=Gp30CheckDataApp(GP30_APP_INS_FLOW); //<2F><>ȡ˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>
}
else if( index == GP30_APP_TOTAL_FLOW)
{
data =Gp30CheckDataApp(GP30_APP_TOTAL_FLOW) ; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
}
else if( index == GP30_APP_TOTAL_FLOW_REVERSE)
{
data =Gp30CheckDataApp(GP30_APP_TOTAL_FLOW_REVERSE) ; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
}
return data;
}
/*************************************************************************************
* @fun_name static u32 GetA2Data(u8 index)
* @brief LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] index
* @param[out] data
* @retval None
* @other None
*************************************************************************************/
static u32 GetA2Data(u8 index)
{
u32 data = 0;
if (index == 0x11)
{
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
static DateTime date;
if (RtccGetDateTime(&date))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>ʱ<EFBFBD><CAB1>
{
data |= ((u32) date.s.year) << 16;
data |= ((u32) date.s.month) << 8;
data |= date.s.day;
}
else
{
data = 0xEEEEEE;//<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>ʱ<EFBFBD><EFBFBD><E4B2BB>ȷ
}
}
else if (index == 0x22) //<2F><>ǰʱ<C7B0><CAB1>
{
static DateTime time;
if (RtccGetDateTime(&time))
{
data |= ((u32) time.s.hour) << 16;
data |= ((u32) time.s.minute) << 8;
data |= time.s.second;
}
else
{
data = 0xEEEEEE;
}
}
else if(index==1) //<2F>ھ<EFBFBD>
{
data = FrameCheckParaApp(FramePara_DNx);//2019-11-11<31><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ھ<EFBFBD><DABE><EFBFBD> FrameCheckParaApp(19)<29><>Ϊ FrameCheckParaApp(0),<2C><><EFBFBD><EFBFBD>GP30
}
else if(index==2)//<2F><EFBFBD><E6B1BE>
{
data = FrameCheckParaApp(FramePara_ProgVersion);
}
else if(index==4)
{
data = FrameCheckParaApp(FramePara_MetAddr0_3) ; //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>Ƶ<EFBFBD>ַ<EFBFBD><D6B7>4
}
else if(index==3)
{
data = FrameCheckParaApp(FramePara_MetAddr4); //<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ǵ<EFBFBD>ַ<EFBFBD><D6B7>1
}
else if(index==5)//<2F><>ʾС<CABE><D0A1><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
{
data = Read_Flow_CofficientApp_For_LCD(6);
}
else if(index==6)//<2F><>ʾ<EFBFBD><CABE>1<EFBFBD><31><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
{
data=Read_Flow_CofficientApp_For_LCD(7);
}
else if(index==7)//<2F><>ʾ<EFBFBD><CABE>2<EFBFBD><32><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
{
data=Read_Flow_CofficientApp_For_LCD(8);
}
else if(index==8)//<2F><>ʾ<EFBFBD><CABE>3<EFBFBD><33><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
{
data=Read_Flow_CofficientApp_For_LCD(9);
}
else if(index==9)//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
{
data=Read_Flow_CofficientApp_For_LCD(10);
}
else if(index==10)//<2F><>ʾboot<6F><EFBFBD><E6B1BE>
{
data=FrameCheckParaApp(FramePara_BootVersion);
}
else if(index ==11)//NB״̬<D7B4><CCAC>Ϣ
{
data = sys_get_net_state();
}
return data;
}
/*************************************************************************************
* @fun_name static u32 GetA3Data(u8 index)
* @brief LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] index
* @param[out] data
* @retval None
* @other None
*************************************************************************************/
static u32 GetA3Data(u8 index)
{
u8 data = 0;
//u8 temp;
u8 Lcd_Frame_state;
//temp = s_lcd_check_gp30_msg;
Lcd_Frame_state = s_lcd_check_gp30_app_msg;
if(index == 0x01)
{
if (0x08 ==(Lcd_Frame_state & (0x08)))//bit3 <20>ܵ<EFBFBD><DCB5><EFBFBD>ˮ data<74><61>0 1 2 3λ<33><CEBB>Ϊ1<CEAA><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD>ˮ<EFBFBD>³<EFBFBD><C2B3>ޣ<EFBFBD><DEA3><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD>ˮ
{
data |= 0x08;
}
else
{
data &= ~(0x08);
}
if (0x04 ==(Lcd_Frame_state & (0x04)))// bit2 <20><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
{
data |= 0x04;
}
else
{
data &= ~(0x04);
}
if (0x02 == (Lcd_Frame_state & (0x02)))//bit1 ˮ<>³<EFBFBD><C2B3><EFBFBD><EFBFBD>¶ȵȼ<C8B5><C8BC><EFBFBD>Χ
{
data |= 0x02;
}
else
{
data &= ~(0x02);
}
if(0x40 == (Lcd_Frame_state & 0x40))//bit6 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϻ<EFBFBD>
{
data|= 0x01;
}
else
{
data &= (~0x01);
}
}
else if (index == 0x02)//
{
// s_lcd_valve_stat = ValveGetStateApp();
//if(0x08 ==(temp &(0x08)))//bit3 GP30<33><30><EFBFBD><EFBFBD> data<74><61>4 5 6 7λ<37><CEBB>Ϊ2<CEAA><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(0x10 ==(Lcd_Frame_state &(0x10)))
{ //<2F>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>Ϊ GP30<33><30><EFBFBD>ϣ<EFBFBD><CFA3>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>
data |= 0x10;
}
else
{
data &= ~(0x10);
}
// if(0x01==Check_Ip_Set_Message())//IP<49><50><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
// {
// data |=0x20;
// }
// else
// {
// data&=~(0x20);
// }
if(NB_SS_Control_GetPara(NB_UploadFailTimes))//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
data |= 0x80;//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>Ź<EFBFBD><C5B9>ϱ<EFBFBD>־
}
else
{
data &= ~(0x80);//<2F><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>Ź<EFBFBD><C5B9>ϱ<EFBFBD>־
}
#if defined(VALVE)//<2F><><EFBFBD>Ź<EFBFBD><C5B9>ϱ<EFBFBD>־
if(Sys_data_object.P1.ies_valve_paras.valve_err)
{
data |= 0x40;
}
else
{
data &= ~0x40;
}
#endif
}
return data;
}
/*************************************************************************************
* @fun_name static u32 GetA4Data(u8 index)
* @brief LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD>A4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] index
* @param[out] data
* @retval None
* @other None
*************************************************************************************/
static u32 GetA4Data(u8 index)
{
u32 data = 0;
To_lcd_Float temp;
if( index == GP30_APP_TOTAL_FLOW )//<2F><>ȡ<EFBFBD>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>
{
data=Gp30CheckTestDataApp(GP30_APP_TOTAL_FLOW);
}
else if (index ==GP30_APP_INS_FLOW) //<2F><>ȡ˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>
{
data=Gp30CheckTestDataApp(GP30_APP_INS_FLOW_LCD);
}
else if(index==GP30_APP_DIFF)//TOFʱ<46><CAB1><EFBFBD><EFBFBD>
{
// data= Gp22TimeDiffer(4);
data=Gp30CheckTestDataApp(GP30_APP_DIFF);
}
else if(index==GP30_APP_TOF)//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>up˳<70><CBB3>ʱ<EFBFBD><CAB1>
{
data= Gp30CheckTestDataApp(GP30_APP_TOF);//ʵʱup<75><70><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}
else if(index==GP30_APP_DOWN) //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>down<77><6E><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
data= Gp30CheckTestDataApp(GP30_APP_DOWN);//ʵʱdown<77><6E><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
}
else if(index==GP30_APP_TEMP)//<2F><EFBFBD>ֵ
{
temp.gp22_float = TempCheckValueApp();
return temp.gp22_u32;
}
return data;
}
/*************************************************************************************
* @fun_name void LcdDisplayMenu(u8 num)
* @brief LCD<EFBFBD><EFBFBD>ʾһ<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
* @param[in] num :1-5
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdDisplayMenu(u8 num)
{
//<2F><>ʾЧ<CABE><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A1 A2 A3 A4
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
if (num > 0 && num < 5)
{
LcdDisplayFun(LcdGetDisplayFun());
LcdDisplayData(3, DIS_HG); //<2F><>ʾ-
LcdDisplayData(4, DIS_A); //<2F><>ʾA
LcdDisplayData(5, num); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
LcdDisplayData(6, DIS_HG); //<2F><>ʾ-
}
else
{
LcdDisplayData(3, DIS_E); //<2F><>ʾE
LcdDisplayData(4, DIS_E); //<2F><>ʾE
LcdDisplayData(5, DIS_HG); //<2F><>ʾ-
LcdDisplayData(6, DIS_A); //<2F><>ʾA
}
}
/*************************************************************************************
* @fun_name void LcdDisplayA1(u8 num)
* @brief LCD<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>A1
* @param[in] num:<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>ʼ
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdDisplayA1(u8 num)
{
To_lcd_Float temp;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
switch (num)
{
case A1B1:
{
// //<2F><>ȷ5λС<CEBB><D0A1>
LcdDisplayFun(A1_ACCUMULATE_FLOW); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.001m3)
s_a1_index = GP30_APP_TOTAL_FLOW;
s_a1_backup = GetA1Data(s_a1_index);
temp.gp22_u32 =s_a1_backup;
if (temp.gp22_float < A1_TOTAL_DISPLAY_4_D)//С<><D0A1>10<31><30><EFBFBD><EFBFBD>ʾ
{
LcdDispayFLoat(temp.gp22_float / 100, 1); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(float(iEEE754),<2C>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>100)
}
else //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾС<CEBB><D0A1>
{
LcdDispayFLoat(temp.gp22_float / 100, 3); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(float(iEEE754),<2C>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>100)
}
break;
}
case A1B2:
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
LcdDisplayFun(A1_ACCUMULATE_FLOW_REVERSE); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.001m3)
s_a1_index = GP30_APP_TOTAL_FLOW_REVERSE;
s_a1_backup = GetA1Data(s_a1_index);
temp.gp22_u32 =s_a1_backup;
if (temp.gp22_float < A1_TOTAL_DISPLAY_2_D)
{
LcdDispayFLoat(-(temp.gp22_float / 100), 3); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(float(iEEE754),<2C>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>100)
}
else if (temp.gp22_float < A1_TOTAL_DISPLAY_1_D)
{
LcdDispayFLoat(-(temp.gp22_float / 100), 4); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>float(iEEE754),<2C>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>100)
}
else if (temp.gp22_float < A1_TOTAL_DISPLAY_0_D)
{
LcdDispayFLoat(-(temp.gp22_float / 100), 5); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(float(iEEE754),<2C>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>100)
}
else //<2F><><EFBFBD>ݹ<EFBFBD><DDB9>󣬲<EFBFBD><F3A3ACB2><EFBFBD>ʾС<CABE><D0A1><EFBFBD>
{
LcdDispayFLoat(-(temp.gp22_float / 100), 6); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(float(iEEE754),<2C>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>100)
}
break;
}
case A1B3:
{
LcdDisplayFun(A1_TIME_FLOW); //˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>(<28><>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.00001m3/h)
s_a1_index = GP30_APP_INS_FLOW;
s_a1_backup = GetA1Data(s_a1_index);
LcdDispayFLoat(s_a1_backup / (float)65536.00/1000, 1); //0.00001m3/h)
break;
}
case A1B4:
{
LcdDisplayFun(A1_ACCUMULATE_TIME); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>(<28>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
s_a1_index = 0x55;
s_a1_backup = GetA1Data(s_a1_index);
if(s_a1_backup < 10)
{
LcdDisplayData(7, 0);
LcdDisplayData(6, 0);
LcdDispayU32Data(s_a1_backup, 0);
}
else if(s_a1_backup < 100)
{
LcdDisplayData(6, 0);
LcdDispayU32Data(s_a1_backup, 0);
}
else
{
LcdDispayU32Data(s_a1_backup, 0);
}
break;
}
case A1B5://ȫ<><C8AB>
{
LcdDisplayAll();
break;
}
default:
{
LcdDisplayData(2, DIS_E); //<2F><>ʾE
LcdDisplayData(3, DIS_E); //<2F><>ʾE
LcdDisplayData(4, DIS_A); //<2F><>ʾA
LcdDisplayData(5, DIS_1); //<2F><>ʾ1
}
}
}
/*************************************************************************************
* @fun_name void LcdDisplayA2(u8 num)
* @brief LCD<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>A2
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
//extern void setuploadflag(void);
//u8 uploadcnt=0;
static void LcdDisplayA2(u8 num)
{
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
LcdDisplayFun(LcdGetDisplayFun());//<2F>̻<EFBFBD><CCBB>ַ<EFBFBD>
switch (num)
{
case A2B1:
{
//<2F><>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>
s_a2_index = 0x11;
s_a2_backup = GetA2Data(s_a2_index);
LcdDisplayData(1, (s_a2_backup >> 20)&0x0F);
LcdDisplayData(2, (s_a2_backup >> 16)&0x0F);
LcdDisplayData(3, DIS_HG); //<2F><>ʾ-
LcdDisplayData(4, (s_a2_backup >> 12)&0x0F);
LcdDisplayData(5, (s_a2_backup >> 8)&0x0F);
LcdDisplayData(6, DIS_HG); //<2F><>ʾ-
LcdDisplayData(7, (s_a2_backup >> 4)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 0)&0x0F);
// uploadcnt=0;
break;
}
case A2B2:
{
//<2F><>ʾ<EFBFBD><CABE>ǰʱ<C7B0><CAB1><EFBFBD><EFBFBD>
s_a2_index = 0x22;
s_a2_backup = GetA2Data(s_a2_index);
LcdDisplayData(1, (s_a2_backup >> 20)&0x0F);
LcdDisplayData(2, (s_a2_backup >> 16)&0x0F);
LcdDisplayData(3, DIS_HG); //<2F><>ʾ-
LcdDisplayData(4, (s_a2_backup >> 12)&0x0F);
LcdDisplayData(5, (s_a2_backup >> 8)&0x0F);
LcdDisplayData(6, DIS_HG); //<2F><>ʾ-
LcdDisplayData(7, (s_a2_backup >> 4)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 0)&0x0F);
/* uploadcnt++;
if(uploadcnt==10)
{
setuploadflag();
}*/
break;
}
case A2B3:
{
//<2F><>ʾ<EFBFBD>ھ<EFBFBD>1- 20
LcdDisplayData(1, 1);
LcdDisplayData(2, DIS_HG);
s_a2_index = 1;
s_a2_backup = GetA2Data(s_a2_index);
LcdDispayU32Data((s_a2_backup / 16 * 10 + s_a2_backup % 16), 0);
break;
}
case A2B4:
{
//<2F><>ʾ<EFBFBD><EFBFBD><E6B1BE>2- b0.1
LcdDisplayData(1, 2);
LcdDisplayData(2, DIS_HG);
s_a2_index = 2;
s_a2_backup = GetA2Data(s_a2_index); //0xB0, 0x10, 0x00, 0x00
LcdDisplayFun(FUN_P3);
LcdDisplayData(5, (s_a2_backup >> 28)&0x0F);
LcdDisplayData(6, (s_a2_backup >> 24)&0x0F);
LcdDisplayData(7, (s_a2_backup >> 20)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 16)&0x0F);
break;
}
case A2B5:
{
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ͨѶ<CDA8><D1B6>ַ<EFBFBD><D6B7>һ<EFBFBD><D2BB><EFBFBD>ֽڣ<D6BD>
LcdDisplayData(1, 3);
LcdDisplayData(2, DIS_HG);
s_a2_index = 3;
s_a2_backup = GetA2Data(s_a2_index);
LcdDisplayData(3, (s_a2_backup >> 20)&0x0F);
LcdDisplayData(4, (s_a2_backup >> 16)&0x0F);
LcdDisplayData(5, (s_a2_backup >> 12)&0x0F);
LcdDisplayData(6, (s_a2_backup >> 8)&0x0F);
LcdDisplayData(7, (s_a2_backup >> 4)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 0)&0x0F);
break;
}
case A2B6:
{
//<2F><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>
s_a2_index = 4;
s_a2_backup = GetA2Data(s_a2_index);
LcdDisplayData(1, (s_a2_backup >> 28)&0x0F);
LcdDisplayData(2, (s_a2_backup >> 24)&0x0F);
LcdDisplayData(3, (s_a2_backup >> 20)&0x0F);
LcdDisplayData(4, (s_a2_backup >> 16)&0x0F);
LcdDisplayData(5, (s_a2_backup >> 12)&0x0F);
LcdDisplayData(6, (s_a2_backup >> 8)&0x0F);
LcdDisplayData(7, (s_a2_backup >> 4)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 0)&0x0F);
break;
}
case A2B7:
{
//<2F><>ʾС<CABE><D0A1><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
LcdDisplayData(1, 4);
LcdDisplayData(2, DIS_HG);
s_a2_index = 5;
s_a2_backup = GetA2Data(s_a2_index); //0x00010000;
LcdDispayFLoat(s_a2_backup / 65536.00, 3);
break;
}
case A2B8:
{
//<2F><>ʾ<EFBFBD><CABE>1<EFBFBD><31><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
LcdDisplayData(1, 5);
LcdDisplayData(2, DIS_HG);
s_a2_index = 6;
s_a2_backup = GetA2Data(s_a2_index);
LcdDispayFLoat(s_a2_backup / 65536.00, 3);
break;
}
case A2B9:
{
//<2F><>ʾ<EFBFBD><CABE>2<EFBFBD><32><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
LcdDisplayData(1, 6);
LcdDisplayData(2, DIS_HG);
s_a2_index = 7;
s_a2_backup = GetA2Data(s_a2_index);
LcdDispayFLoat(s_a2_backup / 65536.00, 3);
break;
}
case A2B10:
{
//<2F><>ʾ<EFBFBD><CABE>3<EFBFBD><33><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
LcdDisplayData(1, 7);
LcdDisplayData(2, DIS_HG);
s_a2_index = 8;
s_a2_backup = GetA2Data(s_a2_index);
LcdDispayFLoat(s_a2_backup / 65536.00, 3);
break;
}
case A2B11:
{
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
LcdDisplayData(1, 8);
LcdDisplayData(2, DIS_HG);
s_a2_index = 9;
s_a2_backup = GetA2Data(s_a2_index);
LcdDispayFLoat(s_a2_backup / 65536.00, 3);
break;
}
case A2B12:
{
//<2F><>ʾboot<6F><EFBFBD><E6B1BE>
LcdDisplayData(1, 9);
LcdDisplayData(2, DIS_HG);
s_a2_index = 10;
s_a2_backup = GetA2Data(s_a2_index);
LcdDisplayFun(FUN_P3);
LcdDisplayData(5, (s_a2_backup >> 12)&0x0F);
LcdDisplayData(6, (s_a2_backup >> 8)&0x0F);
LcdDisplayData(7, (s_a2_backup >> 4)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 0)&0x0F);
break;
}
case A2B13:
{
//<2F><>ʾӲ<CABE><D3B2><EFBFBD>汾- 00.14
LcdDisplayData(1, 10);
LcdDisplayData(2, DIS_HG);
s_a2_index = 2;
s_a2_backup = GetA2Data(s_a2_index);
LcdDisplayFun(FUN_P3);
LcdDisplayData(5, (s_a2_backup >> 12)&0x0F);
LcdDisplayData(6, (s_a2_backup >> 8)&0x0F);
LcdDisplayData(7, (s_a2_backup >> 4)&0x0F);
LcdDisplayData(8, (s_a2_backup >> 0)&0x0F);
break;
}
case A2B14://NB״̬<D7B4><CCAC>Ϣ
{
s_a2_index = 11;
s_a2_backup = GetA2Data(s_a2_index);
UNION_4U8TOU32 tempdata;
tempdata.datas = s_a2_backup;
if((s_a2_backup&0xFF)==1)//<2F><>ʼ<EFBFBD><CABC>
{
LcdDisplayData(0, 11);
LcdDisplayData(1, DIS_HG);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LcdDisplayData(2, tempdata.data_buf[0]);
LcdDisplayData(3, DIS_HG);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LcdDisplayData(4, tempdata.data_buf[1]/10);
LcdDisplayData(5, tempdata.data_buf[1]%10);
//cereg
LcdDisplayData(6, DIS_HG);
LcdDisplayData(7, tempdata.data_buf[2]);
//cgatt
LcdDisplayData(8, DIS_HG);
LcdDisplayData(9, tempdata.data_buf[3]);
}
if((s_a2_backup&0xFF)==2)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
LcdDisplayData(0, 11);
LcdDisplayData(1, DIS_HG);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LcdDisplayData(2, tempdata.data_buf[0]);
LcdDisplayData(3, DIS_HG);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LcdDisplayData(4, tempdata.data_buf[1]/10);
LcdDisplayData(5, tempdata.data_buf[1]%10);
//cereg
LcdDisplayData(6, DIS_HG);
LcdDisplayData(7, tempdata.data_buf[2]);
//cgatt
LcdDisplayData(8, DIS_HG);
LcdDisplayData(9, tempdata.data_buf[3]);
}
if((s_a2_backup&0xFF)==3)//<2F>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD>ֵ
{
//RSRP
LcdDisplayData(0, DIS_HG);
LcdDisplayData(1, (tempdata.data_buf[1]/100));
LcdDisplayData(2, (tempdata.data_buf[1]/10)%10);
LcdDisplayData(3, (tempdata.data_buf[1]%10));
//SNR
if(tempdata.data_buf[2]&0x80)//<2F><><EFBFBD><EFBFBD>
{
LcdDisplayData(4, DIS_HG);
LcdDisplayData(5, (tempdata.data_buf[2]&0x7F)/10);
LcdDisplayData(6, (tempdata.data_buf[2]&0x7F)%10);
}
else
{
LcdDisplayData(4, DIS_BLANK);
LcdDisplayData(5, (tempdata.data_buf[2]/10));
LcdDisplayData(6, tempdata.data_buf[2]%10);
}
//CSQ
LcdDisplayData(7, DIS_BLANK);
LcdDisplayData(8, (tempdata.data_buf[3]/10));
LcdDisplayData(9, (tempdata.data_buf[3]%10));
}
if((s_a2_backup&0xFF)==4)//<2F><><EFBFBD><EFBFBD>״̬
{
LcdDisplayData(0, 11);
LcdDisplayData(1, DIS_HG);
//<2F><><EFBFBD><EFBFBD>״̬
LcdDisplayData(2, (tempdata.data_buf[1]));
//<2F><><EFBFBD>ո<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
LcdDisplayData(3, DIS_HG);
LcdDisplayData(4, tempdata.data_buf[2]/10);
LcdDisplayData(5, tempdata.data_buf[2]%10);
}
break;
}
default:
{
break;
}
}
}
/*************************************************************************************
* @fun_name void LcdDisplayA3(u8 num)
* @brief LCD<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>A3
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdDisplayA3(u8 num)//<2F><>ѯ<EFBFBD>쳣MSG,<2C><>Ӧλ<D3A6><CEBB>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
LcdDisplayFun(LcdGetDisplayFun());//<2F>̻<EFBFBD><CCBB>ַ<EFBFBD>
switch (num)
{
case A3B1://<2F><><EFBFBD><EFBFBD>1-0000
{
LcdDisplayData(1, 1);
LcdDisplayData(2, DIS_HG);
s_a3_index = 0x01;
s_a3_backup = GetA3Data(s_a3_index);
if ((s_a3_backup>>2) & 0x01)//<2F><>ʾ<EFBFBD><CABE>1-1000<30><30><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
{
LcdDisplayData(5, 1);
}
else
{
LcdDisplayData(5, 0);
}
if ((s_a3_backup>>3) & 0x01)//<2F><>ʾ<EFBFBD><CABE>1-0100<30>ܵ<EFBFBD><DCB5><EFBFBD>ˮ
{
LcdDisplayData(6, 1);
}
else
{
LcdDisplayData(6, 0);
}
if ((s_a3_backup) & 0x01)// <20><>ʾ<EFBFBD><CABE>1-0010<31><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϻ<EFBFBD>
{
LcdDisplayData(7, 1);
}
else
{
LcdDisplayData(7, 0);
}
if((s_a3_backup>>1) & 0x01)//<2F><>ʾ<EFBFBD><CABE>1-0001ˮ<31>³<EFBFBD><C2B3><EFBFBD>
{
LcdDisplayData(8, 1);
}
else
{
LcdDisplayData(8, 0);
}
break;
}
case A3B2://<2F><><EFBFBD><EFBFBD>2- 0000
{
LcdDisplayData(1, 2);
LcdDisplayData(2, DIS_HG);
s_a3_index = 0x02;
s_a3_backup = GetA3Data(s_a3_index);
if ((s_a3_backup>>4) & 0x01)//<2F><>ʾ<EFBFBD><CABE>2-1000 GP30<33>
{
LcdDisplayData(5, 1);
}
else
{
LcdDisplayData(5, 0);
}
if((s_a3_backup>>5) & 0x01)//<2F><>ʾ<EFBFBD><CABE>2-0100 <20>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
LcdDisplayData(6, 1);
}
else
{
LcdDisplayData(6, 0);
}
if((s_a3_backup>>6) & 0x01)//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>
{
LcdDisplayData(7, 1);
}
else
{
LcdDisplayData(7, 0);
}
if ((s_a3_backup>>7) & 0x01)//<2F><>ʾ<EFBFBD><CABE>2-0001 <20>ϱ<EFBFBD><CFB1>
{
LcdDisplayData(8, 1);
}
else
{
LcdDisplayData(8, 0);
}
break;
}
default:
{
break;
}
}
}
/*************************************************************************************
* @fun_name void LcdDisplayA4(u8 num)
* @brief LCD<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>A4
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
static void LcdDisplayA4(u8 num)
{
To_lcd_Float temp;
float temp1;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
switch (num)
{
case A4B1:
{
//<2F><>ȷ5λС<CEBB><D0A1>
if(Sys_data_object.P3.LCD_NoTestFlag == 0x55)
{
LcdDisplayFun(A4_ACCUMULATE_FLOW_NOTEST); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(<28>춨ʱ<ECB6A8><CAB1>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.00001m3,<2C><>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB>ΪL,<2C><>0.01L)
}
else
{
LcdDisplayFun(A4_ACCUMULATE_FLOW); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(<28>춨ʱ<ECB6A8><CAB1>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.00001m3,<2C><>ʾ<EFBFBD><CABE>λ<EFBFBD><CEBB>ΪL,<2C><>0.01L)
}
s_a4_index = GP30_APP_TOTAL_FLOW;
s_a4_backup = GetA4Data(s_a4_index);
temp.gp22_u32 =s_a4_backup;
LcdDispayFLoat(temp.gp22_float / 100000, 1); //<2F>ۼ<EFBFBD><DBBC><EFBFBD><EFBFBD><EFBFBD>(float(iEEE754),<2C>Ŵ<EFBFBD>100000)
break;
}
case A4B2:
{
//<2F><>ȷ5λС<CEBB><D0A1>
if(Sys_data_object.P3.LCD_NoTestFlag == 0x55)
{
LcdDisplayFun(A4_TIME_FLOW_NOTEST); // ˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>(<28>춨ʱ<ECB6A8><CAB1>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.0001m3/h)
}
else
{
LcdDisplayFun(A4_TIME_FLOW); // ˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD>(<28>춨ʱ<ECB6A8><CAB1>ʾ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ0.0001m3/h)
}
s_a4_index = GP30_APP_INS_FLOW;
s_a4_backup = GetA4Data(s_a4_index);
LcdDispayFLoat(s_a4_backup/ 65536.00/1000, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
break;
}
case A4B3:
{
if(Sys_data_object.P3.LCD_NoTestFlag == 0x55)
{
LcdDisplayFun(A4_TOF_TIME_NOTEST); // TOFʱ<46><CAB1><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
}
else
{
LcdDisplayFun(A4_TOF_TIME); // TOFʱ<46><CAB1><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
}
s_a4_index = GP30_APP_DIFF;
s_a4_backup = GetA4Data(s_a4_index);
if (s_a4_backup >= 0x80000000)
{
s_a4_backup = s_a4_backup & 0x7FFFFFFF;
temp1 = (float)((s_a4_backup) / 65536.0* (-25.0));//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
{
temp1 =(float)((s_a4_backup) / 65536.0*25.0); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
LcdDispayFLoat(temp1/100, 0);//ps
break;
}
case A4B4:
{
if(Sys_data_object.P3.LCD_NoTestFlag == 0x55)
{
LcdDisplayFun(A4_SINGLE_TIME_NOTEST); // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>up(<28>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
}
else
{
LcdDisplayFun(A4_SINGLE_TIME); // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>up(<28>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
}
LcdDisplayData(1, 1);
LcdDisplayData(2, DIS_HG);
s_a4_index = GP30_APP_TOF;
s_a4_backup = GetA4Data(s_a4_index);
temp1 =(float)(s_a4_backup / 65536.0*25.0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LcdDispayFLoat(temp1/10000, 0); //<2F><>λΪns
break;
}
case A4B5:
{
if(Sys_data_object.P3.LCD_NoTestFlag == 0x55)
{
LcdDisplayFun(A4_SINGLE_TIME_NOTEST); // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>down(<28>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
}
else
{
LcdDisplayFun(A4_SINGLE_TIME); // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>down(<28>ֱ<EFBFBD><D6B1><EFBFBD>Ϊ1h)
}
LcdDisplayData(1, 2);
LcdDisplayData(2, DIS_HG);
s_a4_index = GP30_APP_DOWN;
s_a4_backup = GetA4Data(s_a4_index);
temp1 = (float) ((s_a4_backup) / 65536.0*25.0 );//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LcdDispayFLoat(temp1/10000, 0); //<2F><>λΪns
break;
}
case A4B6:
{
if(Sys_data_object.P3.LCD_NoTestFlag == 0x55)
{
LcdDisplayFun(A4_Tem_NOTEST); // <20>¶ȷֱ<C8B7><D6B1><EFBFBD>Ϊ0.1<EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>
}
else
{
LcdDisplayFun(A4_Tem); // <20>¶ȷֱ<C8B7><D6B1><EFBFBD>Ϊ0.1<EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>
}
#if WENDU_FANSUAN_OPEN
LcdDisplayData(1, DIS_F);//<2F><>ʾF----ֻ<>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
#endif
s_a4_index = GP30_APP_TEMP;
s_a4_backup = GetA4Data(s_a4_index);
temp.gp22_u32 = s_a4_backup;
LcdDispayFLoat(temp.gp22_float, 3);
break;
}
default:
{
LcdDisplayData(3, DIS_E); //<2F><>ʾE
LcdDisplayData(4, DIS_E); //<2F><>ʾE
LcdDisplayData(5, DIS_A); //<2F><>ʾA
LcdDisplayData(6, DIS_4); //<2F><>ʾ4
}
}
}
/*************************************************************************************
* @fun_name void LcdInitApp()
* @brief LCDӦ<EFBFBD>ò<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
void LcdInitApp()
{
//״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
s_lcd_status_state = 0; //<2F><><EFBFBD><EFBFBD>״ָ̬ʾ״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
// s_lcd_rf_state = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״ָ̬ʾ״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
s_lcd_time_state = 0; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
// s_lcd_ram_state = 0; //RAM<41><4D><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
s_lcd_key_state = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
// s_lcd_init_state = 0; //<2F><>ʼ<EFBFBD><CABC>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
// s_lcd_characters_state=1;//<2F><>ʼ<EFBFBD><CABC><EFBFBD>̻<EFBFBD><CCBB>ַ<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
// s_lcd_valve_stat = 0;
// s_lcd_first_power_state = 0;
//<2F>˵<EFBFBD><CBB5><EFBFBD>
if(Gp30GetTestRamFlag() == GP30_COPY_RESET_TEST_FLAG)
{
s_fst_num = A4;
s_sec_num = A4B1;
}
else
{
s_fst_num = A1; //һ<><D2BB><EFBFBD>˵<EFBFBD><CBB5>IJ˵<C4B2><CBB5><EFBFBD>
s_sec_num = A1B1; //<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>IJ˵<C4B2><CBB5><EFBFBD>
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
s_vol_app_state = NORMAL_POWER; //<2F><>¼<EFBFBD>ϴε<CFB4><CEB5>ص<EFBFBD>ѹ״̬
// s_valve_state = 0x40; //<2F><>¼<EFBFBD>ϴη<CFB4><CEB7><EFBFBD>״̬
s_low_flow_alarm_app_state = 0; //<2F><>¼<EFBFBD>ϴγ<CFB4><CEB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>״̬
s_alarm_app_state = 0; //<2F><>¼<EFBFBD>ϴα<CFB4><CEB1><EFBFBD>״̬
s_failure_app_state = 0; //<2F><>¼<EFBFBD>ϴι<CFB4><CEB9><EFBFBD>״̬
s_valve_app_state = 0;
s_active_RF_app_state =1; //<2F><>¼<EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>״̬ 1Ϊ<31><CEAA><EFBFBD><EFBFBD>
s_a1_backup = 0; //<2F><>¼<EFBFBD>Ǽ춨״̬<D7B4>µ<EFBFBD>ǰLCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
s_a4_backup = 0; //<2F><>¼<EFBFBD>춨״̬<D7B4>µ<EFBFBD>ǰLCD<43><44>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
/*************************************************************************************
* @fun_name u8 LcdCheckStateApp()
* @brief LCD<EFBFBD><EFBFBD><EFBFBD>ؼ״̬
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
u8 LcdCheckStateApp()
{
if (s_fst_num == A4)
{
return 01;
}
else
{
return 10;
}
}
/*************************************************************************************
* @fun_name u8 LcdIfSleepApp()
* @brief LCDӦ<EFBFBD>ò<EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
u8 LcdIfSleepApp()
{
if (s_fst_num == A2 && s_sec_num == A2B2)//ϵͳʱ<CDB3><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B2BB><EFBFBD><EFBFBD>
{
return FALSE;
}
else if (s_fst_num == A4 && s_sec_num != AB0)//<2F>춨״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
return FALSE;
}
else if (s_lcd_status_state != 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>ʾ<EFBFBD><CABE>
{
return FALSE;
}
else
{
return TRUE;
}
}
/*************************************************************************************
* @fun_name u16 LcdCheckMeumApp()
* @brief LCD<EFBFBD><EFBFBD><EFBFBD>ز˵<EFBFBD><EFBFBD><EFBFBD>
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
u16 LcdCheckMeumApp()
{
return s_sec_num | ((u16) s_fst_num << 8);
}
/*******************************************************************************
* @fun_name: lcd_alarmCheckMsgSys()
* @brief : <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param[in] : None
* @param[out]: None
* @retval : None
* @other :
******************************************************************************/
u8 lcd_alarmCheckWarningMsg(void)
{
if ((s_lcd_check_gp30_app_msg & 0x40)|| //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(s_lcd_check_gp30_app_msg & 0x02)|| //ˮ<>³<EFBFBD><C2B3><EFBFBD><EFBFBD>¶ȵȼ<C8B5><C8BC><EFBFBD>Χ
(s_lcd_check_gp30_app_msg & 0x04)|| //<2F><>ת
(s_lcd_check_gp30_app_msg & 0x08) //<2F><>ˮ
) //<2F><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>
{
return 1;
}
else
{
return 0;
}
}
/*******************************************************************************
* @fun_name: lcd_alarmCheckMsgSys()
* @brief : <EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD>
* @param[in] : None
* @param[out]: None
* @retval : None
* @other :
******************************************************************************/
u8 lcd_alarmCheckFaultMsg(void)//T2<54><32><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD>
{
if ((NB_SS_Control_GetPara(NB_UploadFailTimes)|| //<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>ͨ<EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>
(s_lcd_check_gp30_app_msg & 0x10)) || //GPXX<58>
(s_lcd_check_gp30_app_msg & 0x80) || //GPXXͨ<58>Ź<EFBFBD><C5B9><EFBFBD>
(s_lcd_check_gp30_app_msg & 0x01) //<2F><><EFBFBD><EFBFBD>
#if defined(VALVE)//<2F><><EFBFBD>Ź<EFBFBD><C5B9>ϱ<EFBFBD>־
||(Sys_data_object.P1.ies_valve_paras.valve_err)
#endif
)
{
return 1;
}
else
{
return 0;
}
}
/*******************************************************************************
* @fun_name: LcdDispalyMetStatus()
* @brief : LCDʵʱ<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>״̬(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>)
* @param[in] : None
* @param[out]: None
* @retval : None
* @other :
******************************************************************************/
void LcdDispalyMetStatus()
{
s_lcd_check_gp30_app_msg =Gp30CheckErrDataApp();
switch (s_lcd_status_state)
{
case 0:
{
if (PowerCheckStatusSys ()!= s_vol_app_state)//T5<54><35>ѹ<EFBFBD><D1B9>
{
s_vol_app_state = PowerCheckStatusSys ();
s_lcd_status_state = 1;
}
if ((s_lcd_check_gp30_app_msg & 0x20) != s_low_flow_alarm_app_state) //T4<54><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit5<74><35>
{
s_low_flow_alarm_app_state = s_lcd_check_gp30_app_msg & 0x20;
s_lcd_status_state = 1;
}
if (lcd_alarmCheckWarningMsg() != s_alarm_app_state)//T1<54><31><EFBFBD><EFBFBD>
{
s_alarm_app_state = lcd_alarmCheckWarningMsg();
s_lcd_status_state = 1;
}
if (lcd_alarmCheckFaultMsg() != s_failure_app_state )//T2<54><32><EFBFBD><EFBFBD>
{
s_failure_app_state =lcd_alarmCheckFaultMsg();
s_lcd_status_state = 1;
}
#if defined(VALVE)
if(ValveGetStateApp() != s_valve_app_state) /*<2A><><EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD><EFBFBD><EFBFBD>ʾ*/
{
s_valve_app_state = ValveGetStateApp();
s_lcd_status_state = 1;
}
#endif
break;
}
case 1:
{
if (PowerCheckStatusSys () == LOW_POWER)//<2F><>ѹ<EFBFBD><D1B9>
{
LcdDisplayVol(1);
}
else
{
LcdDisplayVol(0);
}
if (s_low_flow_alarm_app_state == 0x20)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
LcdDisplayLowFlowAlarm(1);
}
else
{
LcdDisplayLowFlowAlarm(0);
}
if (s_alarm_app_state == 1)//<2F><><EFBFBD><EFBFBD>
{
LcdDisplayAlarm(1);
}
else
{
LcdDisplayAlarm(0);
}
if (s_failure_app_state == 1)//<2F><><EFBFBD><EFBFBD>
{
LcdDisplayFailure(1);
}
else
{
LcdDisplayFailure(0);
}
if(s_active_RF_app_state==0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> 0 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>æ
{
LcdDisplayActiveGPRS(1);
}
else
{
LcdDisplayActiveGPRS(0);
}
if(VALVE_STATE_CLOSE == s_valve_app_state ||VALVE_STATE_CLOSE_EMERGENCY == s_valve_app_state || VALVE_STATE_CLOSE_LOCK == s_valve_app_state)//<2F><><EFBFBD>Źر<C5B9>
{
LcdDisplayValve(1);
}
else
{
LcdDisplayValve(0);
}
s_lcd_status_state = 0;
break;
}
default:
{
s_lcd_status_state = 0;
break;
}
}
}
/*******************************************************************************
* @fun_name: LcdDisplayTimeUpChange()
* @brief : LCD<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>
* @param[in] : None
* @param[out]: None
* @retval : None
* @other :
******************************************************************************/
void LcdDisplayTimeUpChange()
{
switch (s_lcd_time_state)
{
case 0://<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
{
if ((s_fst_num == A1 && s_sec_num != A1B1 ) || s_fst_num == A2 || s_fst_num == A3)
{
RtccSetTimer(RTCC_TIMER_LCD_NUM, 60); //60s
s_lcd_time_state = 1;
}
else if (s_fst_num == A4)
{
RtccSetTimer(RTCC_TIMER_LCD_NUM, LCD_A4_TIME); //<2F>춨״̬<D7B4><CCAC><EFBFBD>ް<EFBFBD><DEB0><EFBFBD>(3h)<29><><EFBFBD><EFBFBD>A1B1
s_lcd_time_state = 1;
}
break;
}
case 1:
{
if (!RtccCheckTimer(RTCC_TIMER_LCD_NUM))//<2F><>ʱʱ<CAB1>䵽,<2C>ָ<EFBFBD>Ĭ<EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD>
{
s_fst_num = A1;
s_sec_num = A1B1;
LcdDisplayA1(s_sec_num);
s_lcd_time_state = 0;
}
break;
}
default:
{
s_lcd_time_state = 0;
break;
}
}
}
/*******************************************************************************
* @fun_name: LcdDisplayKey()
* @brief : LCD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>
* @param[in] : None
* @param[out]: None
* @retval : None
* @other :
******************************************************************************/
void LcdDisplayKey()
{
if(s_lcd_key_state == 0)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
{
s_lcd_key_state = 1;
if(Gp30GetTestRamFlag() == GP30_COPY_RESET_TEST_FLAG)//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>λǰ<CEBB>ڼ춨״̬
{
s_fst_num = A4;
s_sec_num = A4B1;
LcdDisplayA4(s_sec_num);
}
else
{
s_fst_num = A1;
s_sec_num = A1B1;
LcdDisplayA1(s_sec_num);
}
}
else if(KeyCheckLcdMsgApp(MENU_ONE))//һ<><D2BB><EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>л<EFBFBD>
{
s_lcd_time_state = 0;
//<2F><>һ<EFBFBD><D2BB><EFBFBD>˵<EFBFBD>
KeyClearLcdMsgApp(MENU_ONE);
if ((s_fst_num == A4)&&(s_sec_num == A4B3))//<2F>춨״̬<D7B4><CCAC>˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD><EFBFBD>˼춨
{
s_fst_num = A1;
s_sec_num = AB0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
LcdDisplayMenu(s_fst_num);
}
else
{
if(s_fst_num != A4)//<2F>Ǽ춨<C7BC><ECB6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
{
s_fst_num %= AU;
s_fst_num++;
s_sec_num = AB0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
LcdDisplayMenu(s_fst_num);
}
}
}
else if(KeyCheckLcdMsgApp(MENU_TWO))//<2F><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>л<EFBFBD>
{
s_lcd_time_state = 0;
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>˵<EFBFBD>
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
KeyClearLcdMsgApp(MENU_TWO);
if (s_fst_num == A1)
{
s_sec_num %= B1U;
s_sec_num++;
LcdDisplayA1(s_sec_num);
}
if (s_fst_num == A2)
{
s_sec_num %= B2U;
s_sec_num++;
LcdDisplayA2(s_sec_num);
}
if (s_fst_num == A3)
{
s_sec_num %= B3U;
s_sec_num++;
LcdDisplayA3(s_sec_num);
}
if (s_fst_num == A4)
{
s_sec_num %= B4U;
s_sec_num++;
LcdDisplayA4(s_sec_num);
}
}
else if(KeyCheckLcdMsgApp(MENU_DEFAULT))//<2F><EFBFBD><ECB3A3><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>Ĭ<EFBFBD>ϲ˵<CFB2>
{
s_lcd_time_state = 0;
KeyClearLcdMsgApp(MENU_DEFAULT);
if (s_fst_num != A4 )
{
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
//<2F><>Ĭ<EFBFBD>ϲ˵<CFB2>
s_fst_num = A1;
s_sec_num = A1B1;
LcdDisplayA1(s_sec_num);
}
}
else if(KeyCheckLcdMsgApp(MENU_TEST))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
s_lcd_time_state = 0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
//<2F>м춨<D0BC>˵<EFBFBD>
KeyClearLcdMsgApp(MENU_TEST);
s_fst_num = A4;
s_sec_num = AB0;
LcdDisplayMenu(s_fst_num);
LcdDisplayFun(LcdGetDisplayFun() | FUN_TEST );
}
else if (FrameCheckMsgApp(LcdDisplayAllMsg))//ȫ<><C8AB>
{
s_lcd_time_state = 0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
FrameClearMsgApp(LcdDisplayAllMsg);
s_fst_num = A1;
s_sec_num = A1B5;
LcdDisplayA1(s_sec_num);
}
else if (FrameCheckMsgApp(SetVerificationMsg))//<2F><><EFBFBD>
{
s_lcd_time_state = 0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
FrameClearMsgApp(SetVerificationMsg);
s_fst_num = A4;
s_sec_num = A4B1;
LcdDisplayA4(s_sec_num);
}
else if (FrameCheckMsgApp(OutVerificationMsg))//<2F>˼춨
{
s_lcd_time_state = 0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
FrameClearMsgApp(OutVerificationMsg);
s_fst_num = A1;
s_sec_num = A1B1;
LcdDisplayA1(s_sec_num);
}
}
/*************************************************************************************
* @fun_name void LcdMachineApp(void)
* @brief LCDӦ<EFBFBD>ò<EFBFBD>״̬<EFBFBD><EFBFBD>
* @param[in] None
* @param[out] None
* @retval None
* @other None
*************************************************************************************/
void LcdMachineApp(void)
{
if(!RtccCheckTimer(RTCC_TIMER_LCD_METSTATUES))
{
RtccSetTimer(RTCC_TIMER_LCD_METSTATUES,LCD_UPDATE_TIME); //<2F><>ʱ1<CAB1><31>
LcdDispalyMetStatus();
LcdDisplayTimeUpChange();
LcdUpdateData();
#if MODULE_BLE_USED
if((BleConnectIfIdle() == TASK_IDLE)&&(BleIfSleep()==TASK_IDLE))
{
LcdDisplayActiveGPRS(0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
}
else
{
LcdDisplayActiveGPRS(1);//<2F><>ʾ<EFBFBD><CABE><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
}
#else
if(FixedTimeNbIoTUploadIfIdle() == TASK_IDLE)
{
LcdDisplayActiveGPRS(0);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
}
else
{
LcdDisplayActiveGPRS(1);//<2F><>ʾ<EFBFBD><CABE><EFBFBD>߷<EFBFBD><DFB7><EFBFBD>
}
#endif
}
LcdDisplayKey();
}
/*void setLcdA2B14(void)
{
s_lcd_time_state = 0;
LcdClearAll(); //<2F><><EFBFBD><EFBFBD>
s_fst_num = A2;
s_sec_num = A2B14;
LcdDisplayA2(s_sec_num);
}*/