diff --git a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxInput_Key.c b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxInput_Key.c index 472896247..ced18d402 100755 --- a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxInput_Key.c +++ b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/DxInput_Key.c @@ -151,11 +151,11 @@ void DrvKey_Init(void) static UINT32 KeyTestPressCnt = 0; static UINT32 SendKeyCnt = 0; -static UINT32 LeftKeyPressCnt = 0; -static UINT32 LeftSendKeyCnt = 0; +// static UINT32 LeftKeyPressCnt = 0; +// static UINT32 LeftSendKeyCnt = 0; -static UINT32 RightKeyPressCnt = 0; -static UINT32 RightSendKeyCnt = 0; +// static UINT32 RightKeyPressCnt = 0; +// static UINT32 RightSendKeyCnt = 0; //static BOOL KeyPress_Long = FALSE; @@ -179,17 +179,17 @@ UINT32 DrvKey_DetNormalKey(void) static UINT32 cmdflag = 0; static UINT32 time = 0; - static UINT32 LeftCmdflag = 0; - static VOS_TICK LeftTtick=0; - static UINT32 LeftFlag = 0; + // static UINT32 LeftCmdflag = 0; + // static VOS_TICK LeftTtick=0; + // static UINT32 LeftFlag = 0; static UINT32 LeftPressFlag = 0; - static UINT32 LeftTime = 0; + // static UINT32 LeftTime = 0; - static UINT32 RightCmdflag = 0; - static VOS_TICK RightTtick=0; - static UINT32 RightFlag = 0; - //static UINT32 RightPressFlag = 0; - static UINT32 RightTime = 0; + // static UINT32 RightCmdflag = 0; + // static VOS_TICK RightTtick=0; + // static UINT32 RightFlag = 0; + // static UINT32 RightPressFlag = 0; + // static UINT32 RightTime = 0; //static UINT32 retset_cmdflag = 0; #if (ADC_KEY == ENABLE) UINT32 uiKey1Lvl = VolDet_GetKey1Level(); @@ -282,93 +282,99 @@ UINT32 DrvKey_DetNormalKey(void) if (gpio_getPin(GPIO_KEY_DOWN)) { uiKeyCode |= FLGKEY_DOWN; } - - if(gpio_getPin(GPIO_KEY_RIGHT)) - { - if(0 == RightFlag){ - vos_perf_mark(&RightTtick); - RightFlag = 1; - } - RightKeyPressCnt++; - vos_perf_mark(&tticktmp); - RightTime = ((tticktmp/1000) - (RightTtick/1000)); - if((!RightCmdflag) && (RightTime >= 5000)) - { - RightCmdflag = 1; - sf_save_camera_info(); - vos_perf_mark(&ttick); - } - - }else { - - if(RightKeyPressCnt && (0 == sf_get_fw_update())){ - - if((++RightSendKeyCnt < SendKey_LessCnt) && (!RightCmdflag)){//shot key - printf("[%s:%d] RightSendKeyCnt:%d RightKeyPressCnt:%d RightTime: %dms\n", __FUNCTION__, __LINE__, RightSendKeyCnt, RightKeyPressCnt, RightTime); - uiKeyCode |= FLGKEY_RIGHT; - }else { - printf("[%s:%d] RightSendKeyCnt:%d RightKeyPressCnt:%d RightTime: %dms\n", __FUNCTION__, __LINE__, RightSendKeyCnt, RightKeyPressCnt, RightTime); - - RightSendKeyCnt = 0; - RightKeyPressCnt = 0; - RightFlag = 0; - RightTtick = 0; - RightCmdflag = 0; - } - - }else{ - RightSendKeyCnt = 0; - RightKeyPressCnt = 0; - RightFlag = 0; - RightTtick = 0; - RightCmdflag = 0; - } - - + if (gpio_getPin(GPIO_KEY_RIGHT)) { + uiKeyCode |= FLGKEY_RIGHT; + } + if (!gpio_getPin(GPIO_KEY_LEFT)) { + uiKeyCode |= FLGKEY_LEFT; } - if(!(gpio_getPin(GPIO_KEY_LEFT))) - { - if(0 == LeftFlag){ - vos_perf_mark(&LeftTtick); - LeftFlag = 1; - } - LeftKeyPressCnt++; - vos_perf_mark(&tticktmp); - LeftTime = ((tticktmp/1000) - (LeftTtick/1000)); - if((!LeftCmdflag) && (LeftTime >= 3000)) - { - LeftCmdflag = 1; - printf("[%s:%d] LeftSendKeyCnt:%d LeftKeyPressCnt:%d LeftTime: %dms\n", __FUNCTION__, __LINE__, LeftSendKeyCnt, LeftKeyPressCnt, LeftTime); - Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); - } - }else { + // if(gpio_getPin(GPIO_KEY_RIGHT)) + // { + // if(0 == RightFlag){ + // vos_perf_mark(&RightTtick); + // RightFlag = 1; + // } + // RightKeyPressCnt++; + // vos_perf_mark(&tticktmp); + // RightTime = ((tticktmp/1000) - (RightTtick/1000)); + // if((!RightCmdflag) && (RightTime >= 5000)) + // { + // RightCmdflag = 1; + // sf_save_camera_info(); + // vos_perf_mark(&ttick); + // } - if(LeftKeyPressCnt && (0 == sf_get_fw_update())){ + // }else { + + // if(RightKeyPressCnt && (0 == sf_get_fw_update())){ - if((++LeftSendKeyCnt < SendKey_LessCnt) && (!LeftCmdflag)){//shot key - printf("[%s:%d] LeftSendKeyCnt:%d LeftKeyPressCnt:%d LeftTime: %dms\n", __FUNCTION__, __LINE__, LeftSendKeyCnt, LeftKeyPressCnt, LeftTime); - uiKeyCode |= FLGKEY_LEFT; - }else { - printf("[%s:%d] LeftSendKeyCnt:%d LeftKeyPressCnt:%d LeftTime: %dms\n", __FUNCTION__, __LINE__, LeftSendKeyCnt, LeftKeyPressCnt, LeftTime); + // if((++RightSendKeyCnt < SendKey_LessCnt) && (!RightCmdflag)){//shot key + // printf("[%s:%d] RightSendKeyCnt:%d RightKeyPressCnt:%d RightTime: %dms\n", __FUNCTION__, __LINE__, RightSendKeyCnt, RightKeyPressCnt, RightTime); + // uiKeyCode |= FLGKEY_RIGHT; + // }else { + // printf("[%s:%d] RightSendKeyCnt:%d RightKeyPressCnt:%d RightTime: %dms\n", __FUNCTION__, __LINE__, RightSendKeyCnt, RightKeyPressCnt, RightTime); - LeftSendKeyCnt = 0; - LeftKeyPressCnt = 0; - LeftFlag = 0; - LeftTtick = 0; - LeftCmdflag = 0; - } + // RightSendKeyCnt = 0; + // RightKeyPressCnt = 0; + // RightFlag = 0; + // RightTtick = 0; + // RightCmdflag = 0; + // } - }else{ - LeftSendKeyCnt = 0; - LeftKeyPressCnt = 0; - LeftFlag = 0; - LeftTtick = 0; - LeftCmdflag = 0; - } + // }else{ + // RightSendKeyCnt = 0; + // RightKeyPressCnt = 0; + // RightFlag = 0; + // RightTtick = 0; + // RightCmdflag = 0; + // } - } + // } + + // if(!(gpio_getPin(GPIO_KEY_LEFT))) + // { + // if(0 == LeftFlag){ + // vos_perf_mark(&LeftTtick); + // LeftFlag = 1; + // } + // LeftKeyPressCnt++; + // vos_perf_mark(&tticktmp); + // LeftTime = ((tticktmp/1000) - (LeftTtick/1000)); + // if((!LeftCmdflag) && (LeftTime >= 3000)) + // { + // LeftCmdflag = 1; + // printf("[%s:%d] LeftSendKeyCnt:%d LeftKeyPressCnt:%d LeftTime: %dms\n", __FUNCTION__, __LINE__, LeftSendKeyCnt, LeftKeyPressCnt, LeftTime); + // Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); + // } + // }else { + + // if(LeftKeyPressCnt && (0 == sf_get_fw_update())){ + + // if((++LeftSendKeyCnt < SendKey_LessCnt) && (!LeftCmdflag)){//shot key + // printf("[%s:%d] LeftSendKeyCnt:%d LeftKeyPressCnt:%d LeftTime: %dms\n", __FUNCTION__, __LINE__, LeftSendKeyCnt, LeftKeyPressCnt, LeftTime); + // uiKeyCode |= FLGKEY_LEFT; + // }else { + // printf("[%s:%d] LeftSendKeyCnt:%d LeftKeyPressCnt:%d LeftTime: %dms\n", __FUNCTION__, __LINE__, LeftSendKeyCnt, LeftKeyPressCnt, LeftTime); + + // LeftSendKeyCnt = 0; + // LeftKeyPressCnt = 0; + // LeftFlag = 0; + // LeftTtick = 0; + // LeftCmdflag = 0; + // } + + // }else{ + // LeftSendKeyCnt = 0; + // LeftKeyPressCnt = 0; + // LeftFlag = 0; + // LeftTtick = 0; + // LeftCmdflag = 0; + // } + + + // } if (gpio_getPin(GPIO_KEY_DATAREADY)) { uiKeyCode |= FLGKEY_DATAREADY; } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index b42ab92f2..eb5624e93 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -4,6 +4,7 @@ #include "UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgAPI.h" #include "UIFlowLVGL/UIFlowMenuCommonConfirm/UIFlowMenuCommonConfirmAPI.h" #include "UIFlowLVGL/UIFlowPassword/UIFlowPasswordEventCallback.h" +#include "UIFlowLVGL_SPORTCAM.h" #include "UIFlowPhotoParams.h" #include "UIFlowPhotoFuncs.h" #include "ImageApp/ImageApp_Photo.h" @@ -49,6 +50,8 @@ static lv_task_t* task_qview = NULL; static void task_selftimer_cb(lv_task_t* task); static void task_qview_cb(lv_task_t* task); static void task_update_icons_timer_cb(lv_task_t* task); +#define LONG_PRESS_INTERVAL 500 +static unsigned long KeyLeftPressingTimeMs = 0; static BOOL g_PhotoBgInitFileSys = FALSE; @@ -1437,6 +1440,11 @@ static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key) #endif switch(key) { + case LV_USER_KEY_LEFT: + { + KeyLeftPressingTimeMs = 0; + break; + } case LV_KEY_ENTER: { #if HUNTING_CAMERA_MCU == ENABLE @@ -1525,6 +1533,24 @@ void UIFlowPhoto_KeyRelease(lv_obj_t* obj, uint32_t key) break; } } +void UIFlowPhtot_KeyLongPress(lv_obj_t* obj, uint32_t key) +{ + switch(key) + { + case LV_USER_KEY_LEFT: + { + KeyLeftPressingTimeMs += LONG_PRESS_INTERVAL; + if (3 * 1000 <= KeyLeftPressingTimeMs) + { + Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_APO); + KeyLeftPressingTimeMs = 0; + } + break; + } + default: + break; + } +} void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) { @@ -1564,8 +1590,6 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) case LV_USER_EVENT_KEY_RELEASE: { uint32_t* key = (uint32_t*)lv_event_get_data(); - printf(" ===================================== 2222 release key = %d\n", *key); - /* handle key event */ UIFlowPhoto_Key(obj, *key); @@ -1590,13 +1614,15 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) // break; // } - // case LV_USER_EVENT_KEY_LONG_PRESS: - // { - // uint32_t* key = (uint32_t*)lv_event_get_data(); - // UIFlowPhoto_KeyRelease(obj, *key); + case LV_USER_EVENT_KEY_LONG_PRESS: + { + uint32_t* key = (uint32_t*)lv_event_get_data(); + UIFlowPhtot_KeyLongPress(obj, *key); + break; + UIFlowPhoto_KeyRelease(obj, *key); - // break; - // } + break; + } /* handle nvt event except key event */