基于ESP32-AT实现的FTP客户端功能(支持追加上传与分段下载)
一、功能描述
此功能是在官方开源的esp32 at源码基础上二次开发,将 ftp client 功能添加至at 功能固件之中,然后以 at 形式实现指令式的ftp client功能,其中ftp client主要有两部分功能:数据追加上传、数据分段下载。使用方法请参考第三节介绍。
二、ftp client 功能相关指令
1、连接ftp服务器: AT+FTPLOGIN=“ip地址”,端口号,“用户名称”,“用户密码”
2、断开ftp服务器: AT+FTPLOGOUT
3、获取指定文件大小: AT+FTPSIZE=“文件路径”
4、写入指定文件数据(追加上传): AT+FTPPUT=“文件路径”,数据长度
5、读取指定文件数据(分段下载): AT+FTPGET=“文件路径”,文件起始地址,获取长度
三、使用方法及指令流程
3.1 ftp server测试工具的选择
数据分段下载,需要ftp server端支持 PASV模式(即被动模式),所以建议使用的ftp server测试工具选择 wing ftp server,在配置页面可以看到支持 pasv 模式。wing ftp server使用方法参考Wing FTP Server官方使用说明即可
3.2 ftp client 功能指令使用流程
上电打印信息:
3.2.1 设置WiFi为STA模式:AT+CWMODE=1
串口指令发送与响应:
3.2.2 连接指定ap:AT+CWJAP=“ap_name”,“ap_pass”
串口指令发送与响应:
3.2.3 连接ftp 服务器:AT+FTPLOGIN=“ip地址”,端口号,“用户名称”,“用户密码”
串口指令发送与响应:
3.2.4 获取指定文件大小:AT+FTPSIZE=“文件路径”
串口指令发送与响应:
查看文件属性验证获取的文件大小:
3.2.5 数据追加方式上传:AT+FTPPUT=“文件路径”,数据长度
追加数据前查看文件尾部数据:
串口指令发送与响应:
追加数据后查看文件尾部数据:
3.2.6 数据分段方式下载:AT+FTPGET=“文件路径”,文件起始地址,获取长度
例1:获取文件从0地址开始的50字节长度数据
串口指令发送与响应:
文件查看验证:
例2:获取文件从4096地址开始的50字节长度数据
指令发送与响应:
文件查看验证: