From 951179ab212b2ab8df63359bd4232deebab6f5fc Mon Sep 17 00:00:00 2001 From: payton Date: Fri, 21 Jul 2023 11:09:17 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=8D=87=E7=BA=A7=E8=B0=83=E6=95=B4=202.?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=B8=80=E4=BA=9B=E6=B3=A8=E9=87=8A=E5=87=BD?= =?UTF-8?q?=E6=95=B0=EF=BC=8C=E6=B3=A8=E9=87=8A=E4=B8=80=E4=BA=9Blog=203.?= =?UTF-8?q?=E8=B0=83=E6=95=B4sd=E5=8D=A1=E6=8C=82=E5=8D=A1=E5=90=8E?= =?UTF-8?q?=E7=9A=84=E5=A4=84=E7=90=86=204.=E5=BF=AB=E6=8D=B7=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=E7=9A=84=E8=B0=83=E6=95=B4=205.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=94=9F=E6=88=90=E7=9B=B8=E6=9C=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardv/SrcCode/Mode/UIModeTranscode.c | 2 +- .../source/cardv/SrcCode/System/SysMain.c | 1 - .../source/cardv/SrcCode/System/SysStrg_CB.c | 41 +++-- .../UIApp/Background/UIBackgroundObj.c | 22 ++- .../SrcCode/UIApp/Network/UIAppNetwork.c | 4 +- .../lib/source/sifar/code/include/sf_common.h | 3 + .../sifar/code/source/common/sf_common.c | 140 +++++++++++++++++- 7 files changed, 188 insertions(+), 25 deletions(-) diff --git a/code/application/source/cardv/SrcCode/Mode/UIModeTranscode.c b/code/application/source/cardv/SrcCode/Mode/UIModeTranscode.c index 1614ed0a7..c7a0c83d6 100644 --- a/code/application/source/cardv/SrcCode/Mode/UIModeTranscode.c +++ b/code/application/source/cardv/SrcCode/Mode/UIModeTranscode.c @@ -40,7 +40,7 @@ void ModeTranscode_Open(void) } } #endif - #if HUNTING_CAMERA_MCU == ENABLE + #if 0//HUNTING_CAMERA_MCU == ENABLE if((1 == sf_get_fw_update())){ sf_do_upgrade_thread();//update } diff --git a/code/application/source/cardv/SrcCode/System/SysMain.c b/code/application/source/cardv/SrcCode/System/SysMain.c index 702dfd814..40f57083d 100644 --- a/code/application/source/cardv/SrcCode/System/SysMain.c +++ b/code/application/source/cardv/SrcCode/System/SysMain.c @@ -715,7 +715,6 @@ exit: UserMainProc_Exit(); ////////////////////////////////////////////////////////////// #if HUNTING_CAMERA_MCU == ENABLE - //sf_check_card_full(); #if HUNTING_CAMERA_4G == ENABLE SF_MESSAGE_BUF_S stMessageBuf = {0}; diff --git a/code/application/source/cardv/SrcCode/System/SysStrg_CB.c b/code/application/source/cardv/SrcCode/System/SysStrg_CB.c index 7e5a0f68a..0149ffbd2 100755 --- a/code/application/source/cardv/SrcCode/System/SysStrg_CB.c +++ b/code/application/source/cardv/SrcCode/System/SysStrg_CB.c @@ -41,6 +41,7 @@ #if HUNTING_CAMERA_MCU == ENABLE #include #include +#include "sf_sd_common.h" #endif void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2); @@ -55,10 +56,10 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) switch (event) { // part-1 case SYSTEM_CB_CONFIG: - //2.³]©wCB­È, - //3.µù¥USxJobªA°È ---------> System Job - //4.µù¥USxTimerªA°È ---------> Detect Job - //5.µù¥USxCmdªA°È ---------> Cmd Function + //2.�]�wCB��, + //3.���USxJob�A�� ---------> System Job + //4.���USxTimer�A�� ---------> Detect Job + //5.���USxCmd�A�� ---------> Cmd Function //System_AddSxCmd(Storage_OnCommand); //GxStorage break; case STRG_CB_INSERTED: //call after card inserted @@ -154,6 +155,24 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) INIT_SETFLAG(FLGINIT_MOUNTFS); #endif Ux_PostEvent(NVTEVT_STRG_ATTACH, 2, param1, status); + #if HUNTING_CAMERA_MCU == ENABLE + INT32 uiStatus = 0; + UINT8 ucAttrib = 0; + uiStatus = FileSys_GetAttrib(PHOTO_THUMB_PATH, &ucAttrib); + if (uiStatus == FST_STA_OK) { + if(!(ucAttrib&FST_ATTRIB_HIDDEN)){ + #if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); + #endif + } + } + else { + FileSys_MakeDir(PHOTO_THUMB_PATH); + #if SF_IQ_TEST != ENABLE + FileSys_SetAttrib(PHOTO_THUMB_PATH, FST_ATTRIB_HIDDEN/* | FST_ATTRIB_SYSTEM*/, TRUE); + #endif + } + #endif break; default: @@ -161,12 +180,14 @@ void Strg_CB(UINT32 event, UINT32 param1, UINT32 param2) break; } -#if HUNTING_CAMERA_MCU == ENABLE - stMessageBuf.arg1 = event; - stMessageBuf.arg2 = param1; - stMessageBuf.arg3 = param2; - stMessageBuf.cmdId = CMD_SD; - sf_com_message_send_to_app(&stMessageBuf); +#if HUNTING_CAMERA_MCU == ENABLE + if((CMD_FORMAT_SD_STA != sf_get_card_statu())){ + stMessageBuf.arg1 = event; + stMessageBuf.arg2 = param1; + stMessageBuf.arg3 = param2; + stMessageBuf.cmdId = CMD_SD; + sf_com_message_send_to_app(&stMessageBuf); + } #endif } diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c index 48bbea5f8..43229cefa 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c @@ -833,6 +833,10 @@ UINT32 BackgroundFormatCard(void) { int ret; DBG_FUNC_BEGIN("\r\n"); + #if HUNTING_CAMERA_MCU == ENABLE + sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_START); + //sf_sys_status_led_set(SF_LED_SYS_STATE_EXIT_GO_TO_PIR); + #endif //DX_HANDLE pStrgDev = Dx_GetObject(DX_CLASS_STORAGE_EXT|DX_TYPE_CARD1); //UINT32 hStrgObj = Dx_Getcaps(pStrgDev, STORAGE_CAPS_HANDLE, 0); //ret = FileSys_FormatDisk((HNVT_STRG)hStrgObj, FALSE); @@ -850,9 +854,6 @@ UINT32 BackgroundFormatCard(void) DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret); if (ret == FST_STA_OK) { - #if HUNTING_CAMERA_MCU == ENABLE - sf_set_card_statu(CMD_FORMAT_SD_OK); - #endif // reset file ID (for FileDB) #if USE_FILEDB if (UI_GetData(FL_IsUseFileDB)) { @@ -866,7 +867,7 @@ UINT32 BackgroundFormatCard(void) UI_SetData(FL_DCF_FILE_ID, MIN_DCF_FILE_NUM); UI_SetData(FL_IsDCIMReadOnly, FALSE); #endif -#if (PLAY_MODE==ENABLE) + #if (PLAY_MODE==ENABLE) if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { UIPlay_PlaySingle(PB_SINGLE_CURR); } @@ -879,14 +880,25 @@ UINT32 BackgroundFormatCard(void) //#NT#2016/05/30#Lincy Lin -end vos_util_delay_ms(1000); SysMain_system("sync"); + #if HUNTING_CAMERA_MCU == ENABLE + //vos_util_delay_ms(1000); + sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_SUCCESS); + vos_util_delay_ms(3000); + #endif } else { #if HUNTING_CAMERA_MCU == ENABLE - sf_set_card_statu(CMD_FORMAT_SD_ERR); + sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_FAIL); + vos_util_delay_ms(3000); #endif } MovieExe_ResetFileSN(); + #if HUNTING_CAMERA_MCU == ENABLE + sf_sys_status_led_set(SF_LED_SYS_STATE_SD_FORMAT_EXIT); + vos_util_delay_ms(1000); + sf_set_card_statu(ret); + #endif DBG_FUNC_END("\r\n"); return (UINT32)ret; } diff --git a/code/application/source/cardv/SrcCode/UIApp/Network/UIAppNetwork.c b/code/application/source/cardv/SrcCode/UIApp/Network/UIAppNetwork.c index c36c20ed1..38261b7c0 100644 --- a/code/application/source/cardv/SrcCode/UIApp/Network/UIAppNetwork.c +++ b/code/application/source/cardv/SrcCode/UIApp/Network/UIAppNetwork.c @@ -1274,7 +1274,7 @@ void UINet_WifiSettings(nvt_wifi_settings *pwifi, UINT32 mode, UINT32 security) sprintf(gSSID,"REVEAL_%02X%02X%02X",gMacAddr[3],gMacAddr[4],gMacAddr[5]); } sprintf(gPASSPHRASE,"%s",ptMenuStoreInfo->WifiApPWD); - printf("[%s:%d] gSSID:%s gPASSPHRASE:%s\n", __FUNCTION__, __LINE__,gSSID, gPASSPHRASE); + //printf("[%s:%d] gSSID:%s gPASSPHRASE:%s\n", __FUNCTION__, __LINE__,gSSID, gPASSPHRASE); if (ptMenuStoreInfo->strSSID[0] == 0) { #if 0//(MAC_APPEN_SSID==ENABLE) snprintf(pwifi->ssid, NVT_WSC_MAX_SSID_LEN, "%s%02x%02x%02x%02x%02x%02x", gSSID, gMacAddr[0], gMacAddr[1], gMacAddr[2], @@ -1336,7 +1336,7 @@ void UINet_WifiSettings(nvt_wifi_settings *pwifi, UINT32 mode, UINT32 security) strcpy(pwifi->wep_key3, "12345678901234567890123456"); strcpy(pwifi->wep_key4, "12345678901234567890123456"); } - printf("[%s:%d] ssid:%s passphrase:%s\n", __FUNCTION__, __LINE__,pwifi->ssid, pwifi->passphrase); + //printf("[%s:%d] ssid:%s passphrase:%s\n", __FUNCTION__, __LINE__,pwifi->ssid, pwifi->passphrase); } void UINet_WifiP2PReInit(void) diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index d40b8c892..b8a2fb0bf 100644 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -110,4 +110,7 @@ BOOL sf_is_flash_voltage_abnormal(void); void sf_4g_usb_remove(void); void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem); BOOL sf_cmd_cardv_4g_usb_boot(unsigned char argc, char **argv); +BOOL sf_cmd_fs_ro_check(unsigned char argc, char **argv); +BOOL sf_check_net_work_flag(void); +void sf_save_camera_info(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 93281c80b..3b7cc9398 100644 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -134,12 +134,16 @@ void sf_set_auto_off_time(UINT16 time) void sf_mode_detect(void) { static UINT8 state = 0; - //static UINT32 timeBak = 0; + static UINT32 timeBak = 0; static UINT32 time=0; static UINT8 pwroffcnt = 0; static UINT8 countDownOffFlg = 0; static UINT8 pirDelay = 0; - UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + VOS_TICK tticktmp=0; + static VOS_TICK ttick=0; + static UINT32 cmdflag = 0; + static UINT32 time2 = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); if(sf_get_power_off_flag() || sf_is_usb_flag()) { sf_set_pir_statu_flag(FALSE); @@ -191,12 +195,35 @@ void sf_mode_detect(void) time=0; - if((sf_get_pir_statu_flag()) && (gpio_getPin(GPIO_KEY_TEST))) + + if((sf_get_pir_statu_flag()) && (!gpio_getPin(GPIO_KEY_TEST))) + { + timeBak++; + if(timeBak == 1) + { + vos_perf_mark(&ttick); + //sf_sys_status_led_set(SF_LED_SYS_STATE_OFF); + //sf_enter_auto_mode_show(3); + if(!countDownOffFlg) + sf_sys_status_led_set(SF_LED_SYS_STATE_GOING_TO_PIR); + } + vos_perf_mark(&tticktmp); + time2 = ((tticktmp/1000) - (ttick/1000)); + + //if((!cmdflag) && (0 == sf_get_fw_update()) && (time >= 3000)) + if((!cmdflag) && (0 == sf_get_fw_update()) && (timeBak == 4)) + { + cmdflag = 1; + printf("[%s:%d]time2=%dms\n",__FUNCTION__,__LINE__,time2); + sf_set_card_statu(CMD_FORMAT_SD_STA); + BKG_PostEvent(NVTEVT_BKW_FORMAT_CARD); + } + } + else if((sf_get_pir_statu_flag()) && (CMD_FORMAT_SD_STA != sf_get_card_statu())) { pwroffcnt++; //printf("[%s:%d]pwroffcnt=%d\n",__FUNCTION__,__LINE__,pwroffcnt); //sf_enter_auto_mode_count_down_show(4 - pwroffcnt); - if(pwroffcnt == 1) { //sf_enter_auto_mode_show(3); @@ -206,7 +233,6 @@ void sf_mode_detect(void) else if(pwroffcnt == 6) { //LCD_BACKLIGHT_OFF; - sf_check_card_full(); sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF); printf("[power off] %s(%d) AutoOfftime:%d\n", __FUNCTION__, __LINE__, AutoOfftime); if(AutoOfftime >= 185) @@ -227,6 +253,8 @@ void sf_mode_detect(void) else { pwroffcnt = 0; + cmdflag = 0; + timeBak = 0; } if(puiPara->AutoOffSwitch == 0 || (0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/) || (sf_get_fw_update()) || (sf_get_module_update())/*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/) @@ -513,6 +541,10 @@ BOOL sf_cmd_timelapse_switch(unsigned char argc, char **argv) puiPara->TimelapseTime.Min = value; sscanf_s(argv[3],"%d", &value); puiPara->TimelapseTime.Sec = value; + if(puiPara->TimelapseSwitch) + { + sf_set_pir_sensitivity(0); + } Save_MenuInfo(); } } @@ -1068,8 +1100,12 @@ BOOL cmd_rtc_set(unsigned char argc, char **argv) } GxTime_SetTime(Curr_DateTime); + system("hwclock -s"); printf("[%s:%d] DateTime:%d %d %d %d %d %d\n", __FUNCTION__, __LINE__,Curr_DateTime.tm_year,Curr_DateTime.tm_mon,Curr_DateTime.tm_mday,Curr_DateTime.tm_hour,Curr_DateTime.tm_min,Curr_DateTime.tm_sec); sf_cardv_set_mcu_rtc_flag(); + sleep(2); + GxTime_GetTime(&Curr_DateTime); + printf("[%s:%d] DateTime2:%d %d %d %d %d %d\n", __FUNCTION__, __LINE__,Curr_DateTime.tm_year,Curr_DateTime.tm_mon,Curr_DateTime.tm_mday,Curr_DateTime.tm_hour,Curr_DateTime.tm_min,Curr_DateTime.tm_sec); } return TRUE; @@ -2214,4 +2250,96 @@ BOOL sf_cmd_cardv_4g_usb_boot(unsigned char argc, char **argv) sleep(2); printf("[%s:%d] e\n", __FUNCTION__, __LINE__); return TRUE; -} \ No newline at end of file +} + +BOOL sf_cmd_fs_ro_check(unsigned char argc, char **argv) +{ + + printf("read only = %llu\n", FileSys_GetDiskInfoEx('A', FST_INFO_IS_READ_ONLY)); + + return TRUE; +} + +BOOL sf_check_net_work_flag(void) +{ + if((0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/)){ + return TRUE; + } + else{ + return FALSE; + } + +} + +/************************************************* + Function: sf_save_camera_info + Description: save camera info to sd + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_save_camera_info(void) +{ +#if 1 + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + char *temp = NULL; + UINT8 localver[20] = {0}, mcuver[20] = {0}; + //UINT8 imeibuff[20] = {0}; + //UINT8 modulebuff[50] = {0}; + //UINT8 SimICCID[33] = {0}; + char wifissid[30] = {0}; + static UINT8 fristRun = 1; + int fd = 0; + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + + if(fristRun == 0) + return; + + fristRun = 0; + temp = malloc(200); + if (temp == NULL) { + MLOGE("temp malloc err\n"); + return; + } + + strcpy((char *)localver, SF_BASE_VERSION); + + sf_mcu_version_get(mcuver); + + /*if(puiPara->ModuleImei[0] != '\0') + { + SF_STRCPY(imeibuff, puiPara->ModuleImei); + } + + if(puiPara->ModuleSubver[0] != '\0') + { + SF_STRCPY(modulebuff, puiPara->ModuleSubver); + } + if(puiPara->SimIccid[0] != '\0') + { + SF_STRCPY(SimICCID, puiPara->SimIccid); + }*/ + sf_get_wifi_ssid(wifissid); + + SF_SPRINTF(temp, "IMEI:%s\r\nSoftwareVER:%s\r\nModuleVER:%s\r\nMcuVER:%s\r\nICCID:%s\r\nSSID:%s\r\n", puiPara->ModuleImei, localver, puiPara->ModuleSubver, mcuver, puiPara->SimIccid, wifissid); + + if(access((char*)SF_CAMERA_INFO_FILENAME, F_OK) == 0) + { + system("rm -rf /mnt/sd/CAM_INFO.TXT"); + sync(); + //FileSys_DeleteFile(); + } + fd = open(SF_CAMERA_INFO_FILENAME, O_WRONLY | O_CREAT); + if(fd) + { + lseek(fd, 0, SEEK_END); + write(fd, temp, strlen(temp)); + close(fd); + } + free(temp); + + printf("[%s:%d] e\n", __FUNCTION__, __LINE__); + +#endif +}