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 9ebc4ea1a..125c7f3f3 100644 --- a/code/application/source/sf_app/code/include/sf_ftp.h +++ b/code/application/source/sf_app/code/include/sf_ftp.h @@ -213,7 +213,7 @@ SINT32 sf_check_ftp_send(UINT8 mode); SINT32 sf_send_file_to_ftp(UINT8 mode); SINT32 sf_4g_module_ota_ftp(void); SINT32 sf_connect_ftps_server(void); -UINT32 sf_camera_ota_ftp(void); +SINT32 sf_camera_ota_ftp(void); SINT32 sf_concentrated_ftp_send(void); SINT32 sf_hd_ftp_send(void); SINT32 sf_video_ftp_send(void); diff --git a/code/application/source/sf_app/code/include/sf_param_common.h b/code/application/source/sf_app/code/include/sf_param_common.h index 96484b325..28de0b0e9 100644 --- a/code/application/source/sf_app/code/include/sf_param_common.h +++ b/code/application/source/sf_app/code/include/sf_param_common.h @@ -63,6 +63,7 @@ UINT8 sf_signal_level_get(UINT8 netFlagG, UINT8 cqSignal); BOOL sf_get_para_check_flag(void); void sf_sys_check_flag(void); +BOOL sf_Check_OTA(void); #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/include/sf_system.h b/code/application/source/sf_app/code/include/sf_system.h index 06b0821e7..d4322c90f 100644 --- a/code/application/source/sf_app/code/include/sf_system.h +++ b/code/application/source/sf_app/code/include/sf_system.h @@ -59,6 +59,8 @@ void sf_cmd_4g_usb_boot(void); void sf_do_4g_upgrade_thread(void); UINT32 sf_4g_update(UINT8 *upFname); SINT32 sf_app_load_ko_start(void); +SINT32 sf_app_mcu_para_start(void); +SINT32 app_auto_poweroff_start(void); #ifdef __cplusplus #if __cplusplus } 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 33bf8d25a..9ed447f34 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 @@ -48,6 +48,7 @@ extern "C" { #include "sf_sms.h" #include "sf_ledmng.h" #include "ftp_manager.h" +#include "sf_system.h" /************************************************************************** * C O N S T A N T S * **************************************************************************/ @@ -1147,11 +1148,11 @@ SINT32 sf_ftp_dailyreport_send(void) if(SF_SUCCESS != ret) { - sf_dailyReport_set(); printf("%s:%d err ret: [0x%08X] filePath:%s\n", __FUNCTION__, __LINE__, ret, filePath); }else { DailyReportFtpSendSucess = 1; } + sf_dailyReport_set(); } printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); @@ -1343,6 +1344,7 @@ SINT32 sf_send_file_to_ftp(UINT8 mode) *************************************************/ SINT32 sf_4g_module_ota_ftp(void) { + char Cmd[128] = {0}; UIMenuStoreInfo *pPara = sf_app_ui_para_get(); SINT32 ret = SF_SUCCESS; FtpSslFlag ssl_flag = FTP_SSL_FLAG_END; @@ -1364,14 +1366,30 @@ SINT32 sf_4g_module_ota_ftp(void) .ftpsFlag = ssl_flag, .user = (const char*)user, .password = (const char*)password}; - // printf("ftp_manager_init url = %s\n", config.ip); - // printf("ftp_manager_init port = %d param port = %s\n", config.port, pPara->FtpsPort); - // printf("ftp_manager_init ftpsFlag = %d\n", config.ftpsFlag); - // printf("ftp_manager_init user = %s\n", config.user); - // printf("ftp_manager_init password = %s\n", config.password); + ftp_manager_init(config); - ftp_download_file("EG915QNA.tar.bz2","/mnt/sd/EG915QNA.tar.bz2",0); + if(SF_TRUE == sf_file_IsExsit(SF_MODULE_UP_FILE_PATH)){ + sf_file_remove(SF_MODULE_UP_FILE_PATH); + } + + ret = ftp_download_file(SF_MODULE_UP_FILE,SF_MODULE_UP_FILE_PATH,0); + if(SUCCESS == ret){ + sprintf(Cmd, "tar -xjvf %s -C %s", SF_MODULE_UP_FILE_PATH, SF_SD_ROOT); + MLOGD("%s\n", Cmd); + ret = system(Cmd); + if(SUCCESS == ret){ + sf_set_module_update(1); + sf_do_4g_upgrade_thread(); + while(sf_get_module_update()) + { + sleep(1);//Wait for the upgrade to complete before shutting down. + } + sf_set_module_update(0); + } + } + + MLOGD("e\n"); return ret; } @@ -1428,829 +1446,57 @@ SINT32 sf_connect_ftps_server(void) Return: N/A Others: N/A *************************************************/ -UINT32 sf_camera_ota_ftp(void) +SINT32 sf_camera_ota_ftp(void) { - #if 0 - UINT32 location = CAMERA_OTA_FTP_FRIST; - UINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/ - UINT32 errorCode = 0; - UINT32 calltime=0; - UINT32 time = 0; - UINT8 ftpIp[40]= {0}; - UINT8 ftpPort[6]= {0}; - UINT8 ftpUsername[40]= {0}; - UINT8 ftpPassword[40]= {0}; - UINT8 pdpInedx = 0; - UINT32 ret = 0; - UINT32 fileSize = 0; - UINT32 cfgFileSize = 0; - UINT32 brnFileSize = 0; - UINT32 rxFileSize = 0; - UINT8 *pTemp = NULL; - UINT8 *pTemp1 = NULL; - UINT8 *pTemp2 = NULL; - UINT8 *pTemp3 = NULL; - UINT8 *pTemp4 = NULL; - SF_NET_TRANSFER_S *transfer = NULL; - SINT32 ttyRet = 0; + char Cmd[128] = {0}; + UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + SINT32 ret = SF_SUCCESS; + FtpSslFlag ssl_flag = FTP_SSL_FLAG_END; + const unsigned char *ftpIP; + int port; + const UINT8 *user; + const UINT8 *password; + // FtpConfig config; - uiPara_t *puiPara = appUiParaGet(); - //sfPara_t* pSifarPara = sf_ParaGet(); + ssl_flag = FTP_SSL_FLAG_DISABLE; + ftpIP = pPara->OtaFtpIp; + port = atoi((const char *)(pPara->OtaFtpPort)); + user = pPara->OtaFtpUserName; + password = pPara->OtaFtpPassWord; - printf("sf_camera_ota_ftp s\n"); + FtpConfig config = { + .ip = (const char*)ftpIP, + .port = (const unsigned int)port, + .ftpsFlag = ssl_flag, + .user = (const char*)user, + .password = (const char*)password}; - appBtnDisable(BTN_ALL); - //appBtnDisable(BTN_S1); + ftp_manager_init(config); - if(isSignalReady==0) - { - printf("no signal no update\n"); - appBtnEnable(BTN_ALL); - return sts; + if(SF_TRUE == sf_file_IsExsit(SF_CAM_UP_FILE_PATH)){ + sf_file_remove(SF_CAM_UP_FILE_PATH); } - transfer = sp5kMalloc(sizeof(SF_NET_TRANSFER_S)); - - if (transfer == NULL) - { - printf("sf_camera_ota_ftp malloc fail\n"); - appBtnEnable(BTN_ALL); - sts = OTA_FAIL; - return sts; - } - - SF_STRCPY(ftpIp, puiPara->OtaFtpIp); - SF_STRCPY(ftpPort, puiPara->OtaFtpPort); - SF_STRCPY(ftpUsername, puiPara->OtaFtpUserName); - SF_STRCPY(ftpPassword, puiPara->OtaFtpPassWord); - - sts = OTA_UPDATING; - - sf_mcu_wdg_set(15); - sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); - sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); - - while(sts == OTA_UPDATING) - { - time++; - if(time >= 300) - { - if((location > CAMERA_OTA_FTP_QIACT) && (location < CAMERA_OTA_FTP_QIDEACT)) + ret = ftp_download_file(SF_CAM_UP_FILE,SF_CAM_UP_FILE_PATH,0); + if(SUCCESS == ret){ + sprintf(Cmd, "tar -xjvf %s -C %s", SF_CAM_UP_FILE_PATH, SF_SD_ROOT); + MLOGD("%s\n", Cmd); + ret = system(Cmd); + if(SUCCESS == ret){ + sf_set_fw_update(1); + sf_set_key_fw_update(sf_get_fw_update()); + while(sf_get_fw_update()) { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_TIME_OUT; - time = 250; - calltime = 0; - SF_SPRINTF(gsmPara, "AT\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + sleep(1);//Wait for the upgrade to complete before shutting down. } - else - { - sts = OTA_TIME_OUT; - } - - printf("update timeout!\n"); - } - - sf_4g_get_data(gsmPara, 200, 1); - - if(location != CAMERA_OTA_FTP_SAVE_BRN) - { - sf_tty_data_printf(gsmPara); - } - - switch(location) - { - case CAMERA_OTA_FTP_FRIST: - SF_SPRINTF(gsmPara, "AT+QFDEL=\"*\"\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = OTA_FTP_QICSGP; - - break; - - case CAMERA_OTA_FTP_QICSGP: - if(SF_STRSTR(gsmPara,"OK")) - { - if(SF_STRSTR(puiPara->Sim4gApn, APN_4G_VERIZON)) - { - pdpInedx = V_PDP_INDEX; - SF_SPRINTF(gsmPara,"AT+QICSGP=%d\r", V_PDP_INDEX); - location= CAMERA_OTA_FTP_QICSGP1; - } - else if(SF_STRSTR(puiPara->Sim4gApn, APN_4G_ATT)) - { - pdpInedx = A_PDP_INDEX; - SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",A_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUserName,puiPara->Sim4gPassword); - location=CAMERA_OTA_FTP_QIACT; - } - else - { - pdpInedx = E_PDP_INDEX; - SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",E_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUserName,puiPara->Sim4gPassword); - location=CAMERA_OTA_FTP_QIACT; - } - - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - - break; - - case CAMERA_OTA_FTP_QICSGP1: - if(SF_STRSTR(gsmPara, "OK")) - { - if(SF_STRSTR(gsmPara, "+QICSGP: 0") || SF_STRSTR(gsmPara, "+QICSGP: 1,\"\"")) - { - SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUserName,puiPara->Sim4gPassword); - } - else - { - SF_SPRINTF(gsmPara, "AT\r"); - } - - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QIACT; - } - break; - - case CAMERA_OTA_FTP_QIACT: - if(SF_STRSTR(gsmPara, "OK")) - { - if((puiPara->GprsMode == 1) && sf_pdp_flg_get()) - { - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx); - location = CAMERA_OTA_FTP_QFTPCFG2; - } - else - { - SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx); - location = CAMERA_OTA_FTP_QFTPCFG1; - } - - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - calltime=0; - } - - break; - - case CAMERA_OTA_FTP_QFTPCFG1: - if(SF_STRSTR(gsmPara, "OK")) - { - sf_pdp_flg_set(1); - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPCFG2; - calltime=0; - } - else if(SF_STRSTR(gsmPara,"ERROR")) - { - calltime++; - if(calltime < 6) - { - SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - appTimeDelayMs(1800); - } - else - { - location = CAMERA_OTA_FTP_QIDEACT; - calltime=0; - errorCode = SF_OTA_ERROR_QIACT; - SLOGE((SINT8 *)"[ERROR]CAMERA_OTA_FTP QIACT over try 6 times"); - SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - } - - break; - - case CAMERA_OTA_FTP_QFTPCFG2: - //if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", ftpUsername, ftpPassword); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPCFG3; - } - break; - - case CAMERA_OTA_FTP_QFTPCFG3: - //if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",1\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPCFG4; - } - - break; - - case CAMERA_OTA_FTP_QFTPCFG4: - //if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location=CAMERA_OTA_FTP_QFTPCFG5; - } - - break; - - case CAMERA_OTA_FTP_QFTPCFG5: - //if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location=CAMERA_OTA_FTP_QFTPOPEN; - } - - break; - - case CAMERA_OTA_FTP_QFTPOPEN: - if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", ftpIp, ftpPort); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPNLST; - } - - break; - - case CAMERA_OTA_FTP_QFTPNLST: - if(SF_STRSTR(gsmPara, "+QFTPOPEN:")) - { - if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0")) - { - SF_SPRINTF(gsmPara, "AT+QFTPNLST=\"%s\",\"COM:\"\r", CAM_OTA_DIR); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPGETCFG; - } - else - { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_OPEN; - SLOGE((SINT8 *)"CAMERA_OTA_FTP Open Failed."); - SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - } - else if(SF_STRSTR(gsmPara, "+CME ERROR")) - { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_OPEN; - SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPOPEN CME ERROR."); - SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - - break; - - case CAMERA_OTA_FTP_QFTPGETCFG: - if(SF_STRSTR(gsmPara, "+QFTPNLST:")) - { - if((SF_STRSTR(gsmPara, SF_FW_FILE_NAME)!= NULL) && (SF_STRSTR(gsmPara, SF_FW_CFG_FILE_NAME)!= NULL)) - { - #if SF_4G_USB_NET_DOWNLOAD - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QIDEACT; - #else - SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"%s\"\r", CAM_OTA_DIR, SF_FW_CFG_FILE_NAME, SF_FW_CFG_FILE_NAME); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPGETBRN; - calltime = 0; - #endif - } - else - { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_NLST; - SLOGE((SINT8 *)"CAMERA_OTA_FTP NO NEED UPDATA FILE."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - } - else if(SF_STRSTR(gsmPara, "+CME ERROR")) - { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_NLST; - SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPNLST CME ERROR."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - - break; - - case CAMERA_OTA_FTP_QFTPGETBRN: - if(SF_STRSTR(gsmPara, "+QFTPGET:")) - { - if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) - { - SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"%s\"\r", CAM_OTA_DIR, SF_FW_FILE_NAME, SF_FW_FILE_NAME); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QFTPCLOSE; - } - else - { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_GET; - SLOGE((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE FAIL."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - - calltime = 0; - } - else if(SF_STRSTR(gsmPara, "+CME ERROR")) - { - location= CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_GET; - calltime = 0; - SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - else - { - time = 0; - calltime++; - - if(calltime > 150) - { - location= CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_GET; - calltime = 0; - SLOGE((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE TIMEOUT."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - } - - break; - - case CAMERA_OTA_FTP_QFTPCLOSE: - if(SF_STRSTR(gsmPara, "+QFTPGET:")) - { - if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) - { - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_QIDEACT; - } - else - { - location = CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_GET; - SLOGE((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE FAIL."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - - calltime = 0; - } - else if(SF_STRSTR(gsmPara, "+CME ERROR")) - { - location= CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_GET; - calltime = 0; - SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - else - { - time = 0; - calltime++; - appTimeDelayMs(800); - - if(calltime > 300) - { - location= CAMERA_OTA_FTP_QIDEACT; - errorCode = SF_OTA_ERROR_FTP_GET; - calltime = 0; - SLOGE((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE TIMEOUT."); - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - } - - break; - - case CAMERA_OTA_FTP_QIDEACT: - //if(SF_STRSTR(gsmPara, "OK")) - { - calltime = 0; - SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - sf_pdp_flg_set(0); - - if(errorCode == 0) - location = CAMERA_OTA_FTP_READSIZE; - else - location = CAMERA_OTA_FTP_END; - } - - break; - - case CAMERA_OTA_FTP_READSIZE: - if(SF_STRSTR(gsmPara, "OK")) - { - #if SF_4G_USB_NET_DOWNLOAD - SF_STRCPY(transfer->ServerIp, ftpIp); - SF_STRCPY(transfer->ServerPort, ftpPort); - //sf_url_convert(ftpUsername, transfer->ServerUsername); - //sf_url_convert(ftpPassword, transfer->ServerPassword); - SF_STRCPY(transfer->ServerUsername, ftpUsername); - SF_STRCPY(transfer->ServerPassword, ftpPassword); - SF_STRCPY(transfer->ServerFileDir, CAM_OTA_DIR); - SF_STRCPY(transfer->ServerFileName, SF_FW_CFG_FILE_NAME); - SF_STRCPY(transfer->ClientFilePath, SF_FW_CFG_FILE_PATH); - - if (sf_4g_usb_net_ftp_download(transfer) != 1) - { - printf("download cfg file err\n"); - SLOGE((SINT8 *)"download cfg file err\n"); - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - location = CAMERA_OTA_FTP_END; - break; - } - - SF_STRCPY(transfer->ServerFileName, SF_FW_FILE_NAME); - SF_STRCPY(transfer->ClientFilePath, SF_FW_FILE_PATH); - - if (sf_4g_usb_net_ftp_download(transfer) != 1) - { - printf("download brn file err\n"); - SLOGE((SINT8 *)"download brn file err\n"); - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - location = CAMERA_OTA_FTP_END; - } - else - { - sts = OTA_SUCCESS; - } - #else - SF_SPRINTF(gsmPara, "AT+QFLST=\"*\"\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_DOWNLOAD_CFG; - calltime = 0; - #endif - } - else if(SF_STRSTR(gsmPara,"ERROR")) - { - calltime++; - if(calltime < 6) - { - SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - appTimeDelayMs(1800); - sf_pdp_flg_set(0); - } - else - { - location = CAMERA_OTA_FTP_END; - calltime=0; - errorCode = SF_OTA_ERROR_QIDEACT; - SLOGE((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times"); - SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - } - } - - break; - - case CAMERA_OTA_FTP_DOWNLOAD_CFG: - if(SF_STRSTR(gsmPara, "+QFLST:")) - { - UINT8 str[30] = {0}; - - SF_SPRINTF(str, "+QFLST: \"%s\",", SF_FW_CFG_FILE_NAME); - pTemp1 = SF_STRSTR(gsmPara, str); - SF_SPRINTF(str, "+QFLST: \"%s\",", SF_FW_FILE_NAME); - pTemp2 = SF_STRSTR(gsmPara, str); - - if((pTemp1 != NULL) && (pTemp2 != NULL)) - { - pTemp1 = pTemp1+28; - pTemp2 = pTemp2+28; - - pTemp3 = SF_STRTOK(pTemp1, "\r\n"); - pTemp4 = SF_STRTOK(pTemp2, "\r\n"); - - printf("pTemp1=%s\n", pTemp1); - printf("pTemp2=%s\n", pTemp2); - printf("pTemp3=%s\n", pTemp3); - printf("pTemp4=%s\n", pTemp4); - cfgFileSize = atoi((const char *)pTemp3); - brnFileSize = atoi((const char *)pTemp4); - - printf("cfgSzie=%d\n", cfgFileSize); - printf("brnSzie=%d\n", brnFileSize); - - if((brnFileSize < cfgFileSize) || (brnFileSize == 0)) - { - SLOGE((SINT8 *)"CAMERA_OTA_FTP QFLST FILE SIZE ERROR."); - location = CAMERA_OTA_FTP_END; - errorCode = OTA_ERROR_FTP_DOWNLOAD; - break; - } - - DownloadFlieBuff = sp5kMalloc(brnFileSize + 300); - - if(DownloadFlieBuff != NULL) - { - DownloadFileSize = cfgFileSize; - DownloadIndex = 0; - printf("download %s to DSP size=%d\n", SF_FW_CFG_FILE_NAME, DownloadFileSize); - DownloadFrom4gFlag = TRUE; - SF_SPRINTF(gsmPara, "AT+QFDWL=\"%s\"\r", SF_FW_CFG_FILE_NAME); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_DOWNLOAD_BRN; - } - else - { - printf("memory malloc fial\n"); - SLOGE((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG NO MEMORY ERROR."); - location = CAMERA_OTA_FTP_END; - errorCode = OTA_ERROR_FTP_DOWNLOAD; - } - } - else - { - SLOGE((SINT8 *)"CAMERA_OTA_FTP QFLST NULL ERROR."); - location = CAMERA_OTA_FTP_END; - errorCode = OTA_ERROR_FTP_DOWNLOAD; - } - } - else if(SF_STRSTR(gsmPara, "+CME ERROR")) - { - SLOGE((SINT8 *)"OTA_FTP QFOPEN CME ERROR."); - location = CAMERA_OTA_FTP_END; - errorCode = OTA_ERROR_FTP_DOWNLOAD; - } - - break; - - case CAMERA_OTA_FTP_DOWNLOAD_BRN: - - if(rxFileSize == DownloadIndex) - { - *(DownloadFlieBuff + rxFileSize) = '\0'; - printf("rxFileSize=%d\n", rxFileSize); - DownloadFrom4gFlag = FALSE; - DownloadIndex = 0; - calltime = 0; - - pTemp = SF_STRSTR(DownloadFlieBuff, "CONNECT"); - - if(pTemp == NULL) - { - printf("download cfg file err\n"); - SLOGE((SINT8 *)"download cfg file err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - break; - } - - pTemp1 = pTemp + 9; - pTemp2 = pTemp1 + DownloadFileSize + 2; - - //pTemp = DownloadFlieBuff + DownloadFileSize + 1; - - printf("CAMERA_OTA_FTP_DOWNLOAD_BRN:pTemp2=%s", pTemp2); - - pTemp3 = SF_STRSTR(pTemp2, "+QFDWL: "); - - if(pTemp3 == NULL) - { - printf("download cfg file err\n"); - SLOGE((SINT8 *)"download cfg file err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - break; - } - - pTemp3 = pTemp3 + 8; - pTemp4 = SF_STRTOK(pTemp3, ","); - fileSize = atoi((const char *)pTemp4); - - if(DownloadFileSize != fileSize) - { - printf("download cfg file size err\n"); - SLOGE((SINT8 *)"download cfg file size err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - break; - } - - ret = sf_save_file(SF_FW_CFG_FILE_PATH, pTemp1, DownloadFileSize); - - if(ret == SUCCESS) - { - DownloadFileSize = brnFileSize; - printf("download %s to DSP size=%d\n", SF_FW_FILE_NAME, DownloadFileSize); - DownloadIndex = 0; - rxFileSize = 0; - DownloadFrom4gFlag = TRUE; - SF_SPRINTF(gsmPara, "AT+QFDWL=\"%s\"\r", SF_FW_FILE_NAME); - ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); - location = CAMERA_OTA_FTP_SAVE_BRN; - } - else - { - printf("save cfg file err\n"); - SLOGE((SINT8 *)"save cfg file err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - } - } - else - { - rxFileSize = DownloadIndex; - time = 0; - calltime++; - printf("rxFileSize=%d calltime=%d\n", rxFileSize, calltime); - - if(calltime > 300) - { - DownloadFrom4gFlag = FALSE; - DownloadIndex = 0; - SLOGE((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG TO DSP TIMEOUT."); - location= CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - calltime = 0; - } - } - - break; - - case CAMERA_OTA_FTP_SAVE_BRN: - if(rxFileSize == DownloadIndex) - { - *(DownloadFlieBuff + rxFileSize) = '\0'; - printf("rxFileSize=%d\n", rxFileSize); - DownloadFrom4gFlag = FALSE; - DownloadIndex = 0; - calltime = 0; - pTemp = SF_STRSTR(DownloadFlieBuff, "CONNECT"); - - if(pTemp == NULL) - { - printf("download brn file err\n"); - SLOGE((SINT8 *)"download brn file err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - break; - } - - pTemp1 = pTemp + 9; - pTemp2 = pTemp1 + DownloadFileSize + 2; - - pTemp3 = SF_STRSTR(pTemp2, "+QFDWL: "); - - if(pTemp3 == NULL) - { - printf("download brn file err\n"); - SLOGE((SINT8 *)"download brn file err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - break; - } - - pTemp3 = pTemp3 + 8; - pTemp4 = SF_STRTOK(pTemp3, ","); - fileSize = atoi((const char *)pTemp4); - - if(DownloadFileSize != fileSize) - { - printf("download brn file size err\n"); - SLOGE((SINT8 *)"download brn file size err\n"); - location = CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - break; - } - - ret = sf_save_file(SF_FW_FILE_PATH, pTemp1, DownloadFileSize); - - if(ret == SUCCESS) - { - sts = OTA_SUCCESS; - } - else - { - printf("save brn file err\n"); - SLOGE((SINT8 *)"save brn file err\n"); - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - location = CAMERA_OTA_FTP_END; - } - } - else - { - rxFileSize = DownloadIndex; - time = 0; - calltime++; - printf("rxFileSize=%d calltime=%d\n", rxFileSize, calltime); - appTimeDelayMs(800); - - if(calltime > 240) - { - DownloadFrom4gFlag = FALSE; - DownloadIndex = 0; - SLOGE((SINT8 *)"CAMERA_OTA_FTP S BRN TO DSP TIMEOUT."); - location= CAMERA_OTA_FTP_END; - errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; - calltime = 0; - } - } - - break; - - case CAMERA_OTA_FTP_END: - sts = OTA_FAIL; - break; + sf_set_fw_update(0); } } - if(DownloadFlieBuff != NULL) - sp5kFree(DownloadFlieBuff); - - if(transfer != NULL) - sp5kFree(transfer); - - if(sf_is_enough_power_to_update() == FALSE) - { - appBtnEnable(BTN_ALL); - - return sts; - } - - sf_mcu_wdg_set(5); - - if(sts == OTA_SUCCESS) - { - if(sf_camera_sd_update() != SUCCESS) - { - sts = OTA_UPDATED_ERROR; - } - } - else - { - if(errorCode == SF_OTA_ERROR_FTP_NLST) - { - sts = OTA_NOUPDATE; - sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); - } - else - { - sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); - } - } - - printf("Camera OTA Update sts:%d errorCode:%d\n", sts, errorCode); - - printf("sf_camera_ota_ftp e\n"); - - appTimeDelayMs(2000); - - appBtnEnable(BTN_ALL); - - if(sts == OTA_SUCCESS) - return SUCCESS; - #endif - return FAIL; + MLOGD("e\n"); + return ret; } - /************************************************* Function: sf_concentrated_ftp_send Description: ftp send. 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 546bc3c91..532f2fb0b 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -2340,7 +2340,7 @@ SINT32 sf_power_off_module_ota(void) { ret = sf_4g_module_ota_ftp();//need restart module - if(ret == OTA_UPDATED_ERROR || ret == OTA_SUCCESS || ret == OTA_VERTION_ERROR || ret == OTA_TIME_OUT) + //if(ret == OTA_UPDATED_ERROR || ret == OTA_SUCCESS || ret == OTA_VERTION_ERROR || ret == OTA_TIME_OUT) { if(CameraCmd.setPara) pPara_sms_saved->NetWorkNeedSearch = 3; @@ -2351,7 +2351,7 @@ SINT32 sf_power_off_module_ota(void) } } } - return 0; + return ret; } diff --git a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c index 40aad9f30..09a678f40 100644 --- a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c +++ b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c @@ -94,8 +94,8 @@ BOOL sf_Check_OTA(void) char *pStrOtsOk = "ota_flag=0x1"; BOOL ret = FALSE; - system("cat /proc/cmdline > /tmp/ota.txt"); - fp = fopen("/tmp/ota.txt","r"); + system("cat /proc/cmdline > /tmp/sf_ota.txt"); + fp = fopen("/tmp/sf_ota.txt","r"); if(fp == NULL){ return FALSE; }