//#include "oledshow.h"
|
#include "LCD.h"
|
#include "menu.h"
|
//#include "data_write_local.h"
|
#include "key.h"
|
#include "RTC.h"
|
#include "device_gpio_init.h"
|
#include "regdefine.h"
|
#include "systaskinit.h"
|
#include "mem_pro.h"
|
#include "powermanage.h"
|
#include "gprs.h"
|
#include "data_interaction_DTU.h"
|
#include "state_fun_init.h"
|
#include "ValveControl.h"
|
#include "third_telecom_manage.h"
|
|
/*******************???*************/
|
#define KEY_ESC 0x01
|
#define KEY_RETURN 0x02
|
#define KEY_NEXT 0x04
|
|
|
|
|
#define P_MENU 4 //ѹÁ¦
|
#define T_MENU 5 //ζÈ
|
#define Time_MENU 6 //ʱ¼ä
|
//#define VOG_MENU 5 //ÆøÌåÁ÷ËÙ
|
//#define SOS_MENU 6 //ÉùËÙ
|
|
MENU_MODULE_T menu_data;
|
LCDSIGNAL_FLAG LCDSignal_flag_g;
|
|
u8 Warning_blink=1;
|
u8 Alarm_blink=1;
|
u8 Battery_blink=1;
|
|
#define MENU_LCD_NOMARL_MODE 0
|
#define MENU_LCD_NOFLOW_NOSHOW_MODE 1
|
#define MENU_LCD_ALWAYS_SHOW_MODE 2
|
|
typedef enum
|
{
|
MENU_LCD_DEFAULT_MODE = 0,
|
MENU_LCD_SEARCH_MODE,
|
}MENU_LCD_SHOW_MODE;
|
|
void menu_leve1()
|
{
|
// u8 show_bit_num;
|
u8 count_i;
|
float lcd_calibration_flow;
|
|
LCD_buf_Clear();
|
|
LCD_DisplayDefault();
|
|
if(menu_data.show_mode == 0)
|
{
|
LCD_Display_Normal_Mode(menu_data.key_num);
|
}
|
else
|
{
|
LCD_Display_Look_Mode(menu_data.key_num);
|
}
|
|
|
LCD_Display(LCD_Buffer);
|
}
|
|
|
//
|
void LCD_first_power_on_up(void)
|
{
|
u8 BUF[5];
|
LCDSignal_flag_g.Sleep=0;
|
LCD_Power_Init();
|
LCD_Power_ON;
|
menu_data.system_menulevel = LEVEL1;
|
delay_ms(80);
|
LCD_GPIO_Init();
|
LCD_Clear();
|
LCD_driver_init();
|
|
|
menu_data.show_mode = 0;
|
menu_data.key_num = MENU_ORG;
|
|
menu_data.lcd_refresh_cnt = 0;
|
|
BUF[0] = 0x03;
|
delay_ms(2);
|
LCD_Write(0x84,BUF,1); //ÄÚÈÝΪ0x03£¬¿ªÆôÏÔʾºÍÕñµ´Æ÷£»ÄÚÈÝΪ00£¬¹Ø±ÕÏÔʾºÍÕñµ´Æ÷
|
|
|
|
|
}
|
|
void LCD_first_power_on_down(void)
|
{
|
|
u8 BUF[5];
|
BUF[0] = 0x00;
|
LCD_Write(0x84,BUF,1); //ÄÚÈÝΪ0x03£¬¿ªÆôÏÔʾºÍÕñµ´Æ÷£»ÄÚÈÝΪ00£¬¹Ø±ÕÏÔʾºÍÕñµ´Æ÷
|
delay_ms(2);
|
LCDSignal_flag_g.Sleep=1;
|
menu_data.system_tick=0;
|
LCDSignal_flag_g.LCD_first_up = 1;
|
menu_data.system_menulevel = LEVEL_POWER_OFF;
|
LCD_Power_OFF;
|
// LCD_Power_lowpower_init();
|
LCD_GPIO_sleep_mode();
|
}
|
|
|
void LCD_reflash_init(void)
|
{
|
menu_data.system_menulevel = LEVEL1;
|
delay_ms(80);
|
LCD_Clear();
|
LCD_driver_init();
|
menu_data.show_mode = 0;
|
menu_data.key_num = MENU_ORG;
|
LCDSignal_flag_g.LCD_first_up = 0;
|
}
|
|
|
void lcd_hardware_detect_init(void)
|
{
|
/*LCDÓ²¼þ¼ì²â*/
|
u8 PE0_State;
|
u8 PE1_State;
|
|
/*ÅжÏÑ¡ÔñLCDÇý¶¯³ÌÐò*/
|
// LCD_Power_OFF;
|
// GPIO_E_0_INIT_OUT0(); //PE0×÷Ϊ¸¡¶¯ÊäÈëµçƽ״̬²»¶¨£¬ÕâʱºòÒªÏÈÊä³öµÍµçƽ£¬ÔÙתΪ¸¡¶¯ÊäÈ룬Õâ¸öʱºòÈç¹ûÊäÈë²»ÊÇ¸ßµçÆ½£¬ÄǾÍÊÇµÍµçÆ½ÁË£ÒòΪ»ÐÂÒº¾§°åPE0¹Ü½Å±»ÉÏÀÁË£¬¶øÔÒº¾§Ã»ÓÐ
|
// GPIO_E_01_INIT();//PE0µÄ³õʼ»¯
|
|
|
GPIO_E_01_INIT();//PE0µÄ³õʼ»¯
|
delay_ms(10);
|
LCD_Power_ON; //ÔÚ´ò¿ªÒº¾§µçÔ´µÄÇé¿ö϶ÁÈ¡PE0\PE1¹Ü½Å״̬
|
delay_ms(10);
|
|
PE0_State = PEin(0);
|
PE1_State = PEin(1);
|
|
if((PE0_State==0)&&(PE1_State==1))
|
{
|
menu_data.lcd_hardware_type = HT16C23_M14763_P3;
|
}
|
else if((PE0_State==0)&&(PE1_State==0))
|
{
|
menu_data.lcd_hardware_type = HT16C23_M14280_P2;
|
}else
|
{
|
//ÎÞ·¨ÅжÏʱÔÙÀ´Ò»±é
|
GPIO_E_01_INIT();//PE0µÄ³õʼ»¯
|
delay_ms(10);
|
LCD_Power_ON;
|
delay_ms(10);
|
|
PE0_State = PEin(0);
|
PE1_State = PEin(1);
|
|
if((PE0_State==0)&&(PE1_State==1))
|
{
|
menu_data.lcd_hardware_type = HT16C23_M14763_P3;
|
}
|
else if((PE0_State==0)&&(PE1_State==0))
|
{
|
menu_data.lcd_hardware_type = HT16C23_M14280_P2;
|
}else
|
{
|
menu_data.lcd_hardware_type = HT16C23_M14280_P2;
|
}
|
}
|
LCD_Power_OFF;
|
delay_ms(10);
|
GPIO_E_01_sleep_mode();
|
|
}
|
|
|
#define LCD_FIRST_OPEN 0
|
#define LCD_OPEN 1
|
#define LCD_OFF 2
|
|
#define ALWAYSPOWER 0
|
#define BATPOWER 1
|
|
//·µ»Øbit1=1±êʶµçÔ´¼ü°´Ï bit2=1 ±íʾÓÒ¼ü bit3=1±íʾ×ó¼ü £¬¿ÉÒÔͬʱÓÐЧ
|
u8 menu_key_show(u8 * key_lcd_on_flag)
|
{
|
u8 key_down_flag = 0;
|
u32 key,key4;
|
u8 keynum;
|
u8 key_flag;
|
|
key_flag = 0;
|
/*°´¼üģʽ¶ÁÈ¡*/
|
key = Get_key();
|
key4 = get_key4();
|
/*Ö÷ÒªÓÃÓÚ±íʾ°´¼üµÄ³ÖÐøÊ±¼ä*/
|
if( ((key>> 16 ) & 0x11) == 0) //KEY3£¬ÓҲఴ¼ü£¬µçÔ´¼ü
|
{
|
|
|
if(menu_data.ble_cnt < 200)
|
{
|
menu_data.ble_cnt ++;
|
}
|
|
key_down_flag |= 1;
|
|
|
*key_lcd_on_flag = 1;
|
|
key_flag |= 0x04;
|
}
|
else
|
{
|
menu_data.ble_cnt = 0;
|
//key_down_flag = 0;
|
}
|
|
if( ((key >> 8) & 0x11) ==0 ) //KEY2£¬Öм䰴¼ü£¬ÓÒ·½Ïò¼ü
|
{
|
keynum |= KEY_NEXT;
|
key_flag |= 0x02;
|
}
|
else
|
{
|
keynum &= ~KEY_NEXT;
|
menu_data.right_key_cnt = 0;
|
|
}
|
|
if( ((key ) & 0x11) ==0) //KEY1£¬×ó²à°´¼ü
|
{
|
keynum |= KEY_RETURN;
|
key_flag |= 0x01;
|
}
|
else
|
{
|
keynum &= ~KEY_RETURN;
|
|
}
|
|
if(key_flag == 2)
|
{
|
menu_data.right_key_cnt++;
|
if(menu_data.right_key_cnt == 10)
|
{
|
if(menu_data.show_mode == 0)
|
{
|
menu_data.show_mode = 1;
|
menu_data.key_num = SV_HV_MENU;
|
}
|
else if(menu_data.show_mode == 1)
|
{
|
menu_data.show_mode = 0;
|
menu_data.key_num = BK_SH_MENU;
|
}
|
}
|
}
|
|
if(key_flag == 0x04)//µçÔ´
|
{
|
Bat_Test_Para.BAT_Test_Key_Flag =1;
|
Valve_control_parm.Trigger_check_valve_status_flag =1;
|
|
menu_data.power_key_cnt++;
|
}
|
else
|
{
|
menu_data.power_key_cnt = 0;
|
}
|
|
if(key_flag == 0x05)//×ó+µçÔ´
|
{
|
//¿ª·§
|
// Valve_Open();
|
ValveCloseIdTypeSet(ALARM_ID_OP_VALVE_KEY,VALVE_ACTION_OPEN);
|
// Valve_control_parm.ValveCloseID = 0;
|
// Valve_control_parm.ValveCloseType = 0;
|
// Valve_control_parm.ValveCloseClass = 0;
|
|
// Valve_control_parm.Valve_Status = VALVE_OP;
|
// Valve_control_parm.OpenValveAuthorizeFLAG = 1;
|
}
|
|
if(key_flag == 0x06)//ÓÒ+µçÔ´
|
{
|
//¹Ø·§
|
// Valve_Close();
|
ValveCloseIdTypeSet(ALARM_ID_CL_VALVE_KEY,VALVE_ACTION_CLOSE_UNLOCK);
|
}
|
|
|
if(key_flag == 0x03)//×óÓÒ·½Ïò¼üÒ»Æð°´ÏÂ
|
{
|
menu_data.combo_key_cnt++;
|
|
|
/*×óÓÒÒ»Æð°´1Ã룬¿ªÆôGPRSÒ»¼üÉÏ´«¹¦ÄÜ*/
|
/*×óÓÒÒ»Æð°´9Ãë£¬ÖØÖÃµç³ØÊ±¼ä*/
|
|
if(menu_data.combo_key_cnt == 1)
|
{
|
#ifdef THIRD_TELECOM_OPEN
|
gprs_control_g_third.Key_send_data_handle_flag = 1;
|
#else
|
gprs_control_g_sizhu.Key_send_data_handle_flag =1;
|
#endif
|
}
|
else if(menu_data.combo_key_cnt == 9)
|
{
|
Bat_Test_Para.lith_bat_replace_flag =1;
|
|
//menu_data.combo_key_cnt = 0;
|
}
|
}else
|
{
|
menu_data.combo_key_cnt = 0;
|
}
|
|
/*???????????*/
|
if((keynum & KEY_NEXT) == KEY_NEXT)
|
{
|
key_down_flag |= 0x02;
|
/*????*/
|
|
if(menu_data.show_mode == 0)
|
{
|
if( menu_data.key_num >= GK_SH_MENU)
|
{
|
menu_data.key_num = BK_SH_MENU;
|
}else
|
{
|
menu_data.key_num ++;
|
menu_data.key_num = GetKeyNum(KEY_NEXT,menu_data.key_num);
|
}
|
}
|
else
|
{
|
if( menu_data.key_num >= BPS_AD_MENU)
|
{
|
menu_data.key_num = SV_HV_MENU;
|
}else
|
{
|
menu_data.key_num ++;
|
}
|
}
|
}
|
|
if((keynum & KEY_RETURN) == KEY_RETURN)
|
{
|
key_down_flag |= 0x04;
|
|
if(menu_data.show_mode == 0)
|
{
|
if( menu_data.key_num == BK_SH_MENU)
|
{
|
menu_data.key_num = GK_SH_MENU;
|
}else
|
{
|
menu_data.key_num --;
|
menu_data.key_num = GetKeyNum(KEY_RETURN,menu_data.key_num);
|
}
|
}
|
else
|
{
|
if( menu_data.key_num ==SV_HV_MENU)
|
{
|
menu_data.key_num = BPS_AD_MENU;
|
}else
|
{
|
menu_data.key_num --;
|
}
|
}
|
}
|
|
if(key_down_flag != 0)
|
{
|
menu_data.system_tick = 0;
|
}
|
else
|
{
|
if(menu_data.system_tick < 200)
|
menu_data.system_tick ++;
|
}
|
|
|
///jlcÇ¿¿ª×´Ì¬ÆÁÄ»²»Ãð
|
if(Valve_control_parm.Force_Open_status ==1)
|
{
|
menu_data.system_tick = 0;
|
|
}
|
|
if(key4 == 1)
|
{
|
v20_system_para_g.system_key4_down = 0;
|
|
}else
|
{
|
v20_system_para_g.system_key4_down ++;
|
|
}
|
|
return key_down_flag;
|
}
|
|
|
|
|
void LCD_para_hard_init(void)
|
{
|
|
menu_data.system_tick=0;
|
menu_data.system_menulevel = LEVEL1;
|
menu_data.key_num = MENU_ORG;
|
menu_data.ble_cnt = 0;
|
menu_data.gprs_one_key_up = 0;
|
// menu_data.lcd_state = LCD_OFF;
|
menu_data.power_key_cnt = 0;
|
|
LCDSignal_flag_g.Sleep=0;
|
LCDSignal_flag_g.LCD_first_up = 0;
|
menu_data.system_tick=0;
|
LCD_driver_init();
|
LCD_Clear();
|
|
LCD_first_power_on_up();
|
}
|
|
|
|
void show_lcd(void)
|
{
|
u8 lcd_refresh_time_s;
|
|
LCD_GPIO_Init();
|
|
/*ÅжÏÊÇ·ñÊÇµç³Ø¹©µç*/
|
// if(v20_system_para_g.system_extern_power_connect_flag == NOACTIVE)
|
// {
|
// LCDSignal_flag_g.PowerSignal_Select = Battery_Upon80;
|
|
// }else
|
// {
|
// LCDSignal_flag_g.PowerSignal_Select = External_Power;
|
|
// }
|
/*Ìí¼ÓLCDÏÔʾ¾¯¸æ±êʾ*/
|
|
|
|
/*???????*/
|
|
switch(menu_data.system_menulevel)
|
{
|
case LEVEL1:
|
|
if(cal_gas_para_g.ambient_temperature>=-5)
|
{
|
lcd_refresh_time_s =1;
|
}else
|
{
|
//ζȵÍÓÚ-5¶È£¬Ã¿1¶ÈÔö¼Ó1ÃëË¢ÐÂʱ¼ä,¼«ÏÞ-15¶È
|
if(cal_gas_para_g.ambient_temperature>=-15)
|
{
|
lcd_refresh_time_s = (u8)(-5 - cal_gas_para_g.ambient_temperature);
|
lcd_refresh_time_s +=2;
|
if(lcd_refresh_time_s>20)
|
{
|
lcd_refresh_time_s = 20;
|
}
|
}else
|
{
|
lcd_refresh_time_s = (u8)(-5 - cal_gas_para_g.ambient_temperature);
|
lcd_refresh_time_s +=2;
|
if(lcd_refresh_time_s>20)
|
{
|
lcd_refresh_time_s = 20;
|
}
|
//µÍÓÚ-15¶È£¬ÌáʾҺ¾§ÏÔʾ²»ÄÜÕý³£¹¤×÷
|
if(menu_data.LCD_tem_low_flag !=1)
|
{
|
menu_data.LCD_tem_low_flag = 1;
|
system_alarm_log_data_handle(ALARM_CLASS_LCD, ALARM_HAPPEN + ALARM_ID_LCD_AMBIENT_TEM_EXCEED_LOW_LIMIT);
|
}
|
|
}
|
|
}
|
|
if(cal_gas_para_g.ambient_temperature>-10)
|
{
|
//»·¾³Î¶ȳ¬¹ý¶àÉÙ¶È£¬ÒºÏÔµÍα¨¾¯È¡Ïû
|
if(menu_data.LCD_tem_low_flag ==1)
|
{
|
menu_data.LCD_tem_low_flag = 0;
|
}
|
|
}
|
|
|
if((menu_data.lcd_refresh_cnt% lcd_refresh_time_s) ==0)
|
{
|
menu_leve1();
|
}
|
menu_data.lcd_refresh_cnt++;
|
|
break;
|
//case LEVEL2: menu_leve2();break;
|
case LEVEL_POWER_OFF:break;
|
default: break;
|
}
|
|
|
|
|
|
}
|
|
|
|
/******************************************
|
* func: sys_menu
|
* desc: °´¼üºÍÏÔʾ¿ØÖÆ
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void sys_menu(void)
|
{
|
// u8 i;
|
u8 key_down_flag = 0;
|
u8 key_lcd_on_key = 0;
|
u8 system_mode = 0;
|
|
|
|
if(v20_system_para_g.system_extern_power_connect_flag == 1)
|
system_mode = ALWAYSPOWER;
|
else
|
system_mode = BATPOWER;
|
|
// system_mode = ALWAYSPOWER;
|
// menu_data.system_menulevel = LEVEL1;
|
key_down_flag = menu_key_show(&key_lcd_on_key);
|
|
if(system_mode == BATPOWER)
|
{
|
/*Õâ¸ö¹¦ÄÜÖ»ÊÇÕë¶Ôµç³Ø¹©µçÔËÐÐϵÄÇé¿ö*/
|
|
if(system_function_ctrl_word_g.fun_ctrl_word.lcd_mode == SFCW_LCD_NORMAL_SHOW_MODE)
|
{
|
/*¼ì²éÏÔʾ״̬*/
|
if(menu_data.lcd_state == LCD_OPEN)
|
{
|
show_lcd();
|
/*±íʾ°´¼ü°´ÏÂ*/
|
if(key_down_flag != 0)
|
{
|
|
}else
|
{
|
|
if(menu_data.system_tick > 60)
|
{
|
menu_data.lcd_state = LCD_OFF;
|
LCD_first_power_on_down();
|
}
|
}
|
|
}else if(menu_data.lcd_state == LCD_OFF)
|
{
|
if(key_lcd_on_key == 1)
|
{
|
menu_data.lcd_state = LCD_FIRST_OPEN;
|
LCD_first_power_on_up();
|
show_lcd();
|
|
}
|
|
|
|
}else if(menu_data.lcd_state == LCD_FIRST_OPEN)
|
{
|
//LCD_reflash_init();
|
show_lcd();
|
menu_data.lcd_state = LCD_OPEN;
|
|
}
|
|
}else if(system_function_ctrl_word_g.fun_ctrl_word.lcd_mode == SFCW_LCD_FLOW_SHOW_MODE) //ÓÐÁ÷Á¿ÓÐÏÔʾ¹¦ÄÜ
|
{
|
|
/*¼ì²éÏÔʾ״̬*/
|
if(menu_data.lcd_state == LCD_OPEN)
|
{
|
|
/*±íʾ°´¼ü°´ÏÂ*/
|
if(key_down_flag != 0)
|
{
|
show_lcd();
|
menu_data.flow_tick = 0;
|
}else
|
{
|
if((cal_gas_para_g.cvol <= 0)&&(cal_gas_para_g.fancvol <= 0))
|
{
|
if((menu_data.system_tick > 60)&&(menu_data.flow_tick > 10))
|
{
|
menu_data.lcd_state = LCD_OFF;
|
LCD_first_power_on_down();
|
menu_data.flow_tick = 0;
|
}else
|
{
|
show_lcd();
|
}
|
|
menu_data.flow_tick ++;
|
}else
|
{
|
show_lcd();
|
menu_data.flow_tick = 0;
|
}
|
}
|
|
}else if(menu_data.lcd_state == LCD_OFF)
|
{
|
if((key_lcd_on_key == 1)||(cal_gas_para_g.cvol > 0)||(cal_gas_para_g.fancvol > 0))//°´¼ü´¥·¢»òÕßСÁ÷Á¿´¥·¢ÏÔʾ
|
{
|
menu_data.lcd_state = LCD_FIRST_OPEN;
|
LCD_first_power_on_up();
|
show_lcd();
|
}
|
}else if(menu_data.lcd_state == LCD_FIRST_OPEN)
|
{
|
//LCD_reflash_init();
|
show_lcd();
|
menu_data.lcd_state = LCD_OPEN;
|
}
|
}else if(system_function_ctrl_word_g.fun_ctrl_word.lcd_mode == SFCW_LCD_ALWAYS_SHOW_MODE)//ÏÔʾ³£ÏÔʾ
|
{
|
/*¼ì²éÏÔʾ״̬*/
|
if(menu_data.lcd_state == LCD_OPEN)
|
{
|
/*³¤ÏÔ״̬Ï ½øÈë²éѯģʽ 60sÄÚÎÞ°´¼ü×Ô¶¯ ÇлØÕý³£ÏÔʾģʽ*/
|
if(menu_data.system_tick > 60 && menu_data.show_mode == 1)
|
{
|
menu_data.show_mode = 0;
|
menu_data.key_num = BK_SH_MENU;
|
}
|
show_lcd();
|
}else if(menu_data.lcd_state == LCD_OFF)
|
{
|
|
menu_data.lcd_state = LCD_FIRST_OPEN;
|
LCD_first_power_on_up();
|
show_lcd();
|
|
}else if(menu_data.lcd_state == LCD_FIRST_OPEN)
|
{
|
//LCD_reflash_init();
|
show_lcd();
|
menu_data.lcd_state = LCD_OPEN;
|
}
|
}
|
}else
|
{
|
/*¼ì²éÏÔʾ״̬*/
|
if(menu_data.lcd_state == LCD_OPEN)
|
{
|
/*³¤ÏÔ״̬Ï ½øÈë²éѯģʽ 60sÄÚÎÞ°´¼ü×Ô¶¯ ÇлØÕý³£ÏÔʾģʽ*/
|
if(menu_data.system_tick > 60 && menu_data.show_mode == 1)
|
{
|
menu_data.show_mode = 0;
|
menu_data.key_num = BK_SH_MENU;
|
}
|
show_lcd();
|
|
|
|
}else if(menu_data.lcd_state == LCD_OFF)
|
{
|
|
menu_data.lcd_state = LCD_FIRST_OPEN;
|
LCD_first_power_on_up();
|
show_lcd();
|
|
}else if(menu_data.lcd_state == LCD_FIRST_OPEN)
|
{
|
//LCD_reflash_init();
|
show_lcd();
|
menu_data.lcd_state = LCD_OPEN;
|
}
|
|
}
|
}
|
/**************************************
|
*º¯Êý¹¦ÄÜ£ºÅжϰ´¼üµÄʱºòÐè²»ÐèÒªÌø¹ýijҳ²»ÏÔʾ
|
*KeyType£º0x02×ó¼ü 0x04ÓÒ¼ü
|
*KeyNum : °´¼üÒ³Âë
|
**************************************/
|
uint8_t GetKeyNum(uint8_t KeyType,uint8_t KeyNum)
|
{
|
if(KeyType == KEY_RETURN)
|
{
|
switch(KeyNum)
|
{
|
case YE_DJ_MENU:
|
if(system_function_ctrl_word_g.fun_ctrl_word.show_balance == 1 && system_function_ctrl_word_g.fun_ctrl_word.show_price == 1)
|
{
|
KeyNum = KeyNum - 1;
|
}
|
break;
|
|
default:
|
break;
|
}
|
}
|
else if(KeyType == KEY_NEXT)
|
{
|
switch(KeyNum)
|
{
|
case YE_DJ_MENU:
|
if(system_function_ctrl_word_g.fun_ctrl_word.show_balance == 1 && system_function_ctrl_word_g.fun_ctrl_word.show_price == 1)
|
{
|
KeyNum = KeyNum + 1;
|
}
|
break;
|
|
default:
|
break;
|
}
|
}
|
|
return KeyNum;
|
}
|
|
uint16_t getTimeDiff(u32 timeIn)
|
{
|
u32 CurrentTimeMin = BCD2HEX(Time_BCD_g.hour)*60 + BCD2HEX(Time_BCD_g.min);
|
|
if(CurrentTimeMin >= timeIn)
|
{
|
return (CurrentTimeMin - timeIn);
|
}
|
else
|
{
|
return (CurrentTimeMin + 1440 - timeIn);
|
}
|
}
|
|
/********************************
|
*¼ì¶¨Ä£Ê½´¦Àí£¬°üÀ¨½øÈë¡¢Í˳ö¡¢
|
*
|
********************************/
|
void calibration_mode_process()
|
{
|
if(v20_system_para_g.system_extern_power_connect_flag == ACTIVE && v20_system_para_g.medium_status == 1)
|
{
|
if(menu_data.power_key_cnt == 10 && menu_data.system_tick <= 60)
|
{
|
if(cal_gas_para_g.calibration_mode == 0)
|
{
|
cal_gas_para_g.calibration_mode = 1;
|
menu_data.in_calibration_time_min= BCD2HEX(Time_BCD_g.hour)*60 + BCD2HEX(Time_BCD_g.min);
|
|
}
|
else
|
{
|
cal_gas_para_g.calibration_mode = 0;
|
menu_data.in_calibration_time_min=0;
|
}
|
}
|
}
|
else
|
{
|
menu_data.power_key_cnt = 0;
|
cal_gas_para_g.calibration_mode = 0;
|
menu_data.in_calibration_time_min=0;
|
}
|
|
if(work_flow_average_g.flow_0_flag && cal_gas_para_g.calibration_mode)
|
{
|
if(menu_data.flow_0_first_flag == 0)
|
{
|
menu_data.flow_0_first_flag = 1;
|
menu_data.flow_0_time_min = BCD2HEX(Time_BCD_g.hour)*60 + BCD2HEX(Time_BCD_g.min);
|
}
|
}
|
else
|
{
|
menu_data.flow_0_time_min = 0;
|
menu_data.flow_0_first_flag = 0;
|
}
|
|
if(cal_gas_para_g.calibration_mode == 1)
|
{
|
if((menu_data.flow_0_time_min != 0) && (getTimeDiff(menu_data.flow_0_time_min) >= 120))
|
{
|
cal_gas_para_g.calibration_mode = 0;
|
}
|
|
if((menu_data.in_calibration_time_min != 0) && (getTimeDiff(menu_data.in_calibration_time_min) >= 480))
|
{
|
cal_gas_para_g.calibration_mode = 0;
|
}
|
}
|
|
}
|