257 lines
7.2 KiB
C
257 lines
7.2 KiB
C
|
/*
|
|||
|
* File: __GP22Gas_KEY_APP_C
|
|||
|
* Author:
|
|||
|
*
|
|||
|
* Created on<EFBFBD><EFBFBD>2015-5-18
|
|||
|
*/
|
|||
|
|
|||
|
#ifdef __cplusplus
|
|||
|
extern "C"
|
|||
|
{
|
|||
|
#endif
|
|||
|
/*--------------------------------Including-------------------------------------------*/
|
|||
|
#include "UWater_key_app.h"
|
|||
|
#include "UWater_frame_app.h"
|
|||
|
#include "UWater_timer1uS_driver.h"
|
|||
|
#include "UWater_valve_driver.h"
|
|||
|
|
|||
|
/*------------------------------ Variable Define -------------------------------------*/
|
|||
|
static u8 s_g_key_sys_state; //<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
static u8 g_menu_change_msg; //<2F>в˵<D0B2>MSG;
|
|||
|
static u8 g_key_res = 0;
|
|||
|
static u8 s_key_iropen = 0;
|
|||
|
static u8 s_old_tch_state;
|
|||
|
u8 s_valve_close_key_cnt=0;
|
|||
|
/*************************************************************************************
|
|||
|
* @fun_name: void KeyMainMachineDriver(void)
|
|||
|
* @brief : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>Ӧ<EFBFBD>ò㴦<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param[in] : None
|
|||
|
* @param[out] :None
|
|||
|
* @retval : None
|
|||
|
* @other : <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MainSpace<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>main<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>
|
|||
|
*************************************************************************************/
|
|||
|
void KeyMachineApp(void)
|
|||
|
{
|
|||
|
switch (s_g_key_sys_state)
|
|||
|
{
|
|||
|
case KEY_SYS_S0:
|
|||
|
{
|
|||
|
g_key_res = KeyCheckMsg();
|
|||
|
switch (g_key_res)
|
|||
|
{
|
|||
|
case NO_EVENT:
|
|||
|
{
|
|||
|
if(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>24)&0xFF) != s_old_tch_state)
|
|||
|
{
|
|||
|
s_old_tch_state = FrameCheckParaApp(FramePara_FuncCfg0_3)>>24;
|
|||
|
if(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>24)&0xFF) == 0xAA)
|
|||
|
{
|
|||
|
FrameSetMsgApp(MsgTouchKeyReset);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Gpio_WriteOutputIO(TCH_KEY_POWER_GPIO, TCH_KEY_POWER_PIN, FALSE);//<2F>رհ<D8B1><D5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
if(FrameCheckMsgApp(MsgTouchKeyReset) &&(((FrameCheckParaApp(FramePara_FuncCfg0_3)>>24)&0xFF) == 0xAA))
|
|||
|
{
|
|||
|
FrameClearMsgApp(MsgTouchKeyReset);
|
|||
|
if(TchKey_GetPressLimitState() == 0)
|
|||
|
{
|
|||
|
EnableNvic(TCH_KEY_IRQ, TCH_KEY_PRIORITY, FALSE);
|
|||
|
Gpio_WriteOutputIO(TCH_KEY_POWER_GPIO,TCH_KEY_POWER_PIN,FALSE);
|
|||
|
Set100msTimer(TIMER_100MS_TOUCH_RESET,10);//1s
|
|||
|
s_g_key_sys_state = KEY_SYS_S1;
|
|||
|
}
|
|||
|
s_valve_close_key_cnt=0;//<2F>ط<EFBFBD>״̬<D7B4><CCAC><EFBFBD>ⰴ<EFBFBD><E2B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿСʱ<D0A1><CAB1>0
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case SHORT_PRESS:
|
|||
|
{
|
|||
|
KeyClearMsg(1);
|
|||
|
g_key_res = 0;
|
|||
|
g_menu_change_msg |= MENU_TWO;
|
|||
|
s_key_iropen = TRUE;
|
|||
|
FrameSetMsgApp(Msg_FactoryBleActive);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
case LONG_PRESS:
|
|||
|
{
|
|||
|
KeyClearMsg(2);
|
|||
|
g_key_res = 0;
|
|||
|
if (LcdCheckMeumApp() == ((((u16)A1) << 8) | A1B4) &&FrameCheckParaApp(FramePara_EnableTestFunc)) //<2F><>˲ʱ<CBB2><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>泤<EFBFBD><E6B3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۼ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD>춨
|
|||
|
{
|
|||
|
g_menu_change_msg = g_menu_change_msg | MENU_TEST;
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
#if MODULE_BLE_USED
|
|||
|
#else
|
|||
|
if (LcdCheckMeumApp() == ((((u16)A3) << 8) | A3B2)) // A3B1<42><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A3B2<42><32><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
{
|
|||
|
g_menu_change_msg |= MENU_ACTIVE_RF;
|
|||
|
}
|
|||
|
#endif
|
|||
|
g_menu_change_msg |= MENU_ONE;
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case LONGLONG_PRESS:
|
|||
|
{
|
|||
|
KeyClearMsg(4);
|
|||
|
g_key_res = 0;
|
|||
|
#if defined(VALVE)
|
|||
|
//<2F>ط<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>Ѷ<EFBFBD>
|
|||
|
if((ValveGetState() == VALVE_STATE_CLOSE_EMERGENCY)||(ValveGetState() == VALVE_STATE_CLOSE))
|
|||
|
{
|
|||
|
if(s_valve_close_key_cnt<2)//ÿСʱ<D0A1><CAB1><EFBFBD><EFBFBD>2<EFBFBD><32>
|
|||
|
{
|
|||
|
FrameSetMsgApp(Msg_ValveOpenEmergency);//Ӧ<><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|||
|
g_menu_change_msg |= MENU_ACTIVE_RF;
|
|||
|
s_valve_close_key_cnt++;
|
|||
|
}
|
|||
|
}
|
|||
|
#endif
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
case ERR_PRESS:
|
|||
|
{
|
|||
|
KeyClearMsg(3);
|
|||
|
g_key_res = 0;
|
|||
|
g_menu_change_msg |= MENU_DEFAULT;
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
KeyClearMsg(1);
|
|||
|
KeyClearMsg(2);
|
|||
|
KeyClearMsg(3);
|
|||
|
KeyClearMsg(4);
|
|||
|
KeyClearMsg(5);
|
|||
|
KeyClearMsg(6);
|
|||
|
KeyClearMsg(7);
|
|||
|
KeyClearMsg(8);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
case KEY_SYS_S1:
|
|||
|
{
|
|||
|
if(TRUE ==Check100msTimer(TIMER_100MS_TOUCH_RESET))
|
|||
|
{
|
|||
|
Gpio_WriteOutputIO(TCH_KEY_POWER_GPIO,TCH_KEY_POWER_PIN,TRUE);
|
|||
|
EnableNvic(TCH_KEY_IRQ, TCH_KEY_PRIORITY, TRUE);
|
|||
|
s_g_key_sys_state = KEY_SYS_S0;
|
|||
|
}
|
|||
|
}
|
|||
|
break;
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/***********************Ӧ<>ò㰴<C3B2><E3B0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>***************************
|
|||
|
Function: void KeyInitApp(void)
|
|||
|
Description: Ӧ<EFBFBD>ò㰴<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Input: <EFBFBD>ޣ<EFBFBD>
|
|||
|
Return: <EFBFBD>ޣ<EFBFBD>
|
|||
|
Others: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MainSpace<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ӿڡ<EFBFBD>
|
|||
|
*****************************************************************/
|
|||
|
void KeyInitApp(void)
|
|||
|
{
|
|||
|
s_g_key_sys_state = KEY_SYS_S0; //<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>״̬<D7B4><CCAC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
|||
|
g_menu_change_msg = FALSE; //<2F>в˵<D0B2>MSG<53><47><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊ0;
|
|||
|
g_key_res = 0;
|
|||
|
}
|
|||
|
|
|||
|
/***********************<2A><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<43><44>MSG<53><47><EFBFBD><EFBFBD>***************************
|
|||
|
|
|||
|
Function: u8 KeyCheckLcdMsgApp(void)
|
|||
|
Description: <EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<EFBFBD><EFBFBD>MSG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Input: <EFBFBD>ޣ<EFBFBD>
|
|||
|
Return: bit0=1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>MSG<EFBFBD><EFBFBD>bit1=1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>MSG<EFBFBD><EFBFBD>bit2=1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ˵<EFBFBD><EFBFBD><EFBFBD>bit3=1<EFBFBD><EFBFBD><EFBFBD>м춨״̬<EFBFBD>˵<EFBFBD><EFBFBD>bbit4=1<EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit5=1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>MSG for GSM APP
|
|||
|
Others: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MainSpace<EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڡ<EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
u8 KeyCheckLcdMsgApp(u8 msg)
|
|||
|
{
|
|||
|
return (g_menu_change_msg & msg);
|
|||
|
}
|
|||
|
|
|||
|
/***********************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<43><44>MSG<53><47><EFBFBD><EFBFBD>***************************
|
|||
|
|
|||
|
Function: u8 KeyClearLcdMessageApp (u8)
|
|||
|
Description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LCD<EFBFBD><EFBFBD>MSG<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Input: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MSG 0<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>MSG<EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>MSG<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD>ϲ˵<EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD><EFBFBD>м춨״̬<EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD> 4<EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>MSG for GSM APP
|
|||
|
Return: TRUE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>FALSE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>
|
|||
|
Others: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MainSpace<EFBFBD><EFBFBD><EFBFBD>ڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڡ<EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
u8 KeyClearLcdMsgApp(u8 msg)
|
|||
|
{
|
|||
|
g_menu_change_msg &= (~msg);
|
|||
|
return TRUE;
|
|||
|
}
|
|||
|
|
|||
|
/***********************<2A><>ѯģ<D1AF><C4A3><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*****************
|
|||
|
Function: u8 KeyIfSleepApp(void)
|
|||
|
Description: <EFBFBD><EFBFBD>ѯģ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD>
|
|||
|
Input: <EFBFBD>ޣ<EFBFBD>
|
|||
|
Return: TRUE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD> FALSE<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD>
|
|||
|
Others: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>MainSpace<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ӿڡ<EFBFBD>
|
|||
|
****************************************************************/
|
|||
|
u8 KeyIfSleepApp(void)
|
|||
|
{
|
|||
|
if (s_g_key_sys_state == KEY_SYS_S0)
|
|||
|
return TRUE;
|
|||
|
else
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
/***********************<2A><><EFBFBD>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD><EFBFBD><EFBFBD>Ϣ***************************
|
|||
|
Function: void KeySetLcdMsgApp(u8 msg)
|
|||
|
Description: <EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><EFBFBD><EFBFBD>10S
|
|||
|
Input: <EFBFBD><EFBFBD>
|
|||
|
Return: <EFBFBD><EFBFBD>;
|
|||
|
Others:
|
|||
|
*****************************************************************/
|
|||
|
void KeySetLcdMsgApp(u8 msg)
|
|||
|
{
|
|||
|
g_menu_change_msg |= msg;
|
|||
|
}
|
|||
|
|
|||
|
/***********************<2A><>ѯ<EFBFBD>Ƿ<EFBFBD><C7B7>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD>10S***************************
|
|||
|
Function: void KeyCheckIrOpenMsg(void)
|
|||
|
Description: <EFBFBD><EFBFBD>ѯ<EFBFBD>Ƿ<EFBFBD><EFBFBD>а<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><EFBFBD><EFBFBD>10S
|
|||
|
Input: <EFBFBD><EFBFBD>
|
|||
|
Return: s_key_iropen;
|
|||
|
Others:
|
|||
|
*****************************************************************/
|
|||
|
u8 KeyCheckIrOpenMsg(void)
|
|||
|
{
|
|||
|
return s_key_iropen;
|
|||
|
}
|
|||
|
|
|||
|
/***********************<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><D1BA><EFBFBD>ͨ<EFBFBD><CDA8>10s<30><73>־***************************
|
|||
|
Function: void KeyClearIrOpenMsg(void)
|
|||
|
Description: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѻ<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>10s<EFBFBD><EFBFBD>־
|
|||
|
Input: <EFBFBD><EFBFBD>;
|
|||
|
Return: <EFBFBD><EFBFBD>;
|
|||
|
Others:
|
|||
|
*****************************************************************/
|
|||
|
void KeyClearIrOpenMsg(void)
|
|||
|
{
|
|||
|
s_key_iropen = FALSE;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|