stm32_ota/USER/USER_FTP/user_ftp.c

125 lines
4.9 KiB
C
Raw Normal View History

2023-12-15 06:28:06 +00:00
#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) ;
}