From 2c8a671ceed8958ca3229dd598acfa55a563427a Mon Sep 17 00:00:00 2001 From: payton Date: Sun, 4 Feb 2024 10:16:55 +0800 Subject: [PATCH 1/6] =?UTF-8?q?1.=E7=94=B5=E6=B1=A0=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/lib/source/sifar/code/include/sf_common.h | 2 +- code/lib/source/sifar/code/source/common/sf_common.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index dd1600191..7c8eb5c50 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -159,7 +159,7 @@ UINT32 sf_cardv_para_check_start(void); UINT32 sf_cardv_para_check_stop(void); UINT8 sf_get_night_led_flag(void); void sf_set_night_led_flag(UINT8 flag); -void sf_cardv_battery_level_update(UINT8 batteryVal); +void sf_cardv_battery_level_update(UINT16 batteryVal); UINT32 sf_cardv_battery_level_get(void); UINT8 sf_cardv_battery_value_get(void); UINT8 sf_cardv_battery_type_get(void); 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 3a4b60477..331a8ac11 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -89,9 +89,9 @@ static UINT8 ModuleUpdating = 0; static UINT8 FwUpdate = 0; static UINT8 IsNightLedOn = 0; static SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0; -static UINT8 batteryVal = 0; +static UINT16 batteryVal = 0; static UINT16 powerVal = 0; -static UINT8 batteryType = 0; +static UINT16 batteryType = 0; static SINT16 fTemper = 0; static SINT16 cTemper = 0; static pthread_cond_t condition; @@ -2519,7 +2519,7 @@ void sf_set_night_led_flag(UINT8 flag) Return: N/A Others: N/A *************************************************/ -void sf_cardv_battery_level_update(UINT8 batteryVal) +void sf_cardv_battery_level_update(UINT16 batteryVal) { UINT8 batteryLevel = SF_BATT_LEVEL_0; From 2854007c11b1a5afe8496b20db30ad99a1e1d914 Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Sun, 4 Feb 2024 14:27:05 +0800 Subject: [PATCH 2/6] Cancel log of ftp module. --- code/application/sifarsdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/application/sifarsdk b/code/application/sifarsdk index 8e5bc4220..8e444f10b 160000 --- a/code/application/sifarsdk +++ b/code/application/sifarsdk @@ -1 +1 @@ -Subproject commit 8e5bc42200744278717e429ce6c35bb951939535 +Subproject commit 8e444f10b991e0eb187d0ed1270ae469203e08e8 From 91c75af5216c8b0f86dcaea927ba4458e466cd73 Mon Sep 17 00:00:00 2001 From: payton Date: Sun, 4 Feb 2024 15:39:01 +0800 Subject: [PATCH 3/6] =?UTF-8?q?1.wifi=E9=A9=B1=E5=8A=A8=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sf_app/code/source/wifi/sf_wifi_svr.c | 40 +++++++++++++++++-- .../make_post.sh | 26 +----------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c index caba7166b..c03e9ca90 100755 --- a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c +++ b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c @@ -3063,10 +3063,25 @@ BOOL sf_system_check_wifi_ko(void) fgets(result, sizeof(result), fp); pclose(fp); if (result[0] == '\0') { - MLOGI("rtk_btusb module is not loaded.\n"); + MLOGI("8723du module is not loaded.\n"); return FALSE; } else { - MLOGI("rtk_btusb module is loaded.\n"); + MLOGI("8723du module is loaded.\n"); + return TRUE; + } +} +BOOL sf_wifi_check_firmware_class_ko(void) +{ + char command[30] = "lsmod | grep firmware_class"; + FILE *fp = popen(command, "r"); + char result[256]; + fgets(result, sizeof(result), fp); + pclose(fp); + if (result[0] == '\0') { + MLOGI("firmware_class module is not loaded.\n"); + return FALSE; + } else { + MLOGI("firmware_class module is loaded.\n"); return TRUE; } } @@ -3074,12 +3089,29 @@ BOOL sf_system_check_wifi_ko(void) int sf_load_wifi_ko(void) { int ret = 0; + UINT8 i = 0; MLOGI("start.\n"); if (sf_system_check_wifi_ko() == TRUE) { return TRUE; } - ret = system("insmod /lib/custom/lib/modules/4.19.91/kernel/net/wireless/cfg80211.ko"); + for (i = 0; i < 50; i++) + { + if (sf_wifi_check_firmware_class_ko() == TRUE) + { + break; + } + else + { + if(49 == i) + { + MLOGE("wifi setup fall!!\n"); + return FALSE; + } + usleep(500 * 1000); + } + } + ret = system("insmod /etc/lib/modules/4.19.91/kernel/net/wireless/cfg80211.ko"); if(ret == 0) { printf("Wifi cfg80211 OK\r\n"); @@ -3088,7 +3120,7 @@ int sf_load_wifi_ko(void) { printf("Wifi cfg80211 ERR\r\n"); } - ret = system("insmod /lib/custom/lib/modules/4.19.91/extra/net/rtl8723du/8723du.ko"); + ret = system("insmod /etc/lib/modules/4.19.91/extra/net/rtl8723du/8723du.ko"); if(ret == 0) { printf("Wifi rtl8723du OK\r\n"); diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh index 273347f4b..aee23e2b5 100755 --- a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh +++ b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/make_post.sh @@ -104,6 +104,8 @@ MV_KO_LIST=(\ /lib/modules/$KERVER/kernel/drivers/net/usb/qmi_wwan.ko \ /lib/modules/$KERVER/extra/fs/exfat/exfat.ko \ /lib/modules/$KERVER/kernel/drivers/bluetooth/rtk_btusb.ko \ +/lib/modules/$KERVER/extra/net/rtl8723du/8723du.ko \ +/lib/modules/$KERVER/kernel/net/wireless/cfg80211.ko \ ) @@ -129,30 +131,6 @@ do fi done -SF_MV_KO_LIST=(\ -/lib/modules/$KERVER/extra/net/rtl8723du/8723du.ko \ -/lib/modules/$KERVER/kernel/net/wireless/cfg80211.ko \ -) - -if [ -d ${ROOTFS_DIR}/rootfs/lib/custom ]; then - echo "remove old rootfs etc/lib/custom" - rm -r ${ROOTFS_DIR}/rootfs/etc/lib/custom -fi - - -for n in "${SF_MV_KO_LIST[@]}" -do - if [ -f ${ROOTFS_DIR}/rootfs/${n} ]; then - path=$(dirname "${ROOTFS_DIR}/rootfs/lib/custom${n}") - if [ ! -d ${path} ]; then - mkdir -p ${path} - fi - echo "mv ${ROOTFS_DIR}/rootfs/${n} to ${path}/" - mv ${ROOTFS_DIR}/rootfs/${n} ${path}/ - ${STRIP} -g --strip-unneeded ${ROOTFS_DIR}/rootfs/lib/custom/${n} - fi -done - # static device node MAJOR=253 rm -rf ${ROOTFS_DIR}/rootfs/dev/* From 14c29b24bf7c391d70e68b140ee57d71628567d7 Mon Sep 17 00:00:00 2001 From: payton Date: Sun, 4 Feb 2024 17:28:44 +0800 Subject: [PATCH 4/6] =?UTF-8?q?1.=E6=96=87=E4=BB=B6=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E6=BC=8F=E5=9B=BE=E9=97=AE=E9=A2=98=EF=BC=9B2.=E5=B1=8F?= =?UTF-8?q?=E8=94=BDiq=20dbg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/PrjCfg_HUNTING_S550.h | 2 +- .../source/cardv/SrcCode/System/sys_filesys.c | 6 ++ .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 36 +++++++++- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 67 ++++++++++++++----- .../UIApp/PhotoFast/PhotoFastSliceEncode.c | 17 +++-- .../driver/na51089/source/mcu/sf_sd_common.c | 14 ++-- 6 files changed, 106 insertions(+), 36 deletions(-) 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 d5dca0a1f..3b7d344bd 100755 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -979,7 +979,7 @@ #define SF_TEST_OTA_FTP 0 #define CUSTOM_TEST_OTA_FTP 0 -#define FASTBOOT_WAIT_FILESYS_TIMEOUT_MS 10000 +#define FASTBOOT_WAIT_FILESYS_TIMEOUT_MS 15000 #define FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS 5000 #define SF_BATTERY_TEST DISABLE 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 13f4f28ed..7500ea75d 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_filesys.c @@ -100,6 +100,12 @@ static void card_insert_job2(void) if (FST_STA_OK != ret) { DBG_ERR("Open err %d\r\n", ret); sf_set_emmc_err(1); + #if USE_RTOS_MMC_CHECK + SF_RtosStrgRegister(1, ret); + #endif + fastboot_set_done(BOOT_INIT_FILESYSOK_2); + printf("filesys2_init e err\r\n"); + return; } pStrg->GetParam(STRG_GET_DEVICE_PHY_SECTORS, (UINT32)&totoal_sectors, 0); if (totoal_sectors == 0) { diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index 5eba92dad..30f360ca3 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -361,6 +361,34 @@ static void MovieFast_ShutDown(void) //DBG_DUMP("wait filesys close ...\n"); //FileSys_Close(FST_TIME_INFINITE); + + int cnt = 10; + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + INT32 ret = 0; + + while((cnt) && (mmc_dev != NULL)) + { + if(mmc_dev->dev_type == MMC_DEV_SD) + { + ret = (INT32)FileSys_GetParamEx('A', FST_PARM_TASK_STS, 0); + } + else + { + ret = (INT32)FileSys_GetParamEx('B', FST_PARM_TASK_STS, 0); + } + if(ret == FST_STA_BUSY) + { + DBG_DUMP("wait filesys BUSY ...\n"); + cnt--; + vos_util_delay_ms(200); + } + else { + break; + } + + } + + FileSys_CloseEx('A', FST_TIME_INFINITE); FileSys_CloseEx('B', FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE @@ -2030,7 +2058,7 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); /*.............sun chen@20240111 end.................*/ - nvt_cmdsys_runcmd("ae dbg 0 256 1 "); + // nvt_cmdsys_runcmd("ae dbg 0 256 1 "); //nvt_cmdsys_runcmd("awb dbg 0 16 1 "); HD_VIDEO_FRAME frame_capture = {0}; @@ -2125,8 +2153,8 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n"); } } while(1); - //nvt_cmdsys_runcmd("ae dbg 0 0"); - //nvt_cmdsys_runcmd("awb dbg 0 0"); + // nvt_cmdsys_runcmd("ae dbg 0 0"); + // nvt_cmdsys_runcmd("awb dbg 0 0"); vos_perf_mark(&g_alg_end_time); } vos_util_delay_ms(100); @@ -2431,11 +2459,13 @@ static void MovieFast_Close(void) EXIT: if(g_dcf_hdl >= 0){ + DBG_DUMP("g_dcf_hdl = %d\n", g_dcf_hdl); DCF_Close(g_dcf_hdl); g_dcf_hdl = -1; } #if (FS_MULTI_STRG_FUNC) if(g_dcf_hdl2 >= 0){ + DBG_DUMP("g_dcf_hdl2 = %d\n", g_dcf_hdl2); DCF_Close(g_dcf_hdl2); g_dcf_hdl2 = -1; } 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 1cc54d931..0a52bfe2d 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -802,12 +802,14 @@ INT32 PhotoFast_FileNaming_Close(void) if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ if(g_dcf_hdl >= 0){ + DBG_DUMP("g_dcf_hdl = %d\n", g_dcf_hdl); DCF_Close(g_dcf_hdl); g_dcf_hdl = -1; } #if (FS_MULTI_STRG_FUNC) if(g_dcf_hdl2 >= 0){ + DBG_DUMP("g_dcf_hdl2 = %d\n", g_dcf_hdl2); DCF_Close(g_dcf_hdl2); g_dcf_hdl2 = -1; } @@ -983,13 +985,13 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms) // } // #endif static INT32 ret = E_SYS; - static int flag = 0; + // static int flag = 0; - if(flag) - { - return ret; - } - flag = 1; + // if(flag) + // { + // return ret; + // } + // flag = 1; if(gpio_getPin(GPIO_CARD_DETECT) == 0) { //DBG_WRN("BOOT_INIT_FILESYSOK\n"); @@ -1003,9 +1005,11 @@ INT32 PhotoFast_Wait_FileSys(UINT32 timeout_ms) ret = E_OK; } else { + sf_fastboot_msg_en(ENABLE); DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); ret = E_SYS; } + // DBG_WRN("ret = %d, ret2 = %d\n", ret, ret2); return ret; // if(boot_init != BOOT_INIT_INVALID) // return fastboot_wait_done_timeout(boot_init, timeout_ms); @@ -1019,21 +1023,23 @@ INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms) { //DCF_HANDLE handle = MovieFast_Get_DCF_Handle(); static INT32 ret = E_SYS; - static int flag = 0; + // static int flag = 0; BOOT_INIT boot_init = BOOT_INIT_INVALID; - if(flag) - { - return ret; - } - flag = 1; - SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); if(mmc_dev ==NULL) { + sf_fastboot_msg_en(ENABLE); DBG_ERR("No MMC_Dev Can use!\n"); return E_SYS; } + + // if(flag) + // { + // return ret; + // } + // flag = 1; + if(MMC_DEV_SD == mmc_dev->dev_type) { boot_init = BOOT_INIT_FILENAMINGOK; @@ -1051,9 +1057,11 @@ INT32 PhotoFast_Wait_FileNaming(UINT32 timeout_ms) ret = fastboot_wait_done_timeout(boot_init, timeout_ms); } else{ + sf_fastboot_msg_en(ENABLE); DBG_ERR("boot_init = BOOT_INIT_INVALID\n"); ret = E_SYS; } + // DBG_WRN("boot_init = %d, ret = %d\n", boot_init, ret); return ret; } @@ -1856,8 +1864,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg) // nvt_cmdsys_runcmd("vprc info"); // nvt_cmdsys_runcmd("ctl_ipp dump_hdl_all"); //ISPT_TOTAL_GAIN total; - nvt_cmdsys_runcmd("ae dbg 0 256 1 "); - nvt_cmdsys_runcmd("ae dbg 0 16 1 "); + // nvt_cmdsys_runcmd("ae dbg 0 256 1 "); + // nvt_cmdsys_runcmd("ae dbg 0 16 1 "); // isp_dbg_set_dbg_mode(0, 0x0202002 ); // nvt_cmdsys_runcmd("iq dbg 0 0 "); @@ -2069,8 +2077,8 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg) VOS_TICK tick; PhotoFast_GetTick(video_cap_frame.count, &tick); - nvt_cmdsys_runcmd("ae dbg 0 0"); - nvt_cmdsys_runcmd("awb dbg 0 0"); + // nvt_cmdsys_runcmd("ae dbg 0 0"); + // nvt_cmdsys_runcmd("awb dbg 0 0"); DBG_DUMP("*** trigger frame count = %llu (start from 1) frame timestamp = %llu, tick=%lu ms , \n", video_cap_frame.count, video_cap_frame.timestamp, tick); /* UINT64, use %llu */ //Set_AEMODE(1); } @@ -2343,6 +2351,31 @@ static void PhotoFast_ShutDown(void) // } #endif // FileSys_Close(FST_TIME_INFINITE); + int cnt = 10; + SF_RTOS_ST_MMC_DEV *mmc_dev = SF_RtosStrgCheckWorkableDev(); + INT32 ret = 0; + + while((cnt) && (mmc_dev != NULL)) + { + if(mmc_dev->dev_type == MMC_DEV_SD) + { + ret = (INT32)FileSys_GetParamEx('A', FST_PARM_TASK_STS, 0); + } + else + { + ret = (INT32)FileSys_GetParamEx('B', FST_PARM_TASK_STS, 0); + } + if(ret == FST_STA_BUSY) + { + DBG_DUMP("wait filesys BUSY ...\n"); + cnt--; + vos_util_delay_ms(200); + } + else { + break; + } + + } FileSys_CloseEx('A', FST_TIME_INFINITE); FileSys_CloseEx('B', FST_TIME_INFINITE); #if SF_IQ_TEST != ENABLE diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c index e8c192522..6f64175fc 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -2373,7 +2373,8 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) * Output jpg file ******************************************************************/ extern INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, char* Path); - INT32 waitFalg = 0; + INT32 waitFalg = 1; + static int UsrmemFlag = 0; #if SF_NO_SD_SEND == ENABLE // if( // PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK && @@ -2384,28 +2385,26 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) // waitFalg = 1; // } // } - if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ - waitFalg = 1; - } - if(PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) != E_OK){ - waitFalg = 1; - } + if(PhotoFast_Wait_FileSys(FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) == E_OK + && PhotoFast_Wait_FileNaming(FASTBOOT_WAIT_FILENAMING_TIMEOUT_MS) == E_OK){ + waitFalg = 0; + } if(waitFalg) { - if(sf_is_emmc_err()) + if((sf_is_emmc_err()) && (!UsrmemFlag)) { sf_fastboot_msg_en(ENABLE); DBG_WRN("filesys not ready, store data into mem\n"); SYS_USRMEM usrmem = {0}; - if(sys_usrmem_init(&usrmem) == E_OK){ sys_usrmem_write_photo( &usrmem, (UINT32) queue_ele_in->jpg_thumb_addr, queue_ele_in->jpg_thumb_size ); + UsrmemFlag = 1; } } } diff --git a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c index 681c42545..eccc26b97 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -45,10 +45,10 @@ #include #include "sf_sd_common.h" -static BOOL IsCardFull = FALSE; +static BOOL IsCardFull = TRUE; SF_CALLBACK_SD_CMD g_fpSd_Exist_CB = NULL; extern BOOL DrvCARD_DetStrgCard(void); -static BOOL IsEmmcFull = FALSE; +static BOOL IsEmmcFull = TRUE; static BOOL IsEmmcErr = FALSE; SF_RTOS_ST_MMC_DEV *sf_rtos_mmc_dev[MMC_DEV_MAX_NUM] = {NULL}; @@ -86,8 +86,9 @@ UINT32 sf_check_card_full(void) } else { - ret = FALSE; - //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); + IsCardFull = FALSE; + ret = FALSE; + //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); } printf("[%s:%d]sd card diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); @@ -121,8 +122,9 @@ UINT32 sf_check_emmc_full(void) } else { - ret = FALSE; - //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); + IsEmmcFull = FALSE; + ret = FALSE; + //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); } printf("[%s:%d]emmc diskFree=%lluM\n", __FUNCTION__, __LINE__, diskFree); From 4b49d2551d1a97e67ab9d3d9e8d6ba97ec5cab5a Mon Sep 17 00:00:00 2001 From: payton Date: Sun, 4 Feb 2024 17:48:37 +0800 Subject: [PATCH 5/6] =?UTF-8?q?1.=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= =?UTF-8?q?=EF=BC=8C=E5=87=8F=E5=B0=91=E5=B7=A5=E4=BD=9C=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/include/sf_commu_mcu.h | 12 ++- .../source/sf_app/code/include/sf_service.h | 3 + .../sf_app/code/source/4gMng/sf_eg91_sim.c | 5 +- .../source/sf_app/code/source/4gMng/sf_ftp.c | 11 ++- .../source/sf_app/code/source/4gMng/sf_sms.c | 4 +- .../sf_app/code/source/app/sf_service.c | 78 +++++++++++---- .../source/sf_app/code/source/app/sf_system.c | 96 ++++++++++++++++++- .../code/source/systemMng/sf_commu_mcu.c | 46 ++++++++- 8 files changed, 229 insertions(+), 26 deletions(-) diff --git a/code/application/source/sf_app/code/include/sf_commu_mcu.h b/code/application/source/sf_app/code/include/sf_commu_mcu.h index a2e868de7..a304c41cf 100644 --- a/code/application/source/sf_app/code/include/sf_commu_mcu.h +++ b/code/application/source/sf_app/code/include/sf_commu_mcu.h @@ -49,6 +49,14 @@ typedef enum MCU_FLAG_INIT { MCU_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32 } MCU_FLAG_INIT; +typedef enum NET_FLAG_INIT { + NET_FLAG_INITT = 0x00, + NET_FLAG_INITT_OK, + NET_FLAG_NET_OK, + NET_FLAG_SEND_END, + +} NET_FLAG_INIT; + void mcubuf_reset(void); int sf_commu_mcu_interface_init(int speed, char flow_ctrl, int databits, int stopbits, char parity); int sf_commu_mcu_open(void); @@ -79,7 +87,9 @@ void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init); void sf_mcu_flag_wait_done(MCU_FLAG_INIT boot_init); int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms); void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init); - +void sf_net_flag_init(void); +void sf_net_flag_set_done(NET_FLAG_INIT boot_init); +int sf_net_flag_wait_done_timeout(NET_FLAG_INIT boot_init, int timeout_ms); #ifdef __cplusplus } #endif //__cplusplus diff --git a/code/application/source/sf_app/code/include/sf_service.h b/code/application/source/sf_app/code/include/sf_service.h index c31d67f4c..bc1af36f1 100755 --- a/code/application/source/sf_app/code/include/sf_service.h +++ b/code/application/source/sf_app/code/include/sf_service.h @@ -106,6 +106,9 @@ void sf_save_camera_gps_info(void); void set_at_parament(void); int sf_net_dns_ck(void); void sf_register_net_para_ck(void); +SINT32 sf_app_auto_send_start(void); +SINT32 sf_file_send_auto(void); +SINT32 sf_app_auto_net_start(void); #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c index 5ad28708c..3074ac9e9 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c @@ -25,7 +25,7 @@ extern "C" { #include "sf_ftp.h" #include "sf_module.h" #include "at_manager.h" - +#include "sf_commu_mcu.h" #define APNGPRS_WUYUAN1 "America.bics" #define APNGPRS_WUYUAN2 "bicsapn" #define MEGA_TEST 0 @@ -4281,12 +4281,13 @@ SINT32 sf_auto_net_reg(void) ret = SF_SIM_ERROR_APN; sprintf((char *)logStr, "Error Code:0x%08X\n", ret); SLOGE(logStr); - + sf_net_flag_set_done(NET_FLAG_NET_OK); //sf_guide_operator_match_status_set(); goto SF_MODULE_END; } else { + sf_net_flag_set_done(NET_FLAG_NET_OK); sprintf((char *)logStr, "Auto Operation Success,MCCMNC:%s\n", puiPara->OperatorCode); SLOGI(logStr); } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c index e814ffe32..798e9c204 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c @@ -53,6 +53,8 @@ extern "C" { #include "sf_system.h" #include "curl/curl.h" #include "sf_4G_sms_lpa_cmd.h" +#include "sf_commu_mcu.h" + /************************************************************************** * C O N S T A N T S * **************************************************************************/ @@ -888,7 +890,7 @@ SINT32 sf_pic_send_ftp(void) UINT8 piccount = 0; UINT8 pic = 0; UINT8 csqlevel = 0; - int timeout = 120000; + int timeout = 60000; //SINT64 sendStartTime = 0; UINT8 sendAlreadyFlag = 0; UINT8 timeoutCnt = 0; @@ -918,7 +920,7 @@ SINT32 sf_pic_send_ftp(void) if(tempPicSize == 0) { - timeout = 120000; + timeout = 60000; } else { @@ -950,6 +952,11 @@ SINT32 sf_pic_send_ftp(void) printf("%s:%d pic:%d ftpFileName:%s filePath:%s fileStr:%s\n", __FUNCTION__, __LINE__, pic, ftpFileName[pic], filePath[pic], fileStr[pic]); } */ + SF_STARTUP_TYPE_E StartMode = sf_poweron_type_get(); + if((SF_MCU_STARTUP_TIMELAPSE == StartMode) || (SF_MCU_STARTUP_PIR == StartMode)) + { + sf_net_flag_wait_done_timeout(NET_FLAG_INITT_OK, 120000); + } for(pic = 0; pic < piccount; pic++) { if(SF_FILE_TYPE_PIC_VIDEO == pThumbFileCfg->stfileattr[pic].enFileTye){ diff --git a/code/application/source/sf_app/code/source/4gMng/sf_sms.c b/code/application/source/sf_app/code/source/4gMng/sf_sms.c index c29c47a4e..341111645 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -2704,8 +2704,8 @@ SINT32 sf_power_off_check_sd(void) //sf_FlowLogCopyToCard(); //if(sf_in_card_exist()) { - if(sf_get_mode_flag() || ((0 == puiPara->SendType)) || (startup == SF_MCU_STARTUP_RESET)) - sf_delete_send_flie_list(); + // if(sf_get_mode_flag() || ((0 == puiPara->SendType)) || (startup == SF_MCU_STARTUP_RESET)) + // sf_delete_send_flie_list(); } /*check disk free size*/ diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 594d88264..46284d271 100755 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -60,6 +60,7 @@ #include "Log.h" #include "sf_4g_lpa.h" #include "sf_eg91_gps.h" +#include "sf_commu_mcu.h" #ifdef __cplusplus #if __cplusplus extern "C" { @@ -84,6 +85,14 @@ SF_THREAD_S QlogTsk = { .TskId = -1, }; +void sf_set_flag_wait(signed int ret) +{ + if(ret != SF_SUCCESS) + { + sf_net_flag_set_done(NET_FLAG_SEND_END); + } +} + SINT32 app_ttyusb_IsOpen(void) { int retryTime = 0; int retryFlag = 0; @@ -272,10 +281,10 @@ SINT32 sf_USB_net_init(void) UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); if (!sf_app_while_flag()) - { - printf("[%s:%d]is update ... \n", __FUNCTION__, __LINE__); - return; - } + { + printf("[%s:%d]is update ... \n", __FUNCTION__, __LINE__); + return ret; + } if (flag == 0) { flag = 1; @@ -292,25 +301,25 @@ SINT32 sf_USB_net_init(void) } - for (i = 0; i < 20; i++) + for (i = 0; i < 100; i++) { if(strncmp(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0) { ret = sf_check_usb0(); - if(ret != SUCCESS) - { - ret = sf_check_eth0(); - } + // if(ret != SUCCESS) + // { + // ret = sf_check_eth0(); + // } } else { ret = sf_check_eth0(); - if(ret != SUCCESS) - { - ret = sf_check_usb0(); - } + // if(ret != SUCCESS) + // { + // ret = sf_check_usb0(); + // } } if (SUCCESS == ret) { @@ -320,7 +329,7 @@ SINT32 sf_USB_net_init(void) } else { - sf_sleep_ms(500); + sf_sleep_ms(100); } } //sf_net_dns_ck(); @@ -1262,6 +1271,9 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) { //pCustomerParam->GpsSendFlag = 0; } + //to do : send lpa direct + sf_ftp_lpa_log_send(); + if (sf_get_pic()) { s32ret = sf_send_file_to_ftp(1); sf_sms_set_pic(0); @@ -1692,7 +1704,43 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) if (pCustomerParam->SendType != 0) { break; } + #ifdef SF_HARDWARE_TEST + app_system_poweroff(SF_POWEROFF_NOT); + break; + #endif + s32ret = sf_4G_sim_IsInsert(); + if (!s32ret) { + SF_APPCOMM_CHECK_RETURN(SF_FAILURE, SF_APP_ERROR_REQUEST); + } + + s32ret = app_ttyusb_IsOpen(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + + #if SF_QLOG_ENABLE + if (pCustomerParam->QLogSwitch == 1) + { + sf_app_qlog_start(); + } + #endif + if (pCustomerParam->GprsMode != 1) + { + s32ret = sf_4G_sim_init(pfnParam); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + } + sf_app_auto_net_start(); + s32ret = sf_4G_register_net_auto(pfnParam); + if (s32ret != SF_SUCCESS) { + sf_set_flag_wait(s32ret); + sf_set_signal_ready_flag(TRUE); + } + sf_app_auto_send_start(); + // sf_share_mem_customer_down(1); + // SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + + + + break; case SF_MCU_STARTUP_BATCH_SEND: #ifdef SF_HARDWARE_TEST @@ -1949,8 +1997,6 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) set_at_parament(); sf_USB_net_init(); - //to do : send lpa direct - sf_ftp_lpa_log_send(); if ((SF_ON == pCustomerParam->GpsSwitch) || (pCustomerParam->FristSendDailyAndGps)) { 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 a8c663037..7e5161f38 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 @@ -156,6 +156,16 @@ SF_THREAD_S LpaTskCfg = .TskId = -1, }; +SF_THREAD_S AtuoSendTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; +SF_THREAD_S AtuoNetTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; SINT8 debugFlag = 0; UINT8 McuInitFlag = 0; @@ -913,6 +923,28 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[]) return ver; } +/************************************************* + Function: sf_power_off_net_flag_wait + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_net_flag_wait(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SF_STARTUP_TYPE_E StartMode = sf_poweron_type_get(); + if((SF_MCU_STARTUP_TIMELAPSE == StartMode) || (SF_MCU_STARTUP_PIR == StartMode)) + { + sf_net_flag_wait_done_timeout(NET_FLAG_SEND_END, 120000); + } + if(sf_get_mode_flag() || ((0 == puiPara->SendType)) || (StartMode == SF_MCU_STARTUP_RESET)) + { + sf_delete_send_flie_list(); + } + return 0; +} /************************************************* Function: sf_power_off @@ -936,11 +968,13 @@ void sf_power_off(void) sf_power_off_check_sd(); sf_power_off_check_sd_fail(); + sf_power_off_net_flag_wait(); + + sf_power_off_check_sms(); + sf_poweroff_check_lpa_excute_cmd(); sf_poweroff_check_lpa_enable_profile(); - - sf_power_off_check_sms(); sf_power_off_module_ota(); @@ -1763,3 +1797,61 @@ SINT32 sf_app_lpa_start(void) } return SF_SUCCESS; } + +void* sf_auto_send_thread(void *arg) +{ + SLOGI("thread run\n"); + sf_file_send_auto(); + sf_net_flag_set_done(NET_FLAG_SEND_END); + AtuoSendTskCfg.IsRun = 0; + SLOGI("thread end\n"); + return NULL; +} +SINT32 sf_app_auto_send_start(void) +{ + SINT32 ret = SF_FAILURE; + if(AtuoSendTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return SF_FAILURE; + } + AtuoSendTskCfg.IsRun = 1; + SLOGI("thread run\n"); + ret = pthread_create(&AtuoSendTskCfg.TskId, NULL, sf_auto_send_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; +} + +void* sf_auto_net_thread(void *arg) +{ + SLOGI("thread run\n"); + sf_net_flag_wait_done_timeout(NET_FLAG_NET_OK, 120000); + set_at_parament(); + sf_USB_net_init(); + sf_net_flag_set_done(NET_FLAG_INITT_OK); + AtuoNetTskCfg.IsRun = 0; + SLOGI("thread end\n"); + return NULL; +} +SINT32 sf_app_auto_net_start(void) +{ + SINT32 ret = SF_FAILURE; + if(AtuoNetTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return SF_FAILURE; + } + AtuoNetTskCfg.IsRun = 1; + SLOGI("thread run\n"); + ret = pthread_create(&AtuoNetTskCfg.TskId, NULL, sf_auto_net_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; +} \ No newline at end of file diff --git a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c index 2e4e8c88b..6469ec140 100755 --- a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c @@ -133,6 +133,50 @@ static pthread_t sfCommuMcuThread = 0; int gsfd = -1; + +#if 1 +static ID sf_net_flag_id = 0; + +void sf_net_flag_init(void) +{ + ER ret = E_OK; + T_CFLG cflg; + if ((ret |= vos_flag_create(&sf_net_flag_id, &cflg, "sf_mcu_flag_id")) != E_OK) + { + SYS_SLOGE("sf_net_flag_id fail\r\n"); + } + vos_flag_clr(sf_net_flag_id, (FLGPTN)-1); +} + +void sf_net_flag_set_done(NET_FLAG_INIT boot_init) +{ + static int initflag = 0; + if(!initflag) + { + sf_net_flag_init(); + initflag = 1; + } + + vos_flag_set(sf_net_flag_id, (FLGPTN)(1 << boot_init)); +} + +int sf_net_flag_wait_done_timeout(NET_FLAG_INIT boot_init, int timeout_ms) +{ + ER ret = E_OK; + FLGPTN flgptn; + if(sf_net_flag_id) + { + ret = vos_flag_wait_timeout(&flgptn, sf_net_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW, vos_util_msec_to_tick(timeout_ms)); + if(unlikely(ret != E_OK)){ + printf("[%s:%d]wait(%lu) init timeout(%ld ms)!\n", __FUNCTION__, __LINE__, boot_init, timeout_ms); + } + } + + + return ret; +} + +#endif static ID sf_mcu_flag_id = 0; void sf_mcu_flag_init(void) @@ -164,7 +208,7 @@ int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms) ret = vos_flag_wait_timeout(&flgptn, sf_mcu_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW, vos_util_msec_to_tick(timeout_ms)); if(unlikely(ret != E_OK)){ - printf("wait(%lu) init timeout(%ld ms)!\n", boot_init, timeout_ms); + printf("[%s:%d]wait(%lu) init timeout(%ld ms)!\n", __FUNCTION__, __LINE__, boot_init, timeout_ms); } return ret; From 9c46bc33f6d3d05f322ca59759f14a9bb452d50a Mon Sep 17 00:00:00 2001 From: payton Date: Sun, 4 Feb 2024 19:06:43 +0800 Subject: [PATCH 6/6] =?UTF-8?q?1.mcu=E5=8F=91=E6=9D=A5SF=5FMCU=5FSTARTUP?= =?UTF-8?q?=5FOFF=E5=8F=8A=E6=97=B6=E5=85=B3=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/application/source/sf_app/code/source/app/sf_app.c | 4 ++++ 1 file changed, 4 insertions(+) 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 245e3e454..e1d9b7f0c 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 @@ -241,6 +241,10 @@ int main(int argc, char *argv[]) { sf_power_off(); } + else if (SF_MCU_STARTUP_OFF == startup) { + sf_power_off_msg_to_cardv(); + printf("[%s:%d] SF_MCU_STARTUP_OFF\n", __FUNCTION__, __LINE__); + } //if((SF_MCU_STARTUP_ONKEY == startup) || (TRUE == autosend)) { ////////////////////////////////