diff --git a/build_all.sh b/build_all.sh index 4616e2a42..913af95c1 100755 --- a/build_all.sh +++ b/build_all.sh @@ -1,7 +1,7 @@ #!/bin/bash #用于gitlab-ci.yml编译使用 -#make app_clean +make app_clean echo "Start compile." export ROOT_PATH=$PWD @@ -9,7 +9,7 @@ export ROOT_PATH=$PWD cd rtos source build/envsetup.sh lunch rtos cfg_565_HUNTING_EVB_LINUX_4G_S550 gcc-6.5-newlib-2.4-2019.11-arm-ca9-eabihf -#make clean +make clean make all > /dev/null cp output/application.bin ../ cp output/rtos-main.bin ../ @@ -18,7 +18,7 @@ cp output/rtos-main.bin ../ cd $ROOT_PATH source build/envsetup.sh lunch Linux cfg_565_HUNTING_EVB_LINUX_4G_S550 arm-ca9-linux-uclibcgnueabihf-8.4.01 -#make clean +make clean make all > /dev/null cd $ROOT_PATH diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index 4b869ab2c..4812f681f 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -922,7 +922,7 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 ENABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MR5RCwDC04" +#define SF_BASE_VERSION "7MR5RCwDC05" #define HW_S530 DISABLE #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */ diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 6d34b1977..514ee476b 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -599,12 +599,14 @@ void UserMainProc(void) switch((uint32_t)lv_user_keymap_find(evt)){ case LV_KEY_DOWN: case LV_KEY_NEXT: + case 134: { printf("[Key]>>>DOWN\n"); break; } case LV_KEY_UP: case LV_KEY_PREV: + case 133: { printf("[Key]>>>UP\n"); break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM.rar b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM.rar new file mode 100644 index 000000000..c0fd25087 Binary files /dev/null and b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM.rar differ diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr index de0cce347..2947216da 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL.UIFlowMenuCommonOption.lvglscr @@ -20,7 +20,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -29,7 +29,7 @@ "long mode": "Expand", "name": "label_option1", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -68,11 +68,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -199,7 +202,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -208,7 +211,7 @@ "long mode": "Expand", "name": "label_option2", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -244,11 +247,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -375,7 +381,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -384,7 +390,7 @@ "long mode": "Expand", "name": "label_option3", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -420,11 +426,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -551,7 +560,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -560,7 +569,7 @@ "long mode": "Expand", "name": "label_option4", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -596,11 +605,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { @@ -727,7 +739,7 @@ "font type": "Font_Type1", "geometry": { "height": 22, - "width": 81, + "width": 0, "x": 10, "y": 10 }, @@ -736,7 +748,7 @@ "long mode": "Expand", "name": "label_option5", "recolor": false, - "string id": "None", + "string id": "STRID_NULL_", "styles": [ { "Text": { @@ -772,11 +784,14 @@ "state": 5 }, { + "Text": { + "text_color": "0x575757" + }, "part": 0, "state": 6 } ], - "text": "1080P30", + "text": "", "widget": "Label" }, { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c index af4b2037e..24303ae2c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOption.c @@ -256,7 +256,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option1_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option1_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option1_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option1_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option1 = lv_label_create(image_button_option_1, NULL); @@ -264,11 +264,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option1, false); lv_obj_set_drag(label_option1, false); lv_plugin_label_allocate_ext_attr(label_option1); - lv_label_set_text(label_option1,"1080P30"); + lv_plugin_label_set_text(label_option1, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option1); lv_plugin_label_set_font_type(label_option1, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option1, 10, 10); - lv_obj_set_size(label_option1, 81, 22); + lv_obj_set_size(label_option1, 0, 22); lv_obj_add_style(label_option1, 0, &label_option1_s0); label_option1_scr_uiflowmenucommonoption = label_option1; @@ -419,7 +419,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option2_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option2_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option2_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option2_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option2 = lv_label_create(image_button_option_2, NULL); @@ -427,11 +427,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option2, false); lv_obj_set_drag(label_option2, false); lv_plugin_label_allocate_ext_attr(label_option2); - lv_label_set_text(label_option2,"1080P30"); + lv_plugin_label_set_text(label_option2, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option2); lv_plugin_label_set_font_type(label_option2, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option2, 10, 10); - lv_obj_set_size(label_option2, 81, 22); + lv_obj_set_size(label_option2, 0, 22); lv_obj_add_style(label_option2, 0, &label_option2_s0); label_option2_scr_uiflowmenucommonoption = label_option2; @@ -582,7 +582,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option3_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option3_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option3_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option3_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option3 = lv_label_create(image_button_option_3, NULL); @@ -590,11 +590,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option3, false); lv_obj_set_drag(label_option3, false); lv_plugin_label_allocate_ext_attr(label_option3); - lv_label_set_text(label_option3,"1080P30"); + lv_plugin_label_set_text(label_option3, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option3); lv_plugin_label_set_font_type(label_option3, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option3, 10, 10); - lv_obj_set_size(label_option3, 81, 22); + lv_obj_set_size(label_option3, 0, 22); lv_obj_add_style(label_option3, 0, &label_option3_s0); label_option3_scr_uiflowmenucommonoption = label_option3; @@ -745,7 +745,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option4_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option4_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option4_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option4_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option4 = lv_label_create(image_button_option_4, NULL); @@ -753,11 +753,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option4, false); lv_obj_set_drag(label_option4, false); lv_plugin_label_allocate_ext_attr(label_option4); - lv_label_set_text(label_option4,"1080P30"); + lv_plugin_label_set_text(label_option4, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option4); lv_plugin_label_set_font_type(label_option4, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option4, 10, 10); - lv_obj_set_size(label_option4, 81, 22); + lv_obj_set_size(label_option4, 0, 22); lv_obj_add_style(label_option4, 0, &label_option4_s0); label_option4_scr_uiflowmenucommonoption = label_option4; @@ -908,7 +908,7 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_bg_grad_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x01, 0x00, 0x00, 0x00) ; lv_style_set_border_color(&label_option5_s0, LV_STATE_DISABLED, color); - STYLE_COLOR_PROP(0x02, 0xff, 0xff, 0xff) ; lv_style_set_text_color(&label_option5_s0, LV_STATE_DISABLED, color); + STYLE_COLOR_PROP(0xd5, 0x57, 0x57, 0x57) ; lv_style_set_text_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0xd3, 0x3c, 0x3c, 0x3c) ; lv_style_set_text_sel_color(&label_option5_s0, LV_STATE_DISABLED, color); STYLE_COLOR_PROP(0x3a, 0x00, 0xb4, 0x95) ; lv_style_set_text_sel_bg_color(&label_option5_s0, LV_STATE_DISABLED, color); lv_obj_t *label_option5 = lv_label_create(image_button_option_5, NULL); @@ -916,11 +916,11 @@ lv_obj_t* UIFlowMenuCommonOption_create(){ lv_obj_set_click(label_option5, false); lv_obj_set_drag(label_option5, false); lv_plugin_label_allocate_ext_attr(label_option5); - lv_label_set_text(label_option5,"1080P30"); + lv_plugin_label_set_text(label_option5, LV_PLUGIN_STRING_ID_STRID_NULL_); lv_plugin_label_allocate_ext_attr(label_option5); lv_plugin_label_set_font_type(label_option5, LV_PLUGIN_LANGUAGE_FONT_TYPE_1); lv_obj_set_pos(label_option5, 10, 10); - lv_obj_set_size(label_option5, 81, 22); + lv_obj_set_size(label_option5, 0, 22); lv_obj_add_style(label_option5, 0, &label_option5_s0); label_option5_scr_uiflowmenucommonoption = label_option5; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c index ba831a191..1c39ef231 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonOption/UIFlowMenuCommonOptionEventCallback.c @@ -223,7 +223,7 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) UINT32 Selindex = 0; BOOL ui_hidden = true; #endif - + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; #if 0 @@ -361,7 +361,7 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) printf("\033[33m[LV_MenuCommonOption_UpdateContent] 3 \033[0m\n"); lv_plugin_menu_set_item_string_id(menu_option, i, LV_PLUGIN_MENU_ITEM_VISIBLE_STATE_NUM, pOption->TextId); - printf("s_SelOption: %d\n", s_SelOption); + printf("[LV_MenuCommonOption_UpdateContent]s_SelOption: %d\n", s_SelOption); if (IDM_FORMAT_SD == pItem->ItemId) { if (0 == SelOption && i == 0) { itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ @@ -394,12 +394,12 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) { if (i == 1) { - printf("first init black > √\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init black > √\n"); itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); } else{ - printf("first init √\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init √\n"); itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 272, 0); } @@ -408,19 +408,19 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) case IDM_SEND_TYPE:{ if(i == 1) { - printf("first init IDM_SEND_TYPE black > √\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ lv_obj_set_pos(image_option2_scr_uiflowmenucommonoption, 259, 0); } else if (i == 2) { - printf("first init IDM_SEND_TYPE black > √\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ lv_obj_set_pos(image_option3_scr_uiflowmenucommonoption, 259, 0); } else if (i == 3) { - printf("first init IDM_SEND_TYPE black > √\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE black > √\n"); itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED_NEXT2;//black > √ lv_obj_set_pos(image_option4_scr_uiflowmenucommonoption, 259, 0); } @@ -449,7 +449,7 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) } else if (enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i == 1) { - printf("first init white >\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init white >\n"); switch (pItem->ItemId) { case IDM_DELAY:{} case IDM_OPERATING_TIME:{} @@ -469,9 +469,9 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) } else if(enableIndex[i+(Selindex * OPTION_PAGE_NUM)] != SelOption && i > 1) { - if(pItem->ItemId == IDM_SEND_TYPE) + if (pItem->ItemId == IDM_SEND_TYPE) { - printf("first init IDM_SEND_TYPE white >\n"); + printf("[LV_MenuCommonOption_UpdateContent]first init IDM_SEND_TYPE white >\n"); itemIconId = LV_PLUGIN_IMG_ID_SF_NEXT1;//white > if (i == 2) { @@ -484,6 +484,69 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) ui_hidden = false; } } + + if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption < 3) + { + if (puiPara->BatteryType == SF_BATT_LI_PACK){ + printf("[LV_MenuCommonOption_UpdateContent]first init change battery to lith\n"); + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 3); + s_SelOption = 3; + SelOption = 3; + SysSetFlag(pItem->SysFlag,3); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]first init is not lith\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + + } + else if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption == 3) + { + if (puiPara->BatteryType == SF_BATT_LI_PACK) + { + printf("[LV_MenuCommonOption_UpdateContent]first init and is lith\n"); + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]first init change battery\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 0); + s_SelOption = 0; + SelOption = 0; + SysSetFlag(pItem->SysFlag,0); + lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, true); + } + + } } else{ if (pItem->ItemId == IDM_SEND_TYPE){ @@ -612,7 +675,8 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) } } - else if (i == s_SelOption){ + else if (i == s_SelOption) + { itemIconId = LV_PLUGIN_IMG_ID_SF_LIST_SELECTED;//√ if (i == 2) { @@ -624,6 +688,71 @@ static void LV_MenuCommonOption_UpdateContent(TM_MENU *pMenu) } ui_hidden = false; } + + if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption < 3) + { + + if (puiPara->BatteryType == SF_BATT_LI_PACK){ + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 3); + s_SelOption = 3; + SelOption = 3; + SysSetFlag(pItem->SysFlag,3); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]is not lith\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + + } + else if (pItem->ItemId == IDM_BATTERY_TYPE && s_SelOption == 3) + { + + if (puiPara->BatteryType == SF_BATT_LI_PACK) + { + printf("[LV_MenuCommonOption_UpdateContent]is lith\n"); + if (i < 1) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 2) + { + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + if (i < 3) + { + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + lv_obj_set_state(label_option4_scr_uiflowmenucommonoption, LV_STATE_DEFAULT); + lv_plugin_menu_select_item(menu_option, 3); + } + else + { + printf("[LV_MenuCommonOption_UpdateContent]change battery\n"); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + ui_hidden = true; + lv_plugin_menu_select_item(menu_option, 0); + s_SelOption = 0; + SelOption = 0; + SysSetFlag(pItem->SysFlag,0); + lv_obj_set_hidden(image_option1_scr_uiflowmenucommonoption, true); + } + + } } @@ -705,6 +834,7 @@ static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) TM_ITEM* pItem; //TM_OPTION *pOption; UINT16 SelOption = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; // pPage->SelItem = 0; @@ -739,7 +869,18 @@ static void LV_MenuOption_OnOpen(lv_obj_t* obj, TM_MENU *data) // lv_obj_set_hidden(container_main_menu_scr_uiflowmenucommonoption, true); // } LV_MenuCommonOption_UpdateContent(pMenu); - + if (pItem->ItemId == IDM_BATTERY_TYPE) + { + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + else{ + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + } lv_plugin_menu_select_item(menu_option, SelOption); } @@ -750,6 +891,7 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; @@ -759,20 +901,39 @@ static void LV_MenuOption_OnNext(lv_obj_t* obj) // DBG_DUMP("%s Count=%d\r\n", __func__,pItem->Count); // DBG_DUMP("%s SelOption=%d\r\n", __func__,SelOption); - SelOption++; + SelOption++; + if (pItem->ItemId == IDM_BATTERY_TYPE) + { + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + SelOption = 3; + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + else{ + if (SelOption >= 3) + { + SelOption = 0; + } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + return; + } if (SelOption >= pItem->Count){ // Close current UI Window now //SysSetFlag(pItem->SysFlag, PrevOption); //lv_plugin_scr_close(obj, NULL); SelOption = 0; - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); // lv_plugin_menu_select_item(menu_option, SelOption); }else{ - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); // lv_plugin_menu_select_next_item(menu_option); } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); // DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } @@ -782,25 +943,50 @@ static void LV_MenuOption_OnPrev(lv_obj_t* obj) TM_PAGE *pPage; TM_ITEM *pItem; UINT16 SelOption = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); pPage = &pMenu->pPages[pMenu->SelPage]; pItem = &pPage->pItems[pPage->SelItem]; SelOption = SysGetFlag(pItem->SysFlag); + if (pItem->ItemId == IDM_BATTERY_TYPE) + { + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + SelOption = 3; + SysSetFlag(pItem->SysFlag, SelOption); + lv_plugin_menu_set_item_state(menu_option, 0, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 1, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + lv_plugin_menu_set_item_state(menu_option, 2, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + else{ + if (SelOption == 0) + { + SelOption = (pItem->Count - 2); + } + else + { + SelOption--; + } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); + lv_plugin_menu_set_item_state(menu_option, 3, LV_PLUGIN_MENU_ITEM_STATE_DISABLED); + } + return; + } + if (SelOption == 0) { // Close current UI Window now //SysSetFlag(pItem->SysFlag, PrevOption); //lv_plugin_scr_close(obj, NULL); SelOption = (pItem->Count - 1); - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); // lv_plugin_menu_select_item(menu_option, SelOption); } else { SelOption--; - SysSetFlag(pItem->SysFlag, SelOption); - LV_MenuCommonOption_UpdateContent(pMenu); // lv_plugin_menu_select_prev_item(menu_option); } + SysSetFlag(pItem->SysFlag, SelOption); + LV_MenuCommonOption_UpdateContent(pMenu); // DBG_DUMP("%s flag=%d\r\n", __func__,SysGetFlag(pItem->SysFlag)); } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index f72e1e722..82ddeb6f4 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -2045,6 +2045,9 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) { case LV_PLUGIN_EVENT_SCR_OPEN: { + + UIFlowPhoto_ScrOpen(obj);//LV_ALIGN_IN_RIGHT_MID + #define PASSWORD_OPENED 1 #define PASSWORD_NOT_OPENED 0 static int passwordOpened = PASSWORD_NOT_OPENED; @@ -2058,7 +2061,7 @@ void UIFlowPhotoEventCallback(lv_obj_t* obj, lv_event_t event) passwordOpened = PASSWORD_OPENED; } - UIFlowPhoto_ScrOpen(obj);//LV_ALIGN_IN_RIGHT_MID + if(preview_info_task == NULL && g_preview_info_msgbox == NULL && g_preview_info_label == NULL){ g_preview_info_msgbox = lv_btn_create(obj, button_msg_bg_scr_uiflowwrnmsg); diff --git a/code/application/source/sf_app/code/source/app/sf_app.c b/code/application/source/sf_app/code/source/app/sf_app.c index 717e40270..a37ddc739 100755 --- a/code/application/source/sf_app/code/source/app/sf_app.c +++ b/code/application/source/sf_app/code/source/app/sf_app.c @@ -157,6 +157,8 @@ int main(int argc, char *argv[]) if((!isUsb) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_OFF != startup)/*&& (0 == isUpdate)*/) { + printf("[sf_app]battery thread start\n"); + sf_app_battery_start(); #if SF_IQ_TEST != ENABLE if(SF_MCU_STARTUP_ONKEY == startup) { @@ -175,7 +177,7 @@ int main(int argc, char *argv[]) app_RegisterNet_start(); } #endif - sf_app_battery_start(); + sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT); sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); } diff --git a/code/application/source/sf_app/code/source/app/sf_system.c b/code/application/source/sf_app/code/source/app/sf_system.c index 0763b43ff..226803402 100755 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -1071,6 +1071,7 @@ SINT32 sf_app_battery_start(void) return SF_FAILURE; } sf_adc_init(); + printf("[sf_app_battery_start]thread start\n"); ret = pthread_create(&BatteryTskCfg.TskId, NULL, sf_battery_check_thread, NULL); if(ret != SF_SUCCESS) { diff --git a/code/application/source/sf_app/code/source/battery/sf_battery.c b/code/application/source/sf_app/code/source/battery/sf_battery.c index 35cc1b7b7..61287a9e7 100755 --- a/code/application/source/sf_app/code/source/battery/sf_battery.c +++ b/code/application/source/sf_app/code/source/battery/sf_battery.c @@ -67,6 +67,7 @@ UINT32 batTempLevel = 0xff; static UINT32 TemperAdc = 0; static INT16 fTemper = 0; static INT16 cTemper = 0; +INT16 first_init = 5; //firt init check battery 5 time #define SF_READ_BAT_MAX 10 #define SF_DC_IN_VOLATAGE 70 #define SF_LI_IN_VOLATAGE 99 @@ -349,7 +350,7 @@ UINT32 sf_battery_adc_value_get_once(void) UINT32 liPolymerVoltageVal = 0; UINT32 batVoltageVal = 0; static UINT8 getBatAdcFlg = 0; - // UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); if(getBatAdcFlg) return SUCCESS; @@ -402,6 +403,26 @@ UINT32 sf_battery_adc_value_get_once(void) _LiPolymerVoltageVal = 0; _BatVoltageVal = batVoltageVal; } + + if (first_init > 0){ + + if(_LiPolymerVoltageVal) + { + printf("[sf_battery_level_polling]is lith battery\n"); + if(SF_BATT_LI_PACK != puiPara->BatteryType) + { + puiPara->BatteryType = SF_BATT_LI_PACK; + + } + first_init = 0; + } + else + { first_init--; + puiPara->BatteryType = SF_BATT_ALKALINE; + } + + } + getBatAdcFlg = 0; @@ -929,11 +950,16 @@ void sf_battery_level_polling(void) sf_temper_update(); if(LiPolymerVoltageVal) { + printf("[sf_battery_level_polling]is lith battery\n"); if(SF_BATT_LI_PACK != puiPara->BatteryType) { puiPara->BatteryType = SF_BATT_LI_PACK; } } + else{ + puiPara->BatteryType = SF_BATT_ALKALINE; + } + //ret = sf_check_low_battery(); if(puiPara->BatteryLogSwitch) diff --git a/code/lib/source/lvgl/lvgl/src/lv_core/lv_obj.c b/code/lib/source/lvgl/lvgl/src/lv_core/lv_obj.c index 80396fe38..7b4d9f6f5 100755 --- a/code/lib/source/lvgl/lvgl/src/lv_core/lv_obj.c +++ b/code/lib/source/lvgl/lvgl/src/lv_core/lv_obj.c @@ -2003,31 +2003,33 @@ const void * lv_event_get_data(void) case LV_KEY_DOWN: case LV_KEY_NEXT: + case 134: { - printf("Key]>>>DOWN\n"); + printf("[lv_event_get_data]>>>DOWN\n"); break; } case LV_KEY_UP: case LV_KEY_PREV: + case 133: { - printf("[Key]>>>UP\n"); + printf("[lv_event_get_data]>>>UP\n"); break; } case LV_KEY_LEFT: { - printf("[Key]>>>LEFT\n"); + printf("[lv_event_get_data]>>>LEFT\n"); break; } case LV_KEY_RIGHT: { - printf("[Key]>>>RIGHT\n"); + printf("[lv_event_get_data]>>>RIGHT\n"); break; } case LV_KEY_ENTER: { - printf("[Key]>>>ENTER\n"); + printf("[lv_event_get_data]>>>ENTER\n"); break; } } diff --git a/loader/Project/Model/tmp_awk1 b/loader/Project/Model/tmp_awk1 new file mode 100644 index 000000000..e69de29bb diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index 058fb0aad..22dfe1b7a 100755 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -849,7 +849,7 @@ // 2. enable FS_DX_TYPE_DRIVE_B as DX_TYPE_CARD2 // 3. enable FS_MULTI_STRG_FUNC // 4. NETWORK = NETWORK_NONE (Both uITRON and eCos) -#define FS_MULTI_STRG_FUNC DISABLE +#define FS_MULTI_STRG_FUNC ENABLE //MULTI_DRIVE #if defined(_EMBMEM_EMMC_) && (FS_MULTI_STRG_FUNC==DISABLE) #define FS_DX_TYPE_DRIVE_A USER_DX_TYPE_EMBMEM_FAT @@ -945,7 +945,7 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 ENABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MR5RCwDC04" +#define SF_BASE_VERSION "7MR5RCwDC05" #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */ #define PHOTO_THUMB_PATH "A:\\THUMB\\" diff --git a/rtos/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c b/rtos/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c index fdb3192a5..4c9c38ecc 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c +++ b/rtos/code/application/source/cardv/SrcCode/System/SysStrg_Exe.c @@ -299,16 +299,16 @@ void System_OnStrgInit_FS(void) Pool.addr = mempool_filesys; #if (FS_MULTI_STRG_FUNC == ENABLE) MEM_RANGE Pool2; - Pool.Size = POOL_SIZE_FS_BUFFER; + Pool.size = POOL_SIZE_FILESYS; GxStrg_SetConfigEx(0, FILE_CFG_BUF, (UINT32)&Pool); - Pool2.Addr = Pool.Addr + POOL_SIZE_FS_BUFFER; - Pool2.Size = POOL_SIZE_FS_BUFFER; + Pool2.addr = Pool.addr + POOL_SIZE_FILESYS; + Pool2.size = POOL_SIZE_FILESYS; GxStrg_SetConfigEx(1, FILE_CFG_BUF, (UINT32)&Pool2); #if defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_) // 3rd is for linux-pstore mounted by filesys MEM_RANGE Pool3; - Pool3.Addr = Pool2.Addr + POOL_SIZE_FS_BUFFER; - Pool3.Size = POOL_SIZE_FS_BUFFER; + Pool3.Addr = Pool2.addr + POOL_SIZE_FS_BUFFER; + Pool3.size = POOL_SIZE_FS_BUFFER; GxStrg_SetConfigEx(PST_DEV_ID, FILE_CFG_BUF, (UINT32)&Pool3); #endif #else @@ -592,22 +592,24 @@ INT32 System_OnStrgInsert(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) // Open DCF dcfParm.Drive = (stg_id == 0) ? 'A' : 'B'; #if (FS_MULTI_STRG_FUNC) - if (POOL_CNT_DCF_BUFFER !=2) { - DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n"); - } else { +// if (POOL_CNT_DCF_BUFFER !=2) { +// DBG_FATAL("POOL_CNT_DCF_BUFFER be 2 for FS_MULTI_STRG_FUNC.\r\n"); +// } else { switch(stg_id) { case 0: - dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); +// dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); + dcfParm.WorkbuffAddr = mempool_dcf; break; case 1: - dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER; +// dcfParm.WorkbuffAddr = dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)) + POOL_SIZE_DCF_BUFFER; + dcfParm.WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER; break; default: DBG_ERR("unknown stg_id=%d\r\n", stg_id); dcfParm.WorkbuffAddr = 0; break; } - } +// } #else dcfParm.WorkbuffAddr = mempool_dcf;//dma_getCacheAddr(OS_GetMempoolAddr(POOL_ID_DCF_BUFFER)); diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_card.c b/rtos/code/application/source/cardv/SrcCode/System/sys_card.c index 5b1916428..091850bc3 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_card.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_card.c @@ -25,5 +25,15 @@ void card_init(void) sdio_setCallBack(SDIO_CALLBACK_CARD_DETECT, (SDIO_CALLBACK_HDL)card_det_insert); sdio_setCallBack(SDIO_CALLBACK_WRITE_PROTECT, (SDIO_CALLBACK_HDL)card_det_wp); pStrg->SetParam(STRG_SET_MEMORY_REGION, mempool_storage_sdio, POOL_SIZE_STORAGE_SDIO); + +#if FS_MULTI_STRG_FUNC + pStrg = sdio2_getStorageObject(STRG_OBJ_FAT1); + sdio2_setCallBack(SDIO_CALLBACK_CARD_DETECT, (SDIO_CALLBACK_HDL)card_det_insert); + sdio2_setCallBack(SDIO_CALLBACK_WRITE_PROTECT, (SDIO_CALLBACK_HDL)card_det_wp); + pStrg->SetParam(STRG_SET_MEMORY_REGION, mempool_storage_sdio + POOL_SIZE_STORAGE_SDIO, POOL_SIZE_STORAGE_SDIO); +#endif + + + #endif } diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c index 4c0a02ec5..ae1dc14be 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -12,6 +12,7 @@ #include "sys_fastboot.h" #include "PrjCfg.h" #include "DxHunting.h" +#include #if HUNTING_CAMERA_MCU == ENABLE #include "PrjInc.h" #include "wdt.h" @@ -32,7 +33,7 @@ static void card_insert_job(void) int ret; FILE_TSK_INIT_PARAM Param = {0}; - FS_HANDLE StrgDXH; + FS_HANDLE StrgDXH, StrgDXH2; printf("filesys_init b\r\n"); memset(&Param, 0, sizeof(FILE_TSK_INIT_PARAM)); @@ -42,6 +43,49 @@ static void card_insert_job(void) StrgDXH = (FS_HANDLE)sdio_getStorageObject(STRG_OBJ_FAT1); #endif +#if FS_MULTI_STRG_FUNC + StrgDXH2 = (FS_HANDLE)sdio2_getStorageObject(STRG_OBJ_FAT1); + + + DBG_WRN("sdio2_getStorageObject\n"); + { + UINT32 totoal_sectors = 0; +// UINT32 uiPhyAddr = 0; +// UINT32 uiPhySize = 0; +// unsigned long long partition_ofs= 0, partition_size = 0; +// unsigned long long usr_area_size = 0; + STORAGE_OBJ* pStrg = sdio2_getStorageObject(STRG_OBJ_FAT1); +// void *strg_mem = malloc(0x300); + +// pStrg->SetParam(STRG_SET_MEMORY_REGION, (UINT32)strg_mem, 0x300); + pStrg->Open(); //for initial emmc speed up, should open first, and then set partition + pStrg->GetParam(STRG_GET_DEVICE_PHY_SECTORS, (UINT32)&totoal_sectors, 0); + if (totoal_sectors == 0) { + DBG_WRN("totoal_sectors couldn't be zero\n"); + } + + DBG_WRN("storage_partition_init: totoal_sectors = %d\r\n", totoal_sectors); + pStrg->SetParam(STRG_SET_PARTITION_SECTORS, 16, totoal_sectors - 16); +// pStrg->Close(); + + //set the FAT size +// ret = storage_get_partition_addr(&partition_ofs, &partition_size, PARTITION_PATH_ROOTFSL1); +// usr_area_size = (unsigned long long)totoal_sectors*(unsigned long long)_EMBMEM_BLK_SIZE_; +// uiPhyAddr = partition_ofs/_EMBMEM_BLK_SIZE_; +// uiPhySize = (usr_area_size - partition_ofs)/_EMBMEM_BLK_SIZE_; +// if (ret == 0) { +// pStrg = EMB_GETSTRGOBJ(STRG_OBJ_FW_FAT); +// pStrg->SetParam(STRG_SET_MEMORY_REGION, (UINT32)strg_mem, STRG_MEM_SIZE); +// pStrg->SetParam(STRG_SET_PARTITION_SECTORS, uiPhyAddr, uiPhySize); +// } else { +// DBG_ERR("Cat get the %s path info\r\n", PARTITION_PATH_ROOTFSL1); +// } + } + + +#endif + + uiPoolAddr = mempool_filesys; Param.FSParam.WorkBuf = uiPoolAddr; Param.FSParam.WorkBufSize = (POOL_SIZE_FILESYS); @@ -52,11 +96,11 @@ static void card_insert_job(void) Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { - printf("FileSys_Init failed\r\n"); + DBG_WRN("FileSys_Init failed\r\n"); } ret = FileSys_OpenEx('A', StrgDXH, &Param); if (FST_STA_OK != ret) { - printf("FileSys_Open err %d\r\n", ret); + DBG_WRN("FileSys_Open err %d\r\n", ret); } // call the function to wait init finish FileSys_WaitFinishEx('A'); @@ -64,7 +108,7 @@ static void card_insert_job(void) #if HUNTING_CAMERA_MCU == ENABLE if(TRUE == sf_check_card_full()) { - printf("ERR card full\r\n"); + DBG_WRN("ERR card full\r\n"); fastboot_set_done(BOOT_INIT_FILESYSOK); } else @@ -75,8 +119,31 @@ static void card_insert_job(void) } #endif +#if FS_MULTI_STRG_FUNC + uiPoolAddr = mempool_filesys + POOL_SIZE_FILESYS; + Param.FSParam.WorkBuf = uiPoolAddr; + Param.FSParam.WorkBufSize = (POOL_SIZE_FILESYS); + // support exFAT + Param.FSParam.bSupportExFAT = FALSE; + //Param.pDiskErrCB = (FileSys_CB)Card_InitCB; + strncpy(Param.FSParam.szMountPath, "/mnt/sd2", sizeof(Param.FSParam.szMountPath) - 1); //only used by FsLinux + Param.FSParam.szMountPath[sizeof(Param.FSParam.szMountPath) - 1] = '\0'; + Param.FSParam.MaxOpenedFileNum = MAX_OPENED_FILE_NUM; +// if (FST_STA_OK != FileSys_Init(FileSys_GetOPS_uITRON())) { +// printf("FileSys_Init failed\r\n"); +// } + DBG_WRN("Open B:\n"); + ret = FileSys_OpenEx('B', StrgDXH2, &Param); + if (FST_STA_OK != ret) { + printf("FileSys_Open err %d\r\n", ret); + } + // call the function to wait init finish + FileSys_WaitFinishEx('B'); +// FileSys_SetParamEx('B', FST_PARM_UPDATE_FSINFO , TRUE); +#endif + //fastboot_set_done(BOOT_INIT_FILESYSOK); - printf("filesys_init e\r\n"); + DBG_WRN("filesys_init e\r\n"); } #if !defined(_EMBMEM_EMMC_) diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_mempool.c b/rtos/code/application/source/cardv/SrcCode/System/sys_mempool.c index 19a1dd32c..7df0f47de 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_mempool.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_mempool.c @@ -60,7 +60,11 @@ void mempool_init(void) UINT32 pa; HD_RESULT ret; +#if FS_MULTI_STRG_FUNC + ret = vendor_common_mem_alloc_fixed_pool("sdio", &pa, (void **)&va, POOL_SIZE_STORAGE_SDIO * 2, DDR_ID0); +#else ret = vendor_common_mem_alloc_fixed_pool("sdio", &pa, (void **)&va, POOL_SIZE_STORAGE_SDIO, DDR_ID0); +#endif if (ret != HD_OK) { return; } @@ -77,7 +81,11 @@ void mempool_init(void) } mempool_storage_nor = (UINT32)va; +#if FS_MULTI_STRG_FUNC + ret = vendor_common_mem_alloc_fixed_pool("filesys", &pa, (void **)&va, POOL_SIZE_FILESYS * 2, DDR_ID0); +#else ret = vendor_common_mem_alloc_fixed_pool("filesys", &pa, (void **)&va, POOL_SIZE_FILESYS, DDR_ID0); +#endif if (ret != HD_OK) { return; } @@ -215,11 +223,17 @@ void mempool_init(void) mempool_usbcmd_va = (UINT32)va; #endif #if (HUNTING_CAMERA_MODEL == ENABLE) + +#if (FS_MULTI_STRG_FUNC) + ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER * 2, DDR_ID0); +#else ret = vendor_common_mem_alloc_fixed_pool("dcf", &pa, (void **)&va, POOL_SIZE_DCF_BUFFER, DDR_ID0); +#endif if (ret != HD_OK) { return; } mempool_dcf = (UINT32)va; + #endif } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index b056c5eb9..4b9102435 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -88,6 +88,7 @@ static CHAR g_photo_fast_write_file_Path[NMC_TOTALFILEPATH_MAX_LE static INT32 g_photo_fast_id_mapping[PHOTO_CAP_ID_MAX] = {-1,-1}; static PHOTO_FILENAME_CB *g_fpPhotoFastFileNameCB = NULL; static DCF_HANDLE g_dcf_hdl = 0; +static DCF_HANDLE g_dcf_hdl2 = 0; static HD_PATH_ID g_video_enc_path[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static UINT32 g_bVideoEncPathStart[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static HD_VIDEOENC_BUFINFO g_enc_buf_info[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; @@ -722,6 +723,31 @@ INT32 PhotoFast_FileNaming_Open(void) DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); DCF_ScanObj(); +#if (FS_MULTI_STRG_FUNC) + { + DCF_OPEN_PARM dcfParm = { + .Drive = 'B', + .WorkbuffAddr = mempool_dcf + POOL_SIZE_DCF_BUFFER, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; + g_dcf_hdl2 = DCF_Open(&dcfParm); + if(g_dcf_hdl2 < 0){ + DBG_ERR("get dcf handle error!\n"); + } + + + DBG_WRN("DCF_ScanObjEx emmc handle=%d\n", g_dcf_hdl2); +// DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); +// DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); +// DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); +// DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); +// DCF_SetDirFreeChars(DCF_DIR_NAME); +// DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_ScanObjEx(g_dcf_hdl2); + } +#endif + + return 0; } @@ -734,6 +760,11 @@ INT32 PhotoFast_FileNaming_Close(void) g_dcf_hdl = -1; } +#if (FS_MULTI_STRG_FUNC) + DCF_Close(g_dcf_hdl2); + g_dcf_hdl2 = -1; +#endif + DCF_UnInstallID(); } @@ -856,6 +887,11 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, INT32 rt; UINT32 Length; CHAR FilePath[NMC_TOTALFILEPATH_MAX_LEN]; + +#if FS_MULTI_STRG_FUNC + CHAR FilePath2[NMC_TOTALFILEPATH_MAX_LEN]; +#endif + UINT32 fileType; UINT32 open_flag; UINT32 nextFolderID = 0, nextFileID = 0; @@ -898,9 +934,30 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, } } DCF_MakeObjPath(nextFolderID, nextFileID, fileType, FilePath); - DCF_AddDBfile(FilePath); - DBG_DUMP("%s added to DCF\r\n", FilePath); + DCF_AddDBfile(FilePath); + DBG_DUMP("%s added to DCF\r\n", FilePath); } + +#if 0//FS_MULTI_STRG_FUNC + + if (DCF_GetDBInfoEx(g_dcf_hdl2, DCF_INFO_IS_9999)) { + DBG_ERR("Exceed max dcf file!\r\n"); + return FST_STA_NOFREE_SPACE; + } + else { + if (Fmt == HD_CODEC_TYPE_RAW){ + fileType = DCF_FILE_TYPE_RAW; + } + else{ + fileType = DCF_FILE_TYPE_JPG; + } + //DCF_GetNextIDEx(g_dcf_hdl2, &nextFolderID,&nextFileID); + DCF_MakeObjPathEx(g_dcf_hdl2, nextFolderID, nextFileID, fileType, FilePath2); + DCF_AddDBfileEx(g_dcf_hdl2, FilePath2); + DBG_DUMP("%s added to DCF2\r\n", FilePath2); + } +#endif + } else{ strncpy(FilePath, Path, sizeof(FilePath)); @@ -948,6 +1005,29 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, rt =FST_STA_ERROR; } +#if FS_MULTI_STRG_FUNC + + DBG_WRN("write %s\n", FilePath2); + if ((fp = FileSys_OpenFile(FilePath2, open_flag)) != NULL) { + Length = Size; + + rt = FileSys_WriteFile(fp, (UINT8 *)Addr, &Length, 0, NULL); + FileSys_FlushFile(fp); + FileSys_CloseFile(fp); + if (rt == FST_STA_OK) { + // DCF_AddDBfile(FilePath); + // DBG_DUMP("%s added to DCF\r\n", FilePath); + } else { + DBG_ERR("Addr=0x%x,Size=0x%x,Fmt=%d\r\n", Addr, Size, Fmt); + } + }else{ + DBG_ERR("FileSys_OpenFile fail\r\n"); + rt =FST_STA_ERROR; + } + +#endif + + return rt; } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c b/rtos/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c index b8151059a..a6e618cb0 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/UsbDisk/UIAppUsbDisk_Exe.c @@ -153,10 +153,10 @@ ER AppInit_ModeUSBMSDC(void) MSDCInfo.msdc_vendor_cb = NULL; //#NT#2016/12/20#Niven Cho -begin //#NT#MULTI_DRIVE -#if (FS_MULTI_STRG_FUNC == ENABLE) - char *pDxName2 = NULL; - DX_HANDLE pStrgDev2 = 0; -#endif +// #if (FS_MULTI_STRG_FUNC == ENABLE) +// char *pDxName2 = NULL; +// DX_HANDLE pStrgDev2 = 0; +// #endif pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT | FS_DX_TYPE_DRIVE_A); @@ -178,21 +178,21 @@ ER AppInit_ModeUSBMSDC(void) } DBG_DUMP("===>%s\r\n", pDxName); -#if (FS_MULTI_STRG_FUNC == ENABLE) - MSDCInfo.pStrgHandle[1] = pStrgDev2; +// #if (FS_MULTI_STRG_FUNC == ENABLE) +// MSDCInfo.pStrgHandle[1] = pStrgDev2; - if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { - pDxName2 = NULL; - } -#endif +// if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { +// pDxName2 = NULL; +// } +// #endif -#if (FS_MULTI_STRG_FUNC == ENABLE) - MSDCInfo.pStrgHandle[1] = pStrgDev2; +// #if (FS_MULTI_STRG_FUNC == ENABLE) +// MSDCInfo.pStrgHandle[1] = pStrgDev2; - if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { - pDxName2 = NULL; - } -#endif +// if (Dx_GetInfo(pStrgDev2, DX_INFO_NAME, &pDxName2) != DX_OK) { +// pDxName2 = NULL; +// } +// #endif #if (FS_MULTI_STRG_FUNC == ENABLE) MSDCInfo.msdc_storage_detCB[0] = (MSDC_StorageDet_CB)DrvCARD_DetStrgCard; @@ -280,7 +280,7 @@ INT32 MSDCExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) pLastStrgDev = GxStrg_GetDevice(0); if (pLastStrgDev == 0) { - //PowerOn_CB() POWERON_CB_SXOPEN ¨S¦³´£¦­±Ò°ÊFile System + //PowerOn_CB() POWERON_CB_SXOPEN �S�������Ұ�File System DBG_ERR("MSDC: Wait for FS start...\r\n"); FileSys_WaitFinish();