域格ASR平台cat1模块FTP上传、下载

文章目录

  • FTP通信协议介绍
  • [域格ASR平台cat1模块 FTP 核心指令](#域格ASR平台cat1模块 FTP 核心指令)
  • [实战示例:完整 FTP 上传、下载流程](#实战示例:完整 FTP 上传、下载流程)
    • [1. 确认模块注册状态](#1. 确认模块注册状态)
    • [2. 配置并登录FTP服务器](#2. 配置并登录FTP服务器)
    • [3. 选定目录往FTP服务器上传文件](#3. 选定目录往FTP服务器上传文件)
    • [4. 从FTP服务器下载并读取数据](#4. 从FTP服务器下载并读取数据)
    • [5. 退出FTP服务器](#5. 退出FTP服务器)

FTP通信协议介绍

FTP(File Transfer Protocol,文件传输协议)是一种用于在网络设备间传输文件的标准协议,核心作用是实现客户端与 FTP 服务器之间的文件上传、下载、目录管理等操作。

其中,客户端可以是 PC端软件、通信模块(如 域格ASR平台cat1 4G模块YM310 A09)等。

域格ASR平台cat1模块 FTP 核心指令

AT指令 功能说明
AT+QFTPCFG FTP/FTPS 全局配置:账号、密码、传输模式、二进制 / ASCII、SSL 开关、超时、PDP 上下文 ID
AT+QFTPOPEN 连接 FTP/FTPS 服务器(FTP 默认 21,FTPS 通常为 990)
AT+QFTPPWD 查询当前远端目录
AT+QFTPCWD 切换 FTP 远端工作目录
AT+QFTPSIZE 查询服务器指定文件字节大小
AT+QFTPPUT 文件上传(COM 口实时上传 / 本地 UFS/SD 文件上传,支持分段续传)
AT+QFTPGET 文件下载(COM 口输出 / 保存模组本地存储)
AT+QFTPCLOSE 退出 FTP 服务器,断开控制链路

AT手册外指令说明

复制代码
AT+QFTPPUT=<file_name>,<local_name>,<startpos>,<uploadlen>,<beof>

<file_name> 字符串类型。FTP(S)服务器文件名称。最大长度为 255 字节。
<local_name> 字符串类型。本地文件名称。最大长度为 255 字节。

若该值为"COM:",将在 COM口输出数据。否则,数据将被保存至 UFS 或 SD 卡。文件上传成功后,可通过AT+QFDEL 删除。
<startpos> 整型。上传文件的起始位置。默认值:0。

若指定和,则 表示继续上传到同一文件的数据位置。单位:字节。
<uploadlen> 整型。上传的数据长度。

仅当<local_name>为"COM:"时有效。

当通过 COM 口上传的数据长度达到时,模块将退出数据模式。单位:字节。
<beof> 整型。上传的数据是否是最后一包。

仅当<local_name>为"COM:"时有效。

0 不是最后一包数据。当数据长度达到<uploadlen>,模块将退出数据模式并响应+QFTPPUT: 0,<transferlen>。此时,请勿断开数据连接,因为剩余的数据需要上传到 FTP 上的同一文件

1 最后一包数据。当数据长度达到<uploadlen>,模块将退出数据模式,此时可关闭数据连接,将响应+QFTPPUT: 0,<transferlen>
<transferlen> 整型。成功传输数据的长度。单位:字节。
<err> 错误码。
<protocol_error> 整型。表示 FTP(S)服务器原始错误码。该错误码在 FTP(S)协议中定义,仅供参考。

实战示例:完整 FTP 上传、下载流程

1. 确认模块注册状态

AT+CPIN?

------ 应返回ready。若不是,需要检查SIM卡接触情况。

AT+CPIN? 错误码

+CME ERROR: 10 ------ 卡不在位

+CME ERROR: 14 ------ SIM busy

AT+CSQ

------ 一般要在10以上。若不是,需要检查天线。

AT^SYSINFO

------ 第一位是2,第二位是2或3(即数据域要注册上)。若不是,需要核对SIM卡状态。

AT+CEREG?

------ 第二位参数应返回1或5,如0,1 或 0,5。若不是,需要核对SIM卡状态。

2. 配置并登录FTP服务器

绑定FTP承载标识(与SAPBR的cid保持一致,默认1)

设置FTP用户名、密码

AT+QFTPCFG="account","xxxx","xxxx" // 替换为实际用户名、密码

------ 应返回OK,表示配置成功

登录FTP服务器

AT+QFTPOPEN="122.51.xxx.xx",21 // 替换为实际服务器IP

------ 应返回OK,并上报 +QFTPOPEN: 0,230

3. 选定目录往FTP服务器上传文件

获取FTP服务器端上当前目录

AT+QFTPPWD

OK // 回复OK后,模块继续上报当前目录,如

+QFTPPWD: 0,/

若需要更换目录,使用AT+QFTPCWD切换到需要的目录

选定目录后开始上传文件(示例为通过COM口将136字节数据上传到服务器保存为FTPPUTGET.txt)

+QFTPPUT="FTPPUTGET.txt","COM:",0,136,1

CONNECT // 模块回复CONNECT之后可以输入文件数据

+QFTPURC:1 // 输入完成后上报标记

OK

+QFTPPUT: 0,136 // 上传成功后模块上报结果及字节数

4. 从FTP服务器下载并读取数据

查询需要下载的文件大小

AT+QFTPSIZE="FTPPUTGET.txt"

OK

+QFTPSIZE: 0,136 // 模块回复文件字节数

读取文件数据(示例为直接读取到COM口)

AT+QFTPGET="FTPPUTGET.txt","COM:"

CONNECT // 模块回复CONNECT后吐出文件内容

+QFTPURC:1//完成标记

OK

+QFTPGET: 0,136 // 模块上报结果及读取的字节数

5. 退出FTP服务器

AT+QFTPCLOSE

OK // 模块回复OK后,上报相关URC

+QFTPCLOSE: 0,0

+QFTPURC:0

相关推荐
贝锐4 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
IT大白鼠5 小时前
MSF二次开发与自定义模块编写
网络·安全·web安全·msf
Julien20046 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
天远Date Lab7 小时前
零信任架构实战:基于天远双人婚姻评估查询构建自动化房产按揭联合审查网关
运维·人工智能·架构·自动化
kekekzt7 小时前
TCP协议的粘包问题介绍,IP分片,MTU,MSS,滑动窗口的概念及之间的关系
网络·网络协议·tcp/ip
2601_962074687 小时前
自己编译RustDesk,并将自建ID服务器和key信息写入客户端
运维·服务器
小张同学a.8 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
大模型丫丫8 小时前
Hermes Agent:轻量级智能体框架实战指南
大数据·运维·服务器
考虑考虑9 小时前
kubectl命令
运维·后端·自动化运维
NJCloud9 小时前
Docker 容器技术入门:部署、核心概念与基础命令
运维·docker·容器