1.mem发图测试代码

This commit is contained in:
payton 2023-11-16 09:54:50 +08:00
parent 5df191f658
commit 95e8020192
4 changed files with 788 additions and 7 deletions

View File

@ -224,5 +224,6 @@ 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);
SINT32 sf_gps_send_ftp(void);
SINT32 sf_test_send_file_to_ftp(void);
#endif /*_SF_FTP_H_*/

View File

@ -90,6 +90,7 @@ void app_FileSend_start(void);
SINT32 app_t110(void);
SINT32 sf_app_to_cardv_capture(void);
SINT32 sf_module_reboot_reg_net(void);
SINT32 sf_restart_reg_net(void);
SINT32 sf_app_to_cardv_hd_ture(void);
int sf_check_eth0(void);
int sf_check_usb0(void);
@ -103,6 +104,7 @@ void app_RegisterNet_stop(void);
int sf_check_sd(void);
void sf_save_camera_gps_info(void);
void set_at_parament(void);
int sf_net_dns_ck(void);
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -18,6 +18,7 @@
* Description: creat
**************************************************************************/
#include "NvtUser/NvtUser.h"
#include "kwrap/nvt_type.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
@ -50,6 +51,7 @@ extern "C" {
#include "sf_ledmng.h"
#include "ftp_manager.h"
#include "sf_system.h"
#include "curl/curl.h"
/**************************************************************************
* C O N S T A N T S *
**************************************************************************/
@ -1607,6 +1609,12 @@ SINT32 sf_concentrated_ftp_send(void)
SF_CONCENTRATED_RE://Try again once
ret1 = sf_ftp_send(ftpFileName, filePath, timeout);
if(CURLE_OPERATION_TIMEDOUT == ret1)
{
NET_SLOGE("CURLE_OPERATION_TIMEDOUT error\n");
sf_restart_reg_net();
}
if(SF_SUCCESS != ret1)
{
printf("%s:%d err ret: [0x%08X] ftpFileName:%s filePath:%s\n", __FUNCTION__, __LINE__, ret, ftpFileName, filePath);
@ -1698,7 +1706,7 @@ SF_CONCENTRATED_END:
}
/*************************************************
Function: sf_concentrated_ftp_send
Function: sf_hd_ftp_send
Description: ftp send.
Input: 1:send pic/video. 2:send dr.
Output: N/A
@ -2306,6 +2314,721 @@ SINT32 sf_gps_send_ftp(void)
return ret2;
}
}
#if SF_NO_SD_SEND == ENABLE
/*************************************************
Function: sf_ftp_config
Description: send pic to ftp
Input: N/A
Output: N/A
Return: 0 SUCCESS, 1 error
Others: N/A
*************************************************/
SINT32 sf_test_ftp_config(UINT8 ssl, UINT8 GprsMode, int timeout)
{
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
SINT32 ret = SF_SUCCESS;
#if 1
FTP_SIM_E eFtpLocation = FTP_SIM_CGDCONT;
SINT32 ttyRet = 0;
UINT8 calltime = 0;
UINT16 time = 0;
UINT8 pdpIndex = 0;
pdpIndex = sf_get_pdp_index();
sf_gsm_para_buff_clear();
printf("[%s:%d]ssl=%d GprsMode=%d\n", __FUNCTION__, __LINE__, ssl, GprsMode);
while(sf_app_while_flag())
{
switch(eFtpLocation)
{
case FTP_SIM_CGDCONT:
eFtpLocation = FTP_SIM_NETOPEN;
if(strstr((const char *)pPara->Sim4gApn, APN_4G_VERIZON))
{
sprintf((char *)gsmPara, "AT+QICSGP=%d\r", pdpIndex);
eFtpLocation = FTP_SIM_QICSGP0;
}
else if(strstr((const char *)pPara->Sim4gApn, APN_4G_ATT))
{
sprintf((char *)gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", pdpIndex, pPara->Sim4gApn, pPara->Sim4gUsr, pPara->Sim4gPwd);
}
else
{
sprintf((char *)gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", pdpIndex, pPara->Sim4gApn, pPara->Sim4gUsr, pPara->Sim4gPwd);
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break;
case FTP_SIM_QICSGP0:
if(strstr((const char *)gsmPara, "OK"))
{
eFtpLocation = FTP_SIM_NETOPEN;
if(strstr((const char *)gsmPara, "+QICSGP: 0") || strstr((const char *)gsmPara, "+QICSGP: 1,\"\""))
{
sprintf((char *)gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", pdpIndex, pPara->Sim4gApn, pPara->Sim4gUsr, pPara->Sim4gPwd);
}
else
{
eFtpLocation = FTP_SIM_CFTPSSTART;
sprintf((char *)gsmPara, "AT+QIACT=%d\r", pdpIndex);
calltime = 0;
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case FTP_SIM_NETOPEN:
#if SF_TEST_ERROR_CODE
sf_test_code_err(eFtpLocation, "AT TIMEOUT TEST");
#endif
if(strstr((const char *)gsmPara, "OK"))
{
eFtpLocation = FTP_SIM_CFTPSSTART;
sprintf((char *)gsmPara, "AT+QIACT=%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
calltime = 0;
}
else if(strstr((const char *)gsmPara, "ERROR"))
{
ret = SF_FTP_ERROR_AT_ERROR;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QICSGP,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_END_CONFIG;
}
else
{
calltime++;
if(calltime < 10)
{
sf_sleep_ms(200);
}
else if(calltime > MAX_CALL_TIMES)
{
ret = SF_FTP_ERROR_AT_TIMEOUT;
printf("[%s:%d]FTP Configure Timeout!\n", __FUNCTION__, __LINE__);
sprintf((char *)logStr, "[%s:%d]FTP CFG Timeout,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_END_CONFIG;
}
}
break;
case FTP_SIM_CFTPSSTART:
#if SF_TEST_ERROR_CODE
sf_test_code_err(eFtpLocation, "ERROR: ");
#endif
if(strstr((const char *)gsmPara, "OK"))
{
eFtpLocation = FTP_SIM_CFTPSSINGLEIP;
sprintf((char *)gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
calltime = 0;
}
else if(strstr((const char *)gsmPara, "ERROR"))
{
calltime++;
if(calltime < 6)
{
sprintf((char *)gsmPara, "AT+QIACT=%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
sf_sleep_ms(800);
}
else
{
ret = SF_FTP_ERROR_AT_ACTIVE;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QIACT Over Try 6 Times,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_END_CONFIG;
}
}
break;
case FTP_SIM_CFTPSSINGLEIP:
if(strstr((const char *)gsmPara, "OK"))
{
if((0 == pPara->FtpSwitch))
{
eFtpLocation = FTP_SIM_CCHSTART;
sprintf((char *)gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", pPara->FtpUsr, pPara->FtpPwd);
}
else if((2 == pPara->FtpSwitch))//ftps
{
eFtpLocation = FTP_SIM_QSSLCFG0;
sprintf((char *)gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", pPara->FtpsUsr, pPara->FtpsPwd);
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case FTP_SIM_QSSLCFG0:
sprintf((char *)gsmPara, "AT+QFTPCFG=\"restenable\",0\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_QSSLCFG1;
break;
case FTP_SIM_QSSLCFG1:
sprintf((char *)gsmPara, "AT+QFTPCFG=\"ssltype\",2\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_QSSLCFG2;
break;
case FTP_SIM_QSSLCFG2:
sprintf((char *)gsmPara, "AT+QFTPCFG=\"sslctxid\",1\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_QSSLCFG3;
break;
case FTP_SIM_QSSLCFG3:
sprintf((char *)gsmPara, "AT+QSSLCFG=\"ciphersuite\",1,0xffff\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_QSSLCFG4;
break;
case FTP_SIM_QSSLCFG4:
sprintf((char *)gsmPara, "AT+QSSLCFG=\"seclevel\",1,0\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_QSSLCFG5;
break;
case FTP_SIM_QSSLCFG5:
sprintf((char *)gsmPara, "AT+QSSLCFG=\"sslversion\",1,4\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_CFTPLOGIN;
break;
case FTP_SIM_CCHSTART:
sprintf((char *)gsmPara, "AT+QFTPCFG=\"filetype\",0\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_CFTPSCFG;
break;
case FTP_SIM_CFTPSCFG:
sprintf((char *)gsmPara, "AT+QFTPCFG=\"transmode\",1\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_CFTPLOGIN;
break;
case FTP_SIM_CFTPLOGIN:
if(strstr((const char *)gsmPara, "OK"))
{
eFtpLocation = FTP_SIM_EXIT;
printf("[%s:%d]log ftp\n", __FUNCTION__, __LINE__);
if((0 == pPara->FtpSwitch))
{
sprintf((char *)gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", pPara->FtpIp, pPara->FtpPort);
}
else if((2 == pPara->FtpSwitch))
{
sprintf((char *)gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", pPara->FtpsIp, pPara->FtpsPort);
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
calltime = 0;
}
break;
case FTP_SIM_EXIT:
#if SF_TEST_ERROR_CODE
sf_test_code_err(eFtpLocation, "QFTPOPEN TEST");
#endif
if(strstr((const char *)gsmPara, "+QFTPOPEN:"))
{
if(strstr((const char *)gsmPara, "+QFTPOPEN: 0"))
{
goto SF_FTP_END_CONFIG;
}
else //+CFTPSSTART: <errcode>
{
ret = SF_FTP_ERROR_OPEN;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPOPEN Error,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_END_CONFIG;
}
}
else if(strstr((const char *)gsmPara, "ERROR"))
{
ret = SF_FTP_ERROR_OPEN;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPOPEN,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_END_CONFIG;
}
else
{
calltime++;
sf_sleep_ms(800);
if(calltime > 30)
{
calltime = 0;
ret = SF_FTP_ERROR_TERM;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPOPEN Timeout,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_END_CONFIG;
}
}
break;
default:
break;
}
sf_gsm_para_buff_clear();
sf_hal_ttyusb2_read(gsmPara, 200);
printf("eFtpLocation=%d,time=%d\n", eFtpLocation, time);
if((gsmPara[0] != '\0') && (FTP_SIM_EXIT != eFtpLocation) && (FTP_SIM_CCHSTART != eFtpLocation) && (FTP_SIM_QSSLCFG0 != eFtpLocation))
{
SLOGI("gsmPara:%s", gsmPara);
}
time++;
if(time > 800)
{
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.", __FUNCTION__, __LINE__);
printf("%s,GprsMode=%d\n", logStr, pPara->GprsMode);
SLOGE(logStr);
time = 0;
ret = SF_FTP_ERROR_SEND_TIMEOUT;
goto SF_FTP_END_CONFIG;
}
}
SF_FTP_END_CONFIG:
printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret);
if(SF_SUCCESS != ret){
sf_sys_status_led_set(SF_LED_SYS_STATE_SEND_FAIL);
}
FtpOpenOk = ret;
return ret;
#endif
}
/*************************************************
Function: sf_ftp_send
Description: send pic to ftp
Input: N/A
Output: N/A
Return: 0 SUCCESS, 1 error
Others: N/A
*************************************************/
SINT32 sf_test_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, int timeout)
{
#if 1
SINT32 ret = SF_SUCCESS;
FTP_SIM_E eFtpLocation = FTP_SIM_CFTPSCFG;
SINT32 ttyRet = 0;
UINT8 calltime = 0;
UINT16 time = 0;
printf("[%s:%d]ftpFileName:%s,filePath:%s\n", __FUNCTION__, __LINE__, ftpFileName, filePath);
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
//sfPara_t *sfParam = sf_ParaGet();
sf_gsm_para_buff_clear();
while(sf_app_while_flag())
{
switch(eFtpLocation)
{
case FTP_SIM_CFTPSCFG:
eFtpLocation = FTP_SIM_JPG;
sprintf((char *)gsmPara, "AT+QFTPPUT=\"%s\",\"%s\",0\r", ftpFileName, filePath);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break;
case FTP_SIM_JPG:
#if SF_TEST_ERROR_CODE
sf_test_code_err(eFtpLocation, "TIMEOUT TEST");
#endif
if(strstr((const char *)gsmPara, "+QFTPPUT:") || strstr((const char *)gsmPara, "PUT:"))
{
#if SF_TEST_ERROR_CODE
sf_test_code_err(FTP_SIM_CFTPSCFG, "+QFTPPUT: 1");
#endif
if(strstr((const char *)gsmPara, "+QFTPPUT: 0") || strstr((const char *)gsmPara, "PUT: 0,"))
{
if(sf_get_mode_flag() == 0) //auto mode
{
if(pPara->CamMode != SF_CAM_MODE_VIDEO)
{
sendPicSuccessFlag = 1;
}
else
{
sendVideoSuccessFlag = 1;
}
}
goto SF_FTP_SEND_END;
}
else
{
ret = SF_FTP_ERROR_SEND;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPPUT Error,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
printf("%s", logStr);
goto SF_FTP_SEND_END;
}
}
else if(strstr((const char *)gsmPara, "ERROR"))
{
ret = SF_FTP_ERROR_SEND;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPPUT Error,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
printf("%s", logStr);
goto SF_FTP_SEND_END;
}
else
{
calltime++;
sf_sleep_ms(800);
if(calltime > (timeout + 10))
{
calltime = 0;
ret = SF_FTP_ERROR_SEND_TIMEOUT;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPPUT Timeout,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
printf("%s", logStr);
goto SF_FTP_SEND_END;
}
}
break;
default:
break;
}
sf_gsm_para_buff_clear();
sf_hal_ttyusb2_read(gsmPara, 200);
if(gsmPara[0] != '\0')
{
//printf("%s:%d %d \n%s\n", __FUNCTION__, __LINE__, eFtpLocation, gsmPara);
SLOGI(" %d \n%s\n", eFtpLocation, gsmPara);
}
time++;
if(time > 800)
{
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.", __FUNCTION__, __LINE__);
printf("%s,GprsMode=%d\n", logStr, pPara->GprsMode);
SLOGE(logStr);
time = 0;
ret = SF_FTP_ERROR_SEND_TIMEOUT;
goto SF_FTP_SEND_END;
}
}
SF_FTP_SEND_END:
printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret);
return ret;
#endif
}
/*************************************************
Function: sf_ftp_send
Description: send pic to ftp
Input: N/A
Output: N/A
Return: 0 SUCCESS, 1 error
Others: N/A
*************************************************/
SINT32 sf_test_ftp_stop(UINT8 ssl, UINT8 GprsMode)
{
#if 1
SINT32 ret = SF_SUCCESS;
FTP_SIM_E eFtpLocation = FTP_SIM_CFTPSLOGOUT;
SINT32 ttyRet = 0;
UINT8 calltime = 0;
UINT16 time = 0;
UINT8 pdpIndex = 0;
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
pdpIndex = sf_get_pdp_index();
sf_gsm_para_buff_clear();
printf("%s:%d start ssl:%d GprsMode:%d\n", __FUNCTION__, __LINE__, ssl, GprsMode);
while(sf_app_while_flag())
{
switch(eFtpLocation)
{
case FTP_SIM_CFTPSLOGOUT:
eFtpLocation = FTP_SIM_CCHSTOP;
sprintf((char *)gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break;
case FTP_SIM_CCHSTOP:
#if SF_TEST_ERROR_CODE
sf_test_code_err(eFtpLocation, "QFTPCLOSE TIMEOUT TEST");
#endif
if(strstr((const char *)gsmPara, "OK"))
{
sprintf((char *)gsmPara, "AT+QIDEACT=%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_CFTPSSTOP;
}
else if(strstr((const char *)gsmPara, "ERROR"))
{
calltime++;
if(calltime < 3)
{
sprintf((char *)gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
sf_sleep_ms(400);
}
else
{
calltime = 0;
ret = SF_FTP_ERROR_LOGOUT;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QFTPCLOSE Try 3 Times,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
sprintf((char *)gsmPara, "AT+QIDEACT=%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_CFTPSSTOP;
}
}
else
{
calltime++;
sf_sleep_ms(800);
if(calltime > 60)
{
calltime = 0;
ret = SF_FTP_ERROR_LOGOUT_TIMEOUT;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+CFTPSLOGOUT Timeout,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
sprintf((char *)gsmPara, "AT+QIDEACT=%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eFtpLocation = FTP_SIM_CFTPSSTOP;
}
}
break;
case FTP_SIM_CFTPSSTOP:
#if SF_TEST_ERROR_CODE
sf_test_code_err(eFtpLocation, "ERROR");
#endif
if(strstr((const char *)gsmPara, "OK"))
{
goto SF_FTP_STOP_END;
}
else if(strstr((const char *)gsmPara, "ERROR"))
{
calltime++;
if(calltime < 6)
{
sprintf((char *)gsmPara, "AT+QIDEACT=%d\r", pdpIndex);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
sf_sleep_ms(400);
}
else
{
calltime = 0;
ret = SF_FTP_ERROR_QIDEACT;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QIDEACT Try 6 Times,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_STOP_END;
}
}
else
{
calltime++;
sf_sleep_ms(800);
if(calltime > 60)
{
calltime = 0;
ret = SF_FTP_ERROR_LOGOUT_TIMEOUT;
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]AT+QIDEACT Timeout,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
SLOGE(logStr);
goto SF_FTP_STOP_END;
}
}
break;
default:
break;
}
sf_gsm_para_buff_clear();
sf_hal_ttyusb2_read(gsmPara, 200);
if(gsmPara[0] != '\0')
{
//printf("eFtpLocation=%d,time=%d\ngsmPara:%s\n", eFtpLocation, time, gsmPara);
SLOGI("eFtpLocation=%d,time=%d\ngsmPara:%s", eFtpLocation, time, gsmPara);
}
time++;
if(time > 800)
{
SLOGE(gsmPara);
sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.", __FUNCTION__, __LINE__);
printf("%s,GprsMode=%d\n", logStr, pPara->GprsMode);
SLOGE(logStr);
time = 0;
ret = SF_FTP_ERROR_SEND_TIMEOUT;
goto SF_FTP_STOP_END;
}
}
SF_FTP_STOP_END:
printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret);
return ret;
#endif
}
/*************************************************
Function: sf send file to ftp
Description: ftp send.
Input: 1:send pic/video. 2:send dr.
Output: N/A
Return: 0:success; else:fail;
Others: N/A
*************************************************/
SINT32 sf_test_send_file_to_ftp(void)
{
SINT32 ret1 = SF_SUCCESS; //0:success; else:fail;
SINT32 ret2 = SF_SUCCESS; //0:success; else:fail;
UINT8 ssl = 0;
UINT8 gprsMode = 0;
int timeout = 120000;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
UINT8 ftpFileName[64] = { 0 };
UINT8 filePath[64] = { 0 };
MLOGD("start\n");
UINT8 CamNameStr[64] = {0};
char cameraID[64] = { 0 };
UINT8 tempPicSize = 0;
UINT8 piccount = 0;
UINT8 pic = 0;
UINT8 csqlevel = 0;
MLOGD("start\n");
sf_custom_str_get(CamNameStr);
sf_4G_signal_level_get(puiPara->NetGeneration,sf_get_cq_signal(),&csqlevel);
snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", puiPara->ModuleImei, sf_app_get_battery(), csqlevel, CamNameStr); /* DCF 8.3 naming rule */
printf("NetGeneration:%dG,tempPicSize=%d,piccount=%d,pic=%d\n", puiPara->NetGeneration, tempPicSize, piccount, pic);
sprintf((char *)ftpFileName, "%sMEMPHOTO.JPG", cameraID);
sprintf((char *)filePath, "UFS:MEMPHOTO.JPG");
printf("%s:%d ftpFileName:%s filePath:%s \n", __FUNCTION__, __LINE__, ftpFileName, filePath);
ssl = ((2 == puiPara->FtpSwitch) ? 1 : 0);
gprsMode = 0;//puiPara->GprsMode;
printf("[%s:%d] ssl:%d,GprsMode:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode);
ret1 = sf_test_ftp_config(ssl, gprsMode, timeout);
if(SF_SUCCESS == ret1)
{
ret1 = sf_test_ftp_send(ftpFileName, filePath, timeout);
}
if(ret1 != SF_FTP_ERROR_TERM)
{
ret2 = sf_test_ftp_stop(ssl, gprsMode);
}
MLOGD(" end ret1:[0x%08X],ret2:[0x%08X]\n", ret1, ret2);
if(ret1 != SF_SUCCESS)
{
return ret1;
}
else
{
FtpOpenOk = SUCCESS;
return ret2;
}
}
#endif
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -260,7 +260,7 @@ SINT32 sf_USB_net_init(void)
sleep(1);
}
}
sf_net_dns_ck();
return ret;
}
@ -1254,6 +1254,13 @@ SINT32 sf_file_send_auto(void) {
if(SF_FAILURE == sf_check_sd())
{
MLOGE("ERROR sf_check_sd\n");
#if SF_NO_SD_SEND == ENABLE
if( 0 == sf_usr_mem_photo_ch())
{
s32ret = sf_test_send_file_to_ftp();
return s32ret;
}
#endif
return SF_FAILURE;
}
@ -1348,9 +1355,13 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
UIMenuStoreInfo *pCustomerParam = sf_app_ui_para_get();
SF_STARTUP_TYPE_E startup = sf_poweron_type_get();
sf_log_Level_set(SF_LOG_LEVEL_DEBUG);
#if SF_NO_SD_SEND == ENABLE
if (sf_usb_IsInsert())
#else
if (sf_usb_IsInsert() ||
((0 == sf_in_card_exist()) && (SF_MCU_STARTUP_ONKEY != startup))) {
((0 == sf_in_card_exist()) && (SF_MCU_STARTUP_ONKEY != startup)))
#endif
{
return SF_SUCCESS;
}
@ -1943,6 +1954,23 @@ SINT32 sf_module_reboot_reg_net(void)
s32ret = sf_4G_register_net_manual(&stpfncallback);
//sf_share_mem_customer_down(1);
SF_APPCOMM_CHECK_RETURN(s32ret, s32ret);
set_at_parament();
s32ret = sf_USB_net_init();
return s32ret;
}
SINT32 sf_restart_reg_net(void)
{
SINT32 s32ret = 0;
SF_FN_PARAM_S stpfncallback = {0};
stpfncallback.pstParam = sf_customer_param_get();
stpfncallback.pstaticParam = sf_app_ui_para_get();
// stpfncallback.pstaticParam = sf_statistics_param_get();
stpfncallback.pfn_AT_instruction_exit = (void *)app_disconnect_4g_module;
s32ret = sf_4G_register_net_manual(&stpfncallback);
return s32ret;
}
@ -2223,18 +2251,22 @@ static int sf_is_sdc_mounted(void)
}
fclose(file);
return 1;
return 0;
}
int sf_check_sd(void)
{
UINT8 i = 0;
int ret = SF_SUCCESS;
if(0 == sf_in_card_exist())
{
NET_SLOGE("NO SD\r\n");
return SF_FAILURE;
}
if (sf_sd_status_get() != SF_SD_OK) {
ret = SF_FAILURE;
for (i = 0; i < 20; i++)
{
ret = sf_sd_status_get();
if (SF_SD_OK == ret)
if (SF_SD_OK == sf_sd_status_get())
{
ret = SF_SUCCESS;
MLOGI("SD\r\n");
@ -2308,6 +2340,29 @@ void sf_save_camera_gps_info(void)
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
}
int sf_net_dns_ck(void)
{
int result = system("ping -c 3 www.baidu.com");
if (result == -1) {
perror("Error calling system");
return EXIT_FAILURE;
} else if (WIFEXITED(result)) {
int exit_status = WEXITSTATUS(result);
if (exit_status == 0) {
printf("Ping command executed successfully.\n");
} else {
printf("Ping command failed with exit status %d.\n", exit_status);
}
} else {
printf("Ping command did not terminate normally.\n");
}
return EXIT_SUCCESS;
}
#ifdef __cplusplus
#if __cplusplus
}