/***************************************************************************** ** Filename : key_app.h ** Project : ** Module : ** Processor : ** Date/Time : ** Abstract : ** Contents : ** Author : mingyea ** http : ** mail : ** -------------------------------------------------------------------------- ** ** -------------------------------------------------------------------------- ******************************************************************************/ #ifndef _KEY_APP_H_ #define _KEY_APP_H_ /***************************************************************************** * Include Files *****************************************************************************/ #include "common_types.h" #include "key_adc_mid.h" #include "key_digital_driver.h" #include "key_encoder_driver.h" typedef u16 key_app_tim_t; #define KEY_APP_MEDIUM_TYPE_TOTAL 3u typedef enum { KEY_APP_SW_STATE_INACTIVE=0U, KEY_APP_SW_STATE_ACTIVE=1U, KEY_APP_SW_STATE_ERROR=2U, KEY_APP_SW_STATE_FAULT=3U }key_app_sw_state_e; typedef enum { KEY_APP_INPUT_NULL=0U, //没有按下 KEY_APP_INPUT_VALID, //按下 KEY_APP_INPUT_STUCK, //卡滞 KEY_APP_INPUT_FAULT // }key_app_input_s; typedef enum { ACC_ERROR=0u, ACC_NO_ERROR }key_app_acc_dig; /***************************************************************************** * Defines *****************************************************************************/ #define KEY_APP_MULTI_MEDIA_VOL_PLUS_ID 0u //音量加,逻辑排序 #define KEY_APP_MULTI_MEDIA_VOL_SUB_ID 1u //音量减,逻辑排序 #define KEY_MAPP_MULTI_MEDIA_VOL_VEDIO_ID 2u //影像,全景,逻辑排序 #define KEY_APP_MULTI_MEDIA_VOL_LMENU_ID 3u //左菜单 #define KEY_APP_MULTI_MEDIA_CUSTOM_ID 4u //定制按键 #define KEY_APP_MULTI_MEDIA_PREV_ID 5u //向上搜台 逻辑排序 #define KEY_APP_MULTI_MEDIA_NEXT_ID 6u //向下搜台 逻辑排序 #define KEY_APP_MULTI_MEDIA_VOL_VOICE_ID 7u //语音,逻辑排序--数字按键 #define KEY_APP_MULTI_MEDIA_VOL_CALL_ID 8u //接电话,逻辑排序 #define KEY_APP_MULTI_MEDIA_VOL_RMENU_ID 9u //右菜单,逻辑排序 #define KEY_APP_MULTI_MEDIA_VOL_MUTE_ID 10u //静音,逻辑排序--数字按键 #define NUM_OF_MULTI_MEDIA_KEY 11u #define KEY_APP_MULTI_MEDIA_ID_START KEY_MAPP_MULTI_MEDIA_VOL_VEDIO_ID //除了滚轮以外的mid adc id 实际通道 #define KEY_DCM_SHOW_UP 0u //2F服务室内展车模式开启 #define KEY_DCM_SHOW_IN 1u //2F服务室内展车模式开启 #define KEY_DCM_SHOW_OUT 2u //2F服务室外展车模式开启 typedef enum { KEY_APP_MEDIUM_STATE_NORMAL =0u, KEY_APP_MEDIUM_STATE_PROSLEEP , }key_app_medium_state_e; typedef enum { KEY_APP_SUBSTATE_NORMAL =0u, //用於normal KEY_APP_SUBSTATE_PRESLEEP, //用於normal KEY_APP_SUBSTATE_SLEEP ,//= KEY_APP_SUBSTATE_NORMAL, //用於sleep KEY_APP_SUBSTATE_PREWAKE,// = KEY_APP_SUBSTATE_PRESLEEP, //用於sleep }key_app_sub_state_e; typedef enum { KEY_APP_STATE_NORMAL =0u, KEY_APP_STATE_SLEEP }key_app_state_e; typedef struct { key_app_medium_state_e state; key_app_tim_t timecount; }key_app_medium_s; typedef struct { key_app_state_e state; key_app_sub_state_e sub_state; key_app_tim_t timecount; #ifdef KEY_APP_ENABLE_SLEEP_FUNCTION key_app_medium_s medium[KEY_APP_MEDIUM_TYPE_TOTAL]; #endif }key_app_s; /***************************************************************************** * Macros *****************************************************************************/ /***************************************************************************** * Type Defines *****************************************************************************/ /***************************************************************************** *Static Variable *****************************************************************************/ /***************************************************************************** *Global Variable *****************************************************************************/ /***************************************************************************** *Constant *****************************************************************************/ /***************************************************************************** *Function Prototype *****************************************************************************/ void key_app_init(void); void key_app_task(void); void key_app_goto_sleep(void); void key_app_goto_wake(void); key_app_sw_state_e key_app_get_digi_state(u8 id); key_app_sw_state_e key_app_get_adc_state(u8 id); #endif /* end __KEY_H */ /***************************************************************************** ** End Of File ******************************************************************************/