From 5c14360b7a3c228537248b92a5aef292af0316b1 Mon Sep 17 00:00:00 2001 From: zyj Date: Thu, 9 Nov 2023 14:10:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84Delay=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=8F=8AUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UIFlowMenuCommonItem/MenuGeneral.c | 148 +++++++++++++++--- .../UIFlowMenuCommonItem/MenuGeneral.h | 1 + .../UIFlowMenuCommonOptionEventCallback.c | 5 + 3 files changed, 130 insertions(+), 24 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c index 597781679..3fb8e8d05 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c @@ -503,6 +503,8 @@ void Option_Sensitivity_Key(lv_obj_t* obj, uint32_t key) // -------------------------------------------------------------------------- static int DelayIndex = 0; static lv_obj_t* DelayMatrixObj = NULL; +static lv_obj_t* DelayImage = NULL; +static lv_obj_t* DelayLabel = NULL; static char DelayHHBuf[3] = "00"; static char DelayMMBuf[3] = "00"; static char DelaySSBuf[3] = "00"; @@ -518,29 +520,36 @@ static const char* DelayMap[6] = static void update_Delay_msg(lv_obj_t* obj) { - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(DelayMatrixObj == NULL || DelayImage == NULL) + { + DBG_ERR("Delay component is not initialized"); + return; + } + UIMenuStoreInfo *puiPara = sf_ui_para_get(); snprintf(DelayHHBuf, 3, "%02d", puiPara->PirDelayTime.Hour); snprintf(DelayMMBuf, 3, "%02d", puiPara->PirDelayTime.Min); snprintf(DelaySSBuf, 3, "%02d", puiPara->PirDelayTime.Sec); + lv_btnmatrix_set_map(DelayMatrixObj, DelayMap); lv_btnmatrix_set_focused_btn(DelayMatrixObj, DelayIndex); - lv_btnmatrix_set_map(DelayMatrixObj, DelayMap); + + lv_obj_set_x(DelayImage, (96 + ((32 + 16) / 2) * DelayIndex)); } void show_Delay_page(lv_obj_t* obj) { + if(DelayMatrixObj != NULL || DelayImage != NULL || DelayLabel != NULL) + { + DBG_ERR("Operating Time component is initialized"); + return; + } + DelayIndex = 0; init_Matrix_style(); UIMenuStoreInfo *puiPara = sf_ui_para_get(); - // if(!puiPara->PirDelaySwitch) - // { - // puiPara->PirDelayTime.Hour = 0; - // puiPara->PirDelayTime.Min = 0; - // puiPara->PirDelayTime.Sec = 30; - // } snprintf(DelayHHBuf, 3, "%02d", puiPara->PirDelayTime.Hour); snprintf(DelayMMBuf, 3, "%02d", puiPara->PirDelayTime.Min); snprintf(DelaySSBuf, 3, "%02d", puiPara->PirDelayTime.Sec); @@ -549,41 +558,65 @@ void show_Delay_page(lv_obj_t* obj) lv_obj_set_hidden(DelayMatrixObj, false); lv_obj_set_click(DelayMatrixObj, true); lv_obj_set_drag(DelayMatrixObj, false); - lv_obj_set_pos(DelayMatrixObj, 92, 58); - lv_obj_set_size(DelayMatrixObj, 136, 140); + lv_obj_set_pos(DelayMatrixObj, 96, 108); + lv_obj_set_size(DelayMatrixObj, 128, 24); lv_btnmatrix_set_map(DelayMatrixObj, DelayMap); lv_btnmatrix_set_one_check(DelayMatrixObj, true); lv_btnmatrix_set_align(DelayMatrixObj, LV_LABEL_ALIGN_CENTER); lv_btnmatrix_set_focused_btn(DelayMatrixObj,0); lv_btnmatrix_set_one_check(DelayMatrixObj, false); + lv_btnmatrix_set_btn_width(DelayMatrixObj, 0, 2); + lv_btnmatrix_set_btn_width(DelayMatrixObj, 2, 2); + lv_btnmatrix_set_btn_width(DelayMatrixObj, 4, 2); lv_obj_add_style(DelayMatrixObj, 0, &gMatrixStylebg); lv_obj_add_style(DelayMatrixObj, 1, &gMatrixStylebtn); + + DelayImage = lv_img_create(obj, NULL); + lv_obj_set_hidden(DelayImage, false); + lv_obj_set_click(DelayImage, false); + lv_obj_set_drag(DelayImage, false); + lv_obj_set_pos(DelayImage, 96, 78); + lv_obj_set_size(DelayImage, 32, 88); + lv_img_set_src(DelayImage, &sf_pwd_down_up); + + DelayLabel = lv_label_create(obj, NULL); + lv_label_set_text(DelayLabel, "HH : MM : SS"); + lv_label_set_align(DelayLabel, LV_LABEL_ALIGN_CENTER); + lv_obj_set_pos(DelayLabel, 100, 155); + lv_obj_set_size(DelayLabel, 128, 21); + lv_obj_add_style(DelayLabel, 0, &gStyleLabel0); } void hidde_Delay_page(void) { + printf("[%s]\n", __FUNCTION__); + DelayIndex = 0; if(DelayMatrixObj) { lv_obj_del(DelayMatrixObj); + DelayMatrixObj = NULL; + } + if(DelayImage) + { + lv_obj_del(DelayImage); + DelayImage = NULL; + } + if(DelayLabel) + { + lv_obj_del(DelayLabel); + DelayLabel = NULL; } } void Option_Delay_Key(lv_obj_t* obj, uint32_t key) { - if(DelayMatrixObj == NULL) - { - printf("DelayMatrixObj is NULL"); - return; - } + printf("[%s]key:%d\n", __FUNCTION__, key); - // char result[2]; UIMenuStoreInfo *puiPara = sf_ui_para_get(); - printf("key:%d\n",key); switch(key) { case LV_USER_KEY_NEXT: - printf("\033[33m[Option_Sensitivity_Key]s\033[0m\n"); if(DelayIndex == 0) { if(puiPara->PirDelayTime.Hour > 0 && puiPara->PirDelayTime.Hour <= 23) @@ -610,7 +643,6 @@ void Option_Delay_Key(lv_obj_t* obj, uint32_t key) update_Delay_msg(obj); break; case LV_USER_KEY_PREV: - printf("\033[33m[Option_Sensitivity_Key]w\033[0m\n"); if(DelayIndex == 0) { if(puiPara->PirDelayTime.Hour >= 23) @@ -637,17 +669,14 @@ void Option_Delay_Key(lv_obj_t* obj, uint32_t key) update_Delay_msg(obj); break; case LV_USER_KEY_LEFT: - printf("\033[33m[Option_Sensitivity_Key]a\033[0m\n"); DelayIndex = (DelayIndex - 2 + 6) % 6; update_Delay_msg(obj); break; case LV_USER_KEY_RIGHT: - printf("\033[33m[Option_Sensitivity_Key]d\033[0m\n"); DelayIndex = (DelayIndex + 2) % 6; update_Delay_msg(obj); break; case LV_KEY_ENTER: - printf("\033[33m[Option_Sensitivity_Key]SELECT\033[0m\n"); puiPara->PirDelaySwitch = 1; lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); hidde_Delay_page(); @@ -657,6 +686,77 @@ void Option_Delay_Key(lv_obj_t* obj, uint32_t key) } } +void Option_Delay_Key_Long_Press(lv_obj_t* obj, uint32_t key) +{ + printf("[%s]key:%d\n", __FUNCTION__, key); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + switch(key) + { + case LV_USER_KEY_NEXT: + if(DelayIndex == 0) + { + if(puiPara->PirDelayTime.Hour > 0 && puiPara->PirDelayTime.Hour <= 23) + puiPara->PirDelayTime.Hour--; + else + puiPara->PirDelayTime.Hour = 23; + } + else if(DelayIndex == 2) + { + if(puiPara->PirDelayTime.Min > 0 && puiPara->PirDelayTime.Min <= 59) + puiPara->PirDelayTime.Min--; + else + puiPara->PirDelayTime.Min = 59; + } + else if(DelayIndex == 4) + { + if(puiPara->PirDelayTime.Sec > 0 && puiPara->PirDelayTime.Sec <= 59) + puiPara->PirDelayTime.Sec--; + else + puiPara->PirDelayTime.Sec = 59; + } + if(puiPara->PirDelayTime.Min == 0 && (puiPara->PirDelayTime.Sec >= 0 && puiPara->PirDelayTime.Sec < 5)) + puiPara->PirDelayTime.Sec = 59; + update_Delay_msg(obj); + break; + case LV_USER_KEY_PREV: + if(DelayIndex == 0) + { + if(puiPara->PirDelayTime.Hour >= 23) + puiPara->PirDelayTime.Hour = 0; + else + puiPara->PirDelayTime.Hour++; + } + else if(DelayIndex == 2) + { + if(puiPara->PirDelayTime.Min >= 59) + puiPara->PirDelayTime.Min = 0; + else + puiPara->PirDelayTime.Min++; + } + else if(DelayIndex == 4) + { + if(puiPara->PirDelayTime.Sec == 59) + puiPara->PirDelayTime.Sec = 0; + else + puiPara->PirDelayTime.Sec++; + } + if(puiPara->PirDelayTime.Min == 0 && (puiPara->PirDelayTime.Sec >= 0 && puiPara->PirDelayTime.Sec < 5)) + puiPara->PirDelayTime.Sec = 5; + update_Delay_msg(obj); + break; + case LV_USER_KEY_LEFT: + break; + case LV_USER_KEY_RIGHT: + break; + case LV_KEY_ENTER: + break; + default: + break; + } +} + // -------------------------------------------------------------------------- // Operating Time // -------------------------------------------------------------------------- @@ -684,7 +784,7 @@ static void update_Operating_Time_msg(lv_obj_t* obj) { if(OperatingTimeMatrixObj == NULL || OperatingTimeImage == NULL) { - DBG_ERR("Password component is not initialized"); + DBG_ERR("Operating Time component is not initialized"); return; } @@ -704,7 +804,7 @@ void show_Operating_Time_page(lv_obj_t* obj) { if(OperatingTimeMatrixObj != NULL || OperatingTimeImage != NULL || OperatingTimeLabel != NULL) { - DBG_ERR("Password component is initialized"); + DBG_ERR("Operating Time component is initialized"); return; } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h index cb4e59d21..a68e147b4 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.h @@ -22,6 +22,7 @@ extern void hidde_DateTime_page(void); extern void Option_Sensitivity_Key(lv_obj_t* obj, uint32_t key); extern void Option_Delay_Key(lv_obj_t* obj, uint32_t key); +extern void Option_Delay_Key_Long_Press(lv_obj_t* obj, uint32_t key); extern void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key); extern void Option_Operating_Time_Key_Long_Press(lv_obj_t* obj, uint32_t key); extern void Option_DateTime_Key(lv_obj_t* obj, uint32_t key); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index 63ce519cd..3b503c6f7 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -860,6 +860,11 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) if(KeyPressingTimeMs > 1 * 1000) Option_Camera_Name_Key_Long_Press(obj, *key); break; + case IDM_DELAY: + KeyPressingTimeMs += LONG_PRESS_INTERVAL; + if(KeyPressingTimeMs > 1 * 1000) + Option_Delay_Key_Long_Press(obj, *key); + break; case IDM_OPERATING_TIME: KeyPressingTimeMs += LONG_PRESS_INTERVAL; if(KeyPressingTimeMs > 1 * 1000)