From 94b1d4b7e600ad523a52264829d1ee0820c53f2c Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Wed, 3 Jan 2024 13:33:17 +0800 Subject: [PATCH 1/4] Fixed:Key event of comfirm screen do not send to current screen. --- .../source/cardv/SrcCode/System/SysMain.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 505827410..7441a328a 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -696,12 +696,6 @@ void UserMainProc(void) g_keyboard_pressed = false; leftKeyPressingTime_ms = 0; } - //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(); - } /* 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 From 637119f1ac3f0b2b9ca29e44fe600424d5e9d529 Mon Sep 17 00:00:00 2001 From: payton Date: Wed, 3 Jan 2024 16:42:11 +0800 Subject: [PATCH 2/4] =?UTF-8?q?1.=E6=8B=8D=E6=91=84=E5=90=8E=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=86=85=E5=AD=98=E9=87=8A=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/Mode/UIModePhoto.c | 8 +++++++- .../source/cardv/SrcCode/System/SysMain_Exe.c | 5 +---- .../UIFlowMenuCommonItemEventCallback.c | 7 +------ .../UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c | 1 + code/lib/source/sifar/code/include/sf_common.h | 1 + code/lib/source/sifar/code/source/common/sf_common.c | 10 +++++++++- 6 files changed, 20 insertions(+), 12 deletions(-) diff --git a/code/application/source/cardv/SrcCode/Mode/UIModePhoto.c b/code/application/source/cardv/SrcCode/Mode/UIModePhoto.c index 33fad98f9..a1809ba38 100755 --- a/code/application/source/cardv/SrcCode/Mode/UIModePhoto.c +++ b/code/application/source/cardv/SrcCode/Mode/UIModePhoto.c @@ -2,7 +2,9 @@ #include "PrjInc.h" #include "Mode/UIModePhoto.h" - +#if HUNTING_CAMERA_MCU == ENABLE +#include "sf_common.h" +#endif #if(WIFI_FUNC==ENABLE) #include "UIModeWifi.h" #endif @@ -58,6 +60,10 @@ void ModePhoto_Open(void) } } #endif + + #if HUNTING_CAMERA_MCU == ENABLE + sf_mem_free(); + #endif #endif } void ModePhoto_Close(void) diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index 604baf7fa..15cdfc886 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -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/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..199e95c93 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 @@ -1797,6 +1797,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/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index 45c796223..9a89bcc59 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -204,4 +204,5 @@ 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); #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 9933b4dce..c5c78bdd1 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -3498,4 +3498,12 @@ BOOL sf_vos_perf_list_dump(unsigned char argc, char **argv) sleep(1); system("dmesg"); return TRUE; -} \ No newline at end of file +} + +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__); +} From 5b0ad73b4090eec5824dc840bbf205f712da67cb Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Wed, 3 Jan 2024 16:48:01 +0800 Subject: [PATCH 3/4] Fixed:Message screen key event can not send to father screen. --- .../source/cardv/SrcCode/NVTUserCommand.h | 1 + .../UIFlowPhoto/UIFlowPhotoEventCallback.c | 1 + .../UIFlowLVGL/UIFlowPlay/UIFlowPlayEventCallback.c | 13 ++++++++++++- .../UIFlowWrnMsg/UIFlowWrnMsgEventCallback.c | 6 +++++- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/code/application/source/cardv/SrcCode/NVTUserCommand.h b/code/application/source/cardv/SrcCode/NVTUserCommand.h index 0dc590cf6..71201744a 100755 --- a/code/application/source/cardv/SrcCode/NVTUserCommand.h +++ b/code/application/source/cardv/SrcCode/NVTUserCommand.h @@ -103,6 +103,7 @@ typedef enum { #if defined(_UI_STYLE_LVGL_) NVTEVT_UPDATE_LVGL = 0x80000001, ///< Update lvgl task handel #endif + NVTEVT_MSG_SCREEN_KEY = 0x80000002, /* INSERT NEW EVENT HRER */ 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..75c298193 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; 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..33df57bce 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 @@ -2409,7 +2409,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 +2480,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..3a10a4884 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 @@ -325,7 +325,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) { From ac7c19a327e22e50a2ae67a1ef93c623d807beae Mon Sep 17 00:00:00 2001 From: payton Date: Wed, 3 Jan 2024 16:51:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?1.Linux=E5=90=AF=E5=8A=A8=E6=97=B6=E8=8E=B7?= =?UTF-8?q?=E5=8F=96rtos=E4=B8=8B=E7=9A=84=E7=94=B5=E6=B1=A0=E6=A0=BC?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/application/source/cardv/SrcCode/System/main.c | 10 +++++++++- code/lib/source/sifar/code/include/sf_common.h | 1 + .../lib/source/sifar/code/source/common/sf_common.c | 13 ++++++++++++- .../source/cardv/SrcCode/System/sys_linuxboot.c | 3 ++- 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/main.c b/code/application/source/cardv/SrcCode/System/main.c index 8d94cf74d..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); } diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index 9a89bcc59..4e5a64c44 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -205,4 +205,5 @@ 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); #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 c5c78bdd1..3661bee63 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -2521,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% 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;