域格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

相关推荐
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode9 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务