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 江苏九比特信息系统有限公司 Mr.Wang
|
||
* @version V1.0.0
|
||
* @date 11-Dec-2018
|
||
* @brief 提供Quectel模块EC20关于FTP硬件驱动程序
|
||
******************************************************************************
|
||
* @attention
|
||
* 约定基本名词如下:
|
||
* contextID:链路ID
|
||
* EC20模块链路ID范围1~16,每一个链路ID都会对应一个本地IP;。
|
||
* 本驱动强制规定,FTP协议只用一个链路ID(即contextID=3)用于ftp链路。
|
||
*******************************************************************************/
|
||
|
||
/*****************************************
|
||
*内部使用的常变量定义
|
||
****************************************/
|
||
#define FTP_CONTEXTID 3 //FTP默认使用的链路通道ID 即CONTEXTID
|
||
#define FTP_USERNAME "caiyu" //FTP服务器的登陆用户名
|
||
#define FTP_PASSWORD "aa" //FTP服务器的登陆密码
|
||
#define FTP_FILETYPE bin //文件类型为.bin文件
|
||
#define FTP_TRANSMODE passive //传输模式为被动模式
|
||
#define FTP_RSTIMEOUT 90 //FTP响应超时时间(范围20——180S),默认90S
|
||
#define FTP_IP "58.23.31.118" //FTP Server的IP
|
||
#define FTP_PORT 14002 //FTP Server的port
|
||
#define FTP_DIRECTORY "/firmware" //访问FTP服务器的默认路径 例如:“/ABM”
|
||
|
||
FtpP_s sFtpBoot = {FTP_CONTEXTID, FTP_USERNAME, FTP_PASSWORD, FTP_FILETYPE,
|
||
FTP_TRANSMODE, FTP_RSTIMEOUT, FTP_IP, FTP_PORT, FTP_DIRECTORY} ; //用户连接FTP的配置参数
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void SetAppFtpDir(FtpP_s *psFtp, char* newDir)
|
||
* 功能说明: 设置FTP访问的根目录
|
||
**************************************************************************************************/
|
||
void SetAppFtpDir(FtpP_s *psFtp, char* newDir)
|
||
{
|
||
memset(psFtp->ftpDirectory, 0, ACCOUNT_MAXLEN ) ;
|
||
strcpy((char*)psFtp->ftpDirectory, newDir) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: SetAppFtpUsername(FtpP_s *psFtp, char* username)
|
||
* 功能说明: 设置登陆FTP服务器的用户名
|
||
**************************************************************************************************/
|
||
void SetAppFtpUsername(FtpP_s *psFtp, char* username)
|
||
{
|
||
memset(psFtp->userName, 0, ACCOUNT_MAXLEN ) ;
|
||
strcpy((char*)psFtp->userName, username) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void SetAppFtpPassword(FtpP_s *psFtp, char* password)
|
||
* 功能说明: 设置登陆FTP服务器的用户名密码
|
||
**************************************************************************************************/
|
||
void SetAppFtpPassword(FtpP_s *psFtp, char* password)
|
||
{
|
||
memset(psFtp->password, 0, ACCOUNT_MAXLEN ) ;
|
||
strcpy((char*)psFtp->password, password) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: void SetAppFtpIP(FtpP_s *psFtp, char* ip)
|
||
* 功能说明: 设置登陆FTP服务器的IP
|
||
**************************************************************************************************/
|
||
void SetAppFtpIP(FtpP_s *psFtp, char* ip)
|
||
{
|
||
memset(psFtp->ftpServerIP , 0, MAX_IP_LEN ) ;
|
||
strcpy((char*)psFtp->ftpServerIP, ip) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: RunResult AppFtpInit(void)
|
||
* 功能说明: 对FTP配置、PDP激活、登录、设置默认路径
|
||
* 入口参数: 无
|
||
* 出口参数:
|
||
* @param1 runResult RunResult枚举类型变量,返回函数运行结果
|
||
**************************************************************************************************/
|
||
RunResult AppFtpInit(void)
|
||
{
|
||
RunResult runResult = TIMEOUT ;
|
||
runResult = Ftp_Config(&sFtpBoot) ; //FTP配置
|
||
if(RUNOK != runResult)
|
||
return (runResult) ;
|
||
|
||
runResult = Ftp_PDP_Init(&sFtpBoot) ; //激活ftp链路
|
||
if(RUNOK != runResult)
|
||
return (runResult) ;
|
||
|
||
runResult = Ftp_Login(&sFtpBoot) ; //登陆FTP服务器
|
||
if(RUNOK != runResult)
|
||
return (runResult) ;
|
||
|
||
runResult = Ftp_Set_Dir(&sFtpBoot) ; //设置FTP操作目录
|
||
return (runResult) ;
|
||
}
|
||
|
||
/**************************************************************************************************
|
||
* 名 称: RunResult AppFtpClose(void)
|
||
* 功能说明: 退出FTP服务器、关闭PDP
|
||
* 入口参数: 无
|
||
* 出口参数:
|
||
* @param1 runResult RunResult枚举类型变量,返回函数运行结果
|
||
**************************************************************************************************/
|
||
RunResult AppFtpClose(void)
|
||
{
|
||
RunResult runResult = TIMEOUT ;
|
||
runResult = Ftp_Logout(&sFtpBoot) ; //退出FTP服务器
|
||
if(RUNOK != runResult)
|
||
return (runResult) ;
|
||
runResult = Deact_Context(sFtpBoot.contextId ) ; //关闭PDP
|
||
return (runResult) ;
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|