1.General Page parameter save

2.Complete CamInfo Option
This commit is contained in:
zyj 2023-10-19 11:18:54 +08:00
parent 07e0c59ab9
commit 9313451aa3
5 changed files with 404 additions and 16 deletions

View File

@ -22,11 +22,11 @@ TMDEF_BEGIN_OPTIONS(VIDEA_LENGTH)
TMDEF_OPTION_TEXT_S(VIDEA_LENGTH_10S, TM_OPTION_ENABLE)
TMDEF_OPTION_TEXT_S(VIDEA_LENGTH_15S, TM_OPTION_ENABLE)
TMDEF_END_OPTIONS()
TMDEF_BEGIN_OPTIONS(NIGHT_MODE)
TMDEF_OPTION_TEXT_S(NIGHT_MODE_MAX_RANGE, TM_OPTION_ENABLE)
TMDEF_OPTION_TEXT_S(NIGHT_MODE_BALANCE, TM_OPTION_ENABLE)
TMDEF_OPTION_TEXT_S(NIGHT_MODE_MINBLUR, TM_OPTION_ENABLE)
TMDEF_END_OPTIONS()
// TMDEF_BEGIN_OPTIONS(NIGHT_MODE)
// TMDEF_OPTION_TEXT_S(NIGHT_MODE_MAX_RANGE, TM_OPTION_ENABLE)
// TMDEF_OPTION_TEXT_S(NIGHT_MODE_BALANCE, TM_OPTION_ENABLE)
// TMDEF_OPTION_TEXT_S(NIGHT_MODE_MINBLUR, TM_OPTION_ENABLE)
// TMDEF_END_OPTIONS()
TMDEF_BEGIN_OPTIONS(FLASH_POWER)
TMDEF_OPTION_TEXT_S(FLASH_POWER_HIGH, TM_OPTION_ENABLE)
TMDEF_OPTION_TEXT_S(FLASH_POWER_LOW, TM_OPTION_ENABLE)
@ -55,7 +55,7 @@ TMDEF_ITEM_TEXTID(CAMERA_MODE)
TMDEF_ITEM_TEXTID(IMAGE_SIZE)
TMDEF_ITEM_TEXTID(VIDEO_SIZE)
TMDEF_ITEM_TEXTID(VIDEA_LENGTH)
TMDEF_ITEM_TEXTID(NIGHT_MODE)
// TMDEF_ITEM_TEXTID(NIGHT_MODE)
TMDEF_ITEM_TEXTID(FLASH_POWER)
TMDEF_ITEM_TEXTID(SENSITIVITY)
TMDEF_ITEM_TEXTID(DELAY)

View File

@ -1,6 +1,7 @@
// #include "MenuQR.h"
#include "PrjInc.h"
#include "UIWnd/UIFlow.h"
#include "UIFlowLVGL/UIFlowLVGL.h"
#include "lvgl/src/lv_lib_qrcode/lv_qrcode.h"
TMDEF_BEGIN_OPTIONS(NETWORK_SELECTION)
TMDEF_OPTION_TEXT_S(END, TM_OPTION_ENABLE)
@ -124,4 +125,243 @@ void hidde_qr_picture_page(void)
{
lv_obj_del(label);
}
}
}
static int CameraInfoIndex = 0;
static lv_obj_t *CameraInfolabel = NULL;
static int CameraInfoisHidden = 1;
static lv_obj_t *CameraInfoTabLabel = NULL;
static lv_obj_t * btnm = NULL;
void update_Camera_Info_msg(lv_obj_t* obj)
{
static lv_style_t LabelStyle = {0};
static lv_style_t FocusedLabelStyle = {0};
if(NULL == CameraInfolabel)
{
lv_color_t color = {0};
lv_style_init(&LabelStyle);
STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&LabelStyle, LV_STATE_DEFAULT, color);
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&LabelStyle, LV_STATE_DEFAULT, color);
lv_style_set_text_font(&LabelStyle,LV_STATE_DEFAULT,&sf_ui_text_medium_18_8bpp);
lv_style_set_text_line_space(&LabelStyle, LV_STATE_DEFAULT, 4);
lv_style_copy(&FocusedLabelStyle, &LabelStyle);
STYLE_COLOR_PROP(0x10, 0x95, 0xC9, 0x3D) ; lv_style_set_text_color(&FocusedLabelStyle, LV_STATE_DEFAULT, color);
CameraInfolabel = lv_label_create(obj, NULL);
lv_label_set_text(CameraInfolabel, "");
lv_obj_set_pos(CameraInfolabel, 10, 45);
lv_obj_set_width(CameraInfolabel, 300);
lv_obj_add_style(CameraInfolabel, 0, &LabelStyle);
// CameraInfoTabLabel = lv_label_create(obj, NULL);
// // lv_obj_set_style_local_text_color(CameraInfoTabLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xffffff));
// lv_label_set_recolor(CameraInfoTabLabel, true);
// lv_label_set_text(CameraInfoTabLabel, "#ff 1# #ffff 2# #ffffff 3#");
// // lv_obj_set_pos(CameraInfoTabLabel, 10, 210);
// lv_obj_set_width(CameraInfolabel, 300);
// lv_obj_align(CameraInfoTabLabel, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
// lv_obj_add_style(CameraInfoTabLabel, 0, &FocusedLabelStyle);
// lv_obj_set_width(CameraInfoTabLabel, 320);
// lv_obj_set_style_text_align(CameraInfoTabLabel, LV_TXT_FLAG_CENTER, LV_STATE_DEFAULT);//ALIGN_LEFT/RIGHT/CENTER
// lv_label_set_align(CameraInfoTabLabel, LV_LABEL_ALIGN_CENTER);
}
UIMenuStoreInfo *puiPara = sf_ui_para_get();
char CamInfoStr[256] = {0};
char tmpStr[64] = {0};
if(CameraInfoIndex == 0)
{
for(int i=0;i<6;i++)
{
memset(tmpStr, 0, sizeof(tmpStr));
switch(i)
{
case 0:
strcat(CamInfoStr, "Ver:R5.0\n");
break;
case 1:
if(!CameraInfoisHidden)
{
strcat(CamInfoStr, "7MR5RCwD801\n");
}
else if(puiPara->QLogSwitch)
{
strcat(CamInfoStr, "Qlog ON\n");
}
else
{
strcat(CamInfoStr, "Qlog OFF\n");
}
break;
case 2:
sprintf(tmpStr, "IMEI:%s\n", puiPara->ModuleImei);
strcat(CamInfoStr, tmpStr);
break;
case 3:
sprintf(tmpStr, "MCU:\n");
strcat(CamInfoStr, tmpStr);
break;
case 4:
if(!CameraInfoisHidden)
{
strcat(CamInfoStr, "7MR5RCwD801\n");
}
else if(puiPara->DebugMode)
{
strcat(CamInfoStr, "Debug ON\n");
}
else
{
strcat(CamInfoStr, "Debug OFF\n");
}
break;
case 5:
sprintf(tmpStr, "MOD:\n");
strcat(CamInfoStr, tmpStr);
break;
default:
break;
}
}
}
else if(CameraInfoIndex == 1)
{
for(int i=0;i<5;i++)
{
memset(tmpStr, 0, sizeof(tmpStr));
switch(i)
{
case 0:
sprintf(tmpStr, "ICCID:%s\n", puiPara->SimIccid);
strcat(CamInfoStr, tmpStr);
break;
case 1:
sprintf(tmpStr, "ICCID-A:\n");
strcat(CamInfoStr, tmpStr);
break;
case 2:
sprintf(tmpStr, "ICCID-V:\n");
strcat(CamInfoStr, tmpStr);
break;
case 3:
sprintf(tmpStr, "SSID:%s\n", puiPara->strSSID);
strcat(CamInfoStr, tmpStr);
break;
case 4:
sprintf(tmpStr, "BLE:\n");
strcat(CamInfoStr, tmpStr);
default:
break;
}
}
}
lv_btnmatrix_set_focused_btn(btnm, CameraInfoIndex);
lv_label_set_text(CameraInfolabel, CamInfoStr);
}
void show_Camera_Info_page(lv_obj_t* obj)
{
CameraInfoIndex = 0;
CameraInfoisHidden = 1;
lv_color_t color = {0};
static lv_style_t style_bg;
lv_style_init(&style_bg);
lv_style_set_pad_all(&style_bg, LV_STATE_DEFAULT, 0);
lv_style_set_clip_corner(&style_bg, LV_STATE_DEFAULT, true);
lv_style_set_radius(&style_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
lv_style_set_border_width(&style_bg, LV_STATE_DEFAULT, 0);
color.full = 0x1; lv_style_set_bg_color(&style_bg, LV_STATE_DEFAULT, color);
color.full = 0x1; lv_style_set_bg_color(&style_bg, LV_STATE_FOCUSED, color);
static lv_style_t style_btn;
lv_style_init(&style_btn);
lv_style_set_radius(&style_btn, LV_STATE_DEFAULT, 0);
lv_style_set_border_width(&style_btn, LV_STATE_DEFAULT, 1);
lv_style_set_border_opa(&style_btn, LV_STATE_DEFAULT, LV_OPA_50);
lv_style_set_border_side(&style_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_INTERNAL);
lv_style_set_radius(&style_btn, LV_STATE_DEFAULT, 0);
color.full = 0x1; lv_style_set_bg_color(&style_btn, LV_STATE_DEFAULT, color);
color.full = 0x1; lv_style_set_bg_color(&style_btn, LV_STATE_FOCUSED, color);
color.full = 0x2; lv_style_set_text_color(&style_btn, LV_STATE_DEFAULT, color);
color.full = 0xc8;lv_style_set_text_color(&style_btn, LV_STATE_FOCUSED, color);
static const char * map[] = {"1", "2", "3", ""};
btnm = lv_btnmatrix_create(lv_scr_act(), NULL);
lv_btnmatrix_set_map(btnm, map);
lv_obj_add_style(btnm, 0, &style_bg);
lv_obj_add_style(btnm, 1, &style_btn);
lv_obj_set_pos(btnm, 10, 210);
lv_obj_set_size(btnm, 225, 35);
lv_btnmatrix_set_btn_ctrl_all(btnm, LV_BTNMATRIX_CTRL_CHECKABLE);
lv_btnmatrix_set_focused_btn(btnm, 0);
update_Camera_Info_msg(obj);
}
void hidde_Camera_Info_page(void)
{
CameraInfoIndex = 0;
CameraInfoisHidden = 0;
if(CameraInfolabel)
{
lv_obj_del(CameraInfolabel);
}
if(CameraInfoTabLabel)
{
lv_obj_del(CameraInfoTabLabel);
}
}
void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key)
{
UIMenuStoreInfo *puiPara = sf_ui_para_get();
printf("key:%d\n",key);
switch(key)
{
case LV_USER_KEY_NEXT:
printf("\033[33m[Option_CAMERA_INFO_Key]s\033[0m\n");
puiPara->QLogSwitch = puiPara->QLogSwitch ? 0 : 1;
update_Camera_Info_msg(obj);
break;
case LV_USER_KEY_PREV:
printf("\033[33m[Option_CAMERA_INFO_Key]w\033[0m\n");
puiPara->DebugMode = puiPara->DebugMode ? 0 : 1;
update_Camera_Info_msg(obj);
break;
case LV_USER_KEY_LEFT:
printf("\033[33m[Option_CAMERA_INFO_Key]a\033[0m\n");
CameraInfoIndex--;
if(CameraInfoIndex < 0)
CameraInfoIndex = 0;
update_Camera_Info_msg(obj);
break;
case LV_USER_KEY_RIGHT:
printf("\033[33m[Option_CAMERA_INFO_Key]d\033[0m\n");
CameraInfoIndex++;
if(CameraInfoIndex > 1)
CameraInfoIndex = 1;
update_Camera_Info_msg(obj);
break;
case LV_USER_KEY_SHUTTER2:
printf("\033[33m[Option_CAMERA_INFO_Key]SELECT\033[0m\n");
lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0));
break;
default:
break;
}
}

View File

@ -6,5 +6,8 @@ extern TM_ITEM gTM_ITEMS_QR[];
extern void show_qr_picture_page(lv_obj_t* obj);
extern void hidde_qr_picture_page(void);
extern void show_Camera_Info_page(lv_obj_t* obj);
extern void hidde_Camera_Info_page(void);
extern void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key);
#endif

View File

@ -330,6 +330,8 @@ void LV_MenuItem_OnOpen(lv_obj_t* obj)
pCurMenu->pPages[3]= gMoreMenu.pPages[0]; //= QR_UI
pCurMenu->Count = 4;
TM_SetMenu(pCurMenu);
pMenu = TM_GetMenu();
@ -438,6 +440,7 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu)
if ((itemIndex == pPage->Count) && (i < PER_PAGE_NUM)) {
// if ((pPage->SelItem >= pPage->Count) && (i < PER_PAGE_NUM)) {
CHKPNT;
lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->TextId);
lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pItem->IconId);
@ -498,6 +501,7 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu)
if(!u_hiddenitem){
if(i == 0){
lv_obj_set_hidden(image_option_01_scr_uiflowmenucommonitem, true);
lv_plugin_label_set_text(label_option_1_scr_uiflowmenucommonitem, pOption->TextId);
@ -525,6 +529,7 @@ static void LV_MenuCommonItem_UpdateContent(TM_MENU *pMenu)
lv_obj_set_hidden(container_option_5_scr_uiflowmenucommonitem, false);
}
}else{
if(i == 0){
lv_obj_set_hidden(container_option_1_scr_uiflowmenucommonitem, true);
lv_plugin_img_set_src(image_option_01_scr_uiflowmenucommonitem, img_id);

View File

@ -87,12 +87,98 @@ static int is_message_item(lv_obj_t* obj)
pItem = &pPage->pItems[pPage->SelItem];
UINT16 itemID = pItem->ItemId;
switch (itemID) {
// case IDM_NETWORK_SELECTION:
// {
// printf("[is_message_item]IDM_NETWORK_SELECTION\n");
// return;
// }
case IDM_QR_PICTURE:
{
printf("Show qr picture.\n");
printf("[is_message_item]IDM_QR_PICTURE\n");
show_qr_picture_page(obj);
return MESSAGE_ITEM_TRUE;
}
// case IDM_PASSWORD:
// {
// printf("[is_message_item]IDM_PASSWORD\n");
// return;
// }
case IDM_CAMERA_INFO:
{
printf("[is_message_item]IDM_CAMERA_INFO\n");
show_Camera_Info_page(obj);
return MESSAGE_ITEM_TRUE;
}
// case IDM_CAMERA_NAME:
// {
// printf("[is_message_item]IDM_CAMERA_NAME\n");
// return;
// }
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;
}
case IDM_SENSITIVITY:
{
printf("[is_message_item]IDM_SENSITIVITY\n");
return MESSAGE_ITEM_TRUE;
}
case IDM_DELAY:
{
printf("[is_message_item]IDM_DELAY\n");
return MESSAGE_ITEM_FALSE;
}
case IDM_OPERATING_TIME:
{
printf("[is_message_item]IDM_OPERATING_TIME\n");
return MESSAGE_ITEM_FALSE;
}
case IDM_FORMAT_SD:
{
printf("[is_message_item]IDM_FORMAT_SD\n");
return MESSAGE_ITEM_TRUE;
}
case IDM_DATE_AND_TIME:
{
printf("[is_message_item]IDM_DATE_AND_TIME\n");
return MESSAGE_ITEM_FALSE;
}
default:
break;
}
@ -107,12 +193,23 @@ static void message_item_close(void)
pItem = &pPage->pItems[pPage->SelItem];
UINT16 itemID = pItem->ItemId;
switch (itemID) {
case IDM_NETWORK_SELECTION:
{
printf("[message_item_close]IDM_NETWORK_SELECTION\n");
return;
}
case IDM_QR_PICTURE:
{
printf("hide qr picture.\n");
hidde_qr_picture_page();
return ;
printf("[message_item_close]IDM_QR_PICTURE\n");
hidde_qr_picture_page();
return;
}
// case IDM_NETWORK_SELECTION:
// {
// printf("[message_item_close]IDM_NETWORK_SELECTION\n");
// return;
// }
default:
break;
}
@ -207,6 +304,7 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu)
else
{
lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true);
return;
}
#endif
//find startIndex
@ -242,18 +340,18 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu)
pOption = &pItem->pOptions[enableIndex[i + (Selindex * OPTION_PAGE_NUM)]];
if (((enableIndex[i + (Selindex * OPTION_PAGE_NUM)]) > (pItem->Count -1)) && (i < OPTION_PAGE_NUM)) {
lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId);
//lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId);
lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, true);
ui_hidden = true;
}else if((i + (Selindex * OPTION_PAGE_NUM)) > OptionEN_Num){
lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId);
//lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId);
lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, true);
ui_hidden = true;
}else{
lv_plugin_menu_set_item_string_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId);
//lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->IconId);
lv_plugin_menu_set_item_img_id(menu_item, i, LV_PLUGIN_MENU_ITEM_STATE_DISABLED, pOption->IconId);
lv_plugin_menu_set_item_hidden(menu_item, i, false);
ui_hidden = true;
if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] == SelOption){
@ -599,32 +697,43 @@ static void UIFlowMenuCommonOption_Key(lv_obj_t* obj, uint32_t key)
void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event)
{
TM_MENU* pMenu = TM_GetMenu();
TM_PAGE* pPage;
TM_ITEM* pItem;
pPage = &pMenu->pPages[pMenu->SelPage];
pItem = &pPage->pItems[pPage->SelItem];
UINT16 itemID = pItem->ItemId;
switch(event)
{
case LV_PLUGIN_EVENT_SCR_OPEN:
{
printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_PLUGIN_EVENT_SCR_OPEN\033[0m\n");
UIFlowMenuCommonOption_ScrOpen(obj, lv_event_get_data());
break;
}
case LV_PLUGIN_EVENT_SCR_CLOSE:
{
printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_PLUGIN_EVENT_SCR_CLOSE\033[0m\n");
UIFlowMenuCommonOption_ScrClose(obj);
break;
}
case LV_PLUGIN_EVENT_CHILD_SCR_CLOSE:
{
printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_PLUGIN_EVENT_CHILD_SCR_CLOSE\033[0m\n");
UIFlowMenuCommonOption_ChildScrClose(obj);
break;
}
case LV_EVENT_PRESSED:
printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_PRESSED\033[0m\n");
lv_plugin_menu_set_selected_item_pressed(menu_item);
break;
case LV_EVENT_RELEASED:
printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_RELEASED\033[0m\n");
lv_plugin_menu_set_selected_item_released(menu_item);
break;
@ -638,7 +747,38 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event)
uint32_t* key = (uint32_t*)lv_event_get_data();
printf("\033[33m[UIFlowMenuCommonOptionEventCallback]LV_EVENT_KEY key:%d\033[0m\n", *key);
/* handle key event */
UIFlowMenuCommonOption_Key(obj, *key);
switch(itemID)
{
case IDM_NETWORK_SELECTION:
break;
case IDM_QR_PICTURE:
UIFlowMenuCommonOption_Key(obj, *key);
break;
case IDM_PASSWORD:
break;
case IDM_CAMERA_INFO:
Option_CAMERA_INFO_Key(obj, *key);
break;
case IDM_CAMERA_NAME:
break;
case IDM_CAMERA_MODE:
case IDM_IMAGE_SIZE:
case IDM_VIDEO_SIZE:
case IDM_VIDEA_LENGTH:
case IDM_FLASH_POWER:
UIFlowMenuCommonOption_Key(obj, *key);
break;
case IDM_SENSITIVITY:
case IDM_DELAY:
case IDM_OPERATING_TIME:
case IDM_FORMAT_SD:
case IDM_DATE_AND_TIME:
break;
default:
break;
}
/***********************************************************************************