完成General页面的Operating Time功能
This commit is contained in:
		
							parent
							
								
									5bad061dfb
								
							
						
					
					
						commit
						74062bd831
					
				| 
						 | 
				
			
			@ -518,4 +518,179 @@ void Option_Delay_Key(lv_obj_t* obj, uint32_t key)
 | 
			
		|||
  default:
 | 
			
		||||
    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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user