125 lines
4.9 KiB
C
125 lines
4.9 KiB
C
|
#include "user_ftp.h"
|
|||
|
#include <stdlib.h>
|
|||
|
#include "syslib.h" //#define STR2(R) STR1(R)
|
|||
|
|
|||
|
/********************************************************************************
|
|||
|
* @file userftp.c
|
|||
|
* @author <EFBFBD><EFBFBD><EFBFBD>վű<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˾ Mr.Wang
|
|||
|
* @version V1.0.0
|
|||
|
* @date 11-Dec-2018
|
|||
|
* @brief <EFBFBD>ṩQuectelģ<EFBFBD><EFBFBD>EC20<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTPӲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
******************************************************************************
|
|||
|
* @attention
|
|||
|
* Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD>
|
|||
|
* contextID:<EFBFBD><EFBFBD>·ID
|
|||
|
* EC20ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·ID<EFBFBD><EFBFBD>Χ1~16<EFBFBD><EFBFBD>ÿһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>ƹ涨<EFBFBD><EFBFBD>FTPЭ<EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·ID<EFBFBD><EFBFBD><EFBFBD><EFBFBD>contextID=3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ftp<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
|
|||
|
*******************************************************************************/
|
|||
|
|
|||
|
/*****************************************
|
|||
|
*<EFBFBD>ڲ<EFBFBD>ʹ<EFBFBD>õij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
****************************************/
|
|||
|
#define FTP_CONTEXTID 3 //FTPĬ<50><C4AC>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD>·ͨ<C2B7><CDA8>ID <20><>CONTEXTID
|
|||
|
#define FTP_USERNAME "caiyu" //FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>½<EFBFBD>û<EFBFBD><C3BB><EFBFBD>
|
|||
|
#define FTP_PASSWORD "aa" //FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>½<EFBFBD><C2BD><EFBFBD><EFBFBD>
|
|||
|
#define FTP_FILETYPE bin //<2F>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>Ϊ.bin<69>ļ<EFBFBD>
|
|||
|
#define FTP_TRANSMODE passive //<2F><><EFBFBD><EFBFBD>ģʽΪ<CABD><CEAA><EFBFBD><EFBFBD>ģʽ
|
|||
|
#define FTP_RSTIMEOUT 90 //FTP<54><50>Ӧ<EFBFBD><D3A6>ʱʱ<CAB1>䣨<EFBFBD><E4A3A8>Χ20<32><30><EFBFBD><EFBFBD>180S<30><53><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>90S
|
|||
|
#define FTP_IP "58.23.31.118" //FTP Server<65><72>IP
|
|||
|
#define FTP_PORT 14002 //FTP Server<65><72>port
|
|||
|
#define FTP_DIRECTORY "/firmware" //<2F><><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>·<EFBFBD><C2B7> <20><><EFBFBD>磺<EFBFBD><E7A3BA>/ABM<42><4D>
|
|||
|
|
|||
|
FtpP_s sFtpBoot = {FTP_CONTEXTID, FTP_USERNAME, FTP_PASSWORD, FTP_FILETYPE,
|
|||
|
FTP_TRANSMODE, FTP_RSTIMEOUT, FTP_IP, FTP_PORT, FTP_DIRECTORY} ; //<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void SetAppFtpDir(FtpP_s *psFtp, char* newDir)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>FTP<EFBFBD><EFBFBD><EFBFBD>ʵĸ<EFBFBD>Ŀ¼
|
|||
|
**************************************************************************************************/
|
|||
|
void SetAppFtpDir(FtpP_s *psFtp, char* newDir)
|
|||
|
{
|
|||
|
memset(psFtp->ftpDirectory, 0, ACCOUNT_MAXLEN ) ;
|
|||
|
strcpy((char*)psFtp->ftpDirectory, newDir) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> SetAppFtpUsername(FtpP_s *psFtp, char* username)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>½FTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void SetAppFtpUsername(FtpP_s *psFtp, char* username)
|
|||
|
{
|
|||
|
memset(psFtp->userName, 0, ACCOUNT_MAXLEN ) ;
|
|||
|
strcpy((char*)psFtp->userName, username) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void SetAppFtpPassword(FtpP_s *psFtp, char* password)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>½FTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
void SetAppFtpPassword(FtpP_s *psFtp, char* password)
|
|||
|
{
|
|||
|
memset(psFtp->password, 0, ACCOUNT_MAXLEN ) ;
|
|||
|
strcpy((char*)psFtp->password, password) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> void SetAppFtpIP(FtpP_s *psFtp, char* ip)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>½FTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IP
|
|||
|
**************************************************************************************************/
|
|||
|
void SetAppFtpIP(FtpP_s *psFtp, char* ip)
|
|||
|
{
|
|||
|
memset(psFtp->ftpServerIP , 0, MAX_IP_LEN ) ;
|
|||
|
strcpy((char*)psFtp->ftpServerIP, ip) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> RunResult AppFtpInit(void)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>FTP<EFBFBD><EFBFBD><EFBFBD>á<EFBFBD>PDP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 runResult RunResultö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
RunResult AppFtpInit(void)
|
|||
|
{
|
|||
|
RunResult runResult = TIMEOUT ;
|
|||
|
runResult = Ftp_Config(&sFtpBoot) ; //FTP<54><50><EFBFBD><EFBFBD>
|
|||
|
if(RUNOK != runResult)
|
|||
|
return (runResult) ;
|
|||
|
|
|||
|
runResult = Ftp_PDP_Init(&sFtpBoot) ; //<2F><><EFBFBD><EFBFBD>ftp<74><70>·
|
|||
|
if(RUNOK != runResult)
|
|||
|
return (runResult) ;
|
|||
|
|
|||
|
runResult = Ftp_Login(&sFtpBoot) ; //<2F><>½FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(RUNOK != runResult)
|
|||
|
return (runResult) ;
|
|||
|
|
|||
|
runResult = Ftp_Set_Dir(&sFtpBoot) ; //<2F><><EFBFBD><EFBFBD>FTP<54><50><EFBFBD><EFBFBD>Ŀ¼
|
|||
|
return (runResult) ;
|
|||
|
}
|
|||
|
|
|||
|
/**************************************************************************************************
|
|||
|
* <EFBFBD><EFBFBD> <EFBFBD>ƣ<EFBFBD> RunResult AppFtpClose(void)
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>˳<EFBFBD>FTP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD>PDP
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
|
|||
|
* <EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
* @param1 runResult RunResultö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>н<EFBFBD><EFBFBD><EFBFBD>
|
|||
|
**************************************************************************************************/
|
|||
|
RunResult AppFtpClose(void)
|
|||
|
{
|
|||
|
RunResult runResult = TIMEOUT ;
|
|||
|
runResult = Ftp_Logout(&sFtpBoot) ; //<2F>˳<EFBFBD>FTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if(RUNOK != runResult)
|
|||
|
return (runResult) ;
|
|||
|
runResult = Deact_Context(sFtpBoot.contextId ) ; //<2F>ر<EFBFBD>PDP
|
|||
|
return (runResult) ;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|