diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit index 6f507a2ce..5f4a0f70e 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S07_SysInit @@ -85,3 +85,5 @@ if [ ! -f /tmp/.nvt_mounts ]; then /etc/mdev-script/autosd.sh rm -rf /tmp/.nvt_mounts; fi + +mount /dev/mmcblk1p1 /mnt/sd2 diff --git a/BSP/u-boot/drivers/video/novatek/drv_videoout/nvt-na51089/ide/ide_platform.c b/BSP/u-boot/drivers/video/novatek/drv_videoout/nvt-na51089/ide/ide_platform.c index c2992ed82..e57df4ca1 100755 --- a/BSP/u-boot/drivers/video/novatek/drv_videoout/nvt-na51089/ide/ide_platform.c +++ b/BSP/u-boot/drivers/video/novatek/drv_videoout/nvt-na51089/ide/ide_platform.c @@ -259,16 +259,30 @@ UINT32 pll_get_pll_freq(PLL_ID id) */ UINT32 pll_get_clock_rate(PLL_CLKSEL clk_sel) { - UINT32 ui_mask, ui_reg_offset; - REGVALUE reg_data; + UINT32 ui_mask, ui_reg_offset; + REGVALUE reg_data; - ui_reg_offset = 0x20; - ui_mask = (0x7<driver.read_task->task_cb(indev_keypad->driver.read_task); - _lv_user_task_handler_unlock(); - } /* workaround to extend key release event for lvgl */ if((paramArray[0] > NVTEVT_KEY_RELEASE_START) && (paramArray[0] < NVTEVT_KEY_RELEASE_END)){ @@ -723,6 +717,12 @@ void UserMainProc(void) DBG_WRN("evt = %lx\r\n", evt); } } + //call input task immediately for read key state + if(indev_keypad){ + _lv_user_task_handler_lock(); + indev_keypad->driver.read_task->task_cb(indev_keypad->driver.read_task); + _lv_user_task_handler_unlock(); + } if(paramArray[0] == NVTEVT_KEY_CONTINUE){ uint32_t nvt_user_key = lv_user_keymap_find(evt); #define MENU_UNLUCK 0 diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index 0ec1eeb50..15cdfc886 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -227,15 +227,15 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) Load_MenuInfo(); #endif #else -#if (BOOT_RESET_MENU_INFO == ENABLE) - //EMMC_AS_PSTORE - #if (defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_)) - System_OnStrgInit_PS(); //because ps uses filesys in this case, so ps init was moved here. - Load_MenuInfo(); - #else - Load_MenuInfo(); //reset value cause the FL_FSStatus as '0', we do so before NVTEVT_STRG_ATTACH finish - #endif -#endif +// #if (BOOT_RESET_MENU_INFO == ENABLE) +// //EMMC_AS_PSTORE +// #if (defined(_CPU2_LINUX_) && defined(_EMBMEM_EMMC_)) +// System_OnStrgInit_PS(); //because ps uses filesys in this case, so ps init was moved here. +// Load_MenuInfo(); +// #else +// Load_MenuInfo(); //reset value cause the FL_FSStatus as '0', we do so before NVTEVT_STRG_ATTACH finish +// #endif +// #endif #endif //#NT#2016/12/14#Niven Cho -end #if (BOOT_RESET_MENU_INFO == ENABLE) @@ -409,10 +409,7 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) } #endif #if HUNTING_CAMERA_MCU == ENABLE - printf("[%s]:%d sf s\n", __FUNCTION__, __LINE__); - system("sync"); - system("echo 3 >/proc/sys/vm/drop_caches"); - printf("[%s]:%d sf e\n", __FUNCTION__, __LINE__); + sf_mem_free(); #endif return NVTEVT_CONSUME; } diff --git a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c index 814ef68dd..868b25067 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c @@ -281,6 +281,7 @@ SXCMD_ITEM("uiprint %", sf_cmd_para_printf, "uiprint") SXCMD_ITEM("blusw %", cmd_blu_switch, "blusw 0/1") SXCMD_ITEM("wifisw %", cmd_wifi_switch, "wifisw 0/1") SXCMD_ITEM("lcdbk %", sf_set_backlight_status, "lcdbk 0/1") +SXCMD_ITEM("sfdump %", sf_vos_perf_list_dump, "sfdump") #endif #if FS_MULTI_STRG_FUNC /* test cmd */ diff --git a/code/application/source/cardv/SrcCode/System/main.c b/code/application/source/cardv/SrcCode/System/main.c index 38f2c5cc8..0c7c274ce 100755 --- a/code/application/source/cardv/SrcCode/System/main.c +++ b/code/application/source/cardv/SrcCode/System/main.c @@ -332,11 +332,13 @@ UINT8 sf_cardv_check_power_on_mode(void) char *pStrOtsOk = "Mode="; char *pStrUpFw = "UpFw="; char *pStrUpMcu = "mcu="; + char *pStrSF = "sf="; char *temp = NULL; UINT8 startup = 0; UINT8 UpFw = 0; UINT8 Upmcu = 0; + UINT8 sftmp = 0; system("cat /proc/cmdline > /tmp/Mode.txt"); fp = fopen("/tmp/Mode.txt","r"); @@ -371,7 +373,13 @@ UINT8 sf_cardv_check_power_on_mode(void) sscanf(temp, "%hhd", &Upmcu); sf_set_mcu_update_flag(Upmcu); } - SLOGI("StartMode=%d,UpFw=%d Upmcu=%d\r\n", startup, UpFw, Upmcu); + temp = strstr(pStrSrc, pStrSF); + if ( temp != NULL) { + temp += strlen("sf="); + sscanf(temp, "%hhd", &sftmp); + sf_cardv_battery_level_set(sftmp); + } + SLOGI("StartMode=%d,UpFw=%d Upmcu=%d sftmp=%d\r\n", startup, UpFw, Upmcu, sftmp); free(pStrSrc); } @@ -388,6 +396,7 @@ int NvtMain(void) { #if HUNTING_CAMERA_MCU == ENABLE sf_cardv_check_power_on_mode(); + sf_cardv_load_menu_info_start(); #endif System_InstallID(); #if (USB_MODE==ENABLE) diff --git a/code/application/source/cardv/SrcCode/UIApp/Play/UIAppPlay_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Play/UIAppPlay_Exe.c index 6144b5d24..f3f818aeb 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Play/UIAppPlay_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Play/UIAppPlay_Exe.c @@ -34,6 +34,7 @@ IMAGEAPP_PLAY_CFG_DISP_INFO gPlay_Disp_Info; static HD_COMMON_MEM_INIT_CONFIG g_play_mem_cfg = {0}; static UINT32 g_PlayExifBufPa = 0, g_PlayExifBufVa = 0; +DCF_HANDLE ChangeHandle = -1; static ER PlayExe_InitExif(void) { @@ -258,10 +259,11 @@ INT32 PlayExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) UI_SetData(FL_IsUseFileDB, 0); #endif useFileDB = UI_GetData(FL_IsUseFileDB); + printf("[PlayExe_OnOpen]mode open\n"); if (useFileDB) { CHAR *rootPath = "A:\\"; //CHAR* defaultfolder="A:\\CarDV\\"; - + printf("[PlayExe_OnOpen]if file db\n"); PPBX_FLIST_OBJ pFlist = PBXFList_FDB_getObject(); pFlist->Config(PBX_FLIST_CONFIG_MEM, uiPoolAddr, POOL_SIZE_FILEDB); pFlist->Config(PBX_FLIST_CONFIG_MAX_FILENUM, 5000, 0); @@ -276,12 +278,16 @@ INT32 PlayExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) pFlist->Config(PBX_FLIST_CONFIG_SUPPORT_LONGNAME, 1, 0); PB_SetParam(PBPRMID_FILELIST_OBJ, (UINT32)pFlist); } else { + printf("[PlayExe_OnOpen]else file %d\n", ChangeHandle); extern DCF_HANDLE System_Get_DCF_Handle(void); - + PPBX_FLIST_OBJ pFlist = PBXFList_DCF_getObject(); - DCF_HANDLE handle = System_Get_DCF_Handle(); + if (ChangeHandle == -1) + { + ChangeHandle = System_Get_DCF_Handle(); + } - pFlist->Config(PBX_FLIST_CONFIG_DCF_HANDLE, (UINT32)handle, 0); + pFlist->Config(PBX_FLIST_CONFIG_DCF_HANDLE, (UINT32)ChangeHandle, 0); PB_SetParam(PBPRMID_FILELIST_OBJ, (UINT32)pFlist); } PB_SetParam(PBPRMID_DEC_VIDEO_CALLBACK, (UINT32)PBDecVideoCB); @@ -362,7 +368,7 @@ INT32 PlayExe_OnClose(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) #if _TODO //refer to NA51055-840 JIRA and using new method PBView_KeepLastView(); #endif - + printf("[PlayExe_OnClose] on close\n"); PlayExe_UninitExif(); ImageApp_Play_Close(); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c index 871e907e3..d095bcf26 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuQR.c @@ -694,7 +694,7 @@ static void qr_page_task_cb(lv_task_t* task){ { UIMenuStoreInfo *puiPara = sf_ui_para_get(); printf("[qr_page_task_cb]is esim card...%s\n", puiPara->ModuleImei); - if(strlen(puiPara->SimIccidV) == 0 && strlen(puiPara->SimIccidA) == 0) + if (strlen(puiPara->SimIccid) == 0 || strlen(puiPara->ModuleImei) == 0) { lv_label_set_text(labelInit, "Please restart the camera"); return; @@ -705,16 +705,16 @@ static void qr_page_task_cb(lv_task_t* task){ { UIMenuStoreInfo *puiPara = sf_ui_para_get(); printf("[qr_page_task_cb]is sim card...%s\n", puiPara->ModuleImei); - if(strlen(puiPara->SimIccidV) == 0 && strlen(puiPara->SimIccidA) == 0) + if (strlen(puiPara->SimIccid) == 0 || strlen(puiPara->ModuleImei) == 0) { - lv_label_set_text(labelInit, "Please insert SIM card and restart the camera"); + lv_label_set_text(labelInit, "Please restart the camera"); return; } snprintf(qr_date, QR_DATA_LENGTH, qr_code_str, puiPara->ModuleImei, puiPara->SimIccidV, puiPara->SimIccidA, "false"); } else if (ret == -1) { - if(sf_cardv_4G_status_get() == SF_4G_SEARCHING) + if (sf_cardv_4G_status_get() == SF_4G_SEARCHING) { lv_label_set_text(labelInit, "\nQR code loading..."); } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c index a0aef5332..5bc06161c 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/UIFlowMenuCommonItemEventCallback.c @@ -949,12 +949,7 @@ static void UIFlowMenuCommonItem_ScrOpen(lv_obj_t* obj) gMenuLuck = MENU_UNLUCK; #if HUNTING_CAMERA_MCU == ENABLE sf_set_menu_open(TRUE); - - printf("[%s]:%d sf s\n", __FUNCTION__, __LINE__); - system("sync"); - system("echo 3 >/proc/sys/vm/drop_caches"); - printf("[%s]:%d sf e\n", __FUNCTION__, __LINE__); - + sf_mem_free(); #endif } 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 b56488920..325c11d43 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 @@ -73,6 +73,7 @@ static BOOL g_PhotoBgInitFileSys = FALSE; static BOOL g_SysStrg_Chg = FALSE; //#NT#2023/11/21#Eric - end +static void UIFlowPhoto_Key(lv_obj_t* obj, uint32_t key); static void sf_show_send_text(lv_obj_t* obj, const unsigned short status); static lv_obj_t *g_preview_info_msgbox = NULL; static lv_obj_t *g_preview_info_label = NULL; @@ -1797,6 +1798,7 @@ void UIFlowPhoto_UpdateInfo(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) { sf_wifi_server_stop_shoot_respond(0); } + sf_mem_free(); } #if HUNTING_CAMERA_MCU == ENABLE sf_set_cap_statu(FALSE); diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c index 9ba5948f5..4acdaaf00 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c @@ -27,7 +27,7 @@ //#define PLAY_KEY_PRESS_MASK (FLGKEY_KEY_MASK_DEFAULT) //#define PLAY_KEY_RELEASE_MASK FLGKEY_KEY_MASK_NULL//(FLGKEY_UP | FLGKEY_DOWN | FLGKEY_LEFT | FLGKEY_RIGHT) //#define PLAY_KEY_CONTINUE_MASK FLGKEY_KEY_CONT_MASK_DEFAULT -static SF_ST_MMC_DEV *mmc_dev = NULL; +extern int System_Get_DCF_Handle(void); //static lv_obj_t* pMenu = NULL; enum SELECTION_SHOW { @@ -60,6 +60,11 @@ extern void PBView_DrawNoFile(void); static void stop_play(void); //#NT#2023/11/14#Eric - end +#define HANDLE_SD 1 +#define HANDLE_EMMC 0 +DCF_HANDLE FirstHandle = -1; +extern DCF_HANDLE ChangeHandle; + static BOOL g_PlayBgInitFileSys = FALSE; #if 1 @@ -221,6 +226,22 @@ static void update_play_Selection_msg(lv_obj_t* obj) } } } + UINT32 cardStatus = System_GetState(SYS_STATE_CARD); + if (cardStatus == CARD_REMOVED && OPTION_PAGE_SELECT_FUNCTION != gOptionPage) + { + ProfileFocused = 0; + ProfileSelected = 0; + lv_obj_set_state(image_button_option_1_scr_uiflowplay, LV_STATE_FOCUSED); + lv_obj_set_state(label_option1_scr_uiflowplay, LV_STATE_FOCUSED); + + lv_plugin_img_set_src(image_option1_scr_uiflowplay, LV_PLUGIN_IMG_ID_SF_LIST_SELECTED); + lv_obj_set_pos(image_option1_scr_uiflowplay, 272, 0); + lv_obj_set_hidden(image_option1_scr_uiflowplay, false); + + lv_obj_set_state(image_button_option_2_scr_uiflowplay, LV_STATE_DISABLED); + lv_obj_set_state(label_option2_scr_uiflowplay, LV_STATE_DISABLED); + lv_obj_set_hidden(image_option2_scr_uiflowplay, true); + } } @@ -279,6 +300,7 @@ void Option_play_Selection_Key(lv_obj_t* obj, uint32_t key) } case LV_USER_KEY_LEFT: { + /* if (OPTION_PAGE_SELECT_FUNCTION == gOptionPage) { hidde_Selection_page(); @@ -288,6 +310,7 @@ void Option_play_Selection_Key(lv_obj_t* obj, uint32_t key) gOptionPage = OPTION_PAGE_SELECT_FUNCTION; show_Selection_page(obj); } + */ break; } case LV_USER_KEY_RIGHT: @@ -298,6 +321,7 @@ void Option_play_Selection_Key(lv_obj_t* obj, uint32_t key) hidde_Selection_page(); UINT32 uiFileSeq; PB_GetParam(PBPRMID_CURR_FILESEQ, &uiFileSeq); + ProfileFocused = 0; if (0 != uiFileSeq) { stop_play(); @@ -307,33 +331,27 @@ void Option_play_Selection_Key(lv_obj_t* obj, uint32_t key) } else //GO TO STORAGE OPTIONS { - mmc_dev = SF_GetMMCDev(); - if (mmc_dev->dev_type == 0)//sd 0, emmc 1 - { - ProfileFocused = 1; - } - else - { - ProfileFocused = 0; - } - printf(" ================================== storage option init%d\n", ProfileSelected); ProfileFocused = ProfileSelected; gOptionPage = OPTION_PAGE_FORMAT; show_Selection_page(obj); } } else { - if (1 == ProfileFocused) + if (1 == ProfileFocused && ProfileSelected == 0) { printf(" ================================== switch sd card.\n"); ProfileSelected = 1; - FileDB_Refresh(0); + ChangeHandle = ProfileSelected; + Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_PLAYBACK); + } - else + else if (0 == ProfileFocused && ProfileSelected == 1) { printf(" ================================== switch emmc.\n"); ProfileSelected = 0; - FileDB_Refresh(1); + ChangeHandle = ProfileSelected; + Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_PLAYBACK); + } ProfileFocused = 0; hidde_Selection_page(); @@ -1271,8 +1289,16 @@ static void set_indev_keypad_group(lv_obj_t* obj) static void UIFlowPlay_ScrOpen(lv_obj_t* obj) { - DBG_IND("UIFlowPlay_ScrOpen\r\n"); + if (FirstHandle == -1) + { + FirstHandle = System_Get_DCF_Handle(); + printf("[UIFlowPlay_ScrOpen][*x] select handle: %d.\n", FirstHandle); + ProfileSelected = FirstHandle; + } + DBG_IND("UIFlowPlay_ScrOpen\r\n"); + + set_indev_keypad_group(obj); if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE) { @@ -2409,7 +2435,6 @@ static void UIFlowPlay_Key(lv_obj_t* obj, uint32_t key) static void UIFlowPlay_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* msg) { - switch(msg->event) { case NVTEVT_CB_MOVIE_FINISH: @@ -2481,6 +2506,18 @@ static void UIFlowPlay_NVTMSG(lv_obj_t* obj, const LV_USER_EVENT_NVTMSG_DATA* ms break; } + case NVTEVT_MSG_SCREEN_KEY: + if (1 == msg->paramNum) + { + uint32_t key = msg->paramArray[0]; + if (SELECTION_SHOW_TURE == gSeletionShow) { + Option_play_Selection_Key(obj, key); + } else { + /* handle key event */ + UIFlowPlay_Key(obj, key); + } + } + break; default: break; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c index 09c1522d5..49c671a2d 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c @@ -45,7 +45,7 @@ static void task_msgbox_timer_cb(lv_task_t* task) if (0 == autoClose || autoOffTime <= 10) { - + printf("[task_msgbox_timer_cb][*x]auto close\n"); lv_task_del(msgbox_timer); msgbox_timer = NULL; @@ -56,6 +56,7 @@ static void task_msgbox_timer_cb(lv_task_t* task) } if (0 == autoClose) { + printf("[task_msgbox_timer_cb][*x]set statu flag\n"); sf_set_pir_statu_flag(1); // OpenClosingScreen(DISPLAY_FINAL_DO_NOT_SHOW_POWER_OFF); //#define DO_NOT_SHOW_POWER_OFF 0 @@ -325,7 +326,11 @@ void message_box_wrnmsg_OnKey(lv_obj_t* msgbox, uint32_t key) { // static uint32_t key22 = LV_KEY_END; // key22 = key; - // lv_event_send(lv_obj_get_parent(UIFlowWrnMsg), LV_USER_EVENT_KEY_RELEASE, &key22); + if(lv_plugin_scr_count() >= 2){ + lv_event_send(lv_plugin_scr_by_index(lv_plugin_scr_count() - 2), LV_USER_EVENT_NVTMSG, gen_nvtmsg_data(NVTEVT_MSG_SCREEN_KEY, 1, key)); + }else{ + lv_event_send(lv_plugin_scr_act(), LV_USER_EVENT_NVTMSG, gen_nvtmsg_data(NVTEVT_MSG_SCREEN_KEY, 1, key)); + } return; switch(key) { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index d82e3bf24..18694b5d1 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -1945,6 +1945,9 @@ void SysResetFlag(void) //#2023/02/10#Payton - end SysSetFixedFlag(); +#if HUNTING_CAMERA_MCU == ENABLE + sf_cardv_statistics_param_reset(); +#endif } diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index fd8048023..bfafd04a0 100755 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -813,12 +813,16 @@ static SINT32 sf_app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) { MLOGD("ID = %#x\n",pMessageBuf->arg1); + SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); switch(pMessageBuf->arg1) { case SF_PARA_CMD_UPDATE: sf_share_mem_customer_update(); break; + case SF_PARA_CMD_RESET: + sf_statistics_param_reset(pSifarPara); + break; case SF_PARA_CMD_FWUP: FwUpdate = pMessageBuf->arg2; //sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, FwUpdate); @@ -840,7 +844,6 @@ static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) case SF_PARA_CMD_SIG: sf_app_para_signaling_start(); break; - default: break; } 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 648f16b7b..d22a8d23c 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 @@ -418,7 +418,11 @@ UINT32 sf_battery_adc_value_get_once(void) } else { first_init--; - puiPara->BatteryType = SF_BATT_ALKALINE; + if (puiPara->BatteryType == SF_BATT_LI_PACK) + { + puiPara->BatteryType = SF_BATT_ALKALINE; + } + } } @@ -969,7 +973,11 @@ void sf_battery_level_polling(void) } } else{ - puiPara->BatteryType = SF_BATT_ALKALINE; + if(puiPara->BatteryType == SF_BATT_LI_PACK) + { + puiPara->BatteryType = SF_BATT_ALKALINE; + } + } //ret = sf_check_low_battery(); diff --git a/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c b/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c index 0bcdee274..194738662 100755 --- a/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c +++ b/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c @@ -237,7 +237,9 @@ const T_PANEL_CMD t_cmd_mode_rgb320[] = { const T_LCD_PARAM t_mode[] = { /*********** RGB Serial MODE *************/ { + // T_PANEL_PARAM +#if 0 { /* Old prototype */ PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode @@ -277,6 +279,48 @@ const T_LCD_PARAM t_mode[] = { 0x0A, //!< uiHSyncSYNCwidth 0x04, //!< uiVSyncSYNCwidth }, +#else + { + /* Old prototype */ + PINMUX_LCDMODE_RGB_THROUGH, //!< LCDMode +// 18000000 / 3 , //24.0f, //!< fDCLK + 5000000, +#if 1 + 1024 / 3,//PANELWIDTH + 69*2, //!< uiHSyncTotalPeriod + 720 / 3,//PANELWIDTH, //!< uiHSyncActivePeriod + 69 / 3, //!< uiHSyncBackPorch + 384,//PANELHEIGHT + 40, //!< uiVSyncTotalPeriod + 344, //!< uiVSyncActivePeriod + 2, //!< uiVSyncBackPorchOdd + 2, //!< uiVSyncBackPorchEven + 720 / 3,//320,//PANELWIDTH, //!< uiBufferWidth + 320,//720,//PANELHEIGHT, //!< uiBufferHeight + 720 / 3,//320,//PANELWIDTH, //!< uiWindowWidth + 320,//720,//PANELHEIGHT, //!< uiWindowHeight +#endif + +#if 0 + PANELWIDTH + 200, //!< uiHSyncTotalPeriod + PANELWIDTH, //!< uiHSyncActivePeriod + 10, //!< uiHSyncBackPorch + PANELHEIGHT + 140, //!< uiVSyncTotalPeriod + PANELHEIGHT, //!< uiVSyncActivePeriod + 4, //!< uiVSyncBackPorchOdd + 4, //!< uiVSyncBackPorchEven + PANELWIDTH, //!< uiBufferWidth + PANELHEIGHT, //!< uiBufferHeight + PANELWIDTH, //!< uiWindowWidth + PANELHEIGHT, //!< uiWindowHeight +#endif + + + FALSE, //!< bYCbCrFormat + + /* New added parameters */ + 0x0A, //!< uiHSyncSYNCwidth + 0x04, //!< uiVSyncSYNCwidth + }, +#endif // tIDE_PARAM { @@ -286,8 +330,8 @@ const T_LCD_PARAM t_mode[] = { {FALSE,FALSE}, //!< dithering[2]; DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE** IDE_PDIR_RBG, //!< pdir; - IDE_LCD_G, //!< odd; - IDE_LCD_G, //!< even; + IDE_LCD_B, //!< odd; + IDE_LCD_B, //!< even; TRUE, //!< hsinv; TRUE, //!< vsinv; FALSE, //!< hvldinv; diff --git a/code/lib/source/DCF/libDCF.a b/code/lib/source/DCF/libDCF.a index 82dc54b33..2fc003dd9 100644 Binary files a/code/lib/source/DCF/libDCF.a and b/code/lib/source/DCF/libDCF.a differ diff --git a/code/lib/source/DCF/libDCF.so b/code/lib/source/DCF/libDCF.so index 773224bd5..769c86e00 100755 Binary files a/code/lib/source/DCF/libDCF.so and b/code/lib/source/DCF/libDCF.so differ diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index 4694c25be..3b79b6783 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -202,4 +202,9 @@ void sf_set_cammode_statu(char is); BOOL sf_set_backlight_status(unsigned char argc, char **argv); UINT8 sf_get_net_generation(void); void sf_set_net_generation(UINT8 value); +UINT32 sf_cardv_load_menu_info_start(void); +BOOL sf_vos_perf_list_dump(unsigned char argc, char **argv); +void sf_mem_free(void); +void sf_cardv_battery_level_set(UINT32 val); +void sf_cardv_statistics_param_reset(void); #endif diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index 668eb0c87..172119f25 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -134,6 +134,12 @@ static SF_THREAD_S WaiParaTskCfg = .IsRun = 0, .TskId = -1, }; + +static SF_THREAD_S LoadParaTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; int sf_pir_statu_read(void) { static UINT8 state = 0; @@ -278,6 +284,7 @@ void sf_mode_detect(void) } else if((sf_get_pir_statu_flag()) && (CMD_FORMAT_SD_STA != sf_get_card_statu())) { + printf("[sf_mode_detect][*x] empezar going to pir................................\n"); pwroffcnt++; //printf("[%s:%d]pwroffcnt=%d\n",__FUNCTION__,__LINE__,pwroffcnt); //sf_enter_auto_mode_count_down_show(4 - pwroffcnt); @@ -2514,7 +2521,18 @@ UINT32 sf_cardv_battery_level_get(void) return (UINT32)sf_LatestBattLevel; } - +/************************************************* + Function: sf_battery_level_set + Description: set battery level + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_cardv_battery_level_set(UINT32 val) +{ + sf_LatestBattLevel = val; +} /************************************************* Function: sf_battery_value_get Description: get battery value x% @@ -3453,4 +3471,58 @@ void sf_set_net_generation(UINT8 value) { printf("[%s:%d]value(%d) invalid,no set.\n", __FUNCTION__, __LINE__, value); } -} \ No newline at end of file +} + +void* sf_cardv_load_menu_info_thread(void *arg) +{ + vos_perf_list_mark(__func__, __LINE__, 0); + SLOGI("thread run\n"); + LoadParaTskCfg.IsRun = 1; + Load_MenuInfo(); + SLOGI("thread end\n"); + + LoadParaTskCfg.IsRun = 0; + vos_perf_list_mark(__func__, __LINE__, 0); + return NULL; +} +UINT32 sf_cardv_load_menu_info_start(void) +{ + SINT32 ret = 1; + if(LoadParaTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return 1; + } + ret = pthread_create(&LoadParaTskCfg.TskId, NULL, sf_cardv_load_menu_info_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; + +} + +BOOL sf_vos_perf_list_dump(unsigned char argc, char **argv) +{ + vos_perf_list_dump(); + sleep(1); + system("dmesg"); + return TRUE; +} + +void sf_mem_free(void) +{ + printf("[%s]:%d sf s\n", __FUNCTION__, __LINE__); + system("sync"); + system("echo 3 >/proc/sys/vm/drop_caches"); + printf("[%s]:%d sf e\n", __FUNCTION__, __LINE__); +} +void sf_cardv_statistics_param_reset(void) +{ + SF_MESSAGE_BUF_S stMessageBuf = {0}; + stMessageBuf.arg1 = SF_PARA_CMD_RESET; + stMessageBuf.cmdId = CMD_PARA; + sf_com_message_send_to_app(&stMessageBuf); + printf("[%s]:%d sf e\n", __FUNCTION__, __LINE__); +} diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-top.dtsi b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-top.dtsi index 4ebb5396e..fc58f2a40 100755 --- a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-top.dtsi +++ b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-top.dtsi @@ -17,7 +17,7 @@ pwm2{pinmux = <0x0000000>;}; ccnt{pinmux = <0x0>;}; audio{pinmux = <0x0>;}; - lcd{pinmux = <0x10000000>;}; + lcd{pinmux = <0x10000006>;};/* rgb through */ tv{pinmux = <0x0>;}; eth{pinmux = <0x0>;}; misc{pinmux = <0x0>;}; diff --git a/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_boot_logo.c b/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_boot_logo.c index b3d9d564f..18da2147c 100755 --- a/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_boot_logo.c +++ b/rtos/code/application/source/cardv/SrcCode/FastFlow/flow_boot_logo.c @@ -405,20 +405,20 @@ static THREAD_RETTYPE thread_videoout(void *ptr) pxlfmt) != HD_OK){ goto exit; } - HD_URECT rect = (HD_URECT){0, 0, 720, 320}; +// HD_URECT rect = (HD_URECT){0, 0, 720, 320}; - //HD_URECT rect = (HD_URECT){0, 0, videoout_syscaps.output_dim.w, videoout_syscaps.output_dim.h}; - if(flow_boot_logo_videoout_set_param_in_win(path_id, rect) != HD_OK){ - goto exit; - } + HD_URECT rect = (HD_URECT){0, 0, videoout_syscaps.output_dim.w, videoout_syscaps.output_dim.h}; + if(flow_boot_logo_videoout_set_param_in_win(path_id, rect) != HD_OK){ + goto exit; + } - hd_videoout_start(path_id); + hd_videoout_start(path_id); exit: - vos_flag_set(task_param->flag, FLAG_VIDEOOUT_TASK_EXIT); + vos_flag_set(task_param->flag, FLAG_VIDEOOUT_TASK_EXIT); - LINUX_BOOT_MSG("%s exit\n", __func__); - THREAD_RETURN(0); + LINUX_BOOT_MSG("%s exit\n", __func__); + THREAD_RETURN(0); } static THREAD_RETTYPE thread_videodec(void *ptr) diff --git a/rtos/code/application/source/cardv/SrcCode/System/SysMain_cmd.c b/rtos/code/application/source/cardv/SrcCode/System/SysMain_cmd.c index 67c32b4fc..b28800439 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/SysMain_cmd.c +++ b/rtos/code/application/source/cardv/SrcCode/System/SysMain_cmd.c @@ -12,7 +12,9 @@ #endif #include #include "UIApp/AppDisp_PipView.h" - +#if HUNTING_CAMERA_MCU == ENABLE +#include "sys_fastboot.h" +#endif #define THIS_DBGLVL 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER /////////////////////////////////////////////////////////////////////////////// #define __MODULE__ SysMainCmd @@ -201,6 +203,15 @@ static BOOL Cmd_PowerOff_Test(unsigned char argc, char **argv) return TRUE; } +#if HUNTING_CAMERA_MCU == ENABLE +static BOOL sf_log_fastboot_msg_en(unsigned char argc, char **argv) +{ + fastboot_msg_en(ENABLE); + DBG_DUMP("log ENABLE\r\n"); + return TRUE; +} +#endif + SXCMD_BEGIN(sys_cmd_tbl, "system command") SXCMD_ITEM("mem %", cmd_sys_mem, "system memory layout") SXCMD_ITEM("pip %", Cmd_user_pip, "pip view style") @@ -214,7 +225,9 @@ SXCMD_ITEM("curl", Cmd_user_CurlTest, "curl command test") #endif SXCMD_ITEM("power_off %", Cmd_PowerOff_Test, "flowpreview power off test") - +#if HUNTING_CAMERA_MCU == ENABLE +SXCMD_ITEM("log %", sf_log_fastboot_msg_en, "log on") +#endif SXCMD_END() diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c index aa75b4ee1..1615806e6 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c @@ -25,6 +25,7 @@ #include "sys_fastboot.h" #if HUNTING_CAMERA_MCU == ENABLE #include "sf_mcu.h" +#include "sf_battery.h" #endif #define CFG_BOOTARG_EXTRA_MAX_LEN 0x100 /* for init.d script parsing by (dmesg | grep xxx) */ @@ -854,7 +855,7 @@ static int make_bootargs(LINUXTMP_PARTITION *p_linuxtmp, unsigned int bootts_beg // } // } - snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d UpFw=%d mcu=%d",sf_get_power_on_mode(), sf_in_update() , sf_in_mcu_update()); + snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d UpFw=%d mcu=%d sf=%d",sf_get_power_on_mode(), sf_in_update() , sf_in_mcu_update(), sf_battery_level_get()); linuxboot_set_extra_bootarg(PowerOnModeStr); #endif p_linuxtmp->bootargs_addr = p_linuxtmp->tmp_curr; diff --git a/rtos/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c b/rtos/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c index 0bcdee274..194738662 100755 --- a/rtos/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c +++ b/rtos/code/hdal/ext_devices/panel/display_panel/disp_if8b_lcd1_psd200_st7789v/panel.c @@ -237,7 +237,9 @@ const T_PANEL_CMD t_cmd_mode_rgb320[] = { const T_LCD_PARAM t_mode[] = { /*********** RGB Serial MODE *************/ { + // T_PANEL_PARAM +#if 0 { /* Old prototype */ PINMUX_LCDMODE_RGB_SERIAL, //!< LCDMode @@ -277,6 +279,48 @@ const T_LCD_PARAM t_mode[] = { 0x0A, //!< uiHSyncSYNCwidth 0x04, //!< uiVSyncSYNCwidth }, +#else + { + /* Old prototype */ + PINMUX_LCDMODE_RGB_THROUGH, //!< LCDMode +// 18000000 / 3 , //24.0f, //!< fDCLK + 5000000, +#if 1 + 1024 / 3,//PANELWIDTH + 69*2, //!< uiHSyncTotalPeriod + 720 / 3,//PANELWIDTH, //!< uiHSyncActivePeriod + 69 / 3, //!< uiHSyncBackPorch + 384,//PANELHEIGHT + 40, //!< uiVSyncTotalPeriod + 344, //!< uiVSyncActivePeriod + 2, //!< uiVSyncBackPorchOdd + 2, //!< uiVSyncBackPorchEven + 720 / 3,//320,//PANELWIDTH, //!< uiBufferWidth + 320,//720,//PANELHEIGHT, //!< uiBufferHeight + 720 / 3,//320,//PANELWIDTH, //!< uiWindowWidth + 320,//720,//PANELHEIGHT, //!< uiWindowHeight +#endif + +#if 0 + PANELWIDTH + 200, //!< uiHSyncTotalPeriod + PANELWIDTH, //!< uiHSyncActivePeriod + 10, //!< uiHSyncBackPorch + PANELHEIGHT + 140, //!< uiVSyncTotalPeriod + PANELHEIGHT, //!< uiVSyncActivePeriod + 4, //!< uiVSyncBackPorchOdd + 4, //!< uiVSyncBackPorchEven + PANELWIDTH, //!< uiBufferWidth + PANELHEIGHT, //!< uiBufferHeight + PANELWIDTH, //!< uiWindowWidth + PANELHEIGHT, //!< uiWindowHeight +#endif + + + FALSE, //!< bYCbCrFormat + + /* New added parameters */ + 0x0A, //!< uiHSyncSYNCwidth + 0x04, //!< uiVSyncSYNCwidth + }, +#endif // tIDE_PARAM { @@ -286,8 +330,8 @@ const T_LCD_PARAM t_mode[] = { {FALSE,FALSE}, //!< dithering[2]; DISPLAY_DEVICE_TOPPOLY, //!< **DONT-CARE** IDE_PDIR_RBG, //!< pdir; - IDE_LCD_G, //!< odd; - IDE_LCD_G, //!< even; + IDE_LCD_B, //!< odd; + IDE_LCD_B, //!< even; TRUE, //!< hsinv; TRUE, //!< vsinv; FALSE, //!< hvldinv;