完善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); uwItemId = LO_WORD(uiParam);
uwOption = HI_WORD(uiParam); uwOption = HI_WORD(uiParam);
printf("[%s] uwOption:%d uwItemId:%d\n", __FUNCTION__, uwOption, uwItemId);
switch (uwItemId) switch (uwItemId)
{ {
case IDM_NETWORK_SELECTION: case IDM_NETWORK_SELECTION:
@ -98,8 +99,13 @@ int Qr_MenuCallback(UINT32 uiMessage, UINT32 uiParam)
} }
case IDM_CAMERA_NAME: case IDM_CAMERA_NAME:
{ {
// puiPara->CamNameSwitch SF_CAMID_E tmpSelected = (uwOption == 0) ? SF_CAMID_OFF : SF_CAMID_ON;
puiPara->CamNameSwitch = 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; break;
} }
default: default:
@ -837,6 +843,7 @@ static void update_Camera_Info_msg(lv_obj_t* obj)
if(CameraInfolabel == NULL || btnm == NULL) if(CameraInfolabel == NULL || btnm == NULL)
{ {
DBG_ERR("Camera Info component is not initialized"); DBG_ERR("Camera Info component is not initialized");
return;
} }
UIMenuStoreInfo *puiPara = sf_ui_para_get(); 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) if(CameraInfolabel != NULL || btnm != NULL || CameraInfoImage != NULL)
{ {
DBG_ERR("Camera Info component is initialized"); DBG_ERR("Camera Info component is initialized");
return;
} }
CameraInfoIndex = 0; CameraInfoIndex = 0;
@ -995,7 +1003,7 @@ void show_Camera_Info_page(lv_obj_t* obj)
void hidde_Camera_Info_page(void) void hidde_Camera_Info_page(void)
{ {
printf("[hidde_Camera_Info_page]\n"); printf("[%s]\n", __FUNCTION__);
CameraInfoIndex = 0; CameraInfoIndex = 0;
CameraInfoisHidden = 1; CameraInfoisHidden = 1;
CameraInfoQlogisHidden = 1; CameraInfoQlogisHidden = 1;
@ -1090,187 +1098,212 @@ void Option_CAMERA_INFO_Key(lv_obj_t* obj, uint32_t key)
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
// Camera Name // Camera Name
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
static int CameraNameIndex = 0;
static char charMap[37] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', static char charMap[37] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', ' '}; '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) void show_Camera_Name_page(lv_obj_t* obj)
{ {
char result[2]; if(CameraNameMatrixObj != NULL || CameraNameImage != NULL)
UIMenuStoreInfo *puiPara = sf_ui_para_get(); {
lv_color_t color = {0}; DBG_ERR("Camera Name component is initialized");
return;
}
CameraNameIndex = 0; 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; init_Matrix_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);
UIMenuStoreInfo *puiPara = sf_ui_para_get();
for(int i = 0; i < 4; i++) { for(int i = 0; i < 4; i++) {
if (!(puiPara->CamNameStr[i] >= '0' && puiPara->CamNameStr[i] <= '9') && if (!(puiPara->CamNameStr[i] >= '0' && puiPara->CamNameStr[i] <= '9') &&
!(puiPara->CamNameStr[i] >= 'A' && puiPara->CamNameStr[i] <= 'Z') && !(puiPara->CamNameStr[i] >= 'A' && puiPara->CamNameStr[i] <= 'Z') &&
puiPara->CamNameStr[i] != ' ') puiPara->CamNameStr[i] != ' ')
{ {
DBG_ERR("Camera Name content error");
memset(puiPara->CamNameStr, ' ', 4); memset(puiPara->CamNameStr, ' ', 4);
break; break;
} }
} }
for(int i = 0; i < 4; i++) snprintf(CameraNameBuf1, 2, "%c", puiPara->CamNameStr[0]);
{ snprintf(CameraNameBuf2, 2, "%c", puiPara->CamNameStr[1]);
sprintf(result, "%c", puiPara->CamNameStr[i]); snprintf(CameraNameBuf3, 2, "%c", puiPara->CamNameStr[2]);
snprintf(CameraNameBuf4, 2, "%c", puiPara->CamNameStr[3]);
CameraNameArray[i] = lv_label_create(obj, NULL); CameraNameMatrixObj = lv_btnmatrix_create(obj, NULL);
lv_obj_set_pos(CameraNameArray[i], 78+32*i, 108); lv_obj_set_hidden(CameraNameMatrixObj, false);
lv_obj_set_size(CameraNameArray[i], 14, 24); lv_obj_set_click(CameraNameMatrixObj, true);
lv_obj_add_style(CameraNameArray[i], 0, &Camera_Name_style); lv_obj_set_drag(CameraNameMatrixObj, false);
lv_obj_set_state(CameraNameArray[i], LV_STATE_DEFAULT); lv_obj_set_pos(CameraNameMatrixObj, 96, 108);
lv_label_set_text(CameraNameArray[i], result); 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) void hidde_Camera_Name_page(void)
{ {
printf("[%s]\n", __FUNCTION__);
CameraNameIndex = 0; 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) void Option_Camera_Name_Key(lv_obj_t* obj, uint32_t key)
{ {
for(int i = 0; i < 4; i++) printf("[%s]key:%d\n", __FUNCTION__, key);
{
if(CameraNameArray[i] == NULL)
{
printf("CameraNameArray is NULL");
return;
}
}
UIMenuStoreInfo *puiPara = sf_ui_para_get();
char result[2];
char tmpchar; char tmpchar;
char* p; char* p;
printf("key:%d camname:%s\n",key,puiPara->CamNameStr);
switch(key) UIMenuStoreInfo *puiPara = sf_ui_para_get();
{
case LV_USER_KEY_NEXT: switch(key)
printf("\033[33m[Option_Camera_Name_Key]s\033[0m\n"); {
case LV_USER_KEY_NEXT:
tmpchar = puiPara->CamNameStr[CameraNameIndex]; tmpchar = puiPara->CamNameStr[CameraNameIndex];
if(tmpchar) p = strchr(charMap, tmpchar);
if (p != NULL)
{ {
p = strchr(charMap, tmpchar); puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 36) % 37];
printf("x=%d\n",charMap - p);
if((p - charMap - 1) < 0)
{
puiPara->CamNameStr[CameraNameIndex] = *(charMap + 36);
}
else
{
puiPara->CamNameStr[CameraNameIndex] = *(p - 1);
}
} }
else else
{ {
printf("yyyyy\n"); DBG_ERR("Camera Name content [%d] error", CameraNameIndex);
puiPara->CamNameStr[CameraNameIndex] = ' '; puiPara->CamNameStr[CameraNameIndex] = ' ';
} }
update_Camera_Name_msg(obj);
for(int i = 0;i < 4;i++)
{
sprintf(result, "%c", puiPara->CamNameStr[i]);
lv_label_set_text(CameraNameArray[i], result);
}
break; break;
case LV_USER_KEY_PREV: case LV_USER_KEY_PREV:
printf("\033[33m[Option_Camera_Name_Key]w\033[0m\n");
tmpchar = puiPara->CamNameStr[CameraNameIndex]; tmpchar = puiPara->CamNameStr[CameraNameIndex];
if(tmpchar) p = strchr(charMap, tmpchar);
if (p != NULL)
{ {
p = strchr(charMap, tmpchar); puiPara->CamNameStr[CameraNameIndex] = charMap[(p - charMap + 1) % 37];
printf("x=%d\n",charMap - p);
if((p - charMap + 1) % 37 == 0)
{
puiPara->CamNameStr[CameraNameIndex] = *charMap;
}
else
{
puiPara->CamNameStr[CameraNameIndex] = *(p + 1);
}
} }
else else
{ {
printf("yyyyy\n"); DBG_ERR("Camera Name content [%d] error", CameraNameIndex);
puiPara->CamNameStr[CameraNameIndex] = ' '; puiPara->CamNameStr[CameraNameIndex] = ' ';
} }
update_Camera_Name_msg(obj);
for(int i = 0;i < 4;i++)
{
sprintf(result, "%c", puiPara->CamNameStr[i]);
lv_label_set_text(CameraNameArray[i], result);
}
break; break;
case LV_USER_KEY_LEFT: case LV_USER_KEY_LEFT:
printf("\033[33m[Option_Camera_Name_Key]a\033[0m\n"); CameraNameIndex = (CameraNameIndex > 0 && CameraNameIndex <= 3) ? (CameraNameIndex - 1) : 3;
CameraNameIndex--; update_Camera_Name_msg(obj);
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);
break; break;
case LV_USER_KEY_RIGHT: case LV_USER_KEY_RIGHT:
printf("\033[33m[Option_Camera_Name_Key]d\033[0m\n"); CameraNameIndex = (CameraNameIndex >= 0 && CameraNameIndex < 3) ? (CameraNameIndex + 1) : 0;
CameraNameIndex++; update_Camera_Name_msg(obj);
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);
break; break;
case LV_KEY_ENTER: case LV_KEY_ENTER:
printf("\033[33m[Option_Camera_Name_Key]SELECT\033[0m\n");
lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0)); lv_plugin_scr_close(obj, gen_nvtmsg_data(NVTRET_ENTER_MENU, 0));
hidde_Camera_Name_page(); hidde_Camera_Name_page();
break; break;
default: default:
break; 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(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_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(lv_obj_t* obj, uint32_t key);
extern void Option_Camera_Name_Key_Long_Press(lv_obj_t* obj, uint32_t key);
#endif #endif

View File

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

View File

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