157 lines
4.8 KiB
C
Raw Permalink Normal View History

2025-04-26 16:03:23 +08:00
/*****************************************************************************
** 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
******************************************************************************/