使用M25或M26进行FTP文件下载的程序设计与实现

M25和M26都支持FTP下载的功能,最近做了使用FTP远程给固件升级的程序,用到了FTP功能,特此记录。

1、初始化FTP;

AT+QFTPCLOSE               //关闭已有的FTP链路
OK

+QFTPCLOSE:-1                //尚无链接就会报错
AT+QFDEL="RAM:*"        //清空M26模块内部的RAM区,用来保存数据
+CME ERROR: 4013        //已经清空就会报错
AT+QFTPUSER="name001"        //配置FTP用户名
OK
AT+QFTPPASS="123456"        //配置FTP密码
OK
AT+QFTPCFG=4,"/RAM/"        //配置FTP输出结果输出到RAM
OK

+QFTPCFG:0        //反馈配置成功
AT+QFTPPATH="/123450000000000UPL0000362/"        //配置要访问的路径
OK

+QFTPPATH:0 //反馈配置成功

2、连接FTP

AT+QFTPOPEN="212.103.207.139",7020        //以这个IP和端口为例

+QFTPOPEN:0        //连接FTP服务器成功.

3、查询要访问的文件长度

AT+QFTPSIZE="5.15.1.2.5"
OK

+QFTPSIZE:88752        //返回的文件长度值

4、将FTP文件下载到M26的RAM中

AT+QFTPGET="5.15.1.2.5",88752

+QFTPGET:88752        //反馈下载成功,实际下载文件长度 88752

5、关闭FTP连接

AT+QFTPCLOSE

6、打开RAM中的文件,获得文件句柄

AT+QFOPEN="RAM:5.15.1.2.5“

+QFOPEN: 15466496        //返回值为文件句柄

7、移动文件指针到准备下载的位置

AT+QFSEEK=15466496,0,0        //参数:文件句柄,偏移量,从文件开头偏移

8、读取指定长度的数据

AT+QFREAD=15466496,900        //参数:文件句柄,长度

CONNECT 900        //返回的数据长度,后面换行后紧跟数据,最后以OK结尾

111112222233333444445555566666...............12345

OK

9、关闭文件

AT+QFCLOSE=15466496        //关闭文件 参数为 句柄

总结:

M25或M26需要先将大文件下载到内部RAM,然后再从分包RAM中读取数据;由于单包无法校验,因此,只要有1个字节错误,整个文件校验就会出错,这也是FTP下载的缺点;

如果是小文件,可以直接从FTP读取,串口直接输出。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值