From 0c1f201b72d7f51f3c070be456832a7e1a96be7d Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:12:29 +0800 Subject: [PATCH 01/41] =?UTF-8?q?1.=E8=93=9D=E7=89=99=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/lib/source/sifar/code/source/common/sf_common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 72e4cd6d9..28ae345c2 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -1706,7 +1706,8 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) sf_cardv_para_signaling_start(); break; case SF_PARA_CMD_BLE: - + sf_set_ble_status(pMessageBuf->arg2); + break; case SF_PARA_CMD_SIMISINSERT: sf_cardv_set_sim_insert(pMessageBuf->arg2); break; From e5e4573e1dfafa8f05506fd74ab6d09635d953a9 Mon Sep 17 00:00:00 2001 From: payton Date: Fri, 3 Nov 2023 17:10:40 +0800 Subject: [PATCH 02/41] =?UTF-8?q?1.blue=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../code/source/sf_blue/src/sf_blue_app.c | 54 +++++++++++++------ .../code/source/sf_blue/src/sf_blue_app.h | 4 ++ 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.c b/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.c index 9604bf30e..08a4fb569 100644 --- a/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.c +++ b/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.c @@ -36,7 +36,7 @@ #define MSG_BLE_END_FIX 0xFFEE #define MSG_APP_2_BLE 0 #define MSG_BLE_2_APP 1 -#define SF_HW_TYPE "REVEAL-X3.0" +#define SF_HW_TYPE "reveal-x-pro3.0" #define SF_WIFI_AP_PWD_LEN 16 #define SF_WIFI_AP_SSID_LEN 16 @@ -195,14 +195,18 @@ static void sf_blue_command_get_camera_para(MSG_DEV_BLE_Param_Get_Rsp_T *CamPara { CamPara->imageSize = 2; } - /*else if(PHOTO_SIZE_16M == puiPara->ImgSize) + else if(PHOTO_SIZE_24M == puiPara->ImgSize) { CamPara->imageSize = 3; } else if(PHOTO_SIZE_32M == puiPara->ImgSize) { - CamPara->imageSize = 2; - }*/ + CamPara->imageSize = 4; + } + else if(PHOTO_SIZE_40M == puiPara->ImgSize) + { + CamPara->imageSize = 5; + } else { CamPara->imageSize = 2; @@ -516,15 +520,18 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8 { puiPara->ImgSize = PHOTO_SIZE_8M; } - /* else if(tmpValue == 3) { - puiPara->ImgSize = PHOTO_SIZE_16M; + puiPara->ImgSize = PHOTO_SIZE_24M; } - else if(tmpValue == 2) + else if(tmpValue == 4) { puiPara->ImgSize = PHOTO_SIZE_32M; - }*/ + } + else if(tmpValue == 5) + { + puiPara->ImgSize = PHOTO_SIZE_40M; + } else { puiPara->ImgSize = PHOTO_SIZE_8M; @@ -662,27 +669,44 @@ static signed int sf_blue_command_request_process(U8 *val, unsigned int nval, U8 puiPara->TimeSend1.Min = pMsgStruct->msgBuf.setSendType.sendFirstTimeM % 60; puiPara->TimeSend2.Hour = pMsgStruct->msgBuf.setSendType.sendSecondTimeH % 24; puiPara->TimeSend2.Min = pMsgStruct->msgBuf.setSendType.sendSecondTimeM % 60; - + puiPara->TimeSend3.Hour = pMsgStruct->msgBuf.setSendType.sendThirdTimeH % 24; + puiPara->TimeSend3.Min = pMsgStruct->msgBuf.setSendType.sendThirdTimeM % 60; + puiPara->TimeSend4.Hour = pMsgStruct->msgBuf.setSendType.sendFourthTimeH % 24; + puiPara->TimeSend4.Min = pMsgStruct->msgBuf.setSendType.sendFourthTimeM % 60; if(puiPara->SendType == 0) { puiPara->TimeSend1Switch = 0; puiPara->TimeSend2Switch = 0; - //puiPara->TimeSend3 = 0; - //puiPara->TimeSend4 = 0; + puiPara->TimeSend3Switch = 0; + puiPara->TimeSend4Switch = 0; } else if(puiPara->SendType == 1) { puiPara->TimeSend1Switch = 1; puiPara->TimeSend2Switch = 0; - //puiPara->TimeSend3 = 0; - //puiPara->TimeSend4 = 0; + puiPara->TimeSend3Switch = 0; + puiPara->TimeSend4Switch = 0; } - else // if(puiPara->SendType == 2) + else if(puiPara->SendType == 2) { puiPara->TimeSend1Switch = 1; puiPara->TimeSend2Switch = 1; + puiPara->TimeSend3Switch = 0; + puiPara->TimeSend4Switch = 0; } - MLOGI("SendType:%d TimeSend1Switch:%d %02d:%02d TimeSend2Switch:%d %02d:%02d\n",puiPara->SendType,puiPara->TimeSend1Switch,puiPara->TimeSend1.Hour,puiPara->TimeSend1.Min,puiPara->TimeSend2Switch, puiPara->TimeSend2.Hour,puiPara->TimeSend2.Min); + else if(puiPara->SendType == 4) + { + puiPara->TimeSend1Switch = 1; + puiPara->TimeSend2Switch = 1; + puiPara->TimeSend3Switch = 1; + puiPara->TimeSend4Switch = 1; + } + MLOGI("SendType:%d TimeSend1Switch:%d %02d:%02d TimeSend2Switch:%d %02d:%02d TimeSend3Switch:%d %02d:%02d TimeSend4Switch:%d %02d:%02d\n", + puiPara->SendType, + puiPara->TimeSend1Switch, puiPara->TimeSend1.Hour,puiPara->TimeSend1.Min, + puiPara->TimeSend2Switch, puiPara->TimeSend2.Hour,puiPara->TimeSend2.Min, + puiPara->TimeSend3Switch, puiPara->TimeSend3.Hour,puiPara->TimeSend3.Min, + puiPara->TimeSend4Switch, puiPara->TimeSend4.Hour,puiPara->TimeSend4.Min); } respFlag = 2; diff --git a/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.h b/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.h index e4caf7444..5addf8d20 100644 --- a/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.h +++ b/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_app.h @@ -278,6 +278,10 @@ typedef struct UINT8 sendFirstTimeM; /* 0~59 (12小时和 24小时共用) */ UINT8 sendSecondTimeH; /* 0~23 */ UINT8 sendSecondTimeM; /* 0~59 */ + UINT8 sendThirdTimeH; /* 0~23 */ + UINT8 sendThirdTimeM; /* 0~59 */ + UINT8 sendFourthTimeH; /* 0~23 */ + UINT8 sendFourthTimeM; /* 0~59 */ UINT16 suffix; /* 0xFFEE */ } __attribute__((packed)) MSG_DEV_BLE_SendType_Set_T; From 87feaba1d0a710a2d266a5716cafaae373171ddd Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:29:39 +0800 Subject: [PATCH 03/41] =?UTF-8?q?1.WiFi=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/include/sf_wifi_svr.h | 4 + .../sf_app/code/source/wifi/sf_wifi_svr.c | 136 ++++++++++-------- 2 files changed, 84 insertions(+), 56 deletions(-) diff --git a/code/application/source/sf_app/code/include/sf_wifi_svr.h b/code/application/source/sf_app/code/include/sf_wifi_svr.h index 3b9815487..d2f971833 100755 --- a/code/application/source/sf_app/code/include/sf_wifi_svr.h +++ b/code/application/source/sf_app/code/include/sf_wifi_svr.h @@ -466,6 +466,10 @@ typedef struct UINT8 sendFirstTimeM; /* 0~59 (12小时和 24小时共用) */ UINT8 sendSecondTimeH; /* 0~23 */ UINT8 sendSecondTimeM; /* 0~59 */ + UINT8 sendThirdTimeH; /* 0~23 */ + UINT8 sendThirdTimeM; /* 0~59 */ + UINT8 sendFourthTimeH; /* 0~23 */ + UINT8 sendFourthTimeM; /* 0~59 */ UINT16 suffix; /* 0xFFEE */ } __attribute__((packed)) MSG_DEV_SendType_Set_T; 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 35fe6cdf0..af4348c4e 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 @@ -823,7 +823,7 @@ void sf_app_Get_Camera_Info(MSG_DEV_INFO_Get_Rsp_T *camInfo) //camInfo->GpsLongitude = htonl(0); //camInfo->GpsLatitude = htonl(0); #endif - strcpy((char *)camInfo->hwType, "reveal-x"); + strcpy((char *)camInfo->hwType, "reveal-x-pro3.0"); //S8 strTemp[16]= {0}; //sf_get_sys_version(strTemp); @@ -895,14 +895,18 @@ void sf_app_Get_Camera_Para(MSG_DEV_Param_Get_Rsp_T *CamPara) { CamPara->imageSize = 2; } - /*else if(PHOTO_SIZE_16M == puiPara->ImgSize) + else if(PHOTO_SIZE_24M == puiPara->ImgSize) { CamPara->imageSize = 3; } else if(PHOTO_SIZE_32M == puiPara->ImgSize) { - CamPara->imageSize = 2; - }*/ + CamPara->imageSize = 4; + } + else if(PHOTO_SIZE_40M == puiPara->ImgSize) + { + CamPara->imageSize = 5; + } else { CamPara->imageSize = 2; @@ -1399,31 +1403,34 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen) MLOGI("[WIFI_SET_CAMERA_ImageSize],ImgSize:%d\n",puiPara->ImgSize); tmpValue = pMsgStruct->msgBuf.setImageSize.imageSize; - if(tmpValue == 0) - { - puiPara->ImgSize = PHOTO_SIZE_16M; - } - else if(tmpValue == 1) - { - puiPara->ImgSize = PHOTO_SIZE_12M; - } - else if(tmpValue == 2) - { - puiPara->ImgSize = PHOTO_SIZE_8M; - } - /* - else if(tmpValue == 3) - { - puiPara->ImgSize = PHOTO_SIZE_16M; - } - else if(tmpValue == 2) - { - puiPara->ImgSize = PHOTO_SIZE_32M; - }*/ - else - { - puiPara->ImgSize = PHOTO_SIZE_8M; - } + if(tmpValue == 0) + { + puiPara->ImgSize = PHOTO_SIZE_16M; + } + else if(tmpValue == 1) + { + puiPara->ImgSize = PHOTO_SIZE_12M; + } + else if(tmpValue == 2) + { + puiPara->ImgSize = PHOTO_SIZE_8M; + } + else if(tmpValue == 3) + { + puiPara->ImgSize = PHOTO_SIZE_24M; + } + else if(tmpValue == 4) + { + puiPara->ImgSize = PHOTO_SIZE_32M; + } + else if(tmpValue == 5) + { + puiPara->ImgSize = PHOTO_SIZE_40M; + } + else + { + puiPara->ImgSize = PHOTO_SIZE_8M; + } SysSetFlag(FL_PHOTO_SIZE, puiPara->ImgSize); Photo_SetUserIndex(PHOTO_USR_SIZE, puiPara->ImgSize); //sf_set_img_size(puiPara->ImgSize); @@ -1554,32 +1561,49 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen) MLOGI("[WIFI_SET_CAMERA_SendType],sendType:%d\n",pMsgStruct->msgBuf.setSendType.sendType); if(puiPara->GprsMode == 0) { - puiPara->SendType = pMsgStruct->msgBuf.setSendType.sendType % 3; - puiPara->TimeSend1.Hour = pMsgStruct->msgBuf.setSendType.sendFirstTimeH % 24; - puiPara->TimeSend1.Min = pMsgStruct->msgBuf.setSendType.sendFirstTimeM % 60; - puiPara->TimeSend2.Hour = pMsgStruct->msgBuf.setSendType.sendSecondTimeH % 24; - puiPara->TimeSend2.Min = pMsgStruct->msgBuf.setSendType.sendSecondTimeM % 60; - - if(puiPara->SendType == 0) - { - puiPara->TimeSend1Switch = 0; - puiPara->TimeSend2Switch = 0; - //puiPara->TimeSend3 = 0; - //puiPara->TimeSend4 = 0; - } - else if(puiPara->SendType == 1) - { - puiPara->TimeSend1Switch = 1; - puiPara->TimeSend2Switch = 0; - //puiPara->TimeSend3 = 0; - //puiPara->TimeSend4 = 0; - } - else // if(puiPara->SendType == 2) - { - puiPara->TimeSend1Switch = 1; - puiPara->TimeSend2Switch = 1; - } - MLOGI("SendType:%d TimeSend1Switch:%d %02d:%02d TimeSend2Switch:%d %02d:%02d\n",puiPara->SendType,puiPara->TimeSend1Switch,puiPara->TimeSend1.Hour,puiPara->TimeSend1.Min,puiPara->TimeSend2Switch, puiPara->TimeSend2.Hour,puiPara->TimeSend2.Min); + puiPara->SendType = pMsgStruct->msgBuf.setSendType.sendType % 3; + puiPara->TimeSend1.Hour = pMsgStruct->msgBuf.setSendType.sendFirstTimeH % 24; + puiPara->TimeSend1.Min = pMsgStruct->msgBuf.setSendType.sendFirstTimeM % 60; + puiPara->TimeSend2.Hour = pMsgStruct->msgBuf.setSendType.sendSecondTimeH % 24; + puiPara->TimeSend2.Min = pMsgStruct->msgBuf.setSendType.sendSecondTimeM % 60; + puiPara->TimeSend3.Hour = pMsgStruct->msgBuf.setSendType.sendThirdTimeH % 24; + puiPara->TimeSend3.Min = pMsgStruct->msgBuf.setSendType.sendThirdTimeM % 60; + puiPara->TimeSend4.Hour = pMsgStruct->msgBuf.setSendType.sendFourthTimeH % 24; + puiPara->TimeSend4.Min = pMsgStruct->msgBuf.setSendType.sendFourthTimeM % 60; + if(puiPara->SendType == 0) + { + puiPara->TimeSend1Switch = 0; + puiPara->TimeSend2Switch = 0; + puiPara->TimeSend3Switch = 0; + puiPara->TimeSend4Switch = 0; + } + else if(puiPara->SendType == 1) + { + puiPara->TimeSend1Switch = 1; + puiPara->TimeSend2Switch = 0; + puiPara->TimeSend3Switch = 0; + puiPara->TimeSend4Switch = 0; + } + else if(puiPara->SendType == 2) + { + puiPara->TimeSend1Switch = 1; + puiPara->TimeSend2Switch = 1; + puiPara->TimeSend3Switch = 0; + puiPara->TimeSend4Switch = 0; + } + else if(puiPara->SendType == 4) + { + puiPara->TimeSend1Switch = 1; + puiPara->TimeSend2Switch = 1; + puiPara->TimeSend3Switch = 1; + puiPara->TimeSend4Switch = 1; + } + MLOGI("SendType:%d TimeSend1Switch:%d %02d:%02d TimeSend2Switch:%d %02d:%02d TimeSend3Switch:%d %02d:%02d TimeSend4Switch:%d %02d:%02d\n", + puiPara->SendType, + puiPara->TimeSend1Switch, puiPara->TimeSend1.Hour,puiPara->TimeSend1.Min, + puiPara->TimeSend2Switch, puiPara->TimeSend2.Hour,puiPara->TimeSend2.Min, + puiPara->TimeSend3Switch, puiPara->TimeSend3.Hour,puiPara->TimeSend3.Min, + puiPara->TimeSend4Switch, puiPara->TimeSend4.Hour,puiPara->TimeSend4.Min); } respFlag = 2; @@ -1930,7 +1954,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen) case WIFI_CONTROL_CAMERA_SHOOT: MLOGI("[WIFI_SET_CAMERA_SHOOT] shoot:%d\n",pMsgStruct->msgBuf.ctrlShoot.shoot); - if((TRUE == sf_is_preview()) && (pMsgStruct->msgBuf.ctrlShoot.shoot <= 3)) + if((System_GetState(SYS_STATE_CARD) == CARD_INSERTED) && (TRUE == sf_is_preview()) && (pMsgStruct->msgBuf.ctrlShoot.shoot <= 3)) { if((puiPara->CamMode != 1) && (pMsgStruct->msgBuf.ctrlShoot.shoot < 3)) { From 00504f1031e42ba16c7e8aecad070edac44cb1d5 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 09:51:50 +0800 Subject: [PATCH 04/41] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8Drtos=E4=B8=8B?= =?UTF-8?q?=E6=B0=B4=E5=8D=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/UIApp/Photo/UIAppPhoto.h | 2 +- .../UIApp/PhotoFast/PhotoFastSliceEncode.c | 98 ++++++++++++------- 2 files changed, 64 insertions(+), 36 deletions(-) mode change 100755 => 100644 rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h mode change 100755 => 100644 rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h b/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h old mode 100755 new mode 100644 index fe9589bb3..301169da5 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h @@ -72,7 +72,7 @@ #else #if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC #define PHOTO_MAX_CAP_SIZE UIAPP_PHOTO_SIZE_40M /* Max slice encode size */ - #define PHOTO_MIN_CAP_SIZE UIAPP_PHOTO_SIZE_2M /* UI Menu only display options which size is larger than PHOTO_SLICE_ENC_MIN_CAP_SIZE */ + #define PHOTO_MIN_CAP_SIZE UIAPP_PHOTO_SIZE_2M /* UI Menu only display options which size is larger than PHOTO_SLICE_ENC_MIN_CAP_SIZE */ #else #define PHOTO_MAX_CAP_SIZE UIAPP_PHOTO_SIZE_12M #endif diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c old mode 100755 new mode 100644 index 074ae7cfd..37ff41594 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -80,6 +80,25 @@ static UINT32 PhotoFast_SliceEncode_Get_Encode_Max_Bitrate(HD_VIDEO_PXLFMT vproc static INT32 PhotoFast_SliceEncode_Get_Comm_Buffer(PhotoFast_MEM_Info* mem_info); static INT32 PhotoFast_SliceEncode_Release_Comm_Buffer(PhotoFast_MEM_Info mem_info); static INT32 PhotoFast_SliceEncode_Encode_Screennail(HD_VIDEO_FRAME* video_frame_in); +#if PHOTOFAST_FAST_STAMP == ENABLE +INT32 PhotoFastCapDateImprint_Src_GenYuvData( + HD_VIDEO_FRAME *video_frame, + PhotoFast_SliceSize_Info* src_slice_info, + PhotoFast_SliceSize_Info* dst_slice_info) +{ + HD_VIDEO_FRAME video_frame_src_stamp = *video_frame; + UINT32 dst_last_slice_scale_height = (src_slice_info->last_slice_height * dst_slice_info->slice_height) / src_slice_info->slice_height; + + if(dst_last_slice_scale_height > dst_slice_info->last_slice_height) + { + video_frame_src_stamp.dim.h = video_frame_src_stamp.dim.h - ((src_slice_info->last_slice_height * (dst_last_slice_scale_height - dst_slice_info->last_slice_height)) / dst_last_slice_scale_height); + video_frame_src_stamp.ph[0] = video_frame_src_stamp.dim.h; + video_frame_src_stamp.ph[1] = video_frame_src_stamp.dim.h; + } + + return PhotoFastCapDateImprint_GenYuvData(&video_frame_src_stamp); +} +#endif static UINT32 PhotoFast_PHY2VIRT(UINT32 pa_pos, UINT32 pa_start, UINT32 va) { @@ -187,7 +206,8 @@ INT32 PhotoFast_SliceEncode_Get_Curr_Dst_Slice_Info(PhotoFast_SliceSize_Info *in PHOTOFAST_SLICE_ENC_DUMP("cap_size = %lu buf_size = %lu\n", cap_size, buf_size); UINT32 lines = (buf_size / cap_size_w); - max_slice_num = cap_size_h / lines + (cap_size_h % lines ? 1 : 0); + UINT32 slice_height = ALIGN_CEIL(lines, 16); + max_slice_num = (cap_size_h / slice_height) + (cap_size_h % slice_height ? 1 : 0); UINT32 tmp_src_h = src_frame.dim.h / 2; UINT32 tmp_dst_h = cap_size_h / 16; @@ -249,7 +269,8 @@ static UINT32 PhotoFast_SliceEncode_Get_Max_Dst_Slice_Info(PhotoFast_SliceSize_I PHOTOFAST_SLICE_ENC_DUMP("cap_size = %lu buf_size = %lu\n", tmp_cap_size.w * tmp_cap_size.h, buf_size); UINT32 lines = (buf_size / tmp_cap_size.w); - max_slice_num = tmp_cap_size.h / lines + (tmp_cap_size.h % lines ? 1 : 0); + UINT32 slice_height = ALIGN_CEIL(lines, 16); + max_slice_num = (tmp_cap_size.h / slice_height) + (tmp_cap_size.h % slice_height ? 1 : 0); UINT32 tmp_src_h = sensor_info->sSize.h / 2; UINT32 tmp_dst_h = tmp_cap_size.h / 16; @@ -708,7 +729,8 @@ static INT32 PhotoFast_SliceEncode_Init_VF_GFX_Slice( UINT32 offset; UINT32 scr_slice_height = (slice_idx == (src_slice_info.slice_num - 1)) ? src_slice_info.last_slice_height : src_slice_info.slice_height; UINT32 dst_slice_height = (slice_idx == (dst_slice_info.slice_num - 1)) ? dst_slice_info.last_slice_height : dst_slice_info.slice_height; - UINT32 dst_scale_slice_height = (slice_idx == (dst_slice_info.slice_num - 1)) ? (src_slice_info.last_slice_height * dst_slice_info.slice_height / src_slice_info.slice_height) : dst_slice_info.slice_height; + + UINT32 dst_scale_slice_height = (slice_idx == (dst_slice_info.slice_num - 1)) ? (src_slice_info.last_slice_height * dst_slice_info.slice_height / src_slice_info.slice_height) : dst_slice_info.slice_height; /* dst img */ addr_dst[0] = dst_buffer_info.pa; @@ -1900,28 +1922,20 @@ static lfqueue_t queue23 = {0}; INT32 PhotoFast_Sliceencode2_Enq_Frame(const HD_VIDEO_FRAME* video_frame) { + if(lfqueue_size(&queue12) >= PHOTOFAST_SLICE_ENC_QUEUE12_MAX_SIZE){ + return E_SYS; + } + PhotoFast_SliceEncode_Queue12_Param* queue_ele_out = NULL; queue_ele_out = (PhotoFast_SliceEncode_Queue12_Param*) malloc(sizeof(PhotoFast_SliceEncode_Queue12_Param)); memset(queue_ele_out, 0, sizeof(PhotoFast_SliceEncode_Queue12_Param)); queue_ele_out->frame = *video_frame; - while(1) - { - if(lfqueue_size(&queue12) >= PHOTOFAST_SLICE_ENC_QUEUE12_MAX_SIZE) - { - vos_util_delay_ms(1); - continue; - } - else - { - while(lfqueue_enq(&queue12, (void*)queue_ele_out) == -1) - { - vos_util_delay_ms(1); - DBG_ERR("ENQ Full ?\r\n"); - } - break; - } - } + while (lfqueue_enq(&queue12, (void*) queue_ele_out) == -1) + { + vos_util_delay_ms(1); + DBG_ERR("ENQ Full ?\r\n"); + } return E_OK; } @@ -1949,7 +1963,6 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) PhotoFast_SliceEncode_Queue12_Param* queue_ele_in = NULL; PhotoFast_SliceEncode_Queue23_Param* queue_ele_out = NULL; HD_RESULT hd_ret = HD_OK; -// PHOTO_VID_IN vid_in = PHOTO_VID_IN_1; PhotoFast_SliceEncode_Info* slice_encode_primary_info = PhotoFast_SliceEncode_Get_Info(PHOTO_ENC_JPG_PRIMARY); PhotoFast_SliceEncode_Info* slice_encode_screennail_info = PhotoFast_SliceEncode_Get_Info(PHOTO_ENC_JPG_SCREENNAIL); PhotoFast_SliceEncode_Info* slice_encode_thumbnail_info = PhotoFast_SliceEncode_Get_Info(PHOTO_ENC_JPG_THUMBNAIL); @@ -1963,7 +1976,6 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) UINT32 enc_accum_size = 0; static UINT8 primary_quality = CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_PRIMARY; static UINT8 screennail_quality = CFG_PHOTOFAST_SLICE_ENC_INIT_QUALITY_SCREENNAIL; -// PHOTO_CAP_CBMSG_FP PhotoCapMsgCb = (PHOTO_CAP_CBMSG_FP)Photo_CaptureCB; if(!user_data){ DBG_ERR("user_data can't be null!\n"); @@ -2035,14 +2047,7 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) goto EXIT; } - DBG_DUMP("process frame %lu\n", param->cnt); - - /******************************************************************* - * Fast Stamp (higher speed, lower quality) - ******************************************************************/ -#if PHOTOFAST_FAST_STAMP - PhotoFastCapDateImprint_GenYuvData(&queue_ele_in->frame); -#endif + DBG_IND("process frame %lu\n", param->cnt); /******************************************************************* * Calculate dst slice info @@ -2056,6 +2061,15 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) ******************************************************************/ PhotoFast_SliceEncode_Get_Src_Slice_Info(&dst_slice_info, &src_slice_info, queue_ele_in->frame); +#if PHOTOFAST_FAST_STAMP == ENABLE + /******************************************************************* + * Stamp on the src frame + ******************************************************************/ + if(PhotoFastCapDateImprint_Src_GenYuvData(&queue_ele_in->frame, &src_slice_info, &dst_slice_info) != E_OK){ + goto EXIT; + } +#endif + slice_encode_primary_info->bs_buf_mem_info.blk_size = (VDO_YUV_BUFSIZE(dst_slice_info.width, dst_slice_info.height, queue_ele_in->frame.pxlfmt) / (CFG_PHOTOFAST_SLICE_ENC_BS_BUF_RATIO)) + CFG_JPG_HEADER_SIZE + PhotoFast_GetScreenNailSize() ; if(PhotoFast_SliceEncode_Alloc_Buffer_Retry( &slice_encode_primary_info->bs_buf_mem_info, @@ -2201,17 +2215,16 @@ INT32 PhotoFast_SliceEncode_CB2(void* user_data) while(1) { - if(lfqueue_size(param->queue23) >= PHOTOFAST_SLICE_ENC_QUEUE23_MAX_SIZE) - { + if(lfqueue_size(param->queue23) >= PHOTOFAST_SLICE_ENC_QUEUE23_MAX_SIZE){ vos_util_delay_ms(1); continue; } - else - { - while(lfqueue_enq(param->queue23, (void*)queue_ele_out) == -1) + else{ + while (lfqueue_enq(param->queue23, (void*) queue_ele_out) == -1) { DBG_ERR("ENQ Full ?\r\n"); } + break; } } @@ -2267,6 +2280,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) INT32 ret = E_OK; PhotoFast_SliceEncode_CB3_Param* param = NULL; PhotoFast_SliceEncode_Queue23_Param* queue_ele_in = NULL; + VOS_TICK t1, t2, t3, t4; if(!user_data){ DBG_ERR("user_data can't be null!\n"); @@ -2305,6 +2319,8 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) goto EXIT; } + vos_perf_mark(&t1); + #if !PHOTOFAST_FAST_CLOSE PhotoFast_WriteFile( (UINT32)queue_ele_in->jpg_combined_addr, @@ -2321,6 +2337,8 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) queue_ele_in->file_path); #endif + vos_perf_mark(&t2); + { char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; @@ -2352,6 +2370,8 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) #endif DBG_IND("PHOTO THUMB %s\n", tmp); + vos_perf_mark(&t3); + FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE); FileSys_WriteFile(fp, (UINT8*)queue_ele_in->jpg_thumb_addr, &queue_ele_in->jpg_thumb_size, 0, NULL); @@ -2368,6 +2388,14 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) #endif } + vos_perf_mark(&t4); + + DBG_DUMP("CB3 cost %lu ms(%lu , %lu , %lu)\n", + vos_perf_duration(t1, t4) / 1000, + vos_perf_duration(t1, t2) / 1000, + vos_perf_duration(t2, t3) / 1000, + vos_perf_duration(t3, t4) / 1000 + ); /* check user bs buffer is freed */ if(queue_ele_in->mem_info_combined.va){ From 6ed7dba5e15d577bca2a2b3d0b6718217e3761a8 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 09:53:59 +0800 Subject: [PATCH 05/41] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E5=81=B6=E5=8F=91=E5=8D=A1=E6=AD=BB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 5583ece76..e2ab80886 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -1708,7 +1708,7 @@ void PhotoExe_CommPoolInit(void) // #else // g_photo_mem_cfg.pool_info[id].blk_cnt = 8; // #endif - g_photo_mem_cfg.pool_info[id].blk_cnt = 4; + g_photo_mem_cfg.pool_info[id].blk_cnt = 6; g_photo_mem_cfg.pool_info[id].ddr_id = DDR_ID0; // config common pool (wifi) @@ -4466,8 +4466,11 @@ static INT32 PhotoExe_Preview_SliceEncode_Get_Curr_Dst_Slice_Info(PhotoExe_Slice else{ PHOTO_SLICE_ENC_DUMP("cap_size = %lu buf_size = %lu\n", cap_size, buf_size); - UINT32 lines = (buf_size / cap_size_w); - max_slice_num = cap_size_h / lines + (cap_size_h % lines ? 1 : 0); + // UINT32 lines = (buf_size / cap_size_w); + // max_slice_num = cap_size_h / lines + (cap_size_h % lines ? 1 : 0); + UINT32 lines = (buf_size / cap_size_w); + UINT32 slice_height = ALIGN_CEIL(lines, 16); + max_slice_num = (cap_size_h / slice_height) + (cap_size_h % slice_height ? 1 : 0); UINT32 tmp_src_h = src_frame.dim.h / 2; UINT32 tmp_dst_h = cap_size_h / 16; @@ -4537,8 +4540,11 @@ static INT32 PhotoExe_Preview_SliceEncode_Get_Max_Dst_Slice_Info(PhotoExe_SliceS else{ PHOTO_SLICE_ENC_DUMP("cap_size = %lu buf_size = %lu\n", tmp_cap_size.w * tmp_cap_size.h, buf_size); - UINT32 lines = (buf_size / tmp_cap_size.w); - max_slice_num = tmp_cap_size.h / lines + (tmp_cap_size.h % lines ? 1 : 0); + // UINT32 lines = (buf_size / tmp_cap_size.w); + // max_slice_num = tmp_cap_size.h / lines + (tmp_cap_size.h % lines ? 1 : 0); + UINT32 lines = (buf_size / tmp_cap_size.w); + UINT32 slice_height = ALIGN_CEIL(lines, 16); + max_slice_num = (tmp_cap_size.h / slice_height) + (tmp_cap_size.h % slice_height ? 1 : 0); UINT32 tmp_src_h = sensor_info->sSize.h / 2; UINT32 tmp_dst_h = tmp_cap_size.h / 16; From 1c261a7cffb81ce626b91925365fc054ecaa511b Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 09:57:52 +0800 Subject: [PATCH 06/41] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8Duboot=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=AF=BB=E5=8D=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-display.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-display.dtsi b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-display.dtsi index 0802a7603..55e0071d2 100755 --- a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-display.dtsi +++ b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S550/nvt-display.dtsi @@ -23,7 +23,7 @@ /* lcd_standby = ; ==> optional for the circuit design*/ / { - display { type = "lcd"; lcd_ctrl = <1>; sif_channel = <4>; gpio_cs = ; gpio_clk = ; gpio_data = ; }; + display { type = "lcd"; lcd_ctrl = <1>; sif_channel = <4>; gpio_cs = ; gpio_clk = ; gpio_data = ; }; logo { enable = <1>; lcd_type = ; lcd_rotate = <270>; lcd_reset = ; lcd_bl_gpio = ; lcd_power = ;}; }; From 2733ad5585cf3a40c30fb149f5477ff2c4b3d07f Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:00:48 +0800 Subject: [PATCH 07/41] =?UTF-8?q?1.uboot=E6=98=BE=E7=A4=BA=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BSP/u-boot/.gitignore | 5 ++++- BSP/u-boot/configs/nvt-na51089_nor_defconfig | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/BSP/u-boot/.gitignore b/BSP/u-boot/.gitignore index 54d925ce1..babf96d9c 100644 --- a/BSP/u-boot/.gitignore +++ b/BSP/u-boot/.gitignore @@ -41,4 +41,7 @@ u-boot.cfg u-boot.lds u-boot.lz.bin u-boot.lzma.bin -u-boot.srec \ No newline at end of file +u-boot.srec +include/bmp_logo.h +include/bmp_logo_data.h +tools/bmp_logo \ No newline at end of file diff --git a/BSP/u-boot/configs/nvt-na51089_nor_defconfig b/BSP/u-boot/configs/nvt-na51089_nor_defconfig index 06e2c9ef8..446d94fce 100644 --- a/BSP/u-boot/configs/nvt-na51089_nor_defconfig +++ b/BSP/u-boot/configs/nvt-na51089_nor_defconfig @@ -178,7 +178,8 @@ CONFIG_NVT_IVOT_DEBUG_LEVEL=7 # CONFIG_NVT_IVOT_OPTEE_SUPPORT is not set # CONFIG_NVT_IVOT_TZPC_SUPPORT is not set # CONFIG_NVT_IVOT_DDR_RANGE_SCAN_SUPPORT is not set -# CONFIG_VIDEO_LOGO is not set +CONFIG_VIDEO_LOGO=y +CONFIG_NVT_DISPLAY_BAR_FWUPDATE=y # CONFIG_NVT_IVOT_CRYPTO_CMD is not set # CONFIG_NVT_IVOT_HASH_CMD is not set # CONFIG_NVT_IVOT_RSA_CMD is not set From 9b02efa6e93afd081c3fd7706e8c7cbac6a9b476 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:01:17 +0800 Subject: [PATCH 08/41] =?UTF-8?q?1.=E8=BF=98=E5=8E=9F40M=E5=B0=BA=E5=AF=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c index 854643654..402f09c16 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c @@ -30,7 +30,7 @@ typedef struct { static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = { #if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC - {7296, 5760, IMAGERATIO_4_3, "40M"}, /* 40M */ + {7296, 5472, IMAGERATIO_4_3, "40M"}, /* 40M */ #endif {6528, 4896, IMAGERATIO_4_3, "32M"}, /* 32M */ {5664, 4248, IMAGERATIO_4_3, "24M"}, //16M From c93bd4baa8dd112e3af770b60cfbf226c8f40758 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:02:26 +0800 Subject: [PATCH 09/41] =?UTF-8?q?1.loader=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- loader/Project/Model/Src/prj_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/loader/Project/Model/Src/prj_main.c b/loader/Project/Model/Src/prj_main.c index ff1119eda..9873222fb 100755 --- a/loader/Project/Model/Src/prj_main.c +++ b/loader/Project/Model/Src/prj_main.c @@ -155,7 +155,7 @@ static BOOL prj_isSpecialKeyPressed(UINT32 ota_flag) { return TRUE; } - else if(!(gpio_getPin(GPIO_SPECIAL_KEY2)) || prj_is_WDT_OTA() || prj_is_Flash_OTA(ota_flag)) + else if((!(gpio_getPin(GPIO_SPECIAL_KEY2)) && (gpio_getPin(GPIO_SPECIAL_USB))) || prj_is_WDT_OTA() || prj_is_Flash_OTA(ota_flag)) { return TRUE; }else { From 881afe2be8df94e2c583e12abf3a0c9cf0cb03c7 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:03:06 +0800 Subject: [PATCH 10/41] =?UTF-8?q?1.io=E6=9B=B4=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/IOCfg.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/IOCfg.h b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/IOCfg.h index f12ca539c..1ed13a329 100755 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/IOCfg.h +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S550/IOCfg.h @@ -77,7 +77,7 @@ extern void vio_setpin(UINT32 id, UINT32 v); #define LCD_COMM_CTRL LCD_COMM_BY_GPIO #if (LCD_COMM_CTRL == LCD_COMM_BY_GPIO) -#define GPIO_LCD_SIF_SEN P_GPIO_7//S_GPIO_4 //FPGA +#define GPIO_LCD_SIF_SEN P_GPIO_6//S_GPIO_4 //FPGA #define GPIO_LCD_SIF_SCK P_GPIO_8//S_GPIO_5 //FPGA #define GPIO_LCD_SIF_SDA P_GPIO_9//S_GPIO_6 //FPGA #endif @@ -183,8 +183,8 @@ extern void vio_setpin(UINT32 id, UINT32 v); #define GPIO_CARD_DETECT C_GPIO_9 #define PAD_CARD_DETECT PAD_PIN_CGPIO9 // SD card write protect -#define GPIO_CARD_WP 0//P_GPIO_11 -#define PAD_CARD_WP 0//PAD_PIN_PGPIO11 +#define GPIO_CARD_WP C_GPIO_5//P_GPIO_11 +#define PAD_CARD_WP PAD_PIN_CGPIO5//PAD_PIN_PGPIO11 extern BOOL SDIOCardUser_CheckCardInserted(void); extern BOOL SDIOCardUser_CheckCardWP(void); From 3ff91d145152924ef22aef1d2d03f854138837cc Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:04:38 +0800 Subject: [PATCH 11/41] =?UTF-8?q?1.power=20off=E4=BF=A1=E6=81=AF=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/source/app/sf_system.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) 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 acc22a004..4c01ae24e 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 @@ -894,21 +894,15 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[]) *************************************************/ void sf_power_off(void) { - UINT8 PowerOnMode = sf_poweron_type_get(); + // UINT8 PowerOnMode = sf_poweron_type_get(); printf("[%s:%d] s\n", __FUNCTION__, __LINE__); if(SF_FAILURE == sf_check_sd()) { MLOGE("ERROR sf_check_sd\n"); } - //UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); - SF_PDT_PARAM_STATISTICS_S *psfPara = sf_statistics_param_get(); - - if((PowerOnMode == PWR_ON_TIMELAPSE) || (PowerOnMode == PWR_ON_PIR)) - { - psfPara->TirgNum++; - printf("TirgNum=%d\n", psfPara->TirgNum); - } + sf_power_off_statistics(); + sf_power_off_check_sms(); sf_power_off_module_ota(); @@ -932,7 +926,7 @@ void sf_power_off(void) sf_power_off_check_camera_restart(); sf_power_off_check_ui_para_sava(); - sf_statistics_param_save(psfPara); + sf_statistics_param_save(sf_statistics_param_get()); sf_power_off_msg_to_cardv(); printf("[%s:%d] e\n", __FUNCTION__, __LINE__); From 2cf15cc0a95f1cbbfd13e6b6323e911c53e2c39e Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:32:31 +0800 Subject: [PATCH 12/41] =?UTF-8?q?1.sd=E5=8D=A1=E6=8C=82=E8=BD=BD=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sf_app/code/source/app/sf_service.c | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) 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 51c1d8de1..77cc2ef4d 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 @@ -2154,22 +2154,55 @@ void serach_gps_onkey_start(void) } pthread_attr_destroy(&attr); } +static int sf_is_sdc_mounted(void) +{ + char line[256]; + printf("%s:%d is_mounted:%d", __FUNCTION__, __LINE__); + + FILE *file = fopen("/proc/mounts", "r"); + if (file == NULL) { + perror("Error opening /proc/mounts"); + return 0; + } + + while (fgets(line, sizeof(line), file)) { + if (strstr(line, "/dev/mmcblk0p1") != NULL) { + fclose(file); + return 1; + } + } + + fclose(file); + return 1; +} int sf_check_sd(void) { UINT8 i = 0; int ret = SF_SUCCESS; if (sf_sd_status_get() != SF_SD_OK) { ret = SF_FAILURE; - for (i = 0; i < 20; i++) { + for (i = 0; i < 20; i++) + { ret = sf_sd_status_get(); - if (SF_SD_OK == ret) { + if (SF_SD_OK == ret) + { ret = SF_SUCCESS; MLOGI("SD\r\n"); sf_statistics_param_load(sf_statistics_param_get()); break; - } else { + } + else + { + if (1 == sf_is_sdc_mounted()) + { + ret = SF_SUCCESS; + MLOGI("mounted SD\r\n"); + sf_statistics_param_load(sf_statistics_param_get()); + break; + } sleep(1); + } } return ret; From 83ac60d9ae9d608a73e9a00254a986a90b39d57e Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:33:31 +0800 Subject: [PATCH 13/41] =?UTF-8?q?1.=E5=8F=91=E9=80=81=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/source/4gMng/sf_eg91_sim.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 e67a7fed9..938685b54 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 @@ -39,7 +39,7 @@ UINT8 AddCimiTimes = 0; UINT8 simErrorCode = SIM_AT_ERROR; BOOL NetworkScan = FALSE; BOOL GprsNetWorkReady = FALSE; - +time_t sendStartTime; UINT8 gprs_search_process = GPRS_SEARCH_STEP_IDLE; extern SF_PARA_TIME_S rtcTime; @@ -4525,7 +4525,9 @@ SINT32 sf_auto_net_reg(void) } SF_MODULE_END: - printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); + // sendStartTime = clock(); + sf_time(&sendStartTime); + printf("[%s:%d]ret:[0x%08X] sendStartTime:%d\n\n", __FUNCTION__, __LINE__, ret, sendStartTime); return ret; } From c0981ed481c9b542ba506fdd23178939493032d7 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:34:14 +0800 Subject: [PATCH 14/41] =?UTF-8?q?1.dp=E4=BF=A1=E6=81=AF=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/source/4gMng/sf_sms.c | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) 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 34bc0eae2..2ab25003d 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 @@ -2609,6 +2609,36 @@ SINT32 sf_power_off_check_ui_para_sava(void) } return 0; } +/************************************************* + Function: sf_power_off_statistics + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_statistics(void) +{ + UINT8 PowerOnMode = sf_poweron_type_get(); + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SF_PDT_PARAM_STATISTICS_S *psfPara = sf_statistics_param_get(); + + + if(((PowerOnMode == PWR_ON_TIME_SEND) || (PowerOnMode == PWR_ON_TIMELAPSE) || (PowerOnMode == PWR_ON_PIR)) && (sf_get_signal_ready_flag())) + { + psfPara->picSendCount++;//Failed to register, counted as sending once. + printf("picSendCount=%d\n", psfPara->picSendCount); + } + + if((PowerOnMode == PWR_ON_TIMELAPSE) || (PowerOnMode == PWR_ON_PIR)) + { + psfPara->TirgNum++; + psfPara->NewFlieCount+=(puiPara->Multishot+1); + printf("TirgNum=%d NewFlieCount=%d\n", psfPara->TirgNum, psfPara->NewFlieCount); + } + return 0; +} + /************************************************* Function: sf_power_off_check_camera_restart From 2c1ef5b8e89cde0c157155df51011c855882ad11 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 10:34:56 +0800 Subject: [PATCH 15/41] =?UTF-8?q?1.dp=E5=8F=91=E9=80=81=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/include/sf_ftp.h | 3 + .../source/sf_app/code/include/sf_sms.h | 1 + .../source/sf_app/code/source/4gMng/sf_ftp.c | 123 ++++++++++++------ 3 files changed, 89 insertions(+), 38 deletions(-) diff --git a/code/application/source/sf_app/code/include/sf_ftp.h b/code/application/source/sf_app/code/include/sf_ftp.h index a9afa1846..51177632e 100755 --- a/code/application/source/sf_app/code/include/sf_ftp.h +++ b/code/application/source/sf_app/code/include/sf_ftp.h @@ -25,6 +25,7 @@ #include "kwrap/nvt_type.h" #include "sf_type.h" +#include typedef enum _FTP_SIM_E { FTP_SIM_CGDCONT = 0, @@ -220,5 +221,7 @@ SINT32 sf_video_ftp_send(void); SINT32 sf_get_ftp_open_flag(void); SINT32 sf_log_send_ftp(void); SINT32 sf_low_power_warn_send_ftp(void); +double sf_sys_s_time_get(time_t end_time); +time_t sf_time (time_t *__timer); #endif /*_SF_FTP_H_*/ diff --git a/code/application/source/sf_app/code/include/sf_sms.h b/code/application/source/sf_app/code/include/sf_sms.h index 5e6780a5f..b75bbcd3e 100644 --- a/code/application/source/sf_app/code/include/sf_sms.h +++ b/code/application/source/sf_app/code/include/sf_sms.h @@ -266,5 +266,6 @@ UINT8 sf_set_send_hd(UINT8 value); UINT8 sf_set_send_video(UINT8 value); UINT8 sf_get_send_log(void); UINT8 sf_set_send_log(UINT8 value); +SINT32 sf_power_off_statistics(void); #endif /*_SF_SMS_H_*/ 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 ac725d4fe..db6f2b4a7 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 @@ -105,7 +105,8 @@ UINT8 DailyReportFtpSendSucess = 0; SINT32 FtpOpenOk = FAIL; extern char logStr[128]; extern char gsmPara[GPRS_INFO_LINE_MAX]; - +extern time_t sendStartTime; +time_t sendEndTime = 0; /************************************************* Function: sf_check_max_num Description: check the max num one day limit. @@ -884,11 +885,11 @@ SINT32 sf_pic_send_ftp(void) UINT8 pic = 0; UINT8 csqlevel = 0; int timeout = 120000; - SINT64 sendStartTime = 0; - SINT64 sendEndTime = 0; + //SINT64 sendStartTime = 0; + SF_SRCFILE_ATTR_S *pThumbFileCfg = sf_file_thumb_cfg_get(); MLOGD("start\n"); - sendStartTime = sf_sys_os_utime_get()/1000; + //sendStartTime = sf_sys_os_utime_get()/1000; sf_custom_str_get(CamNameStr); sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); @@ -991,14 +992,41 @@ SINT32 sf_pic_send_ftp(void) printf("%s:%d err up file ftpFileName:%s filePath:%s\n", __FUNCTION__, __LINE__, ftpFileName[pic], filePath[pic]); } } - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; - pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + // sendEndTime = clock(); + + //pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; + //pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; - MLOGD(" end ret:[0x%08X] sendTime:%ds\n", ret, (sendEndTime - sendStartTime)); + MLOGD(" end ret:[0x%08X] \n", ret); return ret; } +double sf_sys_ms_time_get(clock_t end_time) +{ + // ms + double elapsed_time = (double)(end_time - sendStartTime) / CLOCKS_PER_SEC * 1000; + printf("time: %.2f ms\n", elapsed_time); + + return elapsed_time; +} +double sf_sys_s_time_get(time_t end_time) +{ + // time + double elapsed_time = difftime(end_time, sendStartTime); + + // s + printf("start_time: %s", ctime(&sendStartTime)); + printf("end_time: %s", ctime(&end_time)); + + + printf("time: %.2f s\n", elapsed_time); + + return elapsed_time; +} +time_t sf_time (time_t *__timer) +{ + time(__timer); +} SINT32 sf_video_send_ftp(void) { //extern UINT8 PicName[5][2][35]; @@ -1197,7 +1225,8 @@ SINT32 sf_send_file_to_ftp(UINT8 mode) UINT8 gprsMode = 0; int timeout = 120000; UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); - + SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); + SINT64 sendEndTime = 0; MLOGD("start\n"); ssl = ((2 == puiPara->FtpSwitch) ? 1 : 0); @@ -1271,6 +1300,13 @@ SINT32 sf_send_file_to_ftp(UINT8 mode) ret1 = sf_video_send_ftp(); } } + //sendEndTime = clock(); + time(&sendEndTime); + double elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->picSendTimeCount +=elapsed_time; + pSifarPara->sendThumbnailTimeCount += elapsed_time; + MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); + time(&sendStartTime); } else { @@ -1519,12 +1555,12 @@ SINT32 sf_concentrated_ftp_send(void) UINT8 sendFailFlag = 0; UINT8 sendAlreadyFlag = 0; UINT8 timeoutCnt = 0; - SINT64 sendStartTime = 0; + // SINT64 sendStartTime = 0; SINT64 sendEndTime = 0; sf_custom_str_get(CamNameStr); sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); - sendStartTime = sf_sys_os_utime_get()/1000; + // sendStartTime = sf_sys_os_utime_get()/1000; SF_CONCENTRATED_MODULE_REBOOT://Restart the module once. ret1 = sf_ftp_config(ssl, gprsMode, timeout); @@ -1579,9 +1615,9 @@ SINT32 sf_concentrated_ftp_send(void) } else if(1 == sendFailFlag){ sendFailFlag++; - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; - pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + // sendEndTime = sf_sys_os_utime_get()/1000; + // pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; + // pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; if(sf_ttyusb_restart() != SUCCESS) { printf("%s:%d restart tty usb err\n", __FUNCTION__, __LINE__); @@ -1617,10 +1653,12 @@ SINT32 sf_concentrated_ftp_send(void) SF_CONCENTRATED_END: - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; - pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; - printf("[%s:%d] : sendStartTime:%d sendEndTime:%d\n\n", __FUNCTION__, __LINE__, sendStartTime, sendEndTime); + time(&sendEndTime); + double elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->picSendTimeCount +=elapsed_time; + pSifarPara->sendThumbnailTimeCount += elapsed_time; + MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); + time(&sendStartTime); if(!(((piccount+1) <= SendFileTotal) && ((pSifarPara->picSendMax < pPara->SendMaxNum) || (pPara->SendMaxNum == 0)))) { @@ -1697,14 +1735,13 @@ SINT32 sf_hd_ftp_send(void) UINT8 sendFailFlag = 0; UINT8 sendAlreadyFlag = 0; UINT8 timeoutCnt = 0; - SINT64 sendStartTime = 0; - SINT64 sendEndTime = 0; + double elapsed_time = 0; sf_set_send_hd(0); sf_custom_str_get(CamNameStr); sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); - sendStartTime = sf_sys_os_utime_get()/1000; + // sendStartTime = sf_sys_os_utime_get()/1000; SF_HD_MODULE_REBOOT://Restart the module once. ret1 = sf_ftp_config(ssl, gprsMode, timeout); @@ -1755,9 +1792,12 @@ SINT32 sf_hd_ftp_send(void) } else if(1 == sendFailFlag){ sendFailFlag++; - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; - pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + time(&sendEndTime); + elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->picSendTimeCount +=elapsed_time; + pSifarPara->sendThumbnailTimeCount += elapsed_time; + MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); + time(&sendStartTime); if(sf_ttyusb_restart() != SUCCESS) { printf("%s:%d restart tty usb err\n", __FUNCTION__, __LINE__); @@ -1796,10 +1836,11 @@ SINT32 sf_hd_ftp_send(void) SF_HD_END: - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; - //pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; - printf("[%s:%d] : sendStartTime:%d sendEndTime:%d\n\n", __FUNCTION__, __LINE__, sendStartTime, sendEndTime); + time(&sendEndTime); + elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->picSendTimeCount +=elapsed_time; + MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); + time(&sendStartTime); if(!(((piccount) <= SendFileTotal) && ((pSifarPara->picSendMax < pPara->SendMaxNum) || (pPara->SendMaxNum == 0)))) { @@ -1913,7 +1954,7 @@ SINT32 sf_video_ftp_send(void) UINT8 sendFailFlag = 0; UINT8 sendAlreadyFlag = 0; UINT8 timeoutCnt = 0; - SINT64 sendStartTime = 0; + double elapsed_time = 0; SINT64 sendEndTime = 0; UINT32 size = 0; @@ -1921,7 +1962,7 @@ SINT32 sf_video_ftp_send(void) sf_custom_str_get(CamNameStr); sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); - sendStartTime = sf_sys_os_utime_get()/1000; + // sendStartTime = sf_sys_os_utime_get()/1000; SF_VIDEO_MODULE_REBOOT://Restart the module once. ret1 = sf_ftp_config(ssl, gprsMode, timeout); @@ -1980,9 +2021,14 @@ SINT32 sf_video_ftp_send(void) } else if(1 == sendFailFlag){ sendFailFlag++; - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; - pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + + time(&sendEndTime); + elapsed_time = sf_sys_s_time_get(sendEndTime); + //pSifarPara->picSendTimeCount +=elapsed_time; + pSifarPara->videoSendTimeCount += elapsed_time; + MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount); + time(&sendStartTime); + if(sf_ttyusb_restart() != SUCCESS) { printf("%s:%d restart tty usb err\n", __FUNCTION__, __LINE__); @@ -2021,11 +2067,12 @@ SINT32 sf_video_ftp_send(void) SF_VIDEO_END: - sendEndTime = sf_sys_os_utime_get()/1000; - pSifarPara->videoSendTimeCount +=sendEndTime - sendStartTime; - //pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; - printf("[%s:%d] : sendStartTime:%d sendEndTime:%d\n\n", __FUNCTION__, __LINE__, sendStartTime, sendEndTime); - + time(&sendEndTime); + elapsed_time = sf_sys_s_time_get(sendEndTime); + pSifarPara->videoSendTimeCount +=elapsed_time; + MLOGD("SendTime:%d s videoSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->videoSendTimeCount,pSifarPara->sendThumbnailTimeCount); + time(&sendStartTime); + if(ret1 != SF_FTP_ERROR_TERM) { ret2 = sf_ftp_stop(ssl, gprsMode); From 36182e1e9eb54f1e5951929e5a36d519d27dc7bf Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 14:08:57 +0800 Subject: [PATCH 16/41] =?UTF-8?q?1.=E4=B8=80=E6=AC=A1=E5=88=A0=E9=99=A420?= =?UTF-8?q?=E4=B8=AA=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/source/storeMng/sf_storeMng.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c index 257b71d9a..d14b4183e 100644 --- a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c @@ -789,7 +789,7 @@ int sf_app_sd_loop(void) remove(cFileTmp); } - if(iFileCount % 30 == 0) + if(iFileCount % 20 == 0) { //sf_get_sd_info(&sdStatus, &sdFree, &sdTotal); sf_sd_info_get(&storeattrs); From 44147ee664089b54c76c868e3eb37091862da2a1 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 14:25:27 +0800 Subject: [PATCH 17/41] =?UTF-8?q?1.adc=E8=A1=A5=E4=B8=81Linux=E6=9B=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../arch/arm/configs/na51089_evb_cardv_defconfig_release | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release diff --git a/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release b/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release old mode 100644 new mode 100755 index c44170d64..991eafdac --- a/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release +++ b/BSP/linux-kernel/arch/arm/configs/na51089_evb_cardv_defconfig_release @@ -2076,7 +2076,7 @@ CONFIG_NVT_HDAL_KDRV_BUILTIN=y # CONFIG_PM_DEVFREQ is not set # CONFIG_EXTCON is not set # CONFIG_MEMORY is not set -CONFIG_IIO=y +CONFIG_IIO=m # CONFIG_IIO_BUFFER is not set # CONFIG_IIO_CONFIGFS is not set # CONFIG_IIO_TRIGGER is not set @@ -2156,7 +2156,7 @@ CONFIG_IIO=y # CONFIG_TI_ADS8688 is not set # CONFIG_TI_TLC4541 is not set # CONFIG_VF610_ADC is not set -CONFIG_NVT_ADC=y +CONFIG_NVT_ADC=m # # Analog Front Ends From 6e3727cab88d396286ed679152537f86f4f3d339 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 14:25:52 +0800 Subject: [PATCH 18/41] =?UTF-8?q?1.adc=20lib=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BSP/linux-kernel/drivers/iio/adc/nvt_adc.c | 599 ++++++++++++++++++++- code/lib/include/io/adc.h | 1 + code/lib/source/io/libio.a | Bin 22102 -> 23322 bytes code/lib/source/io/libio.so | Bin 21676 -> 21880 bytes 4 files changed, 581 insertions(+), 19 deletions(-) mode change 100644 => 100755 code/lib/source/io/libio.a diff --git a/BSP/linux-kernel/drivers/iio/adc/nvt_adc.c b/BSP/linux-kernel/drivers/iio/adc/nvt_adc.c index 3c8dec601..3e21d97bb 100755 --- a/BSP/linux-kernel/drivers/iio/adc/nvt_adc.c +++ b/BSP/linux-kernel/drivers/iio/adc/nvt_adc.c @@ -20,12 +20,17 @@ #include #include #include - +#include +#include #include #include #include -#define DRV_VERSION "1.03.000" +#include +#include +#include + +#define DRV_VERSION "1.06.003" #ifdef CONFIG_NVT_FPGA_EMULATION #define CALI_VDDADC 3300 @@ -43,7 +48,7 @@ .indexed = 1, \ .channel = num, \ .address = num, \ - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | BIT(IIO_CHAN_INFO_AVERAGE_RAW), \ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE),\ .scan_index = num, \ .scan_type = { \ @@ -55,11 +60,13 @@ .datasheet_name = id, \ } +static UINT8 debug_adc = 0; + static uint nvt_adc_poll_mode = 1; module_param(nvt_adc_poll_mode, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(nvt_adc_poll_mode, "1:poll mode, 0:irq mode"); -static uint nvt_adc_pow2div = 1; +static uint nvt_adc_pow2div = 7; module_param(nvt_adc_pow2div, int, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(nvt_adc_pow2div, "adc sample clock pow2 div"); @@ -75,8 +82,54 @@ struct nvt_adc_state { struct clk *clk; unsigned long trim_value; u32 cali_value; + struct delayed_work adc_avg_work;// cal adc mid work + struct proc_dir_entry *pproc_adc; + }; +// ADC Average func // +// data 0 +static UINT32 *t_data = NULL; +static UINT32 t_data_now = 0; // store t_data amount +static UINT32 adc_mid_val = 0; // store average value +static UINT32 adc_mid_vol = 0; // store average voltage +static UINT32 adc_mid = 0; +static UINT32 adc_mid_first = 0; // first read ready + +// data_1 +static UINT32 *t_data1 = NULL; +static UINT32 t_data_now1 = 0; // store t_data amount +static UINT32 adc_mid1_val = 0; // store average value +static UINT32 adc_mid1_vol = 0; // store average voltage +static UINT32 adc_mid1 = 0; +static UINT32 adc_mid1_first = 0; // mid2 first read ready + +// data_2 +static UINT32 *t_data2 = NULL; +static UINT32 t_data_now2 = 0; // store t_data amount +static UINT32 adc_mid2_val = 0; // store average value +static UINT32 adc_mid2_vol = 0; // store average voltage +static UINT32 adc_mid2 = 0; +static UINT32 adc_mid2_first = 0; // mid2 first read ready + +// data_3 +static UINT32 *t_data3 = NULL; +static UINT32 t_data_now3 = 0; // store t_data amount +static UINT32 adc_mid3_val = 0; // store average value +static UINT32 adc_mid3_vol = 0; // store average voltage +static UINT32 adc_mid3 = 0; +static UINT32 adc_mid3_first = 0; // mid2 first read ready +// + +static u32 adc_base = 0; +static UINT32 adc_trim = 0; + +static UINT32 adc_avg_times = 50; +static UINT32 filter = 3 ; +static UINT32 avg_sel = 3; +static UINT32 avg_sel_sts = 0; + + static u32 adc_getreg(struct nvt_adc_state *adc, u32 offset) { return nvt_readl(adc->base + offset); @@ -121,10 +174,414 @@ static void adc_set_default_hw(struct nvt_adc_state *adc) ctrl_reg.bit.clkdiv = nvt_adc_pow2div; ctrl_reg.bit.sampavg = 0; ctrl_reg.bit.extsamp_cnt = nvt_adc_plusdiv; - ctrl_reg.bit.adc_en = 0; + ctrl_reg.bit.adc_en = 1; adc_setreg(adc, ADC_CTRL_REG_OFS, ctrl_reg.reg); } +#if 1 +static int nvt_adc_read_avg_int(void) +{ + t_data = (int*)kmalloc(sizeof(int) * adc_avg_times , GFP_KERNEL); + memset(t_data ,0, adc_avg_times*sizeof(int)); + + t_data1 = (int*)kmalloc(sizeof(int) * adc_avg_times , GFP_KERNEL); + memset(t_data1 ,0, adc_avg_times*sizeof(int)); + + t_data2 = (int*)kmalloc(sizeof(int) * adc_avg_times , GFP_KERNEL); + memset(t_data2 ,0, adc_avg_times*sizeof(int)); + + t_data3 = (int*)kmalloc(sizeof(int) * adc_avg_times , GFP_KERNEL); + memset(t_data3 ,0, adc_avg_times*sizeof(int)); + + return 1; +} + +static void nvt_adc_read_avg(struct work_struct *work) //(struct nvt_adc_state *adc, u8 channel) +{ + UINT32 adc_data = 0; + UINT32 i = 0, temp = 0; + UINT32 channel = 0; + + struct nvt_adc_state *adc = container_of(work, struct nvt_adc_state, + adc_avg_work.work); + + //adc_mid_val = adc_mid; + //adc_mid_vol = (adc_mid +CALI_OFFSET)*adc_trim/511; + //printk("\n adc_mid = %d , adc_mid_val = %d , adc_mid_vol = %d \r\n\n", adc_mid, adc_mid_val, adc_mid_vol); + if (adc_mid3_first == 0) { + //schedule_delayed_work(&adc->adc_avg_work, msecs_to_jiffies(10)); + goto adc_avg_work ; + } + + // data 0 + if( avg_sel == 0 ){ + + if (adc_mid_first == 0 ){ // firstly ready + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + adc_mid = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + + }else{ + adc_mid_val = adc_mid; + adc_mid_vol = (adc_mid + CALI_OFFSET)*adc_trim/511; + adc_mid_first++ ; + } + + }else { + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + temp = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + + }else { + + if( (temp <= (adc_mid + filter)) && (temp >= (adc_mid - filter) ) ){ + t_data[t_data_now] = temp; + t_data_now++; + } + if (t_data_now != 0 && debug_adc){ + printk("0.temp = %d, t_data[t_data_now = %d] = %d , adc_mid = %u, filter = %u\r\n",temp, t_data_now-1, t_data[t_data_now-1], adc_mid, filter); + } + + // calculate average + if (t_data_now >= adc_avg_times ){ + adc_data = 0; + for( i = 0 ; i < adc_avg_times ; i++ ){ + adc_data += t_data[i]; + } + + adc_data = adc_data / adc_avg_times ; + + adc_mid_val = adc_data; + adc_mid = adc_data; + t_data_now = 0 ; + + adc_mid_val = adc_mid; + adc_mid_vol = (adc_mid +CALI_OFFSET)*adc_trim/511; + + printk("reset0 adc_mid_val = %d, adc_mid_vol = %d \r\n",adc_mid_val, adc_mid_vol); + } + } + } + + + // data 1 + } else if( avg_sel == 1 ) { + + if (adc_mid1_first == 0 ){ // firstly ready + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + adc_mid1 = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } else { + adc_mid1_val = adc_mid1; + adc_mid1_vol = (adc_mid1 + CALI_OFFSET)*adc_trim/511; + adc_mid1_first++ ; + } + + + }else{ + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + temp = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + + } else { + if( (temp <= (adc_mid1 + filter)) && (temp >= (adc_mid1 - filter) ) ){ + t_data1[t_data_now1] = temp; + t_data_now1++; + } + + if (t_data_now1 != 0 && debug_adc){ + printk("1.temp = %d, t_data1[t_data_now1 = %d] = %d \r\n",temp ,t_data_now1-1, t_data1[t_data_now1-1]); + } + + // calculate average + if (t_data_now1 >= adc_avg_times ){ + adc_data = 0; + for( i = 0 ; i < adc_avg_times ; i++ ){ + adc_data += t_data1[i]; + } + + adc_data = adc_data / adc_avg_times ; + + adc_mid1_val = adc_data; + adc_mid1 = adc_data; + t_data_now1 = 0 ; + + adc_mid1_val = adc_mid1; + adc_mid1_vol = (adc_mid1 +CALI_OFFSET)*adc_trim/511; + + printk("reset1 adc_mid1 = %d, adc_mid1_vol = %d \r\n",adc_mid1, adc_mid1_val); + } + } + } + + // data 2 + } else if( avg_sel == 2 ) { + + if (adc_mid2_first == 0 ){ // firstly ready + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + adc_mid2 = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } else { + adc_mid2_val = adc_mid2; + adc_mid2_vol = (adc_mid2 + CALI_OFFSET)*adc_trim/511; + adc_mid2_first++ ; + } + + + }else{ + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + temp = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + + } else { + if( (temp <= (adc_mid2 + filter)) && (temp >= (adc_mid2 - filter) ) ){ + t_data2[t_data_now2] = temp; + t_data_now2++; + } + + if (t_data_now2 != 0 && debug_adc){ + printk("2.temp = %d, t_data2[t_data_now2 = %d] = %d \r\n",temp ,t_data_now2-1, t_data2[t_data_now2-1]); + } + + // calculate average + if (t_data_now2 >= adc_avg_times ){ + adc_data = 0; + for( i = 0 ; i < adc_avg_times ; i++ ){ + adc_data += t_data2[i]; + } + + adc_data = adc_data / adc_avg_times ; + + adc_mid2_val = adc_data; + adc_mid2 = adc_data; + t_data_now2 = 0 ; + + adc_mid2_val = adc_mid2; + adc_mid2_vol = (adc_mid2 +CALI_OFFSET)*adc_trim/511; + + printk("reset2 adc_mid2 = %d, adc_mid2_vol = %d \r\n",adc_mid2, adc_mid2_val); + } + } + } + + // data 3 + } else if( avg_sel == 3 ) { + + if (adc_mid3_first == 0 ){ // firstly ready + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + adc_mid3 = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } else { + adc_mid3_val = adc_mid3; + adc_mid3_vol = (adc_mid3 + CALI_OFFSET)*adc_trim/511; + adc_mid3_first++ ; + } + + + }else{ + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + } + temp = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + channel*4); + + if (avg_sel_sts == 1 ){ + mdelay(1); + avg_sel_sts = 0; + + } else { + if( (temp <= (adc_mid3 + filter)) && (temp >= (adc_mid3 - filter) ) ){ + t_data3[t_data_now3] = temp; + t_data_now3++; + } + + if (t_data_now3 != 0 && debug_adc){ + printk("3.temp = %d, t_data3[t_data_now3 = %d] = %d \r\n",temp ,t_data_now3-1, t_data3[t_data_now3-1]); + } + + // calculate average + if (t_data_now3 >= adc_avg_times ){ + adc_data = 0; + for( i = 0 ; i < adc_avg_times ; i++ ){ + adc_data += t_data3[i]; + } + + adc_data = adc_data / adc_avg_times ; + + adc_mid3_val = adc_data; + adc_mid3 = adc_data; + t_data_now3 = 0 ; + + adc_mid3_val = adc_mid3; + adc_mid3_vol = (adc_mid3 +CALI_OFFSET)*adc_trim/511; + + printk("reset3 adc_mid3 = %d, adc_mid3_vol = %d adc_mid3_vol=%u\r\n",adc_mid3, adc_mid3_val, adc_mid3_vol); + } + } + } + } + + adc_avg_work : + schedule_delayed_work(&adc->adc_avg_work, msecs_to_jiffies(5)); +} +#endif +#if 1 + +#define MAX_CMD_LENGTH 10 +static ssize_t data_proc_cmd_write(struct file *file, const char __user *buf, + size_t size, loff_t *off) +{ + int val; + int len = size; + char cmd_line[MAX_CMD_LENGTH]; + char *cmdstr = cmd_line; + const char delimiters[] = {' ', 0x0A, 0x0D, '\0'}; + char *p_arg; + union ADC_CTRL_REG ctrl_reg; + UINT32 temp; + + // check command length + if (len > (MAX_CMD_LENGTH - 1)) { + printk("%s: Command length %d is too long\n", __func__, len); + return -EINVAL; + } + + // copy command string from user space + if (copy_from_user(cmd_line, buf, len)) { + return -EINVAL; + } + + if (len == 0) + cmd_line[0] = '\0'; + else + cmd_line[len - 1] = '\0'; + + p_arg = strsep(&cmdstr, delimiters); + sscanf(p_arg, "%x", &val); + + // set avg_sel = 0 or 1 for 1 CH connect two device + avg_sel = val; + avg_sel_sts = 1; + + printk("avg_sel = %d \n", avg_sel); + + if ( avg_sel == 5 ){ + + // Check ADC is Enable + ctrl_reg.reg = nvt_readl(adc_base + ADC_CTRL_REG_OFS); + if(!ctrl_reg.bit.adc_en){ + ctrl_reg.reg = nvt_readl(adc_base + ADC_CTRL_REG_OFS); + ctrl_reg.bit.adc_en = 1; + nvt_writel(ctrl_reg.reg, adc_base + ADC_CTRL_REG_OFS); + } + + // second value + temp = nvt_readl(adc_base + ADC_AIN0_DATA_REG_OFS + 0*4); + printk("ch0 second val = %d \n", temp); + + // cal second trim2 + if(temp) + adc_trim = adc_mid3_vol * 511 / temp ; + else{ + adc_trim = 511; + printk("!!!!!!!!! temp is zero\n"); + } + + printk("adc_trim = %d \n", adc_trim); + + t_data3[t_data_now3] = temp; + t_data_now3++; + adc_mid3 = temp; + adc_mid3_val = adc_mid3; + adc_mid3_vol = (adc_mid3 + CALI_OFFSET)*adc_trim/511; + + adc_mid3_first = 1 ; + + } + + return size; +} + + +static int adc_proc_show(struct seq_file *seq, void *v) +{ + UINT32 volt = 0 ; + //printk("adc_avg_value = %d, adc_avg_voltage = %d \n", adc_mid_val, adc_mid_vol); + //printk("adc_avg2 value = %d, adc2_avg_voltage = %d \n", adc_mid1_val, adc_mid1_vol); + if ( avg_sel == 0 ){ + //printk("%d\n", adc_mid_vol); + volt = adc_mid_vol; + }else if ( avg_sel == 1 ){ + //printk("%d\n", adc_mid1_vol); + volt = adc_mid1_vol; + }else if ( avg_sel == 2 ){ + //printk("%d\n", adc_mid2_vol); + volt = adc_mid2_vol; + }else if ( avg_sel == 3 ){ + printk("adc_mid3_vol = %d\n", adc_mid3_vol); + volt = adc_mid3_vol; + } + seq_printf(seq,"%d\n",volt); + + return 0; +} + +static int adc_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, adc_proc_show, NULL); +} + +static struct file_operations proc_adc_fops = { + .owner = THIS_MODULE, + .open = adc_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, + .write = data_proc_cmd_write, +}; + + + + +#endif + static u32 nvt_adc_get_value(struct nvt_adc_state *adc, u8 channel) { u16 adc_data; @@ -150,6 +607,16 @@ static int nvt_adc_read_raw(struct iio_dev *iio, *value = nvt_adc_get_value(adc, channel->address); return IIO_VAL_INT; + // Read Average + case IIO_CHAN_INFO_AVERAGE_RAW: + if ( avg_sel == 0 ){ + *value = adc_mid_vol; + }else{ + *value = adc_mid1_vol; + } + + return IIO_VAL_INT; + case IIO_CHAN_INFO_SCALE: printk("IIO_CHAN_INFO_SCALE\n"); return IIO_VAL_FRACTIONAL_LOG2; @@ -188,7 +655,7 @@ static ssize_t nvt_adc_enable(struct device *dev, ret = kstrtoul(buf, 10, &input); if (ret < 0) return ret; - + adc_set_enable(adc, input); return len; @@ -408,6 +875,8 @@ static void nvt_adc_get_trimdata(struct nvt_adc_state *adc) } } #endif + adc_trim = adc->cali_value; + //printk("adc_trim = %d \r\n",adc_trim); } #endif @@ -415,9 +884,15 @@ static int nvt_adc_probe(struct platform_device *pdev) { struct iio_dev *iio; struct nvt_adc_state *adc; - int err = 0, irq; + int err = 0, irq , i=0; struct resource *res; struct thermal_zone_device *thermal_zone = NULL; + int ret_avg = 0; + struct proc_dir_entry *pentry = NULL; + + union ADC_AIN0_DATA_REG data_reg; + union ADC_STATUS_REG sts_reg; + #ifdef CONFIG_OF const struct of_device_id *of_id; @@ -426,19 +901,19 @@ static int nvt_adc_probe(struct platform_device *pdev) dev_err(&pdev->dev, "[NVT ADC] OF not found\n"); return -EINVAL; } - //pr_info("%s %d: of_id->compatible = %s\n", __func__, __LINE__, of_id->compatible); #endif - - adc = kzalloc(sizeof(struct nvt_adc_state), GFP_KERNEL); - if (!adc) - return -ENOMEM; - - iio = iio_device_alloc(sizeof(*adc)); - if (!iio) +printk("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); + iio = iio_device_alloc(sizeof(struct nvt_adc_state) ); + if (!iio){ return -ENOMEM; + } adc = iio_priv(iio); + if (!adc ){ + err = -ENOMEM; + goto iio_free; + } res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { @@ -450,6 +925,8 @@ static int nvt_adc_probe(struct platform_device *pdev) if (!adc->base) goto iio_free; + adc_base = (u32)adc->base; + adc->clk = clk_get(&pdev->dev, dev_name(&pdev->dev)); if (!IS_ERR(adc->clk)) { clk_prepare(adc->clk); @@ -485,7 +962,7 @@ static int nvt_adc_probe(struct platform_device *pdev) adc->sample_rate = (clk_get_rate(adc->clk) / (2 * (nvt_adc_pow2div + 1))) / (4 * (26 + nvt_adc_plusdiv)); adc_set_default_hw(adc); - + iio->name = "nvt_adc"; iio->modes = INDIO_DIRECT_MODE; iio->info = &nvt_adc_info; @@ -503,12 +980,83 @@ static int nvt_adc_probe(struct platform_device *pdev) pr_info("%s: %s done voltage %d ver %s\n", __func__, dev_name(&pdev->dev), adc->cali_value, DRV_VERSION); + udelay(30); + + // if data ready + for( i = 0 ; i< 5 ; i++ ){ + sts_reg.reg = adc_getreg(adc, ADC_STATUS_REG_OFS); + if(sts_reg.bit.ain0_datardy ==1 ){ + break; + } + udelay(50); + } + + if (i==5){ + printk("\n adc ready timout !!\r\n"); + } + data_reg.reg = adc_getreg(adc, ADC_AIN0_DATA_REG_OFS); + + // read first value + adc_mid3_first = 0; + if ( avg_sel == 0 ){ + adc_mid = data_reg.reg; + adc_mid_first = 1 ; // already get firstly value + adc_mid_val = adc_mid; + adc_mid_vol = (adc_mid +CALI_OFFSET)*adc_trim/511; + + printk("adc_mid first value = %u\n", adc_mid_val); + + }else if(avg_sel == 1 ) { + adc_mid1 = data_reg.reg; + adc_mid1_first = 1 ; // already get firstly value + adc_mid1_val = adc_mid1; + adc_mid1_vol = (adc_mid1 +CALI_OFFSET)*adc_trim/511; + + printk("adc_mid1 first value = %u\n", adc_mid1_val); + + }else if(avg_sel == 2 ) { + adc_mid2 = data_reg.reg; + adc_mid2_first = 1 ; // already get firstly value + adc_mid2_val = adc_mid2; + adc_mid2_vol = (adc_mid2 +CALI_OFFSET)*adc_trim/511; + + printk("adc_mid2 first value = %u\n", adc_mid2_val); + + }else if(avg_sel == 3 ) { + adc_mid3 = data_reg.reg; +// adc_mid3_first = 1 ; // already get firstly value + adc_mid3_val = adc_mid3; + adc_mid3_vol = (adc_mid3 +CALI_OFFSET)*adc_trim/511; + + printk("adc_mid3 first value = %u\n", adc_mid3_val); + } + + +#if 1 + // ADC Average data + /* tempeture compensation */ + ret_avg = nvt_adc_read_avg_int(); + + if(ret_avg){ + INIT_DELAYED_WORK(&adc->adc_avg_work, nvt_adc_read_avg); + schedule_delayed_work(&adc->adc_avg_work, msecs_to_jiffies(1)); + } + + pentry = proc_create("adc", 0, NULL, &proc_adc_fops); + if (pentry == NULL) { + dev_err(&pdev->dev, "failed to create adc proc!\n"); + err = -EINVAL; + goto t_data_free; + } + adc->pproc_adc = pentry; +#endif thermal_zone = thermal_zone_device_register("nvt_thermal", 0, 0, adc, &ops, NULL, 0, 0); if (IS_ERR(thermal_zone)) { dev_err(&pdev->dev, "thermal zone device is NULL\n"); - return PTR_ERR(thermal_zone); + err = PTR_ERR(thermal_zone); + goto t_data_free; } thermal_get_trimdata(adc); @@ -518,7 +1066,14 @@ static int nvt_adc_probe(struct platform_device *pdev) platform_set_drvdata(pdev, thermal_zone); return 0; - + +t_data_free: + cancel_delayed_work(&adc->adc_avg_work); + kfree(t_data); + kfree(t_data1); + kfree(t_data2); + kfree(t_data3); + iio_free: iio_device_free(iio); @@ -527,10 +1082,16 @@ iio_free: static int nvt_adc_remove(struct platform_device *pdev) { - struct iio_dev *iio = platform_get_drvdata(pdev);; + struct iio_dev *iio = platform_get_drvdata(pdev); + struct nvt_adc_state *adc ; + adc = iio_priv(iio); + + cancel_delayed_work(&adc->adc_avg_work); iio_device_unregister(iio); iio_device_free(iio); + remove_proc_entry("adc", NULL); + kfree(t_data); return 0; } diff --git a/code/lib/include/io/adc.h b/code/lib/include/io/adc.h index ab00c8513..a12312e36 100755 --- a/code/lib/include/io/adc.h +++ b/code/lib/include/io/adc.h @@ -379,6 +379,7 @@ extern UINT32 adc_readData(ADC_CHANNEL Channel); extern BOOL adc_isDataReady(ADC_CHANNEL Channel); extern void adc_clearDataReady(ADC_CHANNEL Channel); extern UINT32 adc_readVoltage(ADC_CHANNEL Channel); +extern UINT32 adc_readVoltage_channel0_avg(UINT32 device_id, UINT32 delay_time_ms); extern UINT32 adc_thermal_read_data(void); extern UINT32 adc_thermal_read_voltage(void); diff --git a/code/lib/source/io/libio.a b/code/lib/source/io/libio.a old mode 100644 new mode 100755 index 8ef69015ff6fcaddb5794671dbaf4ac7719836d6..2a596557a97528bac79cc56d1b6c3a5b35cc7a2d GIT binary patch delta 3871 zcmcguYitx%6h714ZM(JGE*r|)e=vw)E*5F3?3g0fw@OH0yrn?6W+ zxz(b8P-(a-K0x*d)&`A`REa;7^an9bG)jCBjF{4vMih)C5~4AJ=gi#QogKhm#+$u! z?)RPZow@hS+`DuBec{d1!mvG9S6$(ft14wl!XGy6Rg%hOxk90(<|F{905F#Qr#%>x zu=oVP|I@v`7Ehqd-^p%@gY2-dEVJA1^)&_Bd%dlGPfMG(v(w)$d%Rm)+0FT{j$vv>hPn06L6PG?@ThGs(z@ zlN#aZ?25^u>A8VVulO+52ghb934of|h)Ki#)#wZJQGL`eqdy)O2H=d&JS;woB|47% zb?m#bKh1js+LEz@33-D3Ue5)9jV2zd3-t9$fz8sEPM^QOWMO;XqNMB%atDCFr7a-I z{m4iUNzShBK#LQfA5J1X94j_k49jXj#9O(stE~nyaL^WpPy;zQeprL^aoirotS|Y6 zN~;hiGNA~EC1D6va6gXS8Z4`0=Cr3Xhow-cX1`VCvZpMM2oihC;uO-@=Xfn-e_2+g zCq#5KC<5Ao5?hs$#dfENY$Qcu=Tjt0J&!V?71-}71?H7uhUKLev!+zZ{3K^`SunNO z?B&SDP9h3$l*J|y?c&JFQmw_7{T$6lE3isy!MZm%lST|32%2VqN@b2wsuJGifa)xu zU)u~=A6gSOs)xw{)sTes$Pl{-p#UP}>ZB8UA0jXf&k6H-;E97#l`scwCjz3i5MR0RWY3L@8 z>hR+_+@!(jBv`H?2tUIn>oS6W;7Eit=+}8)=9s284;I7QF?bPt!11`Ex4{{XWwat> z!VesyTbb^(4*#O!Ao-Pm>$(6#oZ?cpfCzTTiorQh5rY@Na*k=6i6FsRj%5Wqpfx7G z5OydSPgvSxBJPPH9-ywcgsl}ztu;`#dPOZ=s_Eil1LDG_S{HacoBKLjJf5;z*;NsP zYP6_MjzLu#R4!M>AlKNhVv69t=ONYM@96ROLQhxsmd@VI(6g$GGN*-J` z38~st392r=BUJ5}8+fCMVt8MeXLBoDW8d1+1omadeU_NdoU!jSmI)cSN6NYbK5wtL zOuJWDc~*MRg}drbAMTaAu~m0rY46+_TP{cMNgrkR+Dh?dJ-yxKWo%#85msbBWp?9V zQX*ENo=w_Unj0d>nZ4577(qcq>m%qZM9mSDm-Cak4N>XZf;@;Cu!ySf zWNrbATb0H-*H}wOkquD{c6vNU>@<&7d=>DA|2b;wH?niNw)z(2%*ePo-H@)zNN&d- zmhaKYL#ljGCvVosb2Rc3I{AbuAJNJCHSz@-`B|NO&dA0W*y_i1@?ni!(#WTD@?_JY zY+L=0I`ybVje91t^uKlLr6#3vf9mAp8hN2co*frkc%LfIKw4Y)3mSQmMqY_=^!yCi zsU0w}MyV(cjXTFCuDjD4lI$ru0Yz@-)6nEWdebnc(I{=$ggcy%$g33 zrCh^tpXlNyOl(fFiC^pJ%SdP2#49@b2CgdKR)0%JC*n&>Cq}r1Z?G(2|7Z-|WmvELxIZdAe)Eo%_csNHI zNvV(UxUi!!fi>H0;%TJu*QKG?JBloOF^hyR#skQAvHgy0(`2NwWwqyPW_ delta 3015 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 Date: Mon, 6 Nov 2023 14:27:30 +0800 Subject: [PATCH 19/41] =?UTF-8?q?1.rootsf=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../init.d/S07_SysInit | 58 +++++++++++++++++++ .../init.d/S10_SysInit2 | 12 ++-- 2 files changed, 64 insertions(+), 6 deletions(-) diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S07_SysInit b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S07_SysInit index 7ece30fb3..695b6503f 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S07_SysInit +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S07_SysInit @@ -1,14 +1,72 @@ #!/bin/sh +KERVER=`cat /proc/version | awk -F'version ' '{print $2}' | awk -F' ' '{print $1}'` + device_node_create() { mknod /dev/$1 c `cat /sys/class/$1/$1/dev | sed "s/:/\ /g"` } +P_GPIO0=32 +P_GPIO1=33 +DELAY=0.003 + +echo ${P_GPIO0} > /sys/class/gpio/export +echo ${P_GPIO1} > /sys/class/gpio/export + +sleep ${DELAY} + +echo "out" > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/direction +echo "out" > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/direction + +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value + +sleep ${DELAY} + +echo "insert adc ko" +mem bit 0xF0020074 3 0 +insmod /lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko +insmod /lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko +mem bit 0xF0020074 3 1 + # Setup mdev echo "fs" > /proc/nvt_info/bootts echo "/sbin/mdev" > /proc/sys/kernel/hotplug #modprobe mmc_na51055 + +if [ 1 ] ; then + +sleep ${DELAY} + +echo 0x5 > /proc/adc +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw +echo 0x3 > /proc/adc +sleep ${DELAY} + +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value +sleep ${DELAY} +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw +echo 0x1 > /proc/adc +sleep ${DELAY} + +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value +sleep ${DELAY} +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw +echo 0x0 > /proc/adc +sleep ${DELAY} + +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value +sleep ${DELAY} +echo 0x2 > /proc/adc +sleep ${DELAY} +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw + +fi + mdev -s # Scan for without insert card diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S10_SysInit2 b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S10_SysInit2 index f2bdc2ac1..b0fd48c7d 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S10_SysInit2 +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/init.d/S10_SysInit2 @@ -132,13 +132,13 @@ fi #iio & adc (for keyscan) -if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko ]]; then -insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko -fi +#if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko ]]; then +#insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko +#fi -if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko ]]; then -insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko -fi +#if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko ]]; then +#insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko +#fi #usb #if [[ -f ${PREFIX}/lib/modules/$KERVER/hdal/comm/uvcp/nvt_uvcp.ko ]]; then From e99fad6ff15f02b6a8303b6909717429db2589d0 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 15:14:42 +0800 Subject: [PATCH 20/41] =?UTF-8?q?1.adc=E6=9B=B4=E6=AD=A3=E7=94=B5=E6=B1=A0?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BF=AE=E6=94=B9=EF=BC=9B2.s550=20rtoofs?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../init.d/S07_SysInit | 58 +++++++++++++++++++ .../init.d/S10_SysInit2 | 12 ++-- .../sf_app/code/source/battery/sf_battery.c | 26 ++++++--- 3 files changed, 83 insertions(+), 13 deletions(-) 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 7ece30fb3..695b6503f 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 @@ -1,14 +1,72 @@ #!/bin/sh +KERVER=`cat /proc/version | awk -F'version ' '{print $2}' | awk -F' ' '{print $1}'` + device_node_create() { mknod /dev/$1 c `cat /sys/class/$1/$1/dev | sed "s/:/\ /g"` } +P_GPIO0=32 +P_GPIO1=33 +DELAY=0.003 + +echo ${P_GPIO0} > /sys/class/gpio/export +echo ${P_GPIO1} > /sys/class/gpio/export + +sleep ${DELAY} + +echo "out" > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/direction +echo "out" > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/direction + +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value + +sleep ${DELAY} + +echo "insert adc ko" +mem bit 0xF0020074 3 0 +insmod /lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko +insmod /lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko +mem bit 0xF0020074 3 1 + # Setup mdev echo "fs" > /proc/nvt_info/bootts echo "/sbin/mdev" > /proc/sys/kernel/hotplug #modprobe mmc_na51055 + +if [ 1 ] ; then + +sleep ${DELAY} + +echo 0x5 > /proc/adc +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw +echo 0x3 > /proc/adc +sleep ${DELAY} + +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value +sleep ${DELAY} +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw +echo 0x1 > /proc/adc +sleep ${DELAY} + +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value +sleep ${DELAY} +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw +echo 0x0 > /proc/adc +sleep ${DELAY} + +echo 0 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO0}/value +echo 1 > /sys/devices/gpiochip0/gpio/gpio${P_GPIO1}/value +sleep ${DELAY} +echo 0x2 > /proc/adc +sleep ${DELAY} +cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw + +fi + mdev -s # Scan for without insert card diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 index f2bdc2ac1..b0fd48c7d 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 @@ -132,13 +132,13 @@ fi #iio & adc (for keyscan) -if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko ]]; then -insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko -fi +#if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko ]]; then +#insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/industrialio.ko +#fi -if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko ]]; then -insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko -fi +#if [[ -f ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko ]]; then +#insmod ${PREFIX}/lib/modules/$KERVER/kernel/drivers/iio/adc/nvt_adc.ko +#fi #usb #if [[ -f ${PREFIX}/lib/modules/$KERVER/hdal/comm/uvcp/nvt_uvcp.ko ]]; then 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 9ae1ae00f..25787d683 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 @@ -106,7 +106,8 @@ UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UI //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; if(adcVal) { - volt = (27 * adcVal + 554) / 539; + //volt = (27 * adcVal + 554) / 539; + volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; } return volt; } @@ -131,7 +132,8 @@ UINT32 sf_aa_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, //volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 511; if(adcVal) { - volt = (27 * adcVal + 3097) / 531; + volt = 27 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 2696; + //volt = (27 * adcVal + 3097) / 531; } return volt; } @@ -144,7 +146,8 @@ UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UIN //adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); if(volt) { - adcVal = (volt * 539 - 554) / 27; + //adcVal = (volt * 539 - 554) / 27; + adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); } return adcVal; } @@ -157,7 +160,8 @@ UINT32 sf_aa_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, //adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); if(volt) { - adcVal = (volt * 531 - 3097) / 27; + //adcVal = (volt * 531 - 3097) / 27; + adcVal = volt * resistanceGnd * 2696 / 27 / (resistanceGnd + resistanceVin); } return adcVal; } @@ -208,6 +212,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval) { static UINT8 getAdcFlg = 0; //static UINT8 outputflag = 1; + UINT32 adc_device_delay_time_ms = 100; *pval = 0; if(getAdcFlg) @@ -222,6 +227,8 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval) //B:0 A:0 gpio_set_value(SF_ADC_MUXA, 0);//adc_muxa gpio_set_value(SF_ADC_MUXB, 0);//adc_muxb + vos_util_delay_ms(1); + *pval = adc_readVoltage_channel0_avg(0, adc_device_delay_time_ms); } else if(SF_ADC_LI == mux)//v-li_det { @@ -229,23 +236,28 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval) gpio_set_value(SF_ADC_MUXA, 1);//adc_muxa gpio_set_value(SF_ADC_MUXB, 0);//adc_muxb + vos_util_delay_ms(1); + *pval = adc_readVoltage_channel0_avg(1, adc_device_delay_time_ms); } else if(SF_ADC_DC == mux)//dc12_det { //B:1 A:0 gpio_set_value(SF_ADC_MUXA, 0);//adc_muxa gpio_set_value(SF_ADC_MUXB, 1);//adc_muxb + adc_readVoltage_channel0_avg(2, adc_device_delay_time_ms); + + vos_util_delay_ms(1); + *pval = adc_readVoltage(0); } else if(SF_ADC_TEMP == mux)//temp_det { //B:1 A:1 gpio_set_value(SF_ADC_MUXA, 1);//adc_muxa gpio_set_value(SF_ADC_MUXB, 1);//adc_muxb + vos_util_delay_ms(1); + *pval = adc_readVoltage_channel0_avg(3, adc_device_delay_time_ms); } - vos_util_delay_ms(1); - - *pval = adc_readVoltage(0); //*pval = adc_readData(0); //printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval); getAdcFlg = 0; From 35aa37ab609c12385914af5bf64b63c31f8c217a Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 18:25:49 +0800 Subject: [PATCH 21/41] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0WiFi=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/SysMain_cmd.c | 1 + .../UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h | 2 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c | 1 + .../source/sf_app/code/source/app/sf_app.c | 10 +++++-- .../lib/source/sifar/code/include/sf_common.h | 2 ++ .../sifar/code/source/common/sf_common.c | 26 +++++++++++++++++++ 6 files changed, 39 insertions(+), 3 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c index c18ceac47..ef5e621a0 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c @@ -262,6 +262,7 @@ SXCMD_ITEM("sf_sw_esim %", sf_cmd_switch_esim, "sf_switch_esim") SXCMD_ITEM("gprssw %", sf_cmd_gprs_switch, "gprssw 0/1") 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") #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index 3da7b5018..ac2fbe2c4 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -263,7 +263,7 @@ #define DEFAULT_MULTISHOT_INTEVEL SF_MULTISHOT_INTEVEL_1S #define DEFAULT_PIC_UP_DAILY_REPORT SF_OFF #define DEFAULT_BLU_SWITCH SF_ON - +#define DEFAULT_WIFI_SWITCH SF_ON #define SIFAR_FTP_IP "119.23.174.139" #define SIFAR_FTP_PORT "21" #define SIFAR_FTP_USERNAME "cameraftp" 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 5aaf1db14..0472d1054 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 @@ -1765,6 +1765,7 @@ void SysResetFlag(void) puiPara->MultiShotIntevel = DEFAULT_MULTISHOT_INTEVEL; puiPara->PicUpDailyReport = DEFAULT_PIC_UP_DAILY_REPORT; puiPara->BluSwitch = DEFAULT_BLU_SWITCH; + puiPara->WifiSwitch = DEFAULT_WIFI_SWITCH; if(puiPara->ModuleImei[0] != '\0') { puiPara->DailyReportTime.Hour = ((UINT16)(puiPara->ModuleImei[11]-48)*10+(puiPara->ModuleImei[12]-48))%12; 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 57c889bd6..3e029dd7b 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,8 +157,14 @@ int main(int argc, char *argv[]) #if SF_IQ_TEST != ENABLE if(SF_MCU_STARTUP_ONKEY == startup) { - sf_set_wifi_en(1); - sf_set_bt_en(1); + if(puiPara->WifiSwitch) + { + sf_set_wifi_en(1); + } + if(puiPara->BluSwitch) + { + sf_set_bt_en(1); + } } if((0 == isUpdate) && (puiPara->GprsSwitch)) { diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index ea9c418dd..4b153e3ee 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -156,4 +156,6 @@ BOOL sf_ota_trigger(void); BOOL sf_ota_result(void); SF_BLE_STATUS_E sf_get_ble_status(void); void sf_set_ble_status(SF_BLE_STATUS_E enStatus); +BOOL cmd_wifi_switch(unsigned char argc, char **argv); +void sf_set_msdc_clk(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 28ae345c2..1389bc63e 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -2613,6 +2613,12 @@ void* sf_cardv_wifi_thread(void *arg) UINT32 sf_cardv_wifi_start(void) { SINT32 ret = 1; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(puiPara->WifiSwitch == SF_OFF) + { + SLOGE("WifiSwitch OFF\n"); + return 1; + } if(WifiTskCfg.IsRun) { SLOGE("thread has already run !!!\n"); @@ -3211,6 +3217,19 @@ BOOL cmd_blu_switch(unsigned char argc, char **argv) return TRUE; } +BOOL cmd_wifi_switch(unsigned char argc, char **argv) +{ + UINT32 value; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + sscanf_s(argv[0],"%d", &value); + if(value < SF_ON_OFF_MAX){ + puiPara->WifiSwitch = value; + + Save_MenuInfo(); + } + printf("[%s:%d] WifiSwitch:%d\n", __FUNCTION__, __LINE__,puiPara->WifiSwitch); + return TRUE; +} SF_BLE_STATUS_E sf_get_ble_status(void) { @@ -3228,4 +3247,11 @@ void sf_set_ble_status(SF_BLE_STATUS_E enStatus) SLOGE("Type format error\n"); return; +} + +void sf_set_msdc_clk(void) +{ + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + system("echo 24000000 > /sys/kernel/debug/mmc0/clock"); + printf("[%s:%d] e \n", __FUNCTION__, __LINE__); } \ No newline at end of file From 852c05efabee08212cb0d64b9d032e91b6eae9d9 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 18:26:26 +0800 Subject: [PATCH 22/41] =?UTF-8?q?1.msdc=E6=A8=A1=E5=BC=8F=E6=97=B6?= =?UTF-8?q?=E8=AE=BE=E7=BD=AEsdclk=2024M?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/application/source/cardv/SrcCode/System/SysUsb_Exe.c | 1 + 1 file changed, 1 insertion(+) diff --git a/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c b/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c index 3a47368ad..b69776c6f 100755 --- a/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysUsb_Exe.c @@ -151,6 +151,7 @@ static BOOL System_InsmodUsb(BOOL isHost) if(isHost == FALSE){ #if HUNTING_CAMERA_MCU == ENABLE + sf_set_msdc_clk(); sf_usb_mux_s(0); vos_util_delay_ms(200); #endif From b22fc620b4fb6794a3cba6241c43bb6b7bb82fa2 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 18:27:53 +0800 Subject: [PATCH 23/41] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E9=9F=B3=E7=88=86?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B=E5=BC=80=E5=90=AFanr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/rtos-main.c | 18 +++ .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 9 +- .../cardv/SrcCode/UIApp/MovieFast/MovieFast.h | 103 ++++++++++++++++++ .../source/cardv/rtos-main-hunting_lvgl.lds | 2 + 4 files changed, 131 insertions(+), 1 deletion(-) diff --git a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c index 9a73ff6fd..87e6e336e 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c +++ b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c @@ -109,6 +109,8 @@ extern void DrvGOIO_Turn_Onoff_IRCUT(UINT8 onoff); extern int NvtMain(void); extern void System_OnVideoFastbootInit(void); +extern void eac_set_ad_config(EAC_CONFIG_AD config_id, UINT32 config_value); +extern void eac_set_phypower(BOOL b_en); #if (defined(_NVT_ETHREARCAM_TX_)) && (ETHCAM_EIS == ENABLE) extern int gyro_init(void); #endif @@ -529,6 +531,19 @@ static void insmod_capture(void) nvt_gfx_init(); // gfx nvt_vds_init(); // video srpite kdrv_builtin_set_sie_vd_cb(sie_vd_cb); + #if FIX_RECORD_NOISE == ENABLE + eac_set_ad_config(EAC_CONFIG_AD_MICBIAS_EN, ENABLE); + eac_set_ad_config(EAC_CONFIG_AD_MICBIAS_LVL, TRUE); + + eac_set_ad_config(EAC_CONFIG_AD_POWER_EN_L, TRUE); + eac_set_ad_config(EAC_CONFIG_AD_POWER_EN_R, TRUE); + + eac_set_ad_config(EAC_CONFIG_AD_PDREF_BUF, FALSE); + eac_set_ad_config(EAC_CONFIG_AD_PDREF_BIAS, FALSE); + eac_set_ad_config(EAC_CONFIG_AD_PD_VCMBIAS, FALSE); + + eac_set_phypower(ENABLE); + #endif vos_perf_list_mark("b_cap", __LINE__, 1); } @@ -648,6 +663,9 @@ static void insmod_encoder(void) kdrv_audio_init(); kdrv_audlib_aac_init(); #endif + #if (ANR_FUNC == ENABLE) + kdrv_audlib_anr_init(); // anr + #endif } fastboot_set_done(BOOT_INIT_MEIDA_ENCODER); 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 482c8fe78..cac62c5b1 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -1220,6 +1220,10 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_USE_FILEDB, FALSE); ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_CB_CLOSED_FILE_INFO, TRUE); +#if FIX_RECORD_NOISE == ENABLE + ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC_FUNC_EN, TRUE); + ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, TRUE); +#endif ImageApp_MovieMulti_Open(); for (i = 0; i < SENSOR_CAPS_COUNT; i++) { @@ -1379,7 +1383,10 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) } vos_flag_set(MOVIEFAST_FLG_ID, FLGMOVIEFAST_RECSTART); - +#if FIX_RECORD_NOISE == ENABLE + vos_util_delay_ms(300); + ImageApp_MovieMulti_SetParam(0, MOVIEMULTI_PARAM_AUD_MUTE_ENC, FALSE); +#endif THREAD_RETURN(0); } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.h b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.h index 9eb435b9e..eb48373b0 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.h +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.h @@ -8,9 +8,112 @@ #define FLGMOVIEFAST_MASK FLGPTN_BIT_ALL +#define FIX_RECORD_NOISE ENABLE extern THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg); extern THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg); +typedef enum +{ + EAC_CONFIG_AD_DMIC_EN, ///< Configure AD(Record) Digital Microphone Enable/Disable. + EAC_CONFIG_AD_DMIC_CLK_EN, ///< Configure AD(Record) Digital Microphone Clock Output Enable/Disable. + EAC_CONFIG_AD_DMIC_LRSWAP, ///< Configure AD(Record) Digital Microphone Left/Right Channel Swap. + EAC_CONFIG_AD_DMIC2_LRSWAP, ///< Configure AD(Record) Digital Microphone2 Left/Right Channel Swap. + EAC_CONFIG_AD_ALC_MODE_DGAIN, ///< Configure AD(Record) Auto Level Control Using Ditial Gain only. + EAC_CONFIG_AD_DMIC_PATH_MUX, ///< Configure AD(Record) Digital Microphone decimation filter mux. + EAC_CONFIG_AD_DMIC_CHANNEL, ///< Configure AD(Record) Digital Microphone channel number 0x0/0x1 for 2/4ch. + ///< This is used for the Digital Microphone. + + EAC_CONFIG_AD_DCCAN_EN, ///< Configure AD(Record) DC Cancellation Enable/Disable. + EAC_CONFIG_AD_DCCAN_TYPE, ///< Configure AD(Record) DC Cancellation Selection Options. Please use EAC_DCCAN_TYPE as input parameter. + EAC_CONFIG_AD_DCCAN_RESO, ///< Configure AD(Record) DC Cancellation Resolution. Please use EAC_DCCAN_RESO as input parameter. + EAC_CONFIG_AD_DCINIT_L, ///< Configure AD(Record) DC Cancellation Left Channel Inital Value. This value is used by EAC_CONFIG_AD_DCCAN_TYPE. + EAC_CONFIG_AD_DCINIT_R, ///< Configure AD(Record) DC Cancellation Right Channel Inital Value. This value is used by EAC_CONFIG_AD_DCCAN_TYPE. + EAC_CONFIG_AD_DMIC2_DCINIT_L, ///< Configure AD(Record) DC Cancellation Left Channel Inital Value. This value is used by EAC_CONFIG_AD_DCCAN_TYPE.(dmic2) + EAC_CONFIG_AD_DMIC2_DCINIT_R, ///< Configure AD(Record) DC Cancellation Right Channel Inital Value. This value is used by EAC_CONFIG_AD_DCCAN_TYPE.(dmic2) + EAC_CONFIG_AD_DGAIN1_L, ///< Configure AD(Record) Digital Gain 1 for Left channel. Value range 0x1~0xFF which mapping to -57.0dB ~ +70.0dB(+0.5dB each step). Value 0x0 is mute. + EAC_CONFIG_AD_DGAIN1_R, ///< Configure AD(Record) Digital Gain 1 for Right channel. Value range 0x1~0xFF which mapping to -57.0dB ~ +70.0dB(+0.5dB each step). Value 0x0 is mute. + EAC_CONFIG_AD_DGAIN2_L, ///< Configure AD(Record) Digital Gain 2 for Left channel. Value range 0x1~0xFF which mapping to -97.0dB ~ +30.0dB(+0.5dB each step). Value 0x0 is mute. + EAC_CONFIG_AD_DGAIN2_R, ///< Configure AD(Record) Digital Gain 2 for Right channel. Value range 0x1~0xFF which mapping to -97.0dB ~ +30.0dB(+0.5dB each step). Value 0x0 is mute. + EAC_CONFIG_AD_DMIC2_DGAIN_L, ///< Configure AD(Record) Digital Gain 1 for dmic2 Left channel. Value range 0x1~0xFF which mapping to -57.0dB ~ +70.0dB(+0.5dB each step). Value 0x0 is mute. + EAC_CONFIG_AD_DMIC2_DGAIN_R, ///< Configure AD(Record) Digital Gain 1 for dmic2 Right channel. Value range 0x1~0xFF which mapping to -57.0dB ~ +70.0dB(+0.5dB each step). Value 0x0 is mute. + + + EAC_CONFIG_AD_ALC_EN, ///< Configure AD(Record) Auto Level Control (ALC) Enable/Disable. + EAC_CONFIG_AD_ALC_TARGET_L, ///< Configure AD(Record) Auto Level Control (ALC) Target Level for Left Channel. Use the enumeration "EAC_ALC_TARGET" as input parameter. + EAC_CONFIG_AD_ALC_TARGET_R, ///< Configure AD(Record) Auto Level Control (ALC) Target Level for Right Channel. Use the enumeration "EAC_ALC_TARGET" as input parameter. + + EAC_CONFIG_AD_ALC_MAXGAIN_L, ///< Configure AD(Record) Auto Level Control (ALC) PGA Max Gain for Left Channel. Use the enumeration "EAC_ALC_MAXGAIN" as input parameter. + EAC_CONFIG_AD_ALC_MAXGAIN_R, ///< Configure AD(Record) Auto Level Control (ALC) PGA Max Gain for Right Channel. Use the enumeration "EAC_ALC_MAXGAIN" as input parameter. + + EAC_CONFIG_AD_ALC_MINGAIN_L, ///< Configure AD(Record) Auto Level Control (ALC) PGA Max Gain for Left Channel. Use the enumeration "EAC_ALC_MINGAIN" as input parameter. + EAC_CONFIG_AD_ALC_MINGAIN_R, ///< Configure AD(Record) Auto Level Control (ALC) PGA Max Gain for Right Channel. Use the enumeration "EAC_ALC_MINGAIN" as input parameter. + + EAC_CONFIG_AD_ALC_ATTACK_TIME, ///< Configure AD(Record) Auto Level Control (ALC) Attack Time. Time length would be "(2 ^ uiCfgValue) x ALC_Time_Resolution_Basis". Default value is 0x2. + ///< This setting is also valid in the noise gate state. If the user want to keep the same attack time above noise gate threshold but larger the attack time below noise gate threshold, + ///< the user must increase time resolution of NoiseGate and shorten the time resolution of ALC. + EAC_CONFIG_AD_ALC_DECAY_TIME, ///< Configure AD(Record) Auto Level Control (ALC) Decay Time. Time length would be "(2 ^ uiCfgValue) x ALC_Time_Resolution_Basis". Default value is 0x3. + ///< This setting is also valid in the noise gate state. If the user want to keep the same decay time above noise gate threshold but larger the decay time below noise gate threshold, + ///< the user must increase time resolution of NoiseGate and shorten the time resolution of ALC. + EAC_CONFIG_AD_ALC_HOLD_TIME, ///< Configure AD(Record) Auto Level Control (ALC) HOLD Time. Time length would be "(2 ^ (uiCfgValue-1)) x 117" samples. uiCfgValue 0x0 is 1 sample. Default value is 0x0. + ///< This setting is also valid in the noise gate state. If the user want to keep the same hold time above noise gate threshold but larger the hold time below noise gate threshold, + ///< the user must increase time resolution of NoiseGate and shorten the time resolution of ALC. + + EAC_CONFIG_AD_NG_ATTACK_TIME, ///< Configure AD(Record) Auto Level Control (ALC) Attack Time. Time length would be "(2 ^ uiCfgValue) x ALC_Time_Resolution_Basis". Default value is 0x2. + ///< This setting is also valid in the noise gate state. If the user want to keep the same attack time above noise gate threshold but larger the attack time below noise gate threshold, + ///< the user must increase time resolution of NoiseGate and shorten the time resolution of ALC. + EAC_CONFIG_AD_NG_DECAY_TIME, ///< Configure AD(Record) Auto Level Control (ALC) Decay Time. Time length would be "(2 ^ uiCfgValue) x ALC_Time_Resolution_Basis". Default value is 0x3. + ///< This setting is also valid in the noise gate state. If the user want to keep the same decay time above noise gate threshold but larger the decay time below noise gate threshold, + ///< the user must increase time resolution of NoiseGate and shorten the time resolution of ALC. + EAC_CONFIG_AD_NG_HOLD_TIME, ///< Configure AD(Record) Auto Level Control (ALC) HOLD Time. Time length would be "(2 ^ (uiCfgValue-1)) x 117" samples. uiCfgValue 0x0 is 1 sample. Default value is 0x0. + ///< This setting is also valid in the noise gate state. If the user want to keep the same hold time above noise gate threshold but larger the hold time below noise gate threshold, + ///< the user must increase time resolution of NoiseGate and shorten the time resolution of ALC. + + EAC_CONFIG_AD_ALC_STEP, ///< Configure AD(Record) Auto Level Control (ALC) Step value. This value would constraint the ALC controllable PGA gain changement max value in eack zero crossing. value is "0.5+(1.5 x uiCfgValue)" dB. + EAC_CONFIG_AD_ALC_TRESO, ///< Configure AD(Record) Auto Level Control (ALC) Time Resolution Basis during Attack/Decay time calculation. + ///< Please use "EAC_ALC_TRESO_BASIS" as input parameter. The default value is 15ms. + EAC_CONFIG_AD_ALC_NG_EN, ///< Configure AD(Record) Auto Level Control (ALC) Noise Gate Enable/Disable. + + EAC_CONFIG_AD_ALC_NG_THD_L, ///< Configure AD(Record) Auto Level Control (ALC) Noise Gate Threshold value for left channel. Please use the enumeration "EAC_NG_THRESHOLD" as input parameter. + EAC_CONFIG_AD_ALC_NG_THD_R, ///< Configure AD(Record) Auto Level Control (ALC) Noise Gate Threshold value for right channel. Please use the enumeration "EAC_NG_THRESHOLD" as input parameter. + + EAC_CONFIG_AD_ALC_NG_TARGET_L, ///< Configure AD(Record) Auto Level Control (ALC) Noise Gate Target Level for left channel. Value range 0~15 which the Noise Gate target dB would be (ALC_TARGET - (NG_THD - INPUT_SIGNAL_LEVEL)*uiCfgValue). + EAC_CONFIG_AD_ALC_NG_TARGET_R, ///< Configure AD(Record) Auto Level Control (ALC) Noise Gate Target Level for right channel. Value range 0~15 which the Noise Gate target dB would be (ALC_TARGET - (NG_THD - INPUT_SIGNAL_LEVEL)*uiCfgValue). + + EAC_CONFIG_AD_ALC_NG_TRESO, ///< Configure AD(Record) Auto Level Control (ALC) Noise Gate Time Resolution Basis during Attack/Decay time calculation inside Noise Gate state. + ///< Please use "EAC_ALC_TRESO_BASIS" as input parameter. The default value is 15ms. + EAC_CONFIG_AD_BOOST_COMPEN_L, ///< Configure AD(Record) Boost Gain Digital Compensation for left channel in ALC loop. please use EAC_ALC_BOOST_COMPEN as input parameter. + EAC_CONFIG_AD_BOOST_COMPEN_R, ///< Configure AD(Record) Boost Gain Digital Compensation for right channel in ALC loop. please use EAC_ALC_BOOST_COMPEN as input parameter. + EAC_CONFIG_AD_IIR_ALC_L, ///< Configure AD(Record) Enable/Disable the IIR function to the Auto Level Control (ALC) Left Channel Input. + EAC_CONFIG_AD_IIR_ALC_R, ///< Configure AD(Record) Enable/Disable the IIR function to the Auto Level Control (ALC) Right Channel Input. + EAC_CONFIG_AD_IIR_OUT_L, ///< Configure AD(Record) Enable/Disable the IIR function to the Recorded Left Channel output Samples. + EAC_CONFIG_AD_IIR_OUT_R, ///< Configure AD(Record) Enable/Disable the IIR function to the Recorded Right Channel output Samples. + EAC_CONFIG_AD_IIR2_OUT_L, ///< Configure AD(Record) Enable/Disable the IIR function to the Recorded Left Channel output Samples.(dmic2) + EAC_CONFIG_AD_IIR2_OUT_R, ///< Configure AD(Record) Enable/Disable the IIR function to the Recorded Right Channel output Samples.(dmic2) + + EAC_CONFIG_AD_PGAGAIN_L, ///< Configure AD(Record) Analog PGA Gain for Left channel if ALC disabled. Please use the enumeration "EAC_AD_PGAGAIN" as input parameter. + EAC_CONFIG_AD_PGAGAIN_R, ///< Configure AD(Record) Analog PGA Gain for Right channel if ALC disabled. Please use the enumeration "EAC_AD_PGAGAIN" as input parameter. + + EAC_CONFIG_AD_PGABOOST_L, ///< Configure AD(Record) Analog Boost Gain for left channel. Please use EAC_PGABOOST_SEL as input parameter. + EAC_CONFIG_AD_PGABOOST_R, ///< Configure AD(Record) Analog Boost Gain for right channel. Please use EAC_PGABOOST_SEL as input parameter. + + EAC_CONFIG_AD_POWER_EN_L, ///< Configure AD(Record) Analog Power Enable of the Left channel. Use TRUE/FALSE as input parameter to set Enable/Disable power. + EAC_CONFIG_AD_POWER_EN_R, ///< Configure AD(Record) Analog Power Enable of the Right channel. Use TRUE/FALSE as input parameter to set Enable/Disable power. + EAC_CONFIG_AD_RESET, ///< Configure AD(Record) Analog Block Reset. Set TRUE/FALSE to Enable/Disable the analog block reset operation. + EAC_CONFIG_AD_PDREF_BUF, ///< Configure AD(Record) Analog Block Reference Buffer Power Down. + EAC_CONFIG_AD_PDREF_BIAS, ///< Configure AD(Record) Analog Block Reference Bias Power Down. + EAC_CONFIG_AD_PD_VCMBIAS, ///< Configure AD(Record) Analog Block Vcm Power Down. + + EAC_CONFIG_AD_MICBIAS_EN, ///< Configure AD(Record) Analog Block MIC Bias Enable/Disable. + EAC_CONFIG_AD_MICBIAS_LVL, ///< Configure AD(Record) Analog Block MIC Bias Level 2V/2.4V. + EAC_CONFIG_AD_DCOFS_L, ///< Get AD(Record) DC Cancellation Left Channel Offset Value. + EAC_CONFIG_AD_DCOFS_R, ///< Get AD(Record) DC Cancellation Right Channel Offset Value. + EAC_CONFIG_AD_DMIC2_DCOFS_L, ///< Get AD(Record) DC Cancellation Left Channel Offset Value.(dmic2) + EAC_CONFIG_AD_DMIC2_DCOFS_R, ///< Get AD(Record) DC Cancellation Right Channel Offset Value.(dmic2) + EAC_CONFIG_AD_ZC_EN, ///< Get AD(Record) Zero Crossing Function Enable/Disable. + EAC_CONFIG_AD_ZC_TIMEOUT, ///< Get AD(Record) Zero Crossing Function Timeout Value. + + ENUM_DUMMY4WORD(EAC_CONFIG_AD) +} EAC_CONFIG_AD; #endif //_UIAPP_PHOTO_H_ diff --git a/rtos/code/application/source/cardv/rtos-main-hunting_lvgl.lds b/rtos/code/application/source/cardv/rtos-main-hunting_lvgl.lds index 29b71bae3..21a8a5c8d 100755 --- a/rtos/code/application/source/cardv/rtos-main-hunting_lvgl.lds +++ b/rtos/code/application/source/cardv/rtos-main-hunting_lvgl.lds @@ -513,3 +513,5 @@ EXTERN("dai_disableclk") EXTERN("aud_open") EXTERN("h264Enc_queryMemSize") EXTERN("aud_set_default_setting") +EXTERN("eac_set_ad_config") +EXTERN("eac_set_phypower") From 1b3cedf21bdedb9d7d9b0deea7e91d6467c567d0 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 18:28:12 +0800 Subject: [PATCH 24/41] =?UTF-8?q?1.WiFi=20cmd=E5=88=AB=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/profile | 1 + 1 file changed, 1 insertion(+) diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/profile b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/profile index 19f1c6fae..b8df702a7 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/profile +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/profile @@ -82,3 +82,4 @@ alias stampsw='cardv sys stampsw' alias gprssw='cardv sys gprssw' alias multiintevel='cardv sys multiintevel' alias blusw='cardv sys blusw' +alias wifisw='cardv sys wifisw' From 68eced2e23686989e03206dd590030de1dbcd4a4 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 19:27:35 +0800 Subject: [PATCH 25/41] =?UTF-8?q?1.wifi=E5=8A=A0=E8=BD=BD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/SysMain_Exe.c | 1 + .../sifar/code/source/common/sf_common.c | 64 +++++++++---------- .../UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h | 2 +- .../UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c | 3 +- 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index 6ec76d4bf..936988d03 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -244,6 +244,7 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) #if HUNTING_CAMERA_MCU == ENABLE sf_cardv_para_check_start(); + sf_cardv_wifi_start(); #endif #if (UCTRL_FUNC) 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 1389bc63e..523cd3212 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -1601,7 +1601,7 @@ static const SF_CHAR* sf_process_message_getstatusstring(SF_MESSAGE_TYPE_E enTyp } static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) { - static UINT8 wifistart = 0; + // static UINT8 wifistart = 0; UINT8 powerOnMode = 0; //printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1); @@ -1624,19 +1624,19 @@ static SINT32 sf_cardv_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) sf_set_mcu_ver(pMessageBuf->arg3); MLOGI("%d.%d.%d\n",(pMessageBuf->arg3>>4)&0x0F, pMessageBuf->arg3 & 0x0F, pMessageBuf->arg2); - if((0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (0 == wifistart)) - { - wifistart = 1; - GOIO_Turn_Onoff_IRCUT(1); - /*wifi init*/ - //stMessageBuf.arg1 = SF_WIFI_CMD_START; - //stMessageBuf.cmdId = CMD_WIFI; - //sf_com_message_send_to_cardv(&stMessageBuf); - sf_cardv_wifi_start(); - //Ux_SendEvent(0, NVTEVT_EXE_WIFI_START, 0); - //sleep(2); - //sf_apinfo_thread_init(); - } + // if((0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (0 == wifistart)) + // { + // wifistart = 1; + // GOIO_Turn_Onoff_IRCUT(1); + // /*wifi init*/ + // //stMessageBuf.arg1 = SF_WIFI_CMD_START; + // //stMessageBuf.cmdId = CMD_WIFI; + // //sf_com_message_send_to_cardv(&stMessageBuf); + // sf_cardv_wifi_start(); + // //Ux_SendEvent(0, NVTEVT_EXE_WIFI_START, 0); + // //sleep(2); + // //sf_apinfo_thread_init(); + // } break; case SF_MCU_CMD_MCU_RTC: @@ -2614,25 +2614,25 @@ UINT32 sf_cardv_wifi_start(void) { SINT32 ret = 1; UIMenuStoreInfo *puiPara = sf_ui_para_get(); - if(puiPara->WifiSwitch == SF_OFF) - { - SLOGE("WifiSwitch OFF\n"); - return 1; - } - if(WifiTskCfg.IsRun) - { - SLOGE("thread has already run !!!\n"); - return 1; - } - ret = pthread_create(&WifiTskCfg.TskId, NULL, sf_cardv_wifi_thread, NULL); - if(ret != SF_SUCCESS) - { - MLOGD("thread creat fail!\n"); - return ret; - } - WifiTskCfg.IsRun = 1; - return SF_SUCCESS; + if((0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (puiPara->WifiSwitch)) + { + if(WifiTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return 1; + } + ret = pthread_create(&WifiTskCfg.TskId, NULL, sf_cardv_wifi_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + WifiTskCfg.IsRun = 1; + return SF_SUCCESS; + } + SLOGE("WifiSwitch OFF\n"); + return 1; } BOOL sf_cmd_disp_para_set(unsigned char argc, char **argv) diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index 3da7b5018..ac2fbe2c4 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -263,7 +263,7 @@ #define DEFAULT_MULTISHOT_INTEVEL SF_MULTISHOT_INTEVEL_1S #define DEFAULT_PIC_UP_DAILY_REPORT SF_OFF #define DEFAULT_BLU_SWITCH SF_ON - +#define DEFAULT_WIFI_SWITCH SF_ON #define SIFAR_FTP_IP "119.23.174.139" #define SIFAR_FTP_PORT "21" #define SIFAR_FTP_USERNAME "cameraftp" diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index 8b90a840c..65fc80048 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -1177,7 +1177,8 @@ void SysResetFlag(void) puiPara->MultiShotIntevel = DEFAULT_MULTISHOT_INTEVEL; puiPara->PicUpDailyReport = DEFAULT_PIC_UP_DAILY_REPORT; puiPara->BluSwitch = DEFAULT_BLU_SWITCH; - + puiPara->WifiSwitch = DEFAULT_WIFI_SWITCH; + if(puiPara->ModuleImei[0] != '\0') { puiPara->DailyReportTime.Hour = ((UINT16)(puiPara->ModuleImei[11]-48)*10+(puiPara->ModuleImei[12]-48))%12; From 2bd7c83247a02d871be285f8af47a4676404b6b4 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 19:28:02 +0800 Subject: [PATCH 26/41] =?UTF-8?q?1.=E8=BF=9E=E6=8B=8D=E6=BC=8F=E5=9B=BE?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) 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 490b28d06..e407ee9fa 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -1149,7 +1149,7 @@ static void PhotoFast_CaptureStop(void) PhotoFast_Sliceencode2_Stop(); } -static void PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame) +static INT32 PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame) { HD_PATH_ID vprc_path; @@ -1177,7 +1177,7 @@ static void PhotoFast_CaptureStart(HD_VIDEO_FRAME *p_video_frame) } #if POWERON_FAST_SLICE_ENC_VER2 == ENABLE - PhotoFast_Sliceencode2_Enq_Frame(p_video_frame); + return PhotoFast_Sliceencode2_Enq_Frame(p_video_frame); #else PhotoFast_SliceEncode(vprc_path, p_video_frame); #endif @@ -1719,8 +1719,14 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg) sf_ir_led_set(0, 0, 0, 0); } #endif - - PhotoFast_CaptureStart(&video_frame); + + if(PhotoFast_CaptureStart(&video_frame) == E_OK){ + g_u32PrvCapCnt++; + } + else{ + DBG_WRN("enq frame failed...\n"); + } + if (g_u32PrvCapCnt >= max_cnt) { g_bPreViewPullFlag = FALSE; } From 91c720aecadad8f1c521d09975da9c8eaf83af43 Mon Sep 17 00:00:00 2001 From: payton Date: Mon, 6 Nov 2023 19:28:55 +0800 Subject: [PATCH 27/41] =?UTF-8?q?1.Linux=E4=B8=8BANR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../init.d/S10_SysInit2 | 2 ++ .../source/cardv/SrcCode/PrjCfg_HUNTING_S550.h | 4 ++++ .../source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c | 11 +++++++++++ 3 files changed, 17 insertions(+) diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 index b0fd48c7d..cf7ced486 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S550/init.d/S10_SysInit2 @@ -99,6 +99,8 @@ insmod ${PREFIX}/lib/modules/$KERVER/hdal/kflow_audiocapture/unit/kflow_audiocap insmod ${PREFIX}/lib/modules/$KERVER/hdal/kflow_audioout/unit/kflow_audioout.ko fi +insmod /lib/modules/$KERVER/hdal/kdrv_audioio/audlib_anr/nvt_audlib_anr.ko + insmod ${PREFIX}/lib/modules/$KERVER/hdal/kdrv_audioio/audlib_aac/nvt_audlib_aac.ko # isf audenc diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h index cfc8c2c09..7d8362be1 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S550.h @@ -970,6 +970,10 @@ #define SF_CAM_UP_FILE_PATH "/mnt/sd/S530.tar.bz2" #define SF_CAMERA_GPS_INFO_FILENAME SF_SD_ROOT"/gps.txt" #define SF_UBOOT_UPDATA_FW ENABLE + +#ifndef ANR_FUNC +#define ANR_FUNC ENABLE +#endif //////////////////////sf end/////////////////////////////// /******************************************************************************************* diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 64abde4a1..36ec7ca25 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -2132,6 +2132,17 @@ INT32 MovieExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_CB_CLOSED_FILE_INFO, TRUE); #endif +#if (ANR_FUNC == ENABLE) + HD_AUDIOCAP_ANR audio_cfg_param = {0}; + + // set audio ANR function parameter + audio_cfg_param.enabled = TRUE; + audio_cfg_param.suppress_level = 13; + audio_cfg_param.hpf_cut_off_freq = 200; + audio_cfg_param.bias_sensitive = 9; + + ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_AUD_ACAP_ANR, (UINT32)&audio_cfg_param); +#endif ImageApp_MovieMulti_Open(); #if 0 From f9c10199f183690f028a3bc84e15d25171c4eecf Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 10:10:44 +0800 Subject: [PATCH 28/41] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E8=BF=9E=E6=8B=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 e407ee9fa..b2be865dd 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -1712,7 +1712,7 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg) case DX_HUNTING_MODE_PHOTO_MOVIE: if (start_cap == TRUE) { - g_u32PrvCapCnt++; + // g_u32PrvCapCnt++; #if HUNTING_CAMERA_MCU == ENABLE if(sf_is_night_mode(0) ==TRUE){ //DrvGPIO_IRLed_Turn_Onoff(0); @@ -1726,7 +1726,7 @@ THREAD_RETTYPE PhotoFast_FlowPreviewThread(void *arg) else{ DBG_WRN("enq frame failed...\n"); } - + if (g_u32PrvCapCnt >= max_cnt) { g_bPreViewPullFlag = FALSE; } From 5bdad7bb694aea2466c650fcca1110be1d1cf1e4 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 15:26:22 +0800 Subject: [PATCH 29/41] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8DB=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E5=90=8E=E5=8D=A1=E5=BC=82=E5=B8=B8=E5=AF=BC=E8=87=B4=E5=8D=A1?= =?UTF-8?q?=E6=9C=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/application/source/sf_app/code/source/app/sf_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 44933b66e..51149abd7 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 @@ -568,7 +568,7 @@ static SINT32 sf_app_process_cmd_SD(SF_MESSAGE_BUF_S *pMessageBuf) break; case CMD_SD_STRG_CB_INSERTED: sf_set_card(1); - sf_sd_status_set(SF_SD_OK); + // sf_sd_status_set(SF_SD_OK); break; case CMD_SD_STRG_CB_REMOVED: sf_set_card(0); From 0c2b323a1c439d4d9afd28a98bc8a9fc65459bbd Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 15:27:24 +0800 Subject: [PATCH 30/41] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8Ddp+=E6=8B=8D=E7=85=A7?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98=EF=BC=9B?= =?UTF-8?q?2.=E8=BF=94=E5=9B=9E=E5=80=BC=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/application/source/sf_app/code/source/app/sf_service.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 77cc2ef4d..d618c3166 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 @@ -1157,6 +1157,7 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) { pCustomerParam->GpsSendFlag = 0; if(pCustomerParam->PicUpDailyReport){ sf_sms_set_pic(1); + sf_sleep_ms(200); SLOGD("GpsSendFlag:%d\n", pCustomerParam->GpsSendFlag); break; } @@ -1306,6 +1307,7 @@ static SINT32 app_Register_Net_Error_return_init(SF_FN_PARAM_S *pfnParam) { } RegisterNetTskParam.IsRun = 0; + sf_4G_status_set(SF_4G_FREE); return SF_SUCCESS; } @@ -1559,7 +1561,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) s32ret = sf_file_send_auto(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_FILE_SEND); break; case SF_MCU_STARTUP_WARNING: @@ -1797,7 +1799,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) pCustomerParam->NeedTimeSyncStartUp = 0; s32ret = sf_file_send_auto(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_FILE_SEND); if (sf_get_pic()) { From 4ea204589484919e8102f13677ea66ff1738211d Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Tue, 7 Nov 2023 15:52:10 +0800 Subject: [PATCH 31/41] Fixed bluetooth status show bug. --- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c | 1 + code/lib/source/sifar/code/source/common/sf_common.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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 00c9a80ee..fedad21bc 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 @@ -520,6 +520,7 @@ static void update_bluetooth(void) // SF_BLE_BUTT, const int EMPTY_IMAGE = 0; SF_BLE_STATUS_E status = sf_get_ble_status(); + // printf(" ============ sf_get_ble_status = %d\n", status); lv_plugin_res_id res[] = { EMPTY_IMAGE, LV_PLUGIN_IMG_ID_SF_BLUETOOTH_UNSUPPORT, 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 2483d3eeb..5743db840 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -95,7 +95,7 @@ static pthread_mutex_t Param_mutexLock; static int shared_condition = 1; static SINT32 WifiSocket = 0; static UINT8 UiparaFlag = 0; -static SF_BLE_STATUS_E BleStatus = SF_BLE_BUTT; +static SF_BLE_STATUS_E BleStatus = SF_BLE_OK; static SF_THREAD_S UpgradeTskParam = { From 39a2adb4cbdfb7457f7b597dddd6563037794421 Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Tue, 7 Nov 2023 16:50:25 +0800 Subject: [PATCH 32/41] Fixed bug about delay setting. --- .../UIFlowMenuCommonItem/MenuGeneral.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c index 23c9972ba..933f6696c 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuGeneral.c @@ -158,6 +158,12 @@ int General_MenuCallback(UINT32 uiMessage, UINT32 uiParam) case IDM_DELAY: { puiPara->PirDelaySwitch = uwOption == 0 ? SF_OFF : SF_ON; + if (SF_OFF == puiPara->PirDelaySwitch) + { + puiPara->PirDelayTime.Hour = 0; + puiPara->PirDelayTime.Min = 0; + puiPara->PirDelayTime.Sec = 15; + } break; } case IDM_OPERATING_TIME: @@ -465,11 +471,11 @@ void show_Delay_page(lv_obj_t* obj) UIMenuStoreInfo *puiPara = sf_ui_para_get(); // if(!puiPara->PirDelaySwitch) - { - puiPara->PirDelayTime.Hour = 0; - puiPara->PirDelayTime.Min = 0; - puiPara->PirDelayTime.Sec = 30; - } + // { + // puiPara->PirDelayTime.Hour = 0; + // puiPara->PirDelayTime.Min = 0; + // puiPara->PirDelayTime.Sec = 30; + // } snprintf(DelayHHBuf, 3, "%02d", puiPara->PirDelayTime.Hour); snprintf(DelayMMBuf, 3, "%02d", puiPara->PirDelayTime.Min); snprintf(DelaySSBuf, 3, "%02d", puiPara->PirDelayTime.Sec); From 2b0116a391916230b699fc96bcd777d978c27090 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 18:09:23 +0800 Subject: [PATCH 33/41] =?UTF-8?q?1.=E4=BC=98=E5=8C=96utc=E5=92=8Cntp?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/source/4gMng/sf_eg91_sim.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 938685b54..958501b15 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 @@ -4661,7 +4661,7 @@ SINT32 sf_get_utc(VOID) printf("[%s:%d] s\n", __FUNCTION__, __LINE__); UIMenuStoreInfo *pPara = sf_app_ui_para_get(); - SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; sf_gsm_para_buff_clear(); @@ -4729,7 +4729,7 @@ SINT32 sf_get_utc(VOID) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); ttyData.cmp = "OK"; - ttyData.len = strlen(gsmPara) + 2; + ttyData.len = 48; } } @@ -4797,7 +4797,7 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time) printf("[%s:%d] s\n", __FUNCTION__, __LINE__); UIMenuStoreInfo *pPara = sf_app_ui_para_get(); - SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; SF_DEBUG("Sim4gApn=%s", pPara->Sim4gApn); sf_gsm_para_buff_clear(); @@ -4840,7 +4840,7 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); eSmsLocation = SMS_SIM_INIT_ATCNTP; calltime = 0; - ttyData.cmp = "OK"; + ttyData.cmp = "+QNTP:"; ttyData.len = strlen(gsmPara) + 2; } else if(strstr((const char *)gsmPara, "ERROR") != NULL) From b04488bb592bfd5916eddcf5318a459eeed41b88 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 18:14:12 +0800 Subject: [PATCH 34/41] =?UTF-8?q?1.Delay=E9=BB=98=E8=AE=A415s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c | 4 ++++ .../cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) 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 0472d1054..7d1dd9404 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 @@ -1680,7 +1680,11 @@ void SysResetFlag(void) puiPara->VideoLenth = DEFAULT_VIDEO_LENTH; puiPara->PirSwitch = DEFAULT_PIR_SWITCH; puiPara->PirSensitivity = DEFAULT_PIR_SENSITIVITY; + puiPara->PirDelaySwitch = DEFAULT_PIR_DELAY_SWITCH; + puiPara->PirDelayTime.Hour = 0; + puiPara->PirDelayTime.Min = 0; + puiPara->PirDelayTime.Sec = 15; puiPara->TimelapseSwitch = DEFAULT_TIMELAPSE_SWITCH; if(puiPara->TimelapseSwitch) diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index 65fc80048..6dd940e2e 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -1092,8 +1092,12 @@ void SysResetFlag(void) puiPara->VideoLenth = DEFAULT_VIDEO_LENTH; puiPara->PirSwitch = DEFAULT_PIR_SWITCH; puiPara->PirSensitivity = DEFAULT_PIR_SENSITIVITY; + puiPara->PirDelaySwitch = DEFAULT_PIR_DELAY_SWITCH; - + puiPara->PirDelayTime.Hour = 0; + puiPara->PirDelayTime.Min = 0; + puiPara->PirDelayTime.Sec = 15; + puiPara->TimelapseSwitch = DEFAULT_TIMELAPSE_SWITCH; if(puiPara->TimelapseSwitch) { @@ -1178,7 +1182,7 @@ void SysResetFlag(void) puiPara->PicUpDailyReport = DEFAULT_PIC_UP_DAILY_REPORT; puiPara->BluSwitch = DEFAULT_BLU_SWITCH; puiPara->WifiSwitch = DEFAULT_WIFI_SWITCH; - + if(puiPara->ModuleImei[0] != '\0') { puiPara->DailyReportTime.Hour = ((UINT16)(puiPara->ModuleImei[11]-48)*10+(puiPara->ModuleImei[12]-48))%12; From 7148a60b5d20658c6f78ef7c97674d10f3610af9 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 20:49:37 +0800 Subject: [PATCH 35/41] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E7=BC=A9=E7=95=A5?= =?UTF-8?q?=E5=9B=BE=E6=B0=B4=E5=8D=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 73 ++++++++++--------- .../cardv/SrcCode/UIApp/Photo/UIDateImprint.c | 29 ++++---- 2 files changed, 53 insertions(+), 49 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index e2ab80886..afddacc76 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -2866,12 +2866,14 @@ INT32 PhotoExe_OnEV(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) INT32 PhotoExe_OnCaptureSize(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) { UINT32 uhSelect = 0; - DBG_IND("%d \r\n", paramArray[0]); + DBG_DUMP("PhotoExe_OnCaptureSize %d \r\n", paramArray[0]); if (paramNum > 0) { uhSelect = paramArray[0]; } - UI_SetData(FL_PHOTO_SIZE, uhSelect); + + // uhSelect = PHOTO_SIZE_40M; + // UI_SetData(FL_PHOTO_SIZE, uhSelect); Photo_SetUserIndex(PHOTO_USR_SIZE, uhSelect); DBG_IND("photo capture size %d\r\n", uhSelect); return NVTEVT_CONSUME; @@ -5740,7 +5742,6 @@ static INT32 PhotoExe_Preview_SliceEncode_Encode_Primary( /* check restart */ if(restart == FALSE){ - CHKPNT; ret = HD_ERR_SYS; goto EXIT; } @@ -5939,15 +5940,6 @@ INT32 PhotoExe_Preview_SliceEncode(VControl *pCtrl, UINT32 paramNum, UINT32 *par Ux_SendEvent(&CustomPhotoObjCtrl, NVTEVT_EXE_INIT_DATE_BUF, 0); } -#if PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP == ENABLE - /******************************************************************* - * Stamp on the src frame - ******************************************************************/ - if(PhotoExe_Preview_SliceEncode_Src_DateStamp(&video_frame, &src_slice_info, &dst_slice_info) != E_OK){ - goto EXIT; - } -#endif - #if PHOTO_SLICE_ENC_DBG_PRIMARY_YUV PhotoExe_Preview_SliceEncode_Dump_Frame(video_frame); @@ -5993,6 +5985,10 @@ INT32 PhotoExe_Preview_SliceEncode(VControl *pCtrl, UINT32 paramNum, UINT32 *par goto EXIT; } + if(PhotoExe_Preview_SliceEncode_DateStamp(&video_frame_out_screennail, CAP_DS_EVENT_SCR) != E_OK){ + goto EXIT; + } + SLICE_ENC_VOS_TICK_TRIG(SLICE_ENC_VOS_TICK_SCR_SCALE_E); /* thumbnail scale, 2pass from screennail */ @@ -6007,11 +6003,11 @@ INT32 PhotoExe_Preview_SliceEncode(VControl *pCtrl, UINT32 paramNum, UINT32 *par /* screennail date stamp */ SLICE_ENC_VOS_TICK_TRIG(SLICE_ENC_VOS_TICK_THUMB_STAMP_S); -#if PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP == DISABLE - if(PhotoExe_Preview_SliceEncode_DateStamp(&video_frame_out_screennail, CAP_DS_EVENT_SCR) != E_OK){ - goto EXIT; - } -#endif +//#if PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP == DISABLE +// if(PhotoExe_Preview_SliceEncode_DateStamp(&video_frame_out_screennail, CAP_DS_EVENT_SCR) != E_OK){ +// goto EXIT; +// } +//#endif SLICE_ENC_VOS_TICK_TRIG(SLICE_ENC_VOS_TICK_THUMB_STAMP_E); @@ -6024,6 +6020,16 @@ INT32 PhotoExe_Preview_SliceEncode(VControl *pCtrl, UINT32 paramNum, UINT32 *par SLICE_ENC_VOS_TICK_TRIG(SLICE_ENC_VOS_TICK_QVIEW_E); + +#if PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP == ENABLE + /******************************************************************* + * Stamp on the src frame + ******************************************************************/ + if(PhotoExe_Preview_SliceEncode_Src_DateStamp(&video_frame, &src_slice_info, &dst_slice_info) != E_OK){ + goto EXIT; + } +#endif + /******************************************************************* * Primary ******************************************************************/ @@ -6463,7 +6469,6 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) ******************************************************************/ slice_encode_thumbnail_info->bs_buf_mem_info.blk_size = (CFG_THUMBNAIL_W * CFG_THUMBNAIL_H) / 2; if(PhotoExe_Preview_SliceEncode_Alloc_Buffer(&slice_encode_thumbnail_info->bs_buf_mem_info, "slice_enc_thumbnail") != E_OK){ - CHKPNT; goto EXIT; } @@ -6474,7 +6479,6 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) exif_mem_info.blk_size = CFG_JPG_HEADER_SIZE; if(PhotoExe_Preview_SliceEncode_Alloc_Buffer(&exif_mem_info, "slice_enc_exif") != E_OK){ - CHKPNT; goto EXIT; } @@ -6498,7 +6502,6 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) * Calculate dst slice info ******************************************************************/ if(PhotoExe_Preview_SliceEncode_Get_Curr_Dst_Slice_Info(&dst_slice_info, queue_ele_in->frame) != E_OK){ - CHKPNT; goto EXIT; } @@ -6507,15 +6510,6 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) ******************************************************************/ PhotoExe_Preview_SliceEncode_Get_Src_Slice_Info(&dst_slice_info, &src_slice_info, queue_ele_in->frame); -#if PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP == ENABLE - /******************************************************************* - * Stamp on the src frame - ******************************************************************/ - if(PhotoExe_Preview_SliceEncode_Src_DateStamp(&queue_ele_in->frame, &src_slice_info, &dst_slice_info) != E_OK){ - goto EXIT; - } -#endif - #if PHOTO_SLICE_ENC_DBG_PRIMARY_YUV PhotoExe_Preview_SliceEncode_Dump_Frame(queue_ele_in->frame); @@ -6542,7 +6536,7 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) goto EXIT; } - /******************************************************************* +/******************************************************************* * Screennail & Thumbnail Scale ******************************************************************/ @@ -6551,6 +6545,10 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) goto EXIT; } + if(PhotoExe_Preview_SliceEncode_DateStamp(&video_frame_out_screennail, CAP_DS_EVENT_SCR) != E_OK){ + goto EXIT; + } + /* thumbnail scale, 2pass from screennail */ if(PhotoExe_Preview_SliceEncode_Scale_Thumbnail(&video_frame_out_screennail, &video_frame_out_thumbnail) != E_OK){ goto EXIT; @@ -6567,6 +6565,17 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) // goto EXIT; // } #endif + + +#if PHOTO_PREVIEW_SLICE_ENC_SRC_STAMP == ENABLE + /******************************************************************* + * Stamp on the src frame + ******************************************************************/ + if(PhotoExe_Preview_SliceEncode_Src_DateStamp(&queue_ele_in->frame, &src_slice_info, &dst_slice_info) != E_OK){ + goto EXIT; + } +#endif + /******************************************************************* * Primary ******************************************************************/ @@ -6576,7 +6585,6 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) PhotoExe_Preview_SliceEncode_Encode_Set_Out(slice_encode_primary_info->enc_path_id, primary_quality); if(PhotoExe_Preview_SliceEncode_Encode_Primary(&queue_ele_in->frame, src_slice_info, dst_slice_info, &enc_accum_size, &primary_quality) != E_OK){ - CHKPNT; goto EXIT; } @@ -6598,14 +6606,12 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) #if CFG_JPG_PREVIEW_SLICE_ENC_RC_SCREENNAIL if(PhotoExe_Preview_SliceEncode_Encode_Screennail_RC(&video_frame_out_screennail, &screennail_quality) != E_OK){ - CHKPNT; goto EXIT; } #else PhotoExe_Preview_SliceEncode_Encode_Set_Out(slice_encode_screennail_info->enc_path_id, CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_SCREENNAIL); if(PhotoExe_Preview_SliceEncode_Encode_Screennail(&video_frame_out_screennail) != E_OK){ - CHKPNT; goto EXIT; } #endif @@ -6615,7 +6621,6 @@ INT32 PhotoExe_Preview_SliceEncode_CB2(void* user_data) PhotoExe_Preview_SliceEncode_Encode_Set_Out(slice_encode_thumbnail_info->enc_path_id, CFG_JPG_PREVIEW_SLICE_ENC_INIT_QUALITY_THUMBNAIL); if(PhotoExe_Preview_SliceEncode_Encode_Thumbnail(&video_frame_out_thumbnail) != E_OK){ - CHKPNT; goto EXIT; } diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c index 6b11ba6c8..43cad12b1 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIDateImprint.c @@ -473,11 +473,10 @@ char * UiDateImprint_InitStrBuf(void) break; case DATEIMPRINT_DATE_TIME: + default: dateStr = DateTime_MakeYMDHMS(); break; - - default: - break; + } #endif @@ -853,21 +852,21 @@ void UiDateImprint_ChkUpdateData(DATE_IMPRINT_INFO *pInfo) DBG_IND("event=%d, bScreenNailEn=%d, bGenEn=%d\r\n",pInfo->pCapInfo->event,bScreenNailEn,bGenEn); //if (pInfo->pCapInfo->event == CAP_DS_EVENT_QV || pInfo->pCapInfo->event == CAP_DS_EVENT_SCR) { - if (pInfo->pCapInfo->event == CAP_DS_EVENT_PRI) { + if (1/*pInfo->pCapInfo->event == CAP_DS_EVENT_PRI*/) { #if HUNTING_CAMERA_MCU == ENABLE pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); #else - if ((UI_GetData(FL_CONTINUE_SHOT) == CONTINUE_SHOT_BURST_3)) { - if (pInfo->pic_cnt == 0) - pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); - else - pInfo->isStrDirty = FALSE; - } - else { - pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); - } + if ((UI_GetData(FL_CONTINUE_SHOT) == CONTINUE_SHOT_BURST_3)) { + if (pInfo->pic_cnt == 0) + pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); + else + pInfo->isStrDirty = FALSE; + } + else { + pInfo->isStrDirty = UiDateImprint_UpdateDate(pInfo->StrBuf,sizeof(pInfo->StrBuf)); + } #endif - } + } #if 0 // need to update primary info to screenail if (pInfo->pCapInfo->event == CAP_DS_EVENT_PRI) @@ -912,7 +911,7 @@ void UiDateImprint_DrawBG(DS_STAMP_INFOR *stampInfo, HD_VIDEO_FRAME* Img) param.color = LV_USER_CFG_STAMP_COLOR_BACKGROUND; /* ARGB format */ param.thickness = 10; param.rect.w = Img->dim.w; - param.rect.h = stampInfo->Img.dim.h*11/10; /*add heigt*/ + param.rect.h = (stampInfo->Img.dim.h/10)*12; param.rect.x = 0; //param.rect.y = stampInfo->PosY; param.rect.y = Img->dim.h - param.rect.h; From a9d2466106c288b70fb0fe6bd101f882d8244e80 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 20:49:59 +0800 Subject: [PATCH 36/41] =?UTF-8?q?1.=E5=8E=BB=E6=8E=89=E4=B8=80=E4=BA=9Blog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/lib/source/sifar/code/source/common/sf_common.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 523cd3212..8710a3506 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -1795,14 +1795,17 @@ static SINT32 sf_cardv_proccess_cmd_file(SF_MESSAGE_BUF_S *pMessageBuf) static SINT32 sf_cardv_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf) { //printf("[%s:%d] ID = %#x\n", __FUNCTION__, __LINE__,pMessageBuf->arg1); - MLOGI("ID = %#x\n",pMessageBuf->arg1); + if(pMessageBuf->arg1 != SF_DEV_CMD_TEMPER) + { + MLOGI("ID = %#x\n",pMessageBuf->arg1); + } //SF_MESSAGE_BUF_S stMessageBuf = {0}; switch(pMessageBuf->arg1) { case SF_DEV_CMD_TEMPER: cTemper = pMessageBuf->arg2; fTemper = pMessageBuf->arg3; - MLOGI("cTemper:%d fTemper:%d\n",cTemper,fTemper); + //MLOGI("cTemper:%d fTemper:%d\n",cTemper,fTemper); break; case SF_DEV_CMD_BAT: @@ -1873,7 +1876,7 @@ void* sf_cardv_message_thread(void *argv) { continue; } - if(CMD_MCU != stMessagebuf.cmdId) + if((CMD_DEV != stMessagebuf.cmdId) && (CMD_MCU != stMessagebuf.cmdId)) { MLOGI("cmdId:[%#x,%s]\n",stMessagebuf.cmdId,sf_process_message_getstatusstring(stMessagebuf.cmdId)); } From 49c47f0edc7c466d0cef5a27390f93c908d522af Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 20:50:35 +0800 Subject: [PATCH 37/41] =?UTF-8?q?1.=E9=BB=98=E8=AE=A4=E5=90=88=E6=B3=95?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=9B=B4=E6=94=B9=E4=B8=BA2023=E5=88=B02050?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/sf_app/code/source/systemMng/sf_systemMng.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/application/source/sf_app/code/source/systemMng/sf_systemMng.c b/code/application/source/sf_app/code/source/systemMng/sf_systemMng.c index f9138ef11..f1e4367fa 100644 --- a/code/application/source/sf_app/code/source/systemMng/sf_systemMng.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_systemMng.c @@ -209,7 +209,7 @@ SINT32 sf_sys_rtc_time_check(SF_PARA_TIME_S *pstDateTime) { SF_COMM_CHECK_POINTER(pstDateTime,SF_FALSE); SLOGI("%d-%d-%d %d:%d:%d\n",pstDateTime->Year,pstDateTime->Mon,pstDateTime->Day,pstDateTime->Hour,pstDateTime->Min,pstDateTime->Sec); - if((pstDateTime->Year >= 2021) && \ + if((pstDateTime->Year >= 2023) && \ (pstDateTime->Year <= 2050) && \ (pstDateTime->Mon <= 12) && \ (pstDateTime->Day <= 31) && \ @@ -235,12 +235,13 @@ SINT32 sf_sys_rtc_time_reset(void) } struct rtc_time rtctm; - rtctm.tm_year = 2022 - 1900; - rtctm.tm_mon = 0; + rtctm.tm_year = 2023 - 1900; + rtctm.tm_mon = 1; rtctm.tm_mday = 1; rtctm.tm_hour = 8; rtctm.tm_min = 0; rtctm.tm_sec = 0; + SLOGI("%d-%d-%d %d:%d:%d\n",rtctm.tm_year+1900,rtctm.tm_mon,rtctm.tm_mday,rtctm.tm_hour,rtctm.tm_min,rtctm.tm_sec); ret=ioctl(fdRtc,RTC_SET_TIME, &rtctm); if (ret < 0) @@ -371,7 +372,7 @@ SINT32 sf_sys_rtoscmd_set(SINT8 cmd, SINT8 *para) if(SF_TRUE != sf_sys_rtc_time_check(&date)) { ret = sf_sys_rtc_time_reset(); - date.Year = 2022; + date.Year = 2023; date.Mon = 1; date.Day = 1; date.Hour = 8; From 53bf5442ed907521c8799c20d72c31d945324332 Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 21:52:08 +0800 Subject: [PATCH 38/41] =?UTF-8?q?1.30M=E5=89=A9=E4=BD=99=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../source/cardv/SrcCode/System/sys_filesys.c | 10 ++++ .../cardv/SrcCode/UIApp/MovieFast/MovieFast.c | 6 ++- .../cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c | 9 +++- .../UIApp/PhotoFast/PhotoFastSliceEncode.c | 28 +++++----- .../driver/na51089/source/mcu/sf_sd_common.c | 51 ++++++++++--------- 5 files changed, 64 insertions(+), 40 deletions(-) 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 ab0e78504..817f049e1 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,9 @@ #include "sys_fastboot.h" #include "PrjCfg.h" #include "DxHunting.h" +#if HUNTING_CAMERA_MCU == ENABLE +#include +#endif #if (HUNTING_CAMERA_MODEL == ENABLE) #include "IOCfg.h" @@ -56,6 +59,13 @@ static void card_insert_job(void) // call the function to wait init finish FileSys_WaitFinishEx('A'); FileSys_SetParamEx('A', FST_PARM_UPDATE_FSINFO , TRUE); +#if HUNTING_CAMERA_MCU == ENABLE + if(TRUE == sf_check_card_full()) + { + printf("ERR card full\r\n"); + } +#endif + fastboot_set_done(BOOT_INIT_FILESYSOK); printf("filesys_init e\r\n"); } 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 cac62c5b1..dc8a978ef 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -871,7 +871,11 @@ static void MovieFast_WriteFile_Task(void* arg) MOVIEFAST_WRITE_QUEUE_PARAM* param; fastboot_wait_done(BOOT_INIT_FILESYSOK); - + if(TRUE == sf_is_card_full()) + { + DBG_ERR("ERR card full\r\n"); + return ; + } while(1) { param = (MOVIEFAST_WRITE_QUEUE_PARAM*) lfqueue_deq(queue); 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 b2be865dd..bf8d965d5 100755 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -890,6 +890,13 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId, //sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID); strncpy(g_photo_fast_write_file_Path, tmp, sizeof(g_photo_fast_write_file_Path) - 1); DBG_IND("last send file:%s\r\n", tmp); + if(TRUE == sf_is_card_full()) + { + DBG_ERR("ERR Addr=0x%x,Size=0x%x,Fmt=%d card full\r\n", Addr, Size, Fmt); + rt =FST_STA_ERROR; + return rt; + } + #else strncpy(g_photo_fast_write_file_Path, FilePath, sizeof(g_photo_fast_write_file_Path) - 1); #endif @@ -1799,7 +1806,7 @@ exit: #if SF_TRIGGER_TIME_TEST == ENABLE sf_trigger_time_led_cb(0); #endif - if(sf_get_power_off_flag()) + if((sf_get_power_off_flag()) || (TRUE == sf_is_card_full())) { vos_flag_set(PHOTOFAST_FLG_ID, FLGPHOTOFAST_SHUTDOWN); } 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 37ff41594..8b2fad330 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -2371,21 +2371,23 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) DBG_IND("PHOTO THUMB %s\n", tmp); vos_perf_mark(&t3); + if(FALSE == sf_is_card_full()) + { + FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE); - FST_FILE fp = FileSys_OpenFile(tmp, FST_CREATE_ALWAYS | FST_OPEN_WRITE); + FileSys_WriteFile(fp, (UINT8*)queue_ele_in->jpg_thumb_addr, &queue_ele_in->jpg_thumb_size, 0, NULL); + FileSys_FlushFile(fp); + FileSys_CloseFile(fp); + #if HUNTING_CAMERA_MCU == ENABLE + memset(tmp, '\0', sizeof(tmp)); + snprintf(tmp, sizeof(tmp), "%s/%s", SF_SEND_LIST_DIR, file_path); /* DCF 8.3 naming rule */ + snprintf(tmp2, sizeof(tmp2), "%s", file_path); /* DCF 8.3 naming rule */ + sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL); + DBG_IND("PHOTO THUMB %s \n %s\n %s\n", tmp, tmp2,file_path); + DBG_IND("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,queue_ele_in->jpg_thumb_size,tmp2,tmp); + #endif + } - FileSys_WriteFile(fp, (UINT8*)queue_ele_in->jpg_thumb_addr, &queue_ele_in->jpg_thumb_size, 0, NULL); - FileSys_FlushFile(fp); - FileSys_CloseFile(fp); - -#if HUNTING_CAMERA_MCU == ENABLE - memset(tmp, '\0', sizeof(tmp)); - snprintf(tmp, sizeof(tmp), "%s/%s", SF_SEND_LIST_DIR, file_path); /* DCF 8.3 naming rule */ - snprintf(tmp2, sizeof(tmp2), "%s", file_path); /* DCF 8.3 naming rule */ - sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL); - DBG_IND("PHOTO THUMB %s \n %s\n %s\n", tmp, tmp2,file_path); - DBG_IND("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,queue_ele_in->jpg_thumb_size,tmp2,tmp); -#endif } vos_perf_mark(&t4); 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 8cb302be4..dc2ea25d4 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_sd_common.c +++ b/rtos/code/driver/na51089/source/mcu/sf_sd_common.c @@ -55,38 +55,39 @@ BOOL sf_is_card_full(void) } - UINT32 sf_check_card_full(void) { - UINT64 diskFree = 0; - UINT32 ret = 0; - - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + int diskFree = 0; + UINT32 ret = 0; + + //UIMenuStoreInfo *puiPara = sf_ui_para_get(); if(!sf_in_card_exist()) { return 1; } - /*check disk free size*/ - diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); - diskFree = diskFree/1024; - - if(diskFree < 30) /* 30MB */ - { - ret = TRUE; - if(0 == puiPara->SdLoopSwitch) - { - IsCardFull = TRUE; - } - //printf("%s:%d sd card is full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); - } - else - { - ret = FALSE; - //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); - } - //printf("%s:%d sd card diskFree(%lu)",__FUNCTION__,__LINE__,diskFree); - return ret; + /*check disk free size*/ + diskFree = FileSys_GetDiskInfo(FST_INFO_FREE_SPACE); + diskFree = diskFree/1024/1024; + + if(diskFree < 30) /* 30MB */ + { + ret = TRUE; + //if(0 == puiPara->SdLoopSwitch) + { + IsCardFull = TRUE; + } + //printf("%s:%d sd card is full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); + } + else + { + ret = FALSE; + //printf("%s:%d sd card no full diskFree=%lu",__FUNCTION__,__LINE__,diskFree); + } + + //printf("[%s:%d]sd card diskFree=%dM\n", __FUNCTION__, __LINE__, diskFree); + + return ret; } void sf_sd_exist_reg_cb(SF_CALLBACK_SD_CMD fpCB) From faa68874c0f0721db7ea05aa3d2058426ba39f0c Mon Sep 17 00:00:00 2001 From: payton Date: Tue, 7 Nov 2023 21:53:17 +0800 Subject: [PATCH 39/41] =?UTF-8?q?1.=E5=8E=BB=E9=99=A4=E4=B8=AD=E9=97=B4?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 499a9a88b..c47fcd0ba 100755 --- a/.gitignore +++ b/.gitignore @@ -56,4 +56,5 @@ BSP/root-fs/rootfs/usr/lib/libgettextpo.so.0 BSP/root-fs/rootfs/usr/lib/libglib-2.0.so.0 BSP/root-fs/rootfs/usr/lib/libintl.so.8 BSP/root-fs/rootfs/usr/lib/libncurses.so.6 -BSP/root-fs/rootfs/usr/lib/libreadline.so.8 \ No newline at end of file +BSP/root-fs/rootfs/usr/lib/libreadline.so.8 +BSP/root-fs/rootfs/usr/lib/libbluetooth.so.3 \ No newline at end of file From 36dbd1e71f1107a524bfdbe19918c53beed1530e Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Wed, 8 Nov 2023 14:02:11 +0800 Subject: [PATCH 40/41] Fixed bug nember 9776. --- .../UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c | 10 +++++----- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c | 2 +- code/lib/source/sifar/code/source/common/sf_common.c | 4 ++++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c index 99835e9f8..4cc00537f 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMenuCommonItem/MenuSend.c @@ -83,13 +83,13 @@ int Send_MenuCallback(UINT32 uiMessage, UINT32 uiParam) { case FOUR_TIME_DAY: puiPara->TimeSend4Switch = 1; - break; + // break; case TWICE_DAY: puiPara->TimeSend3Switch = 1; - break; + // break; case ONCE_DAY: puiPara->TimeSend2Switch = 1; - break; + // break; default: puiPara->TimeSend1Switch = 1; break; @@ -386,13 +386,13 @@ static void update_send_time_msg(lv_obj_t* obj) if(NULL != SendTimeMatrixObj_0) { lv_btnmatrix_set_focused_btn(SendTimeMatrixObj_0, gMatrixIndex); + lv_btnmatrix_set_map(SendTimeMatrixObj_0, SendTimeMap_0); } if(NULL != SendTimeMatrixObj_1) { lv_btnmatrix_set_focused_btn(SendTimeMatrixObj_1, gMatrixIndex); + lv_btnmatrix_set_map(SendTimeMatrixObj_1, SendTimeMap_1); } - lv_btnmatrix_set_map(SendTimeMatrixObj_0, SendTimeMap_0); - lv_btnmatrix_set_map(SendTimeMatrixObj_1, SendTimeMap_1); } void show_send_time_page(lv_obj_t* obj, const int sendType) { diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c index be80c6e6c..51ca4c145 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoFuncs.c @@ -22,7 +22,7 @@ extern void UIFlowPhoto_update_selftimer_cnt(UINT32 time); CHAR *Get_FreePicNumString(UINT32 uiValue) { - snprintf(g_cFreePicNumStr, sizeof(g_cFreePicNumStr), "%05ld/%05ld", PhotoExe_GetTotalPicNum(), uiValue); + snprintf(g_cFreePicNumStr, sizeof(g_cFreePicNumStr), "%05ld/%05ld", uiValue, PhotoExe_GetTotalPicNum()); return g_cFreePicNumStr; } 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 d1bab9ede..992467000 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -3148,9 +3148,13 @@ BOOL sf_cmd_para_printf(unsigned char argc, char **argv) printf("BatteryLogSwitch:%d\n", puiPara->BatteryLogSwitch); printf("GpsNumber:%d\n", puiPara->GpsNumber); printf("TimeSend1Switch:%d\n", puiPara->TimeSend1Switch); + printf("TimeSend1:%d:%d:%d\n", puiPara->TimeSend1.Hour,puiPara->TimeSend1.Min,puiPara->TimeSend1.Sec); printf("TimeSend2Switch:%d\n", puiPara->TimeSend2Switch); + printf("TimeSend2:%d:%d:%d\n", puiPara->TimeSend2.Hour,puiPara->TimeSend2.Min,puiPara->TimeSend2.Sec); printf("TimeSend3Switch:%d\n", puiPara->TimeSend3Switch); + printf("TimeSend3:%d:%d:%d\n", puiPara->TimeSend3.Hour,puiPara->TimeSend3.Min,puiPara->TimeSend3.Sec); printf("TimeSend4Switch:%d\n", puiPara->TimeSend4Switch); + printf("TimeSend4:%d:%d:%d\n", puiPara->TimeSend4.Hour,puiPara->TimeSend4.Min,puiPara->TimeSend4.Sec); printf("SendType:%d\n", puiPara->SendType); printf("PicUpDailyReport:%d\n", puiPara->PicUpDailyReport); printf("ProfileSwitchFlg:%d\n", puiPara->ProfileSwitchFlg); From 64dc1454e0301dc923238ecf03353f6efdfbc706 Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Wed, 8 Nov 2023 15:25:10 +0800 Subject: [PATCH 41/41] Fixed bug number 9821. --- .../source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c | 3 ++- .../UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c | 7 +++++-- .../UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c | 7 +++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index afddacc76..bb489d440 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -692,7 +692,8 @@ UINT32 PhotoExe_GetFreePicNum(void) UINT64 uiFreeSpace; UINT32 uiMaxImageSize; UINT32 freeImgNum; - UINT32 reserveSize = 0x80000; // 500KB + // UINT32 reserveSize = 0x80000; // 500KB + UINT32 reserveSize = 0x1e00000; // 30MB UINT32 CaptureSize; UINT32 size; diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c index 8b0d5ad7d..c04231ac3 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c @@ -366,8 +366,11 @@ static void update_camera_message(void) { if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE) { - lv_label_set_text(label_6_scr_uiflowmovie, "SD CARD ERROR"); - } + // lv_label_set_text(label_6_scr_uiflowphoto, "SD CARD ERROR"); + } if (UIStorageCheck(STORAGE_CHECK_FULL, NULL) == TRUE) + { + lv_label_set_text(label_6_scr_uiflowphoto, "SD FULL"); + } else { UIStorageCheck(STORAGE_CHECK_FULL, &freePicNum); 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 fedad21bc..2fbe2ab0d 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 @@ -472,8 +472,11 @@ static void update_camera_message(void) { if (UIStorageCheck(STORAGE_CHECK_ERROR, NULL) == TRUE) { - lv_label_set_text(label_6_scr_uiflowphoto, "SD CARD ERROR"); - } + // lv_label_set_text(label_6_scr_uiflowphoto, "SD CARD ERROR"); + } if (UIStorageCheck(STORAGE_CHECK_FULL, NULL) == TRUE) + { + lv_label_set_text(label_6_scr_uiflowphoto, "SD FULL"); + } else { UIStorageCheck(STORAGE_CHECK_FULL, &g_uiFreePicNum);