From 74062bd8312f6a09ac1be16baca5b39371417aa6 Mon Sep 17 00:00:00 2001 From: zyj Date: Sat, 21 Oct 2023 15:05:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90General=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E7=9A=84Operating=20Time=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UIFlowMenuCommonItem/MenuGeneral.c | 177 +++++++++++++++++- .../UIFlowMenuCommonItem/MenuGeneral.h | 3 + .../UIFlowMenuCommonOptionEventCallback.c | 56 +++--- 3 files changed, 200 insertions(+), 36 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 465684c5e..58ad4b65f 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 @@ -518,4 +518,179 @@ void Option_Delay_Key(lv_obj_t* obj, uint32_t key) default: break; } -} \ No newline at end of file +} + +// -------------------------------------------------------------------------- +// Operating Time +// -------------------------------------------------------------------------- +static int OperatingTimeIndex = 0; +static lv_obj_t* OperatingTimeMatrixObj = NULL; +static char OperatingTimeHHBuf1[3] = "00"; +static char OperatingTimeMMBuf1[3] = "00"; +static char OperatingTimeHHBuf2[3] = "00"; +static char OperatingTimeMMBuf2[3] = "00"; +static const char* OperatingTimeMap[8] = +{ + OperatingTimeHHBuf1, + ":", + OperatingTimeMMBuf1, + " ", + OperatingTimeHHBuf2, + ":", + OperatingTimeMMBuf2, + "" +}; + +static void update_Operating_Time_msg(lv_obj_t* obj) +{ + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + snprintf(OperatingTimeHHBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Hour); + snprintf(OperatingTimeMMBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Min); + snprintf(OperatingTimeHHBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Hour); + snprintf(OperatingTimeMMBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Min); + + lv_btnmatrix_set_focused_btn(OperatingTimeMatrixObj, OperatingTimeIndex); +} + +void show_Operating_Time_page(lv_obj_t* obj) +{ + OperatingTimeIndex = 0; + + init_Matrix_style(); + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(!puiPara->WorkTime1Switch) + { + puiPara->WorkTime[0].StartTime.Hour = 0; + puiPara->WorkTime[0].StartTime.Min = 0; + puiPara->WorkTime[0].StopTime.Hour = 0; + puiPara->WorkTime[0].StopTime.Min = 0; + } + snprintf(OperatingTimeHHBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Hour); + snprintf(OperatingTimeMMBuf1, 3, "%02d", puiPara->WorkTime[0].StartTime.Min); + snprintf(OperatingTimeHHBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Hour); + snprintf(OperatingTimeMMBuf2, 3, "%02d", puiPara->WorkTime[0].StopTime.Min); + + OperatingTimeMatrixObj = lv_btnmatrix_create(obj, NULL); + lv_obj_set_hidden(OperatingTimeMatrixObj, false); + lv_obj_set_click(OperatingTimeMatrixObj, true); + lv_obj_set_drag(OperatingTimeMatrixObj, false); + lv_obj_set_pos(OperatingTimeMatrixObj, 65, 58); + lv_obj_set_size(OperatingTimeMatrixObj, 190, 140); + lv_btnmatrix_set_map(OperatingTimeMatrixObj, OperatingTimeMap); + lv_btnmatrix_set_one_check(OperatingTimeMatrixObj, true); + lv_btnmatrix_set_align(OperatingTimeMatrixObj, LV_LABEL_ALIGN_CENTER); + lv_btnmatrix_set_focused_btn(OperatingTimeMatrixObj,0); + lv_btnmatrix_set_one_check(OperatingTimeMatrixObj, false); + lv_obj_add_style(OperatingTimeMatrixObj, 0, &gMatrixStylebg); + lv_obj_add_style(OperatingTimeMatrixObj, 1, &gMatrixStylebtn); +} + +void hidde_Operating_Time_page(void) +{ + if(OperatingTimeMatrixObj) + { + lv_obj_del(OperatingTimeMatrixObj); + } +} + +void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key) +{ + if(OperatingTimeMatrixObj == NULL) + { + printf("OperatingTimeMatrixObj is NULL"); + return; + } + + // 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_Operating_Time_Key]s\033[0m\n"); + if(OperatingTimeIndex == 0) + { + if(puiPara->WorkTime[0].StartTime.Hour > 0 && puiPara->WorkTime[0].StartTime.Hour <= 23) + puiPara->WorkTime[0].StartTime.Hour--; + else + puiPara->WorkTime[0].StartTime.Hour = 23; + } + else if(OperatingTimeIndex == 2) + { + if(puiPara->WorkTime[0].StartTime.Min > 0 && puiPara->WorkTime[0].StartTime.Min <= 59) + puiPara->WorkTime[0].StartTime.Min--; + else + puiPara->WorkTime[0].StartTime.Min = 59; + } + else if(OperatingTimeIndex == 4) + { + if(puiPara->WorkTime[0].StopTime.Hour > 0 && puiPara->WorkTime[0].StopTime.Hour <= 23) + puiPara->WorkTime[0].StopTime.Hour--; + else + puiPara->WorkTime[0].StopTime.Hour = 23; + } + else if(OperatingTimeIndex == 6) + { + if(puiPara->WorkTime[0].StopTime.Min > 0 && puiPara->WorkTime[0].StopTime.Min <= 59) + puiPara->WorkTime[0].StopTime.Min--; + else + puiPara->WorkTime[0].StopTime.Min = 59; + } + update_Operating_Time_msg(obj); + break; + case LV_USER_KEY_PREV: + printf("\033[33m[Option_Operating_Time_Key]w\033[0m\n"); + if(OperatingTimeIndex == 0) + { + if(puiPara->WorkTime[0].StartTime.Hour >= 23) + puiPara->WorkTime[0].StartTime.Hour = 0; + else + puiPara->WorkTime[0].StartTime.Hour++; + } + else if(OperatingTimeIndex == 2) + { + if(puiPara->WorkTime[0].StartTime.Min >= 59) + puiPara->WorkTime[0].StartTime.Min = 0; + else + puiPara->WorkTime[0].StartTime.Min++; + } + else if(OperatingTimeIndex == 4) + { + if(puiPara->WorkTime[0].StopTime.Hour >= 23) + puiPara->WorkTime[0].StopTime.Hour = 0; + else + puiPara->WorkTime[0].StopTime.Hour++; + } + else if(OperatingTimeIndex == 6) + { + if(puiPara->WorkTime[0].StopTime.Min >= 59) + puiPara->WorkTime[0].StopTime.Min = 0; + else + puiPara->WorkTime[0].StopTime.Min++; + } + update_Operating_Time_msg(obj); + break; + case LV_USER_KEY_LEFT: + printf("\033[33m[Option_Operating_Time_Key]a\033[0m\n"); + OperatingTimeIndex = (OperatingTimeIndex - 2 + 8) % 8; + update_Operating_Time_msg(obj); + break; + case LV_USER_KEY_RIGHT: + printf("\033[33m[Option_Operating_Time_Key]d\033[0m\n"); + OperatingTimeIndex = (OperatingTimeIndex + 2) % 8; + update_Operating_Time_msg(obj); + break; + case LV_KEY_ENTER: + printf("\033[33m[Option_Operating_Time_Key]SELECT\033[0m\n"); + puiPara->WorkTime1Switch = 1; + lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); + hidde_Operating_Time_page(); + break; + default: + break; + } +} + 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 bc53dc87b..1a21e98fd 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 @@ -8,8 +8,11 @@ extern void show_Sensitivity_page(lv_obj_t* obj); extern void hidde_Sensitivity_page(void); extern void show_Delay_page(lv_obj_t* obj); extern void hidde_Delay_page(void); +extern void show_Operating_Time_page(lv_obj_t* obj); +extern void hidde_Operating_Time_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_Operating_Time_Key(lv_obj_t* obj, uint32_t key); #endif 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 21040eac5..47f2a8d23 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 @@ -81,6 +81,9 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj) } #endif +// -------------------------------------------------------------------------- +// Secondary interface is other display +// -------------------------------------------------------------------------- #define MESSAGE_ITEM_TRUE 1 #define MESSAGE_ITEM_FALSE 0 static int is_message_item(lv_obj_t* obj) @@ -121,44 +124,11 @@ static int is_message_item(lv_obj_t* obj) } case IDM_CAMERA_MODE: - { - printf("[is_message_item]IDM_CAMERA_MODE\n"); - // for (i = 0; i < pItem->Count; i++) { - // //check option if disable - // TM_CheckOptionStatus(pMenu, &itemIndex, TRUE); - // if(itemIndex > pItem->Count){ - // break; - // } - // enableIndex[i] = itemIndex; - // //DBG_DUMP("%s enableIndex=%d :%d\r\n", __func__,i,enableIndex[i]); - // OptionEN_Num = i; - // if(enableIndex[i] == SelOption){ - // Selindex = i; - // } - // itemIndex++; - // } - return MESSAGE_ITEM_FALSE; - } case IDM_IMAGE_SIZE: - { - printf("[is_message_item]IDM_IMAGE_SIZE\n"); - return MESSAGE_ITEM_FALSE; - } case IDM_VIDEO_SIZE: - { - printf("[is_message_item]IDM_VIDEO_SIZE\n"); - return MESSAGE_ITEM_FALSE; - } case IDM_VIDEA_LENGTH: - { - printf("[is_message_item]IDM_VIDEA_LENGTH\n"); - return MESSAGE_ITEM_FALSE; - } case IDM_FLASH_POWER: - { - printf("[is_message_item]IDM_FLASH_POWER\n"); - return MESSAGE_ITEM_FALSE; - } + break; case IDM_SENSITIVITY: { printf("[is_message_item]IDM_SENSITIVITY\n"); @@ -587,9 +557,13 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) if (pItem->ItemId == IDM_LANGUAGE) { } + // -------------------------------------------------------------------------- + // 3th interface is other display + // -------------------------------------------------------------------------- if((pItem->ItemId == IDM_PASSWORD || pItem->ItemId == IDM_CAMERA_NAME || - pItem->ItemId == IDM_DELAY) + pItem->ItemId == IDM_DELAY || + pItem->ItemId == IDM_OPERATING_TIME) && pOption->TextId == IDS_CAMERA_NAME_ON) { lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); @@ -605,6 +579,9 @@ static void LV_MenuOption_OnSelected(lv_obj_t* obj) case IDM_DELAY: show_Delay_page(obj); break; + case IDM_OPERATING_TIME: + show_Operating_Time_page(obj); + break; default: break; } @@ -849,6 +826,15 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event) } break; case IDM_OPERATING_TIME: + if(isSetting) + { + Option_Operating_Time_Key(obj, *key); + } + else + { + UIFlowMenuCommonOption_Key(obj, *key); + } + break; case IDM_FORMAT_SD: case IDM_DATE_AND_TIME: break;