完成General页面的Operating Time功能

This commit is contained in:
zyj 2023-10-21 15:05:41 +08:00
parent 5bad061dfb
commit 74062bd831
3 changed files with 200 additions and 36 deletions

View File

@ -519,3 +519,178 @@ void Option_Delay_Key(lv_obj_t* obj, uint32_t key)
break; break;
} }
} }
// --------------------------------------------------------------------------
// 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;
}
}

View File

@ -8,8 +8,11 @@ extern void show_Sensitivity_page(lv_obj_t* obj);
extern void hidde_Sensitivity_page(void); extern void hidde_Sensitivity_page(void);
extern void show_Delay_page(lv_obj_t* obj); extern void show_Delay_page(lv_obj_t* obj);
extern void hidde_Delay_page(void); 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_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(lv_obj_t* obj, uint32_t key);
extern void Option_Operating_Time_Key(lv_obj_t* obj, uint32_t key);
#endif #endif

View File

@ -81,6 +81,9 @@ static void UIFlowMenuCommonOption_CloseScr(lv_obj_t* obj)
} }
#endif #endif
// --------------------------------------------------------------------------
// Secondary interface is other display
// --------------------------------------------------------------------------
#define MESSAGE_ITEM_TRUE 1 #define MESSAGE_ITEM_TRUE 1
#define MESSAGE_ITEM_FALSE 0 #define MESSAGE_ITEM_FALSE 0
static int is_message_item(lv_obj_t* obj) 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: 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: case IDM_IMAGE_SIZE:
{
printf("[is_message_item]IDM_IMAGE_SIZE\n");
return MESSAGE_ITEM_FALSE;
}
case IDM_VIDEO_SIZE: case IDM_VIDEO_SIZE:
{
printf("[is_message_item]IDM_VIDEO_SIZE\n");
return MESSAGE_ITEM_FALSE;
}
case IDM_VIDEA_LENGTH: case IDM_VIDEA_LENGTH:
{
printf("[is_message_item]IDM_VIDEA_LENGTH\n");
return MESSAGE_ITEM_FALSE;
}
case IDM_FLASH_POWER: case IDM_FLASH_POWER:
{ break;
printf("[is_message_item]IDM_FLASH_POWER\n");
return MESSAGE_ITEM_FALSE;
}
case IDM_SENSITIVITY: case IDM_SENSITIVITY:
{ {
printf("[is_message_item]IDM_SENSITIVITY\n"); 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) { if (pItem->ItemId == IDM_LANGUAGE) {
} }
// --------------------------------------------------------------------------
// 3th interface is other display
// --------------------------------------------------------------------------
if((pItem->ItemId == IDM_PASSWORD || if((pItem->ItemId == IDM_PASSWORD ||
pItem->ItemId == IDM_CAMERA_NAME || pItem->ItemId == IDM_CAMERA_NAME ||
pItem->ItemId == IDM_DELAY) pItem->ItemId == IDM_DELAY ||
pItem->ItemId == IDM_OPERATING_TIME)
&& pOption->TextId == IDS_CAMERA_NAME_ON) && pOption->TextId == IDS_CAMERA_NAME_ON)
{ {
lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); 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: case IDM_DELAY:
show_Delay_page(obj); show_Delay_page(obj);
break; break;
case IDM_OPERATING_TIME:
show_Operating_Time_page(obj);
break;
default: default:
break; break;
} }
@ -849,6 +826,15 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event)
} }
break; break;
case IDM_OPERATING_TIME: case IDM_OPERATING_TIME:
if(isSetting)
{
Option_Operating_Time_Key(obj, *key);
}
else
{
UIFlowMenuCommonOption_Key(obj, *key);
}
break;
case IDM_FORMAT_SD: case IDM_FORMAT_SD:
case IDM_DATE_AND_TIME: case IDM_DATE_AND_TIME:
break; break;