完善CamName功能

This commit is contained in:
zyj 2023-11-08 17:46:58 +08:00
parent 109a593348
commit f0e25f7fbf
4 changed files with 163 additions and 124 deletions

View File

@ -80,6 +80,7 @@ int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam)
{
uwItemId = LO_WORD(uiParam);
uwOption = HI_WORD(uiParam);
printf("[%s] uwOption:%d uwItemId:%d\n", __FUNCTION__, uwOption, uwItemId);
switch (uwItemId)
{
case IDM_NETWORK_SELECTION:
@ -98,8 +99,13 @@ int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam)
}
case IDM_CAMERA_NAME:
{
// puiPara->CamNameSwitch
puiPara->CamNameSwitch = uwOption == 0 ? SF_CAMID_OFF : SF_CAMID_ON;
SF_CAMID_E tmpSelected = (uwOption == 0) ? SF_CAMID_OFF : SF_CAMID_ON;
if(tmpSelected != puiPara->CamNameSwitch)
{
puiPara->CamNameSwitch = tmpSelected;
memset(puiPara ->CamNameStr,'\0', sizeof(puiPara ->CamNameStr));
sprintf(puiPara ->CamNameStr, "%s", "REVE");
}
break;
}
default:
@ -837,6 +843,7 @@ static void update_Camera_Info_msg(lv_obj_t* obj)
if(CameraInfolabel == NULL || btnm == NULL)
{
DBG_ERR("Camera Info component is not initialized");
return;
}
UIMenuStoreInfo *puiPara = sf_ui_para_get();
@ -953,6 +960,7 @@ void show_Camera_Info_page(lv_obj_t* obj)
if(CameraInfolabel != NULL || btnm != NULL || CameraInfoImage != NULL)
{
DBG_ERR("Camera Info component is initialized");
return;
}
CameraInfoIndex = 0;
@ -995,7 +1003,7 @@ void show_Camera_Info_page(lv_obj_t* obj)
void hidde_Camera_Info_page(void)
{
printf("[hidde_Camera_Info_page]\n");
printf("[%s]\n", __FUNCTION__);
CameraInfoIndex = 0;
CameraInfoisHidden = 1;
CameraInfoQlogisHidden = 1;
@ -1090,187 +1098,212 @@ void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key)
// --------------------------------------------------------------------------
// Camera Name
// --------------------------------------------------------------------------
static int CameraNameIndex = 0;
static char charMap[37] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', ' '};
static lv_obj_t* CameraNameArray[4];
static int CameraNameIndex = 0;
static lv_obj_t* CameraNameMatrixObj = NULL;
static lv_obj_t* CameraNameImage = NULL;
static char CameraNameBuf1[2] = {'0', 0};
static char CameraNameBuf2[2] = {'0', 0};
static char CameraNameBuf3[2] = {'0', 0};
static char CameraNameBuf4[2] = {'0', 0};
static const char* CameraNameMap[7] =
{
CameraNameBuf1,
CameraNameBuf2,
CameraNameBuf3,
CameraNameBuf4,
""
};
static void update_Camera_Name_msg(lv_obj_t* obj)
{
if(CameraNameMatrixObj == NULL)
{
DBG_ERR("Camera Name component is not initialized");
return;
}
UIMenuStoreInfo *puiPara = sf_ui_para_get();
snprintf(CameraNameBuf1, 2, "%c", puiPara->CamNameStr[0]);
snprintf(CameraNameBuf2, 2, "%c", puiPara->CamNameStr[1]);
snprintf(CameraNameBuf3, 2, "%c", puiPara->CamNameStr[2]);
snprintf(CameraNameBuf4, 2, "%c", puiPara->CamNameStr[3]);
lv_btnmatrix_set_map(CameraNameMatrixObj, CameraNameMap);
lv_btnmatrix_set_focused_btn(CameraNameMatrixObj, CameraNameIndex);
lv_obj_set_x(CameraNameImage, (96 + 32 * CameraNameIndex));
}
void show_Camera_Name_page(lv_obj_t* obj)
{
char result[2];
UIMenuStoreInfo *puiPara = sf_ui_para_get();
lv_color_t color = {0};
if(CameraNameMatrixObj != NULL || CameraNameImage != NULL)
{
DBG_ERR("Camera Name component is initialized");
return;
}
CameraNameIndex = 0;
// lv_style_t Camera_Name_style;
// lv_style_init(&Camera_Name_style);
// lv_style_set_radius(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_pad_top(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_pad_bottom(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_pad_left(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_pad_right(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_pad_inner(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_bg_opa(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_border_width(&Camera_Name_style,LV_STATE_DEFAULT,0);
// lv_style_set_text_font(&Camera_Name_style,LV_STATE_FOCUSED|LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp);
// STYLE_COLOR_PROP(0x8b, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&Camera_Name_style, LV_STATE_DEFAULT, color);
// STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&Camera_Name_style, LV_STATE_DEFAULT, color);
// STYLE_COLOR_PROP(0x06, 0x24, 0xfd, 0x0d) ; lv_style_set_text_color(&Camera_Name_style, LV_STATE_FOCUSED, color);
static lv_style_t Camera_Name_style;
lv_style_init(&Camera_Name_style);
STYLE_COLOR_PROP(0x8b, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&Camera_Name_style, LV_STATE_DEFAULT, color);
STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&Camera_Name_style, LV_STATE_DEFAULT, color);
lv_style_set_text_font(&Camera_Name_style,LV_STATE_DEFAULT,&sf_ui_text_bold_20_8bpp);
STYLE_COLOR_PROP(0x8b, 0x00, 0x00, 0x00) ; lv_style_set_bg_color(&Camera_Name_style, LV_STATE_FOCUSED, color);
STYLE_COLOR_PROP(0x06, 0x24, 0xfd, 0x0d) ; lv_style_set_text_color(&Camera_Name_style, LV_STATE_FOCUSED, color);
init_Matrix_style();
UIMenuStoreInfo *puiPara = sf_ui_para_get();
for(int i = 0; i < 4; i++) {
if (!(puiPara->CamNameStr[i] >= '0' && puiPara->CamNameStr[i] <= '9') &&
!(puiPara->CamNameStr[i] >= 'A' && puiPara->CamNameStr[i] <= 'Z') &&
puiPara->CamNameStr[i] != ' ')
{
DBG_ERR("Camera Name content error");
memset(puiPara->CamNameStr, ' ', 4);
break;
}
}
for(int i = 0; i < 4; i++)
{
sprintf(result, "%c", puiPara->CamNameStr[i]);
snprintf(CameraNameBuf1, 2, "%c", puiPara->CamNameStr[0]);
snprintf(CameraNameBuf2, 2, "%c", puiPara->CamNameStr[1]);
snprintf(CameraNameBuf3, 2, "%c", puiPara->CamNameStr[2]);
snprintf(CameraNameBuf4, 2, "%c", puiPara->CamNameStr[3]);
CameraNameArray[i] = lv_label_create(obj, NULL);
lv_obj_set_pos(CameraNameArray[i], 78+32*i, 108);
lv_obj_set_size(CameraNameArray[i], 14, 24);
lv_obj_add_style(CameraNameArray[i], 0, &Camera_Name_style);
lv_obj_set_state(CameraNameArray[i], LV_STATE_DEFAULT);
lv_label_set_text(CameraNameArray[i], result);
}
CameraNameMatrixObj = lv_btnmatrix_create(obj, NULL);
lv_obj_set_hidden(CameraNameMatrixObj, false);
lv_obj_set_click(CameraNameMatrixObj, true);
lv_obj_set_drag(CameraNameMatrixObj, false);
lv_obj_set_pos(CameraNameMatrixObj, 96, 108);
lv_obj_set_size(CameraNameMatrixObj, 128, 24);
lv_btnmatrix_set_map(CameraNameMatrixObj, CameraNameMap);
lv_btnmatrix_set_one_check(CameraNameMatrixObj, true);
lv_btnmatrix_set_align(CameraNameMatrixObj, LV_LABEL_ALIGN_CENTER);
lv_btnmatrix_set_focused_btn(CameraNameMatrixObj,0);
lv_btnmatrix_set_one_check(CameraNameMatrixObj, false);
lv_obj_add_style(CameraNameMatrixObj, 0, &gMatrixStylebg);
lv_obj_add_style(CameraNameMatrixObj, 1, &gMatrixStylebtn);
lv_obj_set_state(CameraNameArray[CameraNameIndex], LV_STATE_FOCUSED);
CameraNameImage = lv_img_create(obj, NULL);
lv_obj_set_hidden(CameraNameImage, false);
lv_obj_set_click(CameraNameImage, false);
lv_obj_set_drag(CameraNameImage, false);
lv_obj_set_pos(CameraNameImage, 96, 78);
lv_obj_set_size(CameraNameImage, 32, 88);
lv_img_set_src(CameraNameImage, &sf_pwd_down_up);
}
void hidde_Camera_Name_page(void)
{
printf("[%s]\n", __FUNCTION__);
CameraNameIndex = 0;
for(int i = 0; i < 4; i++)
if(CameraNameMatrixObj)
{
if(CameraNameArray[i])
lv_obj_del(CameraNameMatrixObj);
CameraNameMatrixObj = NULL;
}
if(CameraNameImage)
{
lv_obj_del(CameraNameImage);
CameraNameImage = NULL;
}
}
void Option_Camera_Name_Key_Long_Press(lv_obj_t* obj, uint32_t key)
{
printf("[%s]key:%d\n", __FUNCTION__, key);
char tmpchar;
char* p;
UIMenuStoreInfo *puiPara = sf_ui_para_get();
switch(key)
{
case LV_USER_KEY_NEXT:
tmpchar = puiPara->CamNameStr[CameraNameIndex];
p = strchr(charMap, tmpchar);
if (p != NULL)
{
lv_obj_del(CameraNameArray[i]);
puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 36) % 37];
}
else
{
DBG_ERR("Camera Name content [%d] error", CameraNameIndex);
puiPara->CamNameStr[CameraNameIndex] = ' ';
}
update_Camera_Name_msg(obj);
break;
case LV_USER_KEY_PREV:
tmpchar = puiPara->CamNameStr[CameraNameIndex];
p = strchr(charMap, tmpchar);
if (p != NULL)
{
puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 1) % 37];
}
else
{
DBG_ERR("Camera Name content [%d] error", CameraNameIndex);
puiPara->CamNameStr[CameraNameIndex] = ' ';
}
update_Camera_Name_msg(obj);
break;
default:
break;
}
}
void Option_Camera_Name_Key(lv_obj_t* obj, uint32_t key)
{
for(int i = 0; i < 4; i++)
{
if(CameraNameArray[i] == NULL)
{
printf("CameraNameArray is NULL");
return;
}
}
printf("[%s]key:%d\n", __FUNCTION__, key);
UIMenuStoreInfo *puiPara = sf_ui_para_get();
char result[2];
char tmpchar;
char* p;
printf("key:%d camname:%s\n",key,puiPara->CamNameStr);
switch(key)
{
case LV_USER_KEY_NEXT:
printf("\033[33m[Option_Camera_Name_Key]s\033[0m\n");
UIMenuStoreInfo *puiPara = sf_ui_para_get();
switch(key)
{
case LV_USER_KEY_NEXT:
tmpchar = puiPara->CamNameStr[CameraNameIndex];
if(tmpchar)
p = strchr(charMap, tmpchar);
if (p != NULL)
{
p = strchr(charMap, tmpchar);
printf("x=%d\n",charMap - p);
if((p - charMap - 1) < 0)
{
puiPara->CamNameStr[CameraNameIndex] = *(charMap + 36);
}
else
{
puiPara->CamNameStr[CameraNameIndex] = *(p - 1);
}
puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 36) % 37];
}
else
else
{
printf("yyyyy\n");
DBG_ERR("Camera Name content [%d] error", CameraNameIndex);
puiPara->CamNameStr[CameraNameIndex] = ' ';
}
for(int i = 0;i < 4;i++)
{
sprintf(result, "%c", puiPara->CamNameStr[i]);
lv_label_set_text(CameraNameArray[i], result);
}
update_Camera_Name_msg(obj);
break;
case LV_USER_KEY_PREV:
printf("\033[33m[Option_Camera_Name_Key]w\033[0m\n");
case LV_USER_KEY_PREV:
tmpchar = puiPara->CamNameStr[CameraNameIndex];
if(tmpchar)
p = strchr(charMap, tmpchar);
if (p != NULL)
{
p = strchr(charMap, tmpchar);
printf("x=%d\n",charMap - p);
if((p - charMap + 1) % 37 == 0)
{
puiPara->CamNameStr[CameraNameIndex] = *charMap;
}
else
{
puiPara->CamNameStr[CameraNameIndex] = *(p + 1);
}
puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 1) % 37];
}
else
else
{
printf("yyyyy\n");
DBG_ERR("Camera Name content [%d] error", CameraNameIndex);
puiPara->CamNameStr[CameraNameIndex] = ' ';
}
for(int i = 0;i < 4;i++)
{
sprintf(result, "%c", puiPara->CamNameStr[i]);
lv_label_set_text(CameraNameArray[i], result);
}
update_Camera_Name_msg(obj);
break;
case LV_USER_KEY_LEFT:
printf("\033[33m[Option_Camera_Name_Key]a\033[0m\n");
CameraNameIndex--;
if(CameraNameIndex < 0)
CameraNameIndex = 0;
for(int i = 0; i < 4; i++)
{
lv_obj_set_state(CameraNameArray[i], LV_STATE_DEFAULT);
}
lv_obj_set_state(CameraNameArray[CameraNameIndex], LV_STATE_FOCUSED);
CameraNameIndex = (CameraNameIndex > 0 && CameraNameIndex <= 3) ? (CameraNameIndex - 1) : 3;
update_Camera_Name_msg(obj);
break;
case LV_USER_KEY_RIGHT:
printf("\033[33m[Option_Camera_Name_Key]d\033[0m\n");
CameraNameIndex++;
if(CameraNameIndex > 3)
CameraNameIndex = 3;
for(int i = 0; i < 4; i++)
{
lv_obj_set_state(CameraNameArray[i], LV_STATE_DEFAULT);
}
lv_obj_set_state(CameraNameArray[CameraNameIndex], LV_STATE_FOCUSED);
CameraNameIndex = (CameraNameIndex >= 0 && CameraNameIndex < 3) ? (CameraNameIndex + 1) : 0;
update_Camera_Name_msg(obj);
break;
case LV_KEY_ENTER:
printf("\033[33m[Option_Camera_Name_Key]SELECT\033[0m\n");
case LV_KEY_ENTER:
lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0));
hidde_Camera_Name_page();
break;
default:
break;
}
break;
default:
break;
}
}

View File

@ -20,4 +20,5 @@ extern void Option_Password_Key(lv_obj_t* obj, uint32_t key);
extern void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key);
extern void Option_CAMERA_INFO_Key_Long_Press(lv_obj_t* obj, uint32_t key);
extern void Option_Camera_Name_Key(lv_obj_t* obj, uint32_t key);
extern void Option_Camera_Name_Key_Long_Press(lv_obj_t* obj, uint32_t key);
#endif

View File

@ -850,6 +850,10 @@ void UIFlowMenuCommonOptionEventCallback(lv_obj_t* obj, lv_event_t event)
if(KeyPressingTimeMs == 10 * 1000)
Option_CAMERA_INFO_Key_Long_Press(obj, *key);
break;
case IDM_CAMERA_NAME:
KeyPressingTimeMs += LONG_PRESS_INTERVAL;
Option_Camera_Name_Key_Long_Press(obj, *key);
break;
default:
break;
}

View File

@ -1785,6 +1785,7 @@ void SysResetFlag(void)
memset(puiPara ->FtpsPwd,'\0', sizeof(puiPara ->FtpsPwd));
memset(puiPara ->WifiApPWD,'\0', sizeof(puiPara ->WifiApPWD));
memset(puiPara ->BluSsid,'\0', sizeof(puiPara ->BluSsid));
memset(puiPara ->CamNameStr,'\0', sizeof(puiPara ->CamNameStr));
#if(WIFI_FUNC==ENABLE)
memset(puiPara ->strSSID,'\0', sizeof(puiPara ->strSSID));