FC41D&FCM100D&FCM740D&FLMx40D系列模块的 AT命令手册
介绍
本文档主要介绍移远通信FC41D、FCM100D、FCM740D和FLMx40D模块Wi-Fi、BLE、TCP/UDP、SSL、MQTT、HTTP(S)和GPIO相关的AT命令。
适用模块
适用模块:
| 模块系列 | 模块 |
|---|---|
| FC41D | |
| FCM100D | |
| FCM740D | |
| FLMx40D | FLM040D |
| FLM140D | |
| FLM240D | |
| FLM340D |
定义
<CR> 回车符。
<LF> 换行符。
<...> 参数名称。实际命令行中不包含尖括号。
[...] 可选参数或TA信息响应的可选部分。实际命令行中不包含方括号。若无特别说明,配置命令中的可选参数被省略时,将默认使用其之前已设置的值或其默认值。
[下划线] 参数的默认设置。
AT命令语句
前缀 AT 或 at 必须加在每个命令行的开头。输入 <CR> 将终止命令行。通常,命令后面跟随形式为 <CR><LF><response><CR><LF> 的响应。在本文档中表现命令和响应的表格中,省略了 <CR><LF> ,仅显示命令和响应。
模块实现的AT命令可以在语法上分为两类:基础类和扩展类,如下所列。
基础类
基础类AT命令的格式为AT<x><n>或AT&<x><n>,其中 <x> 是命令,<n> 是该命令的参数。以 ATE<n> 为例,DCE会根据 <n> 的取值确定是否将接收到的字符回显给DTE。若 <n> 为可选参数,则其被省略时将使用其默认值。
扩展类
扩展类AT命令可以在多种模式下运行,如下表所示。
AT命令类型:
| AT命令类型 | 语句 | 描述 |
|:-----|:-----|:-----|
|测试命令 | AT+<cmd>=? | 测试是否存在相应的命令,并返回有关其参数的类型、值或范围的信息。|
|查询命令 | AT+<cmd>? | 查询相应命令的当前参数值。|
|设置命令 | AT+<cmd>=<p1>[,<p2>[,<p3>[...]]] | 设置用户可定义的参数值。|
|执行命令 | AT+<cmd> | 返回特定的参数信息或执行特定的操作。|
可以用分号(;)将多个命令放在同一行。此时只有第一个命令带有AT前缀。命令可以是大写或小写。
输入AT命令时,可以忽略空格。但以下情况除外:
带引号的字符串内;
不带引号的字符串或数字参数内;
IP地址内;
在AT命令名称中的 =、? 或 =? 内。
输入AT命令时,至少需要一个回车符。换行符会被忽略,因此在输入时允许使用一个回车符/换行符对。
若只输入了AT标记,未携带命令,则会返回OK;若输入的是无效命令,则会返回ERROR。
对于可选参数,除非明确说明,否则需要一直输入到最后一个可选参数为止。
AT命令响应
当AT命令处理器处理完一条命令后,会返回OK、ERROR或 +CME ERROR: <err>,表示已经准备好接收新命令。在返回最终的OK,ERROR或 +CME ERROR: <err> 之前,会发送请求的响应消息。
以下是响应消息的格式:
<CR><LF>+CMD1: <parameters><CR><LF>
<CR><LF>OK<CR><LF>
或者
<CR><LF><parameters><CR><LF>
<CR><LF>OK<CR><LF>
AT示例声明
本文中的示例仅为方便用户了解AT命令的使用方法,不构成移远通信对终端流程设计的建议或意见,也不代表模块应被设置成相应示例中的状态。某些AT命令存在多个示例,这些示例之间不存在承接关系或连续性。AT命令示例中存在的URL、域名、IP地址、用户名/账号以及密码等(若有),仅为示意以供说明之用;实际使用时须根据实际情况进行修改。
AT命令描述
Wi-Fi相关AT命令详解
AT+QRST
该命令用于重启模块。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QRST |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
AT+QVERSION
该命令用于获取固件版本。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QVERSION |
+QVERSION: <version>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<version> |
字符串类型(无双引号)。模块固件版本号。 |
AT+QECHO
该命令用于启用或禁用回显。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QECHO=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用或禁用回显。 0 禁用 1 启用 |
AT+QURCCFG
该命令用于启用或禁用URC上报。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QURCCFG=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用或禁用URC上报。 0 禁用 1 启用 |
AT+QPING
该命令用于ping外部IP。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QPING=<IP> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<IP> |
字符串类型。外部IP地址。 |
AT+QGETIP
该命令用于获取模块IP相关信息。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QGETIP=<mode> |
+QGETIP: ip:<IP>,gate:<gate>,mask:<mask>,dns:<DNS>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<mode> |
字符串类型(无双引号)。Wi-Fi工作模式。 station 模块工作模式为STA ap 模块工作模式为AP |
<IP> |
字符串类型(无双引号)。模块的IP地址。 |
<gate> |
字符串类型(无双引号)。模块的网关地址。 |
<mask> |
字符串类型(无双引号)。模块的子网掩码。 |
<DNS> |
字符串类型(无双引号)。模块的DNS地址。 |
AT+QSETBAND
该命令用于设置串口波特率。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSETBAND=<baud_rate>[,<save>] |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效。
参数:
| 参数 | 描述 |
|---|---|
<baud_rate> |
整型。串口波特率;范围:2400 ~ 2000000;单位:bps。 |
<save> |
整型。省略该参数则保存波特率。 0 不保存波特率 1 保存波特率 |
AT+QWLANOTA
该命令用于对固件进行OTA升级。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QWLANOTA=<URL>[,<port>] |
OKor ERROR |
最大响应时间:120秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<URL> |
字符串类型(无双引号)。固件包存储在服务器上的地址。 |
<port> |
整型。端口号,默认值80。 |
AT+QLOWPOWER
该命令用于配置模块进入低功耗模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QLOWPOWER |
OKor ERROR |
最大响应时间:300毫秒
特性说明:进入低功耗模式后,Wi-Fi/BLE断开连接,设备唤醒后将继续执行代码。
AT+QDEEPSLEEP
该命令用于配置模块进入深休眠模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QDEEPSLEEP |
OKor ERROR |
最大响应时间:300毫秒
特性说明:唤醒后模块重启。
AT+QWLMAC
该命令用于获取模块的MAC地址。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QWLMAC |
+QWLMAC: <MAC>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<MAC> |
模块的MAC地址。格式为冒号分隔的十六进制。默认值:c8:47:8c:42:00:48。 |
AT+QAIRKISS
该命令用于启用或禁用AirKiss功能。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QAIRKISS=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用/禁用AirKiss功能。 0 禁用 1 启用 |
AT+QSTAST
该命令用于查询STA模式开启状态。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QSTAST |
+QSTAST: <state>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<state> |
字符串类型(无双引号)。STA模式开启状态。 STATION_DOWN 关闭 STATION_UP 开启 |
AT+QSTADHCP
该命令用于启用或禁用STA模式下DHCP服务进程。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSTADHCP=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用或禁用STA模式下DHCP服务进程。 0 禁用 1 启用 |
AT+QSTADHCPDEF
该命令用于启用或禁用STA模式下DHCP服务进程并保存配置。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSTADHCPDEF=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置自动保存。
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用或禁用STA模式下DHCP服务进程。 0 禁用 1 启用 |
AT+QSTASTATIC
该命令用于设置STA模式静态IP。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSTASTATIC=<IP>,<mask>,<gate>,<DNS> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<IP> |
字符串类型(无双引号)。STA模式静态IP地址。 |
<mask> |
字符串类型(无双引号)。模块的子网掩码。 |
<gate> |
字符串类型(无双引号)。模块的网关地址。 |
<DNS> |
字符串类型(无双引号)。模块的DNS地址。 |
AT+QSTASTOP
该命令用于禁用STA模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QSTASTOP |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
AT+QSOFTAP
该命令用于启用AP模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSOFTAP=<SSID>[,<key>] |
OKor ERROR |
最大响应时间:3300毫秒(开启加密热点)/300毫秒(开启无密码热点)
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<SSID> |
字符串类型(无双引号)。AP名称。范围:1 ~ 32;单位:字节。 |
<key> |
字符串类型(无双引号)。AP密钥。范围:8 ~ 63;单位:字节。省略该参数开启无密码热点。 |
AT+QAPSTATE
该命令用于查询AP模式开启状态。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QAPSTATE |
+QAPSTATE: <state>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<state> |
字符串类型(无双引号)。AP模式开启状态。 SOFTAP_DOWN 关闭 SOFTAP_UP 开启 |
AT+QAPGETLIST
该命令用于查询连接模块AP的STA信息。最多可连接2个STA。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QAPGETLIST |
[<num>: mac:<mac>, ip:<ip>][...]OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<num> |
整型。STA序号。 |
<mac> |
字符串类型(无双引号)。STA的MAC地址。 |
<ip> |
字符串类型(无双引号)。STA的IP地址。 |
AT+QAPSTATIC
该命令用于设置AP模式静态IP。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QAPSTATIC=<IP>,<mask>,<gate>,<DNS> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<IP> |
字符型类型(无双引号)。AP模式静态IP地址。 |
<mask> |
字符串类型(无双引号)。模块的子网掩码。 |
<gate> |
字符串类型(无双引号)。模块的网关地址。 |
<DNS> |
字符串类型(无双引号)。模块的DNS地址。 |
AT+QSOFTAPSTOP
该命令用于禁用AP模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QSOFTAPSTOP |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
AT+QSTAAPINFO
该命令用于连接AP热点进入STA模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSTAAPINFO=<SSID>[,<pwd>] |
OK+QSTASTAT: "WLAN_CONNECTED"+QSTASTAT: "GOT_IP"or ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<SSID> |
字符串类型(无双引号)。待连接AP热点名称。范围:1 ~ 32;单位:字节。若此参数值中包含","、";"、"="、"\"等特殊字符,需对这些字符进行转义处理。 |
<pwd> |
字符串类型(无双引号)。待连接AP热点密钥。范围:8 ~ 64;单位:字节。省略该参数连接无密码热点。若此参数值中包含","、";"、"="、"\"等特殊字符,需对这些字符进行转义处理。 |
AT+QSTAAPINFODEF
该命令用于连接热点进入STA模式,并保存热点信息。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSTAAPINFODEF=<SSID>[,<pwd>] |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置自动保存。
参数:
| 参数 | 描述 |
|---|---|
<SSID> |
字符串类型(无双引号)。待连接AP热点名称。范围:1 ~ 32;单位:字节。 |
<pwd> |
字符串类型(无双引号)。待连接AP热点密钥。范围:8 ~ 64;单位:字节。省略该参数连接无密码热点。 |
AT+QGETWIFISTATE
该命令用于当模块启用STA模式时,查询已连接热点信息。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QGETWIFISTATE |
+QGETWIFISTATE: ssid=<SSID>,bssid=<BSSID>,rssi=<RSSI>,channel=<channel>,cipher_type=<cipher_type>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<SSID> |
字符串类型。Wi-Fi热点名称。 |
<BSSID> |
字符串类型(无双引号)。Wi-Fi网卡MAC地址。 |
<RSSI> |
整型。Wi-Fi信号强度。 |
<channel> |
整型。STA模式下,模块与热点连接、通信的信道。 |
<cipher_type> |
字符串类型(无双引号)。加密类型。 |
AT+QWSCAN
该命令用于查询扫描到的热点信息。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QWSCAN |
+QWSCAN: <SSID>,<PSK_type>,<RSSI>,<BSSID>,<channel>[...]OKor ERROR |
最大响应时间:3秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<SSID> |
字符串类型。Wi-Fi热点名称。 |
<PSK_type> |
字符串类型(无双引号)。加密类型。 |
<RSSI> |
整型。Wi-Fi信号强度。 |
<BSSID> |
字符串类型(无双引号)。Wi-Fi网卡MAC地址。 |
<channel> |
整型。STA模式下,模块与热点连接、通信的信道。 |
AT+QWEBCFG
该命令用于启用或禁用Web配网功能。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QWEBCFG=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用或禁用Web配网功能。 0 禁用 1 启用 |
AT+QAPCFG
该命令用于设置AP的最大连接数量,开启AP前设置。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QAPCFG=? |
+QAPCFG: "linknum",(支持的<max_link_num>列表)OK |
| 设置命令 | AT+QAPCFG="linknum"[,<max_link_num>] |
若省略可选参数,则查询当前配置:+QAPCFG: "linknum",<max_link_num>OK若指定可选参数,则设置AP的最大连接数量: OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<max_link_num> |
整型。AP的最大连接数量。范围:1 ~ 2。 |
BLE相关AT命令详解
AT+QBLEINIT
该命令用于初始化BLE。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEINIT=<role>[,<auto_adv>] |
OKor ERROR |
| 查询命令 | AT+QBLEINIT? |
+QBLEINIT:<role>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<role> |
整型。初始化BLE。 0 未初始化 1 模块作为中心设备进行BLE初始化 2 模块作为外围设备进行BLE初始化。作为外围设备时,在BLE连接断开之后默认自动开启广播。若无需此功能,可在BLE初始化时发送AT+QBLEINIT=2,0关闭该功能 3 模块作为外围设备进行蓝牙配网 |
<auto_adv> |
整型。模块作为外围设备时,BLE连接断开后是否自动开启广播。 0 不开启广播 1 开启广播 |
AT+QBLEDEINIT
该命令用于关闭BLE。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QBLEDEINIT |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
AT+QBLEURC
该命令用于启用或禁用接收数据的URC提示。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEURC=<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<enable> |
整型。启用或禁用接收数据的URC提示。 0 禁用URC提示 1 启用URC提示。启用后,当模块收到对端数据时,将在串口输出数据前先输出URC +QBLERECV提示 2 启用URC提示。启用后,当模块收到对端数据时,将在串口输出数据前先输出URC +QBLERECV提示;当模块作为外围设备角色时,连接成功后上报对端信息输出URC +QBLEPEERRINFO提示 |
AT+QBLEADDR
该命令用于查询BLE设备地址。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QBLEADDR? |
+QBLEADDR:<BLE_addr>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<BLE_addr> |
字符串类型(无双引号)。BLE设备地址。48位地址以十六进制数串表示,如58:D3:91:01:02:03。 |
AT+QBLENAME
该命令用于设置BLE名称。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QBLENAME? |
+QBLENAME:<BLE_name>OKor ERROR |
| 设置命令 | AT+QBLENAME=<BLE_name> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<BLE_name> |
字符串类型(无双引号)。BLE名称。最大长度:25字节。 |
AT+QBLEADVPARAM
该命令用于模块作为外围设备时设置BLE广播参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEADVPARAM=<adv_int_min>,<adv_int_max> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<adv_int_min> |
整型。非定向广播及低占空比定向广播的最小广播间隔。 范围:0x0020 ~ 0x4000(对应的时间范围:20毫秒 ~ 10.24秒);默认值:0x0800(1.28秒);单位:timeslot(1 timeslot = 0.625毫秒)。 |
<adv_int_max> |
整型。非定向广播及低占空比定向广播的最大广播间隔。 范围:0x0020 ~ 0x4000(对应的时间范围:20毫秒 ~ 10.24秒);默认值:0x0800(1.28秒);单位:timeslot(1 timeslot = 0.625毫秒)。 |
备注
如需使用AT+QBLEADVPARAM配置广播参数,则必须在使用AT+QBLEADVSTART开始广播之前进行设置。
AT+QBLEADVDATA
该命令用于模块作为外围设备时设置BLE广播数据。

| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEADVDATA=<adv_data> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<adv_data> |
字符串类型(无双引号)。广播数据。由以下三个字段组成(即多个AD Structure组成),组成方式符合上图的报文格式,内容必须是十六进制的数串。 Length AD Structure的长度,包括AD Type和AD Data的长度,不包含Length本身的1字节。最大0x1e,即Data字段最大长度为30字节。 AD Type 该广播数据所属的类型,如功耗级别Tx Power Level(0x0A)、设备名称Local Name(0x09)、角色Le Role(0x1C)、服务标识Service UUIDs(0x16)等。对端扫描到广播后,可以根据AD Type判断出广播数据的意义。 AD Data 广播数据内容,采用大端字节顺序。 |
备注
关于AD Type的类型和含义取值,请参考BLE官方文档Core Specification 5.2([https://www.bluetooth.com/specifications/specs/core-specification/]{.underline})。
AT+QBLESRDATA
该命令用于模块作为外围设备时设置BLE扫描响应数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLESRDATA=<sr_data> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<sr_data> |
字符串类型(无双引号)。扫描响应数据。该参数与<adv_data>类似,由以下三个字段组成(即多个AD Structure组成)。Length AD Structure的长度,包括AD Type和AD Data的长度,不包含Length本身的1字节。最大0x1e,即Data字段最大长度为30字节。 AD Type 该广播数据所属的类型,如功耗级别Tx Power Level(0x0A)、设备名称Local Name(0x09)、角色Le Role(0x1C)、服务标识Service UUIDs(0x16)等。对端扫描到广播后,可以根据AD Type判断出广播数据的意义。 AD Data 广播数据内容,采用大端字节顺序。 |
AT+QBLEGATTSSRV
该命令用于模块作为外围设备时创建BLE服务。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QBLEGATTSSRV? |
[+QBLEGATTSSRV:<srv_index>,<srv_UUID>]OK |
| 设置命令 | AT+QBLEGATTSSRV=<srv_UUID> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<srv_index> |
整型。服务索引。 |
<srv_UUID> |
字符串类型(无双引号)。蓝牙服务UUID。长度:2字节或16字节。 |
备注
该命令仅支持一次创建一个BLE服务。
AT+QBLEGATTSCHAR
该命令用于模块作为外围设备时创建BLE特征值UUID。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QBLEGATTSCHAR? |
+QBLEGATTSCHAR:"char",<srv_index>,<char_index>,<char_UUID>,<att_cfg>OKor ERROR |
| 设置命令 | AT+QBLEGATTSCHAR=<char_UUID>[,<att_cfg>] |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<srv_index> |
整型。服务索引。 |
<char_index> |
整型。特征值索引。 |
<char_UUID> |
字符串类型(无双引号)。特征值UUID。长度:2字节或16字节。 |
<att_cfg> |
整形。十六进制数据。特征值UUID属性配置。参数范围:1 ~ FF。其中bit7 ~ bit0表示控制不同属性,如下所示。在对应的bit位进行配置,0表示禁止配置该属性,1表示使能配置该属性。例如:FF表示使能配置bit7 ~ bit0控制的属性。 bit7 ~ bit5 预留 bit4 读取(Read) bit3 指示(Indicate) bit2 通知(Notify) bit1 无响应方式写入(Write no response) bit0 写入(Write) |
AT+QBLEADVSTART
该命令用于模块作为外围设备时开启BLE广播。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QBLEADVSTART? |
+QBLEADVSTART: <adv_state>OKor ERROR |
| 执行命令 | AT+QBLEADVSTART |
OKor ERROR |
最大响应时间:1000毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<adv_state> |
整型。BLE广播状态。 0 广播关闭 1 广播开启 |
AT+QBLEADVSTOP
该命令用于模块作为外围设备时禁用BLE广播。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QBLEADVSTOP |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
AT+QBLEGATTSNTFY
该命令用于模块作为外围设备时以通知方式发送GATT数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEGATTSNTFY=<UUID>[,<hex_length>],<data> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型(无双引号)。特征值的UUID。长度:2字节或者16字节。 |
<hex_length> |
整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送。例如,若<data>为123456,模块会将该数据转换为0x123456进行发送。 |
<data> |
字符串类型(无双引号)。GATT数据。 |
AT+QBLEGATTSIND
该命令用于模块作为外围设备时以指示方式发送GATT数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEGATTSIND=<UUID>[,<hex_length>],<data> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型(无双引号)。特征值的UUID。长度:2字节或者16字节。 |
<hex_length> |
整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送。例如,若<data>为123456,模块会将其转换为0x123456进行发送。 |
<data> |
字符串类型(无双引号)。GATT数据。 |
AT+QBLEGATTSCFGREAD
该命令用于当模块作为外围设备时,配置具有读取属性的BLE特征值。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEGATTSCFGREAD=<UUID>[,<hex_length>],<data> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型(无双引号)。特征值的UUID。长度:2字节或者16字节。 |
<hex_length> |
整型。十六进制数据长度。范围:1 ~ 128;单位:字节。使用该参数时,模块会将<data>转换为十六进制再进行发送。例如,若<data>为123456,模块会将该数据转换为0x123456进行发送。 |
<data> |
字符串类型(无双引号)。GATT数据。 |
AT+QBLESCAN
该命令用于模块作为中心设备时打开或关闭BLE扫描。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLESCAN=<scan>[,<timeout>] |
如果<scan>为0:OK如果 <scan>为1:OK+QBLESCAN:<name>,<address_type>,<address>如果 <scan>为2或3:OK+QBLESCAN:<name>,<address_type>,<address>,<adv_data>or ERROR |
最大响应时间:1000毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<scan> |
整型。打开或关闭BLE扫描。 0 关闭 1 打开,不输出广播数据及扫描响应数据 2 打开,输出广播数据及扫描响应数据。该模式下无需手动关闭BLE扫描 3 打开,输出广播数据及扫描响应数据。该模式下只扫描可连接广播 |
<timeout> |
整型。扫描持续时间。范围:100 ~ 10000;单位:毫秒。当<scan>为2或3时,必须设置该参数。 |
<name> |
字符串类型(无双引号)。BLE设备名称。 |
<address_type> |
整型。BLE设备地址类型。 0 公共地址 1 随机地址 |
<address> |
字符串类型(无双引号)。BLE设备地址。长度:12字节。 |
<adv_data> |
字符串类型(无双引号)。扫描到的BLE广播数据及扫描响应数据。 |
AT+QBLESCANPARAM
该命令用于模块作为中心设备时设置BLE扫描参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLESCANPARAM=<scan_interval>,<scan_window> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<scan_interval> |
整型。LE扫描间隔。范围:0x0012 ~ 0x1000(对应的时间范围:11.25毫秒 ~ 2.56秒);默认值:0x0064;单位:timeslot(1 timeslot = 0.625毫秒)。 |
<scan_window> |
整型。LE扫描持续的时间。<scan_window>要小于或等于<scan_interval>。范围:0x0011 ~ 0x1000(对应的时间范围:10.625毫秒 ~ 2.56秒);默认值:0x001E;单位:timeslot(1 timeslot = 0.625毫秒)。 |
AT+QBLECONN
该命令用于模块作为中心设备时连接外围设备。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLECONN=<addr_type>,<peer_addr> |
OKor ERROR |
最大响应时间:3000毫秒
特性说明:该命令立即生效;参数配置不保存;连接超时时间为18秒。
参数:
| 参数 | 描述 |
|---|---|
<addr_type> |
整型。外围设备地址类型。 0 公用地址 1 随机地址 |
<peer_addr> |
字符串类型(无双引号)。外围设备地址。 |
AT+QBLECONNPARAM
该命令用于模块作为中心设备时设置连接参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLECONNPARAM=<con_interval>,<timeout>,<latency> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<con_interval> |
整型。连接时间间隔值。范围:0x0006 ~ 0x0C80(对应的时间范围:7.5毫秒 ~ 4秒);默认值:30;单位:1.25毫秒。 |
<timeout> |
整型。BLE链路的监督超时。范围:0x000A ~ 0x0C80(对应的时间范围:100毫秒 ~ 32秒);默认值:500;单位:10毫秒。 |
<latency> |
整型。从设备延迟一定数量的连接事件。范围:0 ~ 499(0x0000 ~ 0x01F3)。默认值:0。 |
AT+QBLECFGMTU
该命令用于模块作为中心设备时查询BLE最大传输单元。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QBLECFGMTU? |
+QBLECFGMTU:<MTU_value>OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<MTU_value> |
整型。最大传输单元值。范围:23 ~ 512;单位:字节。 |
备注:蓝牙连接后会自动更新MTU。
AT+QBLEGATTCNTFCFG
该命令用于模块作为中心设备时启用或禁用通知。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEGATTCNTFCFG=<UUID>,<enable> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型(无双引号)。特征值的UUID。长度:2字节或16字节。 |
<enable> |
整型。启用或禁用通知。 0 禁用 1 启用 |
AT+QBLEGATTCWR
该命令用于模块作为中心设备时发送GATT数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEGATTCWR=<UUID>[,<hex_length>],<data> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型(无双引号)。特征值的UUID。长度:2字节或者16字节。 |
<hex_length> |
整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送,例如,若<data>为123456,模块会将该数据转换成0x123456进行发送。 |
<data> |
字符串类型(无双引号)。GATT数据。 |
AT+QBLEGATTCRD
该命令用于模块作为中心设备时读取GATT数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLEGATTCRD=<UUID> |
OK<data>or ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型(无双引号)。特征值的UUID。长度:2字节或16字节。 |
<data> |
字符串类型(无双引号)。读取到的GATT数据。 |
AT+QBLEDISCONN
该命令用于断开BLE连接。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QBLEDISCONN |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
AT+QBLESTAT
该命令用于查询BLE设备状态。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QBLESTAT |
+QBLESTAT:<BLE_state>OKor ERROR |
最大响应时间:600毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<BLE_state> |
字符串类型(无双引号)。BLE设备当前状态。 NOINIT 未初始化状态 INIT 初始化状态 ADVERTISING 广播状态 NOADVERTISING 无广播状态 CONNECTED 连接状态 DISCONNECTED 断开连接状态 |
AT+QBLETRANMODE
该命令用于指定特征值UUID并使模块进入透传模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLETRANMODE=<UUID>[,<state>] |
OKor ERROR |
最大响应时间:500毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<UUID> |
字符串类型。特征值UUID。长度:4字节或者32字节。 |
<state> |
整型。仅当模块作为外围设备时该参数生效。 0 当模块作为外围设备时,首次进入透传模式,断开BLE连接后,退出透传模式,后续与任意设备连接时,默认不会进入透传模式。 1 当模块作为外围设备时,首次进入透传模式,断开BLE连接后,退出透传模式,后续与任意设备连接时,默认进入透传模式。 |
备注
- 当模块为中心设备时,在BLE连接成功且发现对端服务完成之后,可执行此命令使模块进入透传模式。BLE连接断开后,模块自动退出透传模式。仅支持通过写命令方式(Write no response)透传数据。
- 当模块为外围设备时,在开启广播或者建立BLE连接之后,可执行此命令使模块进入透传模式。仅支持通过通知(Notify)方式透传数据。
- 可执行 +++(详见+++)使模块退出透传模式。此时,模块无论是作为中心设备还是外围设备后续与任意设备连接时,默认不会进入透传模式。
AT+QBLESEND
该命令用于通过蓝牙特征值的UUID发送数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QBLESEND=<conn_idx>,<uuid>,<att_cfg>,<data_len> |
>After receiving >, input the data to be sent. When the data content reaches the specified length:Sent successfully: OKSending failed: ERROR |
最大响应时间:500毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<conn_idx> |
整型。建立BLE连接时,模块自动分配的目标设备索引。仅可设置为0。 |
<uuid> |
字符串类型。特征值UUID。长度:4字节或者32字节。 |
<att_cfg> |
整型。十六进制数据。特征值UUID属性配置。参数范围:1 ~ FF。其中bit7 ~ bit0表示控制不同的属性,如下所示。在相应的位位置进行配置,0表示禁止该属性的配置,1表示使能该属性的配置。例如:FF表示使能由bit7 ~ bit0控制的属性的配置。 bit7 ~ bit4 保留 bit3 指示(Indicate) bit2 通知(Notify) bit1 无响应方式写入(Write no response) bit0 写入(Write) |
<data_len> |
整型。数据长度。最大值:<MTU_value> - 3;单位:字节。有关<MTU_value>的详细信息,请参考AT+QBLECFGMTU。 |
TCP/UDP相关AT命令详解
AT+QICFG
该命令用于配置TCP/UDP Socket服务相关参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QICFG=? |
+QICFG: "transpktsize",(支持的 <transpktsize> 列表)+QICFG: "transwaittm",(支持的 <transwaittm> 列表)+QICFG: "accept/mode",(支持的 <accept_mode> 列表)+QICFG: "tcp/tw_cycle",(支持的 <tcp_tw_cycle> 列表)+QICFG: "datatype",(支持的 <data_type> 列表)+QICFG: "tcp/retransmit",(支持的 <rto_val> 列表),(支持的 <retry_cnt> 列表)+QICFG: "udp/broadcast",(支持的 <udp/broadcast> 列表)+QICFG: "tcplistener/raw",(支持的 <tcplistener/raw> 列表)OK |
| 设置命令 | AT+QICFG="transpktsize"[,<transpktsize>] |
若省略可选参数,则查询当前配置:+QICFG: "transpktsize",<transpktsize>OK若指定可选参数,则设置透传模式下数据发送的分包长度: OKor ERROR |
| 设置命令 | AT+QICFG="transwaittm"[,<transwaittm>] |
若省略可选参数,则查询当前配置:+QICFG: "transwaittm",<transwaittm>OK若指定可选参数,则设置透传模式下串口接收用户数据的等待时间: OKor ERROR |
| 设置命令 | AT+QICFG="accept/mode"[,<accept_mode>] |
若省略可选参数,则查询当前配置:+QICFG: "accept/mode",<accept_mode>OK若指定可选参数,则配置"TCP Incoming"连接的接入方式: OKor ERROR |
| 设置命令 | AT+QICFG="tcp/tw_cycle"[,<tcp_tw_cycle>] |
若省略可选参数,则查询当前配置:+QICFG: "tcp/tw_cycle",<tcp_tw_cycle>OK若指定可选参数,则配置"TCP"连接占用端口的释放方式: OKor ERROR |
| 设置命令 | AT+QICFG="datatype"[,<data_type>] |
若省略可选参数,则查询当前配置:+QICFG: "datatype",<data_type>OK若指定可选参数,则配置发送数据格式: OKor ERROR |
| 设置命令 | AT+QICFG="tcp/retransmit",<rto_val>,<retry_cnt> |
若省略可选参数,则查询当前配置:+QICFG: "tcp/retransmit",<rto_val>,<retry_cnt>OK若指定可选参数,则配置TCP数据重传间隔和次数: OKor ERROR |
| 设置命令 | AT+QICFG="udp/broadcast"[,<udp/broadcast>] |
若省略可选参数,则查询当前配置:+QICFG: "udp/broadcast",<udp/broadcast>OK若指定可选参数,则关闭或开启UDP广播: OKor ERROR |
| 设置命令 | AT+QICFG="tcplistener/raw"[,<tcplistener/raw>] |
若省略可选参数,则查询当前配置:+QICFG: "tcplistener/raw",<tcplistener/raw>OK若指定可选参数,则关闭或开启TCP服务器透传: OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<transpktsize> |
整型。待发数据的分包长度。范围:1 ~ 1460;默认值:1024;单位:字节。 |
<transwaittm> |
整型。透传模式下,串口已接收的数据小于 <transpktsize> 时,继续等待串口数据的时长。当 <transwaittm> = 0时,表示收到数据立即发送。范围:0 ~ 20;默认值:2;单位:100毫秒。 |
<accept_mode> |
整型。TCP Incoming连接请求的接入方式。 0 自动接入 1 手动接入,通过AT+QIACCEPT接受 |
<tcp_tw_cycle> |
整型。TCP连接释放占用端口的方式。 0 立即释放 1 延时释放 |
<data_type> |
整型。发送的数据格式。 0 非十六进制字符串 1 十六进制字符串 2 十六进制数据 |
<rto_val> |
整型。TCP数据重传间隔。范围:1 ~ 10;单位:秒;默认值:3。 |
<retry_cnt> |
整型。TCP数据重传次数。范围:3 ~ 20;默认值:10。 |
<udp/broadcast> |
整型。关闭或开启UDP广播。 0 关闭 1 开启 |
<tcplistener/raw> |
整型。关闭或开启TCP服务器透传功能。 0 关闭 1 开启 |
AT+QIOPEN
该命令用于打开TCP/UDP Socket服务。TCP客户端建立的最大响应时间由TCP三次握手的最大超时时间决定。模块支持TCP三次握手的最大超时时间为120秒;当<service_type>为"UDP"、"TCP LISTENER"或"UDP SERVICE"时,建立Socket服务的最大响应时间约为300毫秒。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QIOPEN=? |
+QIOPEN: (支持的 <socketID> 列表),(支持的 <service_type> 列表),"ip/dns",(支持的 <remote_port> 列表),(支持的 <local_port> 列表),(支持的 <access_mode> 列表),(支持的 <local_IP> 列表)OK |
| 设置命令 | AT+QIOPEN=<socketID>,<service_type>,<remoteIP/domain_name>,<remote_port>,<local_port>,<access_mode>[,<local_IP>] |
若 <access_mode> 等于 2:CONNECTor ERROR若 <access_mode> 不等于 2:OK+QIOPEN: <socketID>,<err>or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<service_type> |
字符串类型。Socket服务类型。 "TCP" 客户端建立TCP连接 "UDP" 客户端建立UDP连接 "TCP LISTENER" 建立TCP服务器监听TCP连接 "UDP SERVICE" 建立UDP服务 |
<remoteIP> |
字符串类型。远端服务器的地址。仅当 <service_type> 是 "TCP"/"UDP" 时才有效。 |
<domain_name> |
字符串类型。远端服务器的域名。仅当 <service_type> 是 "TCP"/"UDP" 时才有效。 |
<remote_port> |
整型。远程服务器端口。仅当 <service_type> 是 "TCP"/"UDP" 时才有效。范围:1 ~ 65535。 |
<local_port> |
整型。本地端口。当 <service_type> 为 "TCP LISTENER"/"UDP SERVICE" 时,该参数必须指定。范围:1 ~ 65535。当 <service_type> 为 "TCP"/"UDP" 时,该参数可以为 0,表示使用随机端口号。范围:0 ~ 65535。 |
<access_mode> |
整型。串口数据模式。 0 缓存模式。Socket通过AT命令收发数据 1 直吐模式。Socket通过AT命令发送数据,收到数据通过URC方式上报 2 透传模式。通过串口接收的数据会直接发送到网络端,从网络接收到的数据会从串口直接输出 |
<local_IP> |
整型。指定使用AP或STA的IP地址。 0 使用STA的IP地址 1 使用AP的IP地址 |
<err> |
整型。结果码。详见结果码。 |
备注
当 <service_type>="TCP LISTENER"/"UDP SERVICE"时,<access_mode> 不能设置为2。
AT+QISTATE
该命令用于查询TCP/UDP Socket服务状态。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QISTATE=<socketID> |
+QISTATE: <socketID>,<service_type>,<remote_addr>,<remote_port>,<local_port>,<state>OK |
| 查询命令 | AT+QISTATE? |
返回现存所有连接状态:[+QISTATE: <socketID>,<service_type>,<remote_addr>,<remote_port>,<local_port>,<state>][...]OK |
| 执行命令 | AT+QISTATE |
返回现存所有连接状态:[+QISTATE: <socketID>,<service_type>,<remote_addr>,<remote_port>,<local_port>,<state>][...]OK |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<service_type> |
字符串类型。Socket服务类型。 "TCP" 客户端建立TCP连接 "UDP" 客户端建立UDP连接 "TCP LISTENER" 建立TCP服务器监听TCP连接 "UDP SERVICE" 建立UDP服务 "TCP INCOMING" 建立TCP服务器接受的TCP连接 |
<remote_addr> |
字符串类型。远端服务器的地址,仅当 <service_type> 为 "TCP"/"UDP"/"TCP INCOMING" 时有效。 |
<remote_port> |
整型,远端服务器的端口号,仅当 <service_type> 为 "TCP"/"UDP"/"TCP INCOMING" 时有效。 |
<local_port> |
整型。本地端口号。 |
<state> |
整型。Socket服务状态。 0 "Initial" 尚未建立连接 1 "Opening" 客户端正在连接或者服务器正尝试监听 2 "Connected" 客户端连接已建立 3 "Listening" 服务器正在监听 4 "Closing" 连接断开 |
AT+QISEND
该命令用于通过TCP/UDP Socket服务发送数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QISEND=? |
+QISEND: (支持的 <socketID> 列表),(支持的 <send_len> 列表),"data"[,"remote_ip",(支持的 <remote_port> 列表)]OK |
| 设置命令 | AT+QISEND=<socketID>,0 |
当 <send_len> 为 0,可查询发送数据大小:+QISEND: <total_send_size>,<acked_size>,<unack_size>OKor ERROR |
| 设置命令 | AT+QISEND=<socketID>,<send_len>,<data>,<remote_ip>,<remote_port> |
若 <service_type> 为 "UDP SERVICE":+QISEND: <actual_send_len>OKor ERROR |
| 设置命令 | AT+QISEND=<socketID>,<send_len>,<data> |
若 <service_type> 为 "TCP"/"UDP"/"TCP INCOMING":+QISEND: <actual_send_len>OKor ERROR |
| 设置命令 | AT+QISEND=<socketID>,<send_len>,<remote_ip>,<remote_port> |
设置 AT+QICFG="datatype",2 时:>在收到 > 字符后,用户需在 30 秒内输入长度为 <send_len> 的十六进制数据。超时会报错退出,数据长度超过 <send_len> 时会截断超出数据。OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<send_len> |
整型。待发送数据字节长度。范围:0 ~ 1460;单位:字节。 |
<data> |
字符串类型。待发送的数据。若此参数值中包含 ","、";"、"="、"\" 等特殊字符,需对这些字符进行转义处理。 |
<remote_ip> |
字符串类型。待发送数据的目标地址。仅当 <service_type> 为 "UDP SERVICE" 才有效。 |
<remote_port> |
整型。待发送数据的目标端口。仅当 <service_type> 为 "UDP SERVICE" 才有效。范围:1 ~ 65535。 |
<actual_send_len> |
整型。实际写入Socket中的数据长度。单位:字节。 |
<total_send_size> |
整型。写入Socket中的总数据长度。单位:字节。 |
<acked_size> |
整型。已经被应答的数据长度。单位:字节。 |
<unacked_size> |
整型。未被应答的数据长度。单位:字节。 |
AT+QIRD
该命令用于读取TCP/UDP Socket服务收到的数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QIRD=? |
+QIRD: (支持的 <socketID> 列表),(支持的 <read_len> 列表)OK |
| 设置命令 | AT+QIRD=<socketID>,0 |
当 <send_len> 为 0,可查询接收数据大小:+QIRD: <total_recv_size>,<read_size>,<unread_size>OKor ERROR |
| 设置命令 | AT+QIRD=<socketID>,<read_len> |
当 <service_type> 为 "UDP SERVICE":+QIRD: <actual_read_len>,<remote_addr>,<remote_port><data>OKor ERROR |
| 设置命令 | AT+QIRD=<socketID>,<read_len> |
当 <service_type> 为 "TCP"/"UDP"/"TCP INCOMING":+QIRD: <actual_read_len><data>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<read_len> |
整型。待读取的数据长度。范围:0 ~ 1500;单位:字节。 |
<remote_addr> |
字符串类型。接收数据的源地址。仅当 <service_type> 为 "UDP SERVICE" 才有效。 |
<remote_port> |
整型。接收数据的源端口。仅当 <service_type> 为 "UDP SERVICE" 才有效。 |
<actual_read_len> |
整型。实际读取的数据长度。单位:字节。 |
<total_recv_size> |
整型。Socket收到的总数据长度。单位:字节。 |
<read_size> |
整型。已经被读取的数据长度。单位:字节。 |
<unread_size> |
整型。未被读取的数据长度。单位:字节。 |
<data> |
字符串类型(无双引号)。实际读取的数据。单位:字节。 |
AT+QIACCEPT
该命令接受或拒绝TCP/UDP Socket服务远端接入请求。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QIACCEPT=? |
+QIACCEPT: (支持的 <listener_socketID> 列表),(支持的 <accept> 列表),(支持的 <incoming_socketID> 列表)OK |
| 设置命令 | AT+QIACCEPT=<listener_socketID>,<accept>[,<incoming_socketID>] |
[+QIACCEPT: <incoming_socketID>,<remote_addr>,<remote_port>]OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<listener_socketID> |
整型。TCP Server的Socket连接号。范围:0 ~ 11。 |
<accept> |
整型。拒绝或者接受TCP/UDP Socket服务远端接入请求。 0 拒绝 1 接受 |
<incoming_socketID> |
整型。接入连接的Socket连接号。仅当 <accept> = 1时有效。范围:0 ~ 11。 |
<remote_addr> |
字符串类型。接入连接的源地址。 |
<remote_port> |
整型。接入连接的源端口。 |
AT+QISWTMD
该命令用于切换数据访问模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QISWTMD=? |
+QISWTMD: (支持的 <socketID> 列表),(支持的 <access_mode> 列表)OK |
| 设置命令 | AT+QISWTMD=<socketID>,<access_mode> |
OKor CONNECTor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<access_mode> |
整型。串口数据模式。 0 缓存模式。Socket通过AT命令收发数据 1 直吐模式。Socket通过AT命令发送数据,收到数据通过URC方式上报 2 透传模式。通过串口接收的数据会直接发送到网络端,从网络接收到的数据会从串口直接输出 |
AT+QICLOSE
该命令用于关闭TCP/UDP Socket服务。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QICLOSE=? |
+QICLOSE: (支持的 <socketID> 列表),(支持的 <close_timeout> 列表)OK |
| 设置命令 | AT+QICLOSE=<socketID>[,<close_timeout>] |
OK+QIURC: "closed",<socketID>or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<close_timeout> |
整型。Socket服务关闭的超时时长。范围:1 ~ 60;默认值:2;单位:秒。 |
AT+QIGETERROR
该命令用于查询TCP/UDP Socket服务相关的结果码。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | AT+QIGETERROR |
+QIGETERROR: <err>,<description>OK |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<err> |
整型。结果码。请参考结果码。 |
<description> |
字符串类型。结果码描述。 |
ATO
该命令用于使模块进入透传模式。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | ATO |
CONNECTor NO CARRIER |
最大响应时间:300毫秒
特性说明:-
备注
如果之前没有建立Socket连接,ATO返回NO CARRIER。
+++
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 执行命令 | +++ |
OK |
最大响应时间:300毫秒
特性说明:-
备注
- +++退出透传模式后,如果Socket连接没有断开,可以通过ATO再次进入透传模式。
- 使用该命令时,不能在命令后输入回车或换行符。
SSL相关AT命令详解
AT+QSSLCFG
该命令用于配置SSL上下文参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QSSLCFG=? |
+QSSLCFG: "version",(支持的 <SSL_ctxID> 列表),(支持的 <SSL_version> 列表)+QSSLCFG: "verify",(支持的 <SSL_ctxID> 列表),(支持的 <verify_level> 列表)+QSSLCFG: "ciphersuite",(支持的 <SSL_ctxID> 列表),<cs_id>+QSSLCFG: "negotiatetimeout",(支持的 <SSL_ctxID> 列表),(支持的 <negotiate_time> 列表)+QSSLCFG: "sni",(支持的 <SSL_ctxID> 列表),(支持的 <SNI_value> 列表)OK |
| 设置命令 | AT+QSSLCFG="version",<SSL_ctxID>[,<SSL_version>] |
若省略可选参数,则查询当前配置:+QSSLCFG: "version",<SSL_ctxID>,<SSL_version>OK若指定可选参数,则配置SSL版本号: OKor ERROR |
| 设置命令 | AT+QSSLCFG="verify",<SSL_ctxID>[,<verify_level>] |
若省略可选参数,则查询当前配置:+QSSLCFG: "verify",<SSL_ctxID>,<verify_level>OK若指定可选参数,则配置SSL校验等级: OKor ERROR |
| 设置命令 | AT+QSSLCFG="ciphersuite",<SSL_ctxID>[,<cs_id>[,<cs_id>[,...]]] |
若省略可选参数,则查询当前配置:+QSSLCFG: "ciphersuite",<SSL_ctxID>[,<cs_id>[,<cs_id>[,...]]]OK若指定可选参数,则配置加密套件: OKor ERROR |
| 设置命令 | AT+QSSLCFG="negotiatetimeout",<SSL_ctxID>[,<negotiate_time>] |
若省略可选参数,则查询当前配置:+QSSLCFG: "negotiatetimeout",<SSL_ctxID>,<negotiate_time>OK若指定可选参数,则配置SSL握手的超时时间: OKor ERROR |
| 设置命令 | AT+QSSLCFG="sni",<SSL_ctxID>[,<SNI_value>] |
若省略可选参数,则查询当前配置:+QSSLCFG: "sni",<SSL_ctxID>,<SNI_value>OK若指定可选参数,则启用或禁用TLS服务器名称显示功能: OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<SSL_ctxID> |
整型。SSL上下文ID。范围:0 ~ 5。 |
<SSL_version> |
整型。SSL版本号。 0 SSL3.0 1 TLS1.0 2 TLS1.1 3 TLS1.2 4 以上都支持 |
<verify_level> |
整型。SSL的校验等级。 0 无认证方式 1 单向认证(客户端验证服务器的合法性) 2 双向认证(客户端与服务器相互验证对方的合法性) |
<cs_id> |
十六进制的整型,以0x开头。0xFFFF表示支持全部加密套件。 0x0004 TLS_RSA_WITH_RC4_128_MD5 0x0005 TLS_RSA_WITH_RC4_128_SHA 0x002F TLS_RSA_WITH_AES_128_CBC_SHA 0x0035 TLS_RSA_WITH_AES_256_CBC_SHA 0x003C TLS_RSA_WITH_AES_128_CBC_SHA256 0x003D TLS_RSA_WITH_AES_256_CBC_SHA256 0xc027 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xc02F TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
<negotiate_time> |
整型。SSL握手的超时时间。范围:60 ~ 300;默认值:120;单位:秒。 |
<SNI_value> |
整型。启用或禁用TLS服务器名称显示功能。 0 禁用 1 启用 |
AT+QSSLCERT
该命令用于上传、下载和删除SSL证书。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QSSLCERT=? |
+QSSLCERT: (支持的 <cert_type> 列表),(支持的 <operation_mode> 列表)OK |
| 查询命令 | AT+QSSLCERT? |
[+QSSLCERT: <cert_type>,<exist_flag>,<checksum>][...]OK |
| 设置命令 | AT+QSSLCERT=<cert_type>,<operation_mode>,<length> |
上传证书:CONNECT返回CONNECT后输入文件内容,输入内容将自动写入flash中。输入内容长度达到指定长度后模块退出数据模式。 OKor ERROR |
| 设置命令 | AT+QSSLCERT=<cert_type>,<operation_mode> |
下载证书:+QSSLCERT: <cert_type>,<length>输出文件内容 OKor ERROR删除证书: OKor ERROR |
最大响应时间:取决于用户输入数据的速度
特性说明:该命令立即生效;参数配置自动保存。
参数:
| 参数 | 描述 |
|---|---|
<cert_type> |
字符串类型。证书类型。 "CA" CA证书 "User Cert" 客户端证书 "User Key" 客户端Key文件 |
<operation_mode> |
整型。操作模式。 0 删除证书 1 下载证书 2 上传证书 |
<length> |
整型。证书内容的长度。 |
<exist_flag> |
整型。证书是否存在。 0 不存在 1 存在 |
<checksum> |
十六进制整型。校验和;逐字节累加数据并截断超出2字节部分。 |
AT+QSSLOPEN
该命令用于打开SSL客户端,创建SSL连接。SSL连接的建立包含TCP三次握手和SSL握手两个过程,因此该命令的最大超时时间是TCP三次握手的超时时间(120秒)与<negotiate_time>的总和。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QSSLOPEN=? |
+QSSLOPEN: (支持的 <SSL_ctxID> 列表),(支持的 <socketID> 列表),"ip/dns",(支持的 <remote_port> 列表),(支持的 <local_port> 列表),(支持的 <access_mode> 列表)OK |
| 设置命令 | AT+QSSLOPEN=<SSL_ctxID>,<socketID>,<remoteIP/domain_name>,<remote_port>[,<local_port>,<access_mode>] |
如果 <access_mode> 等于 2:CONNECTor ERROR如果 <access_mode> 不等于 2:OK+QSSLOPEN: <socketID>,<err>or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<SSL_ctxID> |
整型。SSL上下文ID。范围:0 ~ 5。 |
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<remoteIP> |
字符串类型。远端服务器的地址。 |
<domain_name> |
字符串类型。远端服务器的域名。 |
<remote_port> |
整型。远程服务器端口。仅当 <service_type> 是 "TCP"/"UDP" 时才有效。范围:1 ~ 65535。 |
<local_port> |
整型。本地端口。范围:1 ~ 65535。 |
<access_mode> |
整型。串口数据模式。 0 缓存模式。Socket通过AT命令收发数据 1 直吐模式。Socket通过AT命令发送数据,收到数据通过URC方式上报 2 透传模式。通过串口接收的数据会直接发送到网络端,从网络接收到的数据会从串口直接输出 |
<err> |
整型。结果码。请参考结果码。 |
AT+QSSLSEND
该命令用于通过SSL客户端发送数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QSSLSEND=? |
+QSSLSEND: (支持的 <socketID> 列表),(支持的 <send_len> 列表)OK |
| 设置命令 | AT+QSSLSEND=<socketID>,<send_len>,<data> |
+QSSLSEND: <actual_send_len>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<send_len> |
整型。待发送数据的长度。范围:1 ~ 1460;单位:字节。 |
<data> |
字符串类型。待发送的数据。 |
<actual_send_len> |
整型。实际写入的数据长度。单位:字节。 |
AT+QSSLRECV
该命令用于读取SSL客户端收到的数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QSSLRECV=? |
+QSSLRECV: (支持的 <socketID> 列表),(支持的 <read_len> 列表)OK |
| 设置命令 | AT+QSSLRECV=<socketID>,<read_len> |
+QSSLRECV: <actual_read_len><data>OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<read_len> |
整型。读取的数据长度。单位:字节。 |
<actual_read_len> |
整型。实际读取的数据长度。单位:字节。 |
<data> |
字符串类型(无双引号)。实际读取的数据。 |
AT+QSSLSTATE
该命令用于查询SSL客户端状态。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 设置命令 | AT+QSSLSTATE=<socketID> |
+QSSLSTATE: <socketID>,"SSL CLIENT",<remote_addr>,<remote_port>,<local_port>,<state>OKor ERROR |
| 查询命令 | AT+QSSLSTATE? |
返回现存所有连接状态:[+QSSLSTATE: <socketID>,"SSL CLIENT",<remote_addr>,<remote_port>,<local_port>,<state>][...]OK |
| 执行命令 | AT+QSSLSTATE |
返回现存所有连接状态:[+QSSLSTATE: <socketID>,"SSL CLIENT",<remote_addr>,<remote_port>,<local_port>,<state>][...]OK |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<remote_addr> |
字符串类型。远端服务器的地址。 |
<remote_port> |
整型。远端服务器的端口号。 |
<local_port> |
整型。本地端口号。 |
<state> |
整型。Socket服务状态。 0 "Initial" 尚未建立连接 1 "Opening" 客户端正在连接或者服务器正尝试监听 2 "Connected" 客户端连接已建立 3 "Listening" 服务器正在监听 4 "Closing" 连接断开 |
AT+QSSLCLOSE
该命令用于关闭SSL客户端。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QSSLCLOSE=? |
+QSSLCLOSE: (支持的 <socketID> 列表),(支持的 <close_timeout> 列表)OK |
| 设置命令 | AT+QSSLCLOSE=<socketID>[,<close_timeout>] |
OK+QSSLURC: "closed",<socketID>or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<close_timeout> |
整型。关闭SSL客户端的超时时间。范围:1 ~ 60;默认值:10;单位:秒。 |
MQTT相关AT命令详解
AT+QMTCFG
该命令用于配置MQTT客户端可选参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTCFG=? |
+QMTCFG: "version",(支持的 <clientID> 列表),(支持的 <vsn> 列表)+QMTCFG: "datatype",(支持的 <clientID> 列表),(支持的 <data_type> 列表)+QMTCFG: "ssl",(支持的 <clientID> 列表),(支持的 <SSL_enable> 列表),(支持的 <SSL_ctxID> 列表)+QMTCFG: "keepalive",(支持的 <clientID> 列表),(支持的 <kalive_tm> 列表)+QMTCFG: "session",(支持的 <clientID> 列表),(支持的 <clean_session> 列表)+QMTCFG: "timeout",(支持的 <clientID> 列表),(支持的 <delivery_tm> 列表),(支持的 <delivery_cnt> 列表),(支持的 <timeout_report> 列表)+QMTCFG: "will",(支持的 <clientID> 列表),(支持的 <will_flag> 列表),(支持的 <will_QoS> 列表),(支持的 <will_retain> 列表),"willtopic","willmessage"+QMTCFG: "recv/mode",(支持的 <clientID> 列表),(支持的 <recvmode> 列表)OK |
| 设置命令 | AT+QMTCFG="version",<clientID>[,<vsn>] |
若省略可选参数,则查询当前配置:+QMTCFG: "version",<clientID>,<vsn>OK若指定可选参数,则设置MQTT协议版本号: OKor ERROR |
| 设置命令 | AT+QMTCFG="datatype",<clientID>[,<data_type>] |
若省略可选参数,则查询当前配置:+QMTCFG: "datatype",<clientID>,<data_type>OK若指定可选参数,则设置MQTT客户端发送数据格式: OKor ERROR |
| 设置命令 | AT+QMTCFG="ssl",<clientID>[,<SSL_enable>[,<SSL_ctxID>]] |
若省略可选参数,则查询当前配置:+QMTCFG: "ssl",<clientID>,<SSL_enable>[,<SSL_ctxID>]OK若指定可选参数,启用或禁用SSL连接: OKor ERROR |
| 设置命令 | AT+QMTCFG="keepalive",<clientID>[,<kalive_tm>] |
若省略可选参数,则查询当前配置:+QMTCFG: "keepalive",<clientID>,<kalive_tm>OK若指定可选参数,则设置MQTT协议保活时间: OKor ERROR |
| 设置命令 | AT+QMTCFG="session",<clientID>[,<clean_session>] |
若省略可选参数,则查询当前配置:+QMTCFG: "session",<clientID>,<clean_session>OK若指定可选参数,则设置MQTT协议会话类型: OKor ERROR |
| 设置命令 | AT+QMTCFG="timeout",<clientID>[,<delivery_tm>,<delivery_cnt>,<timeout_report>] |
若省略可选参数,则查询当前配置:+QMTCFG: "timeout",<clientID>,<delivery_tm>,<delivery_cnt>,<timeout_report>OK若指定可选参数,则设置MQTT客户端等待响应的超时时间: OKor ERROR |
| 设置命令 | AT+QMTCFG="will",<clientID>[,<will_flag>,<will_QoS>,<will_retain>,<will_topic>,<will_message>] |
若省略可选参数,则查询当前配置:+QMTCFG: "will",<clientID>,<will_flag>,<will_QoS>,<will_retain>,<will_topic>,<will_message>OK若指定可选参数,则设置MQTT协议Will参数: OKor ERROR |
| 设置命令 | AT+QMTCFG="recv/mode",<clientID>[,<recvmode>] |
若省略可选参数,则查询当前配置:+QMTCFG: "recv/mode",<clientID>,<recvmode>OK若指定可选参数,则设置MQTT客户端接收信息的读取方式: OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置不保存。
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<vsn> |
整型。MQTT协议的版本号。 3 MQTT协议V3 4 MQTT协议V4 |
<data_type> |
整型。发送数据格式。 0 非十六进制字符串 1 十六进制字符串 |
<SSL_enable> |
整型。启用或禁用SSL连接。 0 禁用。普通TCP连接 1 启用SSL连接 |
<SSL_ctxID> |
整型。SSL上下文ID。范围:0 ~ 5。 |
<kalive_tm> |
整型。保活时间。允许MQTT客户端和服务器之间没有数据交互的最大空闲时间。MQTT客户端与服务器之间,通过pingReq、pingResp消息来保活。范围:1 ~ 3600;默认值:120;单位:秒。 |
<clean_session> |
整型。对应MQTT CONNECT消息中的会话类型的字段值。 0 该连接则被认为是持久连接。当该客户端断开后,任何订阅的主题和QoS被设置为1或2的信息都会保存,直到该客户端再次连接上服务器。 1 当该客户端断开后,所有的订阅主题都会被移除。 |
<delivery_tm> |
整型。MQTT客户端发送完MQTT消息后,等待服务器回复消息的最大时长。范围:1 ~ 60;默认值:5;单位:秒。 |
<delivery_cnt> |
整型。MQTT客户端重传MQTT消息的最大次数。范围:1 ~ 10;默认值:3。 |
<timeout_report> |
整型。当MQTT消息发生重传时,是否以URC的形式上报。 0 不上报 1 上报(详情可参考AT+QMTSUB、AT+QMTPUB和AT+QMTUNS) |
<will_flag> |
整型。MQTT CONNECT消息中的 <will_flag> 字段值。0 忽略 <will_QoS>、<will_retain>、<will_topic> 和 <will_message> 的配置1 将 <will_QoS>、<will_retain>、<will_topic> 和 <will_message> 通过MQTT CONNECT消息发送到服务器 |
<will_QoS> |
整型。<will_message> 对应的QoS级别。0 至多发送一次 1 至少发送一次 2 只发送一次 |
<will_retain> |
整型。MQTT客户端意外断开后,服务器是否永久保存已发布的 <will_message>。0 清除,不永久保存 1 永久保存 |
<will_topic> |
字符串类型。Will主题名称。 |
<will_message> |
字符串类型。客户端意外断开后发布到Will主题的消息内容。 |
<recvmode> |
整型。MQTT消息接收方式。 0 直吐方式 1 缓存方式(需要通过AT+QMTRECV读取) |
备注
在MQTT客户端与服务器之间建立MQTT连接前,需配置MQTT客户端可选参数。
AT+QMTOPEN
该命令用于为MQTT建立客户端与服务器之间的会话连接。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTOPEN=? |
+QMTOPEN: (支持的 <clientID> 列表),"hostname",(支持的 <port> 列表)OK |
| 查询命令 | AT+QMTOPEN? |
返回现存所有连接服务器信息:[+QMTOPEN: <clientID>,<hostname>,<port>][...]OK |
| 设置命令 | AT+QMTOPEN=<clientID>,<hostname>,<port> |
OK+QMTOPEN: <clientID>,<result>or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<hostname> |
字符串类型。MQTT服务器的地址。 |
<port> |
整型。MQTT服务器的端口号。范围:1 ~ 65535。 |
<result> |
整型。命令执行结果。 -1 Socket连接失败 0 MQTT会话连接建立成功 1 参数错误 2 MQTT标识符被占用 3 内存不足 4 域名解析失败 5 Socket被异常关闭 |
AT+QMTCLOSE
该命令用于为MQTT关闭客户端与服务器之间的会话连接。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTCLOSE=? |
+QMTCLOSE: (支持的 <clientID> 列表)OK |
| 设置命令 | AT+QMTCLOSE=<clientID> |
OK+QMTCLOSE: <clientID>,<result>or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<result> |
整型。命令执行结果。 -1 执行失败 0 执行成功 |
AT+QMTCONN
该命令用于在MQTT客户端与服务器之间建立MQTT连接。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTCONN=? |
+QMTCONN: (支持的 <clientID> 列表),"client_identity","username","password"OK |
| 查询命令 | AT+QMTCONN? |
返回现存所有连接状态:[+QMTCONN: <clientID>,<state>][...]OK |
| 设置命令 | AT+QMTCONN=<clientID>,<client_identity>,<username>,<password> |
OK+QMTCONN: <clientID>,<result>[,<response_code>]or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<client_identity> |
字符串类型。客户端标识符。 |
<username> |
字符串类型。客户端对应的用户名。 |
<password> |
字符串类型。客户端对应的密码。 |
<state> |
整型。MQTT连接的状态。 1 初始化 2 正在连接 3 已连接 4 正在断开连接 |
<result> |
整型。命令执行结果。 0 发送CONNECT消息成功,并且收到CONNECTACK消息 1 发送CONNECT消息成功,但在规定的响应时间内,没有收到CONNECTACK消息 2 发送CONNECT消息失败 |
<response_code> |
整型。连接状态返回码。 0 接受连接 1 拒绝连接:不接受的协议版本 2 拒绝连接:标识符被拒绝 3 拒绝连接:服务器不可用 4 拒绝连接:用户名或密码错误 5 拒绝连接:未授权 |
AT+QMTDISC
该命令用于断开MQTT客户端与服务器之间的连接。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTDISC=? |
+QMTDISC: (支持的 <clientID> 列表)OK |
| 设置命令 | AT+QMTDISC=<clientID> |
OK+QMTDISC: <clientID>,<result>or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<result> |
整型。命令执行结果。 -1 执行失败 0 执行成功 |
AT+QMTSUB
该命令用于订阅MQTT服务器发布的主题消息。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTSUB=? |
+QMTSUB: (支持的 <clientID> 列表),(支持的 <msgID> 列表),"topic",(支持的 <qos> 列表)OK |
| 设置命令 | AT+QMTSUB=<clientID>,<msgID>,<topic1>,<qos1>[,<topic2>,<qos2>[,..]] |
OK+QMTSUB: <clientID>,<msgID>,<result>[,<value>]or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<msgID> |
整型。SUBSCRIBE消息的标识。范围:1 ~ 65535。 |
<topic> |
字符串类型。订阅的主题。 |
<qos> |
整型。<topic> 的QoS级别。0 至多发送一次 1 至少发送一次 2 只发送一次 |
<result> |
整型。命令执行结果。 0 发送SUBSCRIBE消息成功,并且收到SUBACK消息 1 发送SUBSCRIBE消息成功,但在规定的响应时间内,没有收到SUBACK消息,执行SUBSCRIBE消息重传机制 2 发送SUBSCRIBE消息失败 |
<value> |
整型。 当 <result> 为 0 时,表示SUBACK消息回复的QoS。当 <result> 为 1 时,表示SUBSCRIBE消息的重传次数。当 <result> 为 2 时,这个参数没有意义,此字段为空。 |
备注
当前支持一次最多订阅5个主题。
AT+QMTUNS
该命令用于取消订阅MQTT服务器发布的主题消息。客户端可以向服务器发送UNSUBSCRIBE消息来取消已订阅的主题。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTUNS=? |
+QMTUNS: (支持的 <clientID> 列表),(支持的 <msgID> 列表),"topic"OK |
| 设置命令 | AT+QMTUNS=<clientID>,<msgID>,<topic1>[,<topic2>[,..]] |
OK+QMTUNS: <clientID>,<msgID>,<result>or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<msgID> |
整型。UNSUBSCRIBE消息的标识。范围:1 ~ 65535。 |
<topic> |
字符串类型。取消订阅的主题。 |
<result> |
整型。命令执行结果。 0 发送UNSUBSCRIBE消息成功,并且收到UNSUBACK消息 1 发送UNSUBSCRIBE消息成功,但在规定的响应时间内,没有收到UNSUBACK消息,执行UNSUBSCRIBE消息重传机制 2 发送UNSUBSCRIBE消息失败 |
备注
当前支持一次最多取消订阅5个主题。
AT+QMTPUB
该命令用于通过MQTT服务器发布消息。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTPUB=? |
+QMTPUB: (支持的 <clientID> 列表),(支持的 <msgID> 列表),(支持的 <QoS> 列表),(支持的 <retain> 列表),"topic",(支持的 <payload_length> 列表),"payload"OK |
| 设置命令 | AT+QMTPUB=<clientID>,<msgID>,<QoS>,<retain>,<topic>,<payload_length>,<payload> |
OK+QMTPUB: <clientID>,<msgID>,<result>[,<value>]or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<msgID> |
整型。PUBLISH消息的标识。范围:0 ~ 65535。 当QoS等于0时, <msgID>必须等于0;当QoS大于0时, <msgID>必须大于0。 |
<QoS> |
整型。发布消息的QoS级别。 0 至多发送一次 1 至少发送一次 2 只发送一次 |
<retain> |
整型。MQTT客户端意外断开后,服务器是否永久保存已发布的消息。 0 清除,不永久保存 1 永久保存 |
<topic> |
字符串类型。待发布的主题消息。 |
<payload_length> |
整型。待发布消息的长度。范围:1 ~ 1500;单位:字节。 |
<payload> |
字符串类型。待发布的消息。 |
<result> |
整型。命令执行结果。 0 发送PUBLISH消息成功,并且收到ACK消息 1 发送PUBLISH消息成功,但在规定的响应时间内,没有收到ACK消息,执行PUBLISH消息重传机制 2 发送PUBLISH消息失败 |
<value> |
整型。 当 <result> 为 1 时,表示PUBLISH消息的重传次数;当 <result> 为 0 或 2 时,此参数没有意义,此字段为空。 |
AT+QMTPUBRAW
该命令用于通过MQTT服务器发布十六进制数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTPUBRAW=? |
+QMTPUBRAW: (支持的 <clientID> 列表),(支持的 <msgID> 列表),(支持的 <QoS> 列表),(支持的 <retain> 列表),"topic",(支持的 <payload_length> 列表)OK |
| 设置命令 | AT+QMTPUBRAW=<clientID>,<msgID>,<QoS>,<retain>,<topic>,<payload_length> |
>在收到 > 字符后,用户需在10秒内输入 <payload>,超时会报错退出。OK+QMTPUB: <clientID>,<msgID>,<result>[,<value>]or ERROR |
最大响应时间:10000毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<msgID> |
整型。PUBLISH消息的标识。范围:0 ~ 65535。 当QoS等于0时, <msgID>必须等于0;当QoS大于0时, <msgID>必须大于0。 |
<QoS> |
整型。发布消息的QoS级别。 0 至多发送一次 1 至少发送一次 2 只发送一次 |
<retain> |
整型。MQTT客户端意外断开后,服务器是否永久保存已发布的消息。 0 清除,不永久保存 1 永久保存 |
<topic> |
字符串类型。待发布的主题消息。 |
<payload_length> |
整型。待发布消息的长度。范围:1 ~ 1500;单位:字节。 |
<payload> |
十六进制类型。待发布的消息。 |
<result> |
整型。命令执行结果。 0 发送PUBLISH消息成功,并且收到ACK消息 1 发送PUBLISH消息成功,但在规定的响应时间内,没有收到ACK消息,执行PUBLISH消息重传机制 2 发送PUBLISH消息失败 |
<value> |
整型。 当 <result> 为 1 时,表示PUBLISH消息的重传次数;当 <result> 为 0 或 2 时,此参数没有意义,此字段为空。 |
AT+QMTRECV
该命令用于从存储缓存中读取消息,服务器上报消息均会存储到此缓存中。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QMTRECV=? |
OK |
| 查询命令 | AT+QMTRECV? |
[+QMTRECV: <clientID>,<store_status4>,<store_status3>,<store_status2>,<store_status1>,<store_status0>][...]OK |
| 设置命令 | AT+QMTRECV=<clientID>[,<storeID>] |
若省略可选参数,则读取指定客户端的所有缓存的消息:[+QMTRECV: <clientID>,<msgID>,<topic>,<payload_len>,<payload>][...]OK若指定可选参数,则读取指定客户端指定 <storeID> 的消息:+QMTRECV: <clientID>,<msgID>,<topic>,<payload_len>,<payload>OK |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<storeID> |
整型。消息缓存的ID。范围:0 ~ 4。 |
<store_status4> |
整型。对应storeID4有没有缓存消息。 0 没有缓存消息 1 有缓存消息 |
<store_status3> |
整型。对应storeID3有没有缓存消息。 0 没有缓存消息 1 有缓存消息 |
<store_status2> |
整型。对应storeID2有没有缓存消息。 0 没有缓存消息 1 有缓存消息 |
<store_status1> |
整型。对应storeID1有没有缓存消息。 0 没有缓存消息 1 有缓存消息 |
<store_status0> |
整型。对应storeID0有没有缓存消息。 0 没有缓存消息 1 有缓存消息 |
<msgID> |
整型。PUBLISH消息的标识。范围:0 ~ 65535。 当QoS等于0时, <msgID>必须等于0;当QoS大于0时, <msgID>必须大于0。 |
<topic> |
字符串类型。服务器发布的主题。 |
<payload_len> |
整型。接收到的消息长度。 |
<payload> |
字符串类型。接收到的消息。 |
HTTP(S)相关AT命令详解
HTTP(S)请求包含HTTP(S)会话的建立和HTTP(S)报文的交互,因此HTTP(S)请求的最大响应时间由HTTP(S)会话建立的时间和HTTP(S)报文交互的时间来决定。模块支持TCP三次握手的最大超时为120秒。SSL握手的超时由<negotiate_time>决定(默认值为120秒)。HTTP(S)请求发送后,等待响应的时间为<wait_response_time>(默认为60秒)。
AT+QHTTPCFG
该命令用于配置HTTP(S)客户端参数。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QHTTPCFG=? |
+QHTTPCFG: "url",<url_string>+QHTTPCFG: "header",<hname>,<hvalue>+QHTTPCFG: "auth",<username>,<password>+QHTTPCFG: "response/output",(支持的 <output_mode> 列表)+QHTTPCFG: "response/header",(支持的 <save_header> 列表)+QHTTPCFG: "response/interval",(支持的 <interval> 列表)+QHTTPCFG: "sslctxid",(支持的 <SSL_ctxID> 列表)OK |
| 设置命令 | AT+QHTTPCFG="url"[,<url_string>] |
若省略可选参数,则查询当前访问的URL:+QHTTPCFG: "url",<url_string>OK若指定可选参数,则配置待访问的URL: OKor ERROR |
| 设置命令 | AT+QHTTPCFG="header"[,<hname>[,<hvalue>]] |
若省略可选参数,则查询当前配置:[+QHTTPCFG: "header",<hname>,<hvalue>][...]OK若指定可选参数 <hname>,省略可选参数 <hvalue>,则删除对应的头信息:OK若指定所有可选参数,则配置自定义头信息: OKor ERROR |
| 设置命令 | AT+QHTTPCFG="auth"[,<username>[,<password>]] |
若省略可选参数,则查询当前设置:+QHTTPCFG: "auth",<username>,<password>OK若指定可选参数,则配置基本认证参数: OKor ERROR |
| 设置命令 | AT+QHTTPCFG="response/output"[,<output_mode>] |
若省略可选参数,则查询当前配置:+QHTTPCFG: "response/output",<output_mode>OK若指定可选参数,则配置响应数据的输出方式: OKor ERROR |
| 设置命令 | AT+QHTTPCFG="response/header"[,<save_header>] |
若省略可选参数,则查询当前设置:+QHTTPCFG: "response/header",<save_header>OK若指定可选参数,则配置保留或不保留响应头信息: OKor ERROR |
| 设置命令 | AT+QHTTPCFG="response/interval"[,<interval>] |
若省略可选参数,则查询当前设置:+QHTTPCFG: "response/interval",<interval>OK若指定可选参数,则配置HTTP数据以URC方式上报的输出间隔: OKor ERROR |
| 设置命令 | AT+QHTTPCFG="sslctxid"[,<SSL_ctxID>] |
若省略可选参数,则查询当前配置:+QHTTPCFG: "sslctxid",<SSL_ctxID>OK若指定可选参数,则配置HTTP(S)会话使用的SSL上下文ID: OKor ERROR |
最大响应时间:300毫秒
特性说明:该命令立即生效;参数配置自动保存。
参数:
| 参数 | 描述 |
|---|---|
<url_string> |
字符串类型。待访问的URL。未配置时,该参数显示为空字符串。 |
<hname> |
字符串类型。HTTP(S)头信息的名称。未配置时,该参数显示为空字符串。 |
<hvalue> |
字符串类型。HTTP(S)头信息的值。未配置时,该参数显示为空字符串。 |
<username> |
字符串类型。HTTP(S)基本认证的用户名。未配置时,该参数显示为空字符串。 |
<password> |
字符串类型。HTTP(S)基本认证的密码。未配置时,该参数显示为空字符串。 |
<output_mode> |
整型。响应数据的输出方式。 0 响应数据通过AT+QHTTPREAD读取 1 响应数据以URC形式直接上报(详情可参考+QHTTPURC: "recv"。) |
<save_header> |
整型。是否保留响应头信息。 0 不保留 1 保留 |
<interval> |
整型。HTTP信息输出间隔。范围:0 ~ 4;单位:秒。 |
<SSL_ctxID> |
整型。SSL上下文ID。范围:0 ~ 5。 |
AT+QHTTPGET
该命令用于向HTTP(S)服务器发送GET请求。如果HTTP(S) GET请求发送成功,GET的结果以+QHTTPGET: <result>[,<status_code>[,<content_length>]]方式上报至MCU。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QHTTPGET=? |
+QHTTPGET: (支持的 <wait_response_time> 列表)OK |
| 设置命令/执行命令 | AT+QHTTPGET[=<wait_response_time>] |
OK+QHTTPGET: <result>[,<status_code>[,<content_length>]]or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<wait_response_time> |
整型。发送GET请求后,等待服务器响应的时间。范围:10 ~ 65535;默认值:10;单位:秒。 |
<result> |
整型。GET请求发送结果。详见结果码。 0 成功 其他 失败 |
<status_code> |
整型。HTTP(S)状态码。详见结果码。 |
<content_length> |
整型。GET请求消息体的长度。 |
AT+QHTTPPOST
该命令用于向HTTP(S)服务器发送POST请求。如果HTTP(S) POST请求发送成功,POST的结果以+QHTTPPOST: <result>[,<status_code>[,<content_length>]]方式上报至MCU。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QHTTPPOST=? |
+QHTTPPOST: (支持的 <body_length> 列表),(支持的 <body_wait_interval> 列表),(支持的 <wait_response_time> 列表)[,<name>[,<file_name>[,<content_type>]]]OK |
| 设置命令 | AT+QHTTPPOST=<body_length>[,<body_wait_interval>[,<wait_response_time>]] |
非Form-data形式文件:CONNECT输入消息主体,达到 <body_length> 的长度后退出数据模式OK+QHTTPPOST: <result>[,<status_code>[,<content_length>]]or ERROR |
| 设置命令 | AT+QHTTPPOST=<body_length>,<body_wait_interval>,<wait_response_time>,<name>[,<file_name>[,<content_type>]] |
Form-data形式文件:CONNECT输入消息主体,达到 <body_length> 的长度后退出数据模式OK+QHTTPPOST: <result>[,<status_code>[,<content_length>]]or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<body_length> |
整型。POST数据的长度。范围:1 ~ 102400;单位:字节。 |
<body_wait_interval> |
整型。消息主体输入的最大等待时间。范围:1 ~ 65535;默认值:60;单位:秒。 |
<wait_response_time> |
整型。模块内部发送POST请求后,等待服务器响应的时间。范围:10 ~ 65535;默认值:10;单位:秒。 |
<name> |
字符串类型。Form-data名称。 |
<file_name> |
字符串类型。数据上传至HTTP(S)服务器后存储的文件名。 |
<content_type> |
字符串类型。信息媒体类型。 |
<result> |
整型。POST请求发送结果。详见结果码。 0 成功 其他 失败 |
<status_code> |
整型。HTTP(S)状态码。详见结果码。 |
<content_length> |
整型。POST请求体的长度。 |
AT+QHTTPPUT
该命令用于向HTTP(S)服务器发送PUT请求。如果HTTP(S) PUT请求发送成功,PUT的结果以+QHTTPPUT: <result>[,<status_code>[,<content_length>]]方式上报至MCU。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QHTTPPUT=? |
+QHTTPPUT: (支持的 <body_length> 列表),(支持的 <body_wait_interval> 列表),(支持的 <wait_response_time> 列表)OK |
| 设置命令 | AT+QHTTPPUT=<body_length>[,<body_wait_interval>[,<wait_response_time>]] |
CONNECT输入消息主体,达到 <body_length> 的长度后退出数据模式OK+QHTTPPUT: <result>[,<status_code>[,<content_length>]]or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<body_length> |
整型。PUT数据的长度。范围:1 ~ 102400;单位:字节。 |
<body_wait_interval> |
整型。消息主体输入的最大等待时间。范围:1 ~ 65535;默认值:60;单位:秒。 |
<wait_response_time> |
整型。模块内部发送PUT请求后,等待服务器响应的时间。范围:10 ~ 65535;默认值:10;单位:秒。 |
<result> |
整型。PUT请求发送结果。详见结果码。 0 成功 其他 失败 |
<status_code> |
整型。HTTP(S)状态码。详见结果码。 |
<content_length> |
整型。PUT请求体的长度。 |
AT+QHTTPREAD
该命令用于读取HTTP(S)请求的响应信息。若HTTP(S)请求响应成功,且AT+QHTTPCFG="response/output",0设置响应数据的输出方式为通过AT命令读取,可通过该命令读取响应数据。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QHTTPREAD=? |
+QHTTPREAD: (支持的 <wait_response_interval> 列表)OK |
| 设置命令/执行命令 | AT+QHTTPREAD[=<wait_response_interval>] |
CONNECT<data>OK+QHTTPREAD: <result>or ERROR |
最大响应时间:-
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<wait_response_interval> |
整型。模块串口等待响应信息的最大时间。范围:60 ~ 65535;默认值:60;单位:秒。 |
<result> |
整型。响应信息的读取结果。 0 成功 其他 失败 |
<data> |
字符串类型(无双引号)。读取到的数据。 |
DNS相关AT命令详解
AT+QIDNSGIP
该命令用于通过域名获取IP地址。查询DNS之前,Host应首先连接Wi-Fi。命令执行结果通过如下URC上报:
- 若命令执行成功(<err>=0),则上报:
+QIURC: "dnsgip",<err>,<IP_count>,<DNS_ttl>
+QIURC: "dnsgip",<hostIPaddr>
[+QIURC: "dnsgip",<hostIPaddr>]
[...]
- 若命令执行失败(<err>=-1),则上报:
+QIURC: "dnsgip",<err>
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QIDNSGIP=? |
+QIDNSGIP: <hostname>OK |
| 设置命令 | AT+QIDNSGIP=<hostname> |
OKor ERROR |
最大响应时间:受网络状态影响,最大响应时间60秒。
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<hostname> |
字符串类型。域名。 |
<err> |
错误码。 0 执行成功 -1 执行失败 |
<IP_count> |
整型。域名对应的IP地址数量。 |
<DNS_ttl> |
整型。DNS的TTL值;单位:秒。 |
<hostIPaddr> |
字符串类型。IP地址。 |
NTP相关AT命令详解
AT+QNTP
该命令用于通过NTP服务器同步本地时间(UTC+8)。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QNTP=? |
+QNTP: <server>,(支持的 <port> 列表)OK |
| 设置命令/执行命令 | AT+QNTP[=<server>[,<port>]] |
若同步成功:OK+QNTP: <err>,<time>or ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<server> |
字符串类型(含双引号)。NTP服务器的IP地址或域名。最大长度:50字节。若省略 <server> 参数,则直接通过默认NTP服务器同步时间;默认地址:"ntp.aliyun.com";若指定 <server> 参数,则配置NTP服务器的域名或IP地址。 |
<port> |
整型。NTP服务器端口号。范围:1 ~ 65535;默认值:123。若省略 <port> 参数,则通过默认端口号123同步时间;若指定 <port> 参数,则通过配置端口号同步时间。 |
<time> |
字符串类型。从NTP服务器上同步的本地时间(UTC+8)。 格式:"YYYY/MM/DD,hh:mm:ss",用于表示年(YYYY)、月(MM)、日(DD)、时(hh)、分(mm)和秒(ss)。 |
<err> |
错误码;详情请参考结果码。 |
AT+QTIME
该命令用于通过NTP服务器获取Unix时间戳。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 查询命令 | AT+QTIME? |
+QTIME: <time>OKor +QTIME: timeoutOKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<time> |
整型。获取的Unix时间戳。从1970年1月1日00:00:00(UTC时间)开始所经过的秒数。 |
备注
- 执行该命令前需先连接网络。
- 该命令3秒内只能执行一次。
GPIO相关AT命令详解
AT+QGPIOCFG
该命令用于配置GPIO。
| 命令类型 | 语法 | 响应 |
|---|---|---|
| 测试命令 | AT+QGPIOCFG=? |
+QGPIOCFG: <mode>,<pin>,<dir>,<pull>,<drv>/<val>OKor ERROR |
| 设置命令 | AT+QGPIOCFG=1,<pin>,<dir>,<pull>,<drv> |
OKor ERROR |
| 设置命令 | AT+QGPIOCFG=2,<pin> |
+QGPIOCFG: <val>OKor ERROR |
| 设置命令 | AT+QGPIOCFG=3,<pin>,<val> |
OKor ERROR |
最大响应时间:300毫秒
特性说明:-
参数:
| 参数 | 描述 |
|---|---|
<mode> |
整型。命令模式。 1 配置GPIO 2 查询GPIO电平状态 3 设置GPIO电平 |
<pin> |
整型。模块的GPIO引脚号。 |
<dir> |
整型。GPIO的输入与输出。 0 输入 1 输出 |
<pull> |
整型。引脚上下拉方向(仅GPIO引脚为输入信号时有效)。 0 不操作 1 下拉 2 保持悬空 3 上拉 |
<drv> |
整型。GPIO驱动电流。 0 5 mA 1 10 mA 2 15 mA 3 20 mA |
<val> |
整型。GPIO电平。 0 低电平 1 高电平 |
相关URC描述
Wi-Fi相关URC详解
+QSTASTAT
| URC | 描述 |
|---|---|
+QSTASTAT:<event> |
当STA状态发生变化时上报该URC。 |
参数:
| 参数 | 描述 |
|---|---|
<event> |
字符串类型(无双引号)。STA状态发生变化时上报的事件。 WLAN DISCONNECTED STA断开连接 WLAN_CONNECTED STA建立连接 GOT_IP STA获取到IP SCAN_NO_AP STA没有扫描到AP AP_CONNECT STA连接到AP(AP模式) AP_DISCONNECT STA断开与AP的连接(AP模式) |
BLE相关URC详解
+QBLESTAT
| URC | 描述 |
|---|---|
+QBLESTAT:<event> |
当BLE状态发生变化时上报该URC。 |
参数:
| 参数 | 描述 |
|---|---|
<event> |
字符串类型(无双引号)。BLE状态发生变化时上报的事件。 NOINIT 未初始化事件 INIT 初始化事件 ADVERTISING 广播事件 NOADVERTISING 无广播事件 CONNECTED 连接事件 DISCONNECTED 断开连接事件 |
+QBLEMTU
| URC | 描述 |
|---|---|
+QBLEMTU:<MTU_value> |
当BLE MTU数值变化时上报该URC。 |
参数:
| 参数 | 描述 |
|---|---|
<MTU_value> |
整型。最大传输单元值。范围:23 ~ 512;单位:字节。 |
+QBLEINFO
当BLE作为中心设备连接其他设备成功时,上报URC已连接设备的句柄和特征指UUID。
| URC | 描述 |
|---|---|
+QBLEINFO: <handle> <UUID> |
当BLE为中心设备连接成功时上报该URC。 |
参数:
| 参数 | 描述 |
|---|---|
<handle> |
整型。已连接设备的句柄。范围:0 ~ 255。 |
<UUID> |
整型。已连接设备的特征值UUID。长度:2字节或16字节。 |
+QBLERECV
| URC | 描述 |
|---|---|
+QBLERECV:<peer_role>,<UUID>,<Length>\r\n<data>\r\n |
模块接收到数据时上报该URC。 |
参数:
| 参数 | 描述 |
|---|---|
<peer_role> |
整型。模块连接的对端设备角色。 0 对端设备角色为中心设备 1 对端设备角色为外围设备 |
<UUID> |
整型。特征值UUID。范围:0000 ~ ffff。 |
<Length> |
整型。接收到的数据长度。单位:字节。 |
<data> |
字符串类型(无双引号)。接收到的数据。 |
+QBLEPEERINFO
当BLE作为外围设备连接其它设备成功后收到的对端消息提示。
| URC | 描述 |
|---|---|
+QBLEPEERINFO:<conn_idx>,<peer_role>,<BLE_addr> |
当BLE为外围设备连接成功时上报该URC。 |
参数:
| 参数 | 描述 |
|---|---|
<conn_idx> |
整型。建立BLE连接时,模块自动分配的连接索引。默认值:0。 |
<peer_role> |
整型。BLE连接的对端设备的角色。 0 中心设备 1 外围设备 |
<BLE_addr> |
字符串类型。对端设备地址。48位地址以十六进制数串表示,如58D391010203。 |
TCP/UDP相关URC详解
+QIOPEN
执行AT+QIOPEN打开Socket服务,通过该URC上报打开结果。
| URC | 描述 |
|---|---|
+QIOPEN: <socketID>,<err> |
Socket服务打开结果。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<err> |
整型。结果码。请参考结果码。 |
+QIURC: "recv"
Socket服务接收数据后上报该URC指示数据。
| URC | 描述 |
|---|---|
+QIURC: "recv",<socketID> |
缓存模式下,接收数据的提示。当模块的接收缓存区中有数据时,模块不会主动上报新的URC,直到通过AT+QIRD命令将缓存区中的所有数据读取完毕。 |
+QIURC: "recv",<socketID>,<data_len><CR><LF><data> |
直吐模式下,当 <service_type> 不等于 "UDP SERVICE" 时,接收数据的提示。 |
+QIURC: "recv",<socketID>,<data_len>,<remote_addr>,<remote_port><CR><LF><data> |
直吐模式下,当 <service_type> 等于 "UDP SERVICE" 时,接收数据的提示。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<data_len> |
整型。数据长度。范围:1 ~ 1500。单位:字节。 |
<remote_addr> |
字符串类型。数据的源地址。 |
<remote_port> |
整型。数据的源端口。 |
<data> |
字符串类型(无双引号)。接收到的数据。 |
+QIURC: "accept"
当模块通过AT+QICFG="accept/mode"设置手动接入时,接收连接请求时上报该URC。
| URC | 描述 |
|---|---|
+QIURC: "accept",<socketID> |
手动接入方式下Socket服务连接请求提示。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
+QIURC: "closed"
TCP/UDP Socket连接被关闭时上报该URC,并且Socket服务状态显示关闭。
| URC | 描述 |
|---|---|
+QIURC: "closed",<socketID> |
Socket服务连接被断开的提示。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
+QIURC: "incoming"
当模块通过AT+QICFG="accept/mode"设置自动接入时,接收连接请求时上报该URC。
| URC | 描述 |
|---|---|
+QIURC: "incoming",<incoming_socketID>,<listener_socketID>,<remote_addr>,<remote_port> |
自动接入方式下Socket服务远端连接请求提示。 |
参数:
| 参数 | 描述 |
|---|---|
<incoming_socketID> |
整型。接入连接的Socket连接号。范围:0 ~ 11。 |
<listener_socketID> |
整型。监听Socket连接号。范围:0 ~ 11。 |
<remote_addr> |
字符串类型。接入连接的源地址。 |
<remote_port> |
整型。接入连接的源端口。 |
+QIURC: "incoming full"
在设置自动接受连接请求方式下,Socket服务连接已满时接收到新的连接请求,上报该URC并自动拒绝该连接请求。
| URC | 描述 |
|---|---|
+QIURC: "incoming full" |
客户端连接请求已满。 |
NO CARRIER
| URC | 描述 |
|---|---|
NO CARRIER |
透传连接异常断开。 |
SSL相关URC详解
+QSSLOPEN
执行AT+QSSLOPEN打开SSL客户端,通过该URC上报打开结果。
| URC | 描述 |
|---|---|
+QSSLOPEN: <socketID>,<err> |
SSL客户端打开结果。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<err> |
整型。结果码。请参考结果码。 |
+QSSLURC: "recv"
SSL客户端接收数据后上报该URC指示数据。
| URC | 描述 |
|---|---|
+QSSLURC: "recv",<socketID> |
缓存模式下接收数据时上报的URC。 |
+QSSLURC: "recv",<socketID>,<data_len><CR><LF><data> |
直吐模式下,接收数据的提示。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
<data_len> |
整型。接收到的数据长度。范围:1 ~ 1500;单位:字节。 |
<data> |
字符串类型(无双引号)。接收的数据。 |
+QSSLURC: "closed"
SSL客户端连接被关闭时上报该URC,并且SSL客户端状态显示关闭。
| URC | 描述 |
|---|---|
+QSSLURC: "closed",<socketID> |
Socket服务连接被断开。 |
参数:
| 参数 | 描述 |
|---|---|
<socketID> |
整型。Socket ID。范围:0 ~ 11。 |
MQTT相关URC详解
+QMTRECV
MQTT客户端收到新消息后上报该URC。
| URC | 描述 |
|---|---|
+QMTRECV: <clientID>,<storeID> |
缓存方式下(<recvmode>=1),收到新消息的提示。 |
+QMTRECV: <clientID>,<msgID>,<topic>,<payload_len>,<payload> |
直吐方式下(<recvmode>=0),收到新消息的提示。 |
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<storeID> |
整型。消息缓存的ID。范围:0 ~ 4。 |
<msgID> |
整型。PUBLISH消息的标识。范围:0 ~ 65535。 |
<topic> |
字符串类型。从MQTT服务器接收的主题。 |
<payload_len> |
整型。MQTT接收到的消息长度。 |
<payload> |
字符串类型。MQTT接收到的消息。 |
+QMTSTAT
MQTT客户端异常断开后上报该URC。
| URC | 描述 |
|---|---|
+QMTSTAT: <clientID>,<stat> |
客户端异常断开。 |
参数:
| 参数 | 描述 |
|---|---|
<clientID> |
整型。MQTT客户端标识符。范围:0 ~ 5。 |
<stat> |
整型。MQTT会话连接异常断开的原因。 1 MQTT会话连接被动关闭 2 由于PingReq消息超时,造成MQTT客户端关闭会话连接 3 由于Connect消息超时,造成MQTT客户端关闭会话连接 4 由于ConnACK中提示Connect不成功,造成MQTT客户端关闭会话连接 |
HTTP(S)相关URC详解
+QHTTPGET
通过AT+QHTTPGET发送HTTP(S) GET请求后,上报该URC提示GET请求发送结果。
| URC | 描述 |
|---|---|
+QHTTPGET: <result>[,<status_code>[,<content_length>]] |
GET请求发送结果。 |
参数:
| 参数 | 描述 |
|---|---|
<result> |
整型。GET请求发送结果。详见结果码。 0 成功 其他 失败 |
<status_code> |
整型。HTTP(S)状态码。详见结果码。 |
<content_length> |
整型。GET请求消息体的长度。 |
+QHTTPPOST
通过AT+QHTTPPOST发送HTTP(S) POST请求后,上报该URC提示POST请求发送结果。
| URC | 描述 |
|---|---|
+QHTTPPOST: <result>[,<status_code>[,<content_length>]] |
POST请求发送结果。 |
参数:
| 参数 | 描述 |
|---|---|
<result> |
整型。POST请求发送结果。详见结果码。 0 成功 其他 失败 |
<status_code> |
整型。HTTP(S)状态码。详见结果码。 |
<content_length> |
整型。POST请求体的长度。 |
+QHTTPPUT
通过AT+QHTTPPUT发送HTTP(S) PUT请求后,上报该URC提示PUT请求发送结果。
| URC | 描述 |
|---|---|
+QHTTPPUT: <result>[,<status_code>[,<content_length>]] |
PUT请求发送结果。 |
参数:
| 参数 | 描述 |
|---|---|
<result> |
整型。PUT请求发送结果。详见结果码。 0 成功 其他 失败 |
<status_code> |
整型。HTTP(S)状态码。详见结果码。 |
<content_length> |
整型。PUT请求体的长度。 |
+QHTTPREAD
通过AT+QHTTPREAD读取响应数据,上报该URC提示读取的结果。
| URC | 描述 |
|---|---|
+QHTTPREAD: <result> |
响应数据的读取结果。 |
参数:
| 参数 | 描述 |
|---|---|
<result> |
整型。响应信息的读取结果。 0 成功 其他 失败 |
+QHTTPURC: "recv"
当选择使用URC方式输出响应数据时,HTTP(S)客户端收到响应数据时,上报该URC。
| URC | 描述 |
|---|---|
+QHTTPURC: "recv",<length><CR><LF><data> |
URC方式输出响应数据。 |
参数:
| 参数 | 描述 |
|---|---|
<length> |
整型。接收到的数据长度。 |
<data> |
字符串类型(无双引号)。响应的数据。 |
DNS相关URC详解
+QIURC: "dnsgip"
| URC | 描述 |
|---|---|
+QIURC: "dnsgip",<err>[,<IP_count>,<DNS_ttl>] |
通过域名获取IP地址结果。 |
+QIURC: "dnsgip",<hostIPaddr> |
通过域名获取IP地址成功时,上报获取到的IP地址。 |
参数:
| 参数 | 描述 |
|---|---|
<err> |
错误码。 0 执行成功 -1 执行失败 |
<IP_count> |
整型。域名对应的IP地址数量。 |
<DNS_ttl> |
整型。DNS的TTL值;单位:秒。 |
<hostIPaddr> |
字符串类型。IP地址。 |
举例
本章节以FC41D模块为例,介绍各功能相关AT命令使用示例。
Wi-Fi功能
AT+QSTAAPINFO=testssid,123456789 //设置模块为STA模式并连接AP热点。
OK
+QSTASTAT:WLAN_CONNECTED //网络连接成功。
+QSTASTAT:GOT_IP
AT+QSOFTAP=testap,12345678 //设置模块为AP模式。
OK
BLE功能
外围设备角色
建立连接过程中接受建立一个活跃的物理连接请求的LE设备定义为外围设备角色,外围设备角色在连接状态下的链路层中是从机角色。
配置模块为外围设备
AT+QBLEINIT=2 //模块为外围设备进行BLE初始化。
OK
AT+QBLENAME=QuecFC41D //设置BLE名称。
OK
AT+QBLEADDR? //查询并获取BLE设备地址。
+QBLEADDR:c8:47:8c:42:00:49
OK
AT+QBLEGATTSSRV=fff1 //创建BLE服务并设置服务UUID为fff1。
OK
AT+QBLEGATTSCHAR=fff2 //设置GATT特征值UUID为fff2。
OK
AT+QBLEGATTSCHAR=fff3 //设置GATT特征值UUID为fff3。
OK
AT+QBLEADVPARAM=150,150 //设置BLE广播参数。
OK
AT+QBLEADVSTART //开启BLE广播。
OK
nRF Connect连接
点击"SCAN"扫描外围设备,在扫描结果中选择"QuecFC41D"设备并点击"CONNECT"进行连接,如下图所示:

连接成功后显示"CONNECTED",在"CLIENT"会显示已添加的UUID。如下图所示:

nRF Connect给模块发送数据
选择一个可以编辑的特征值,并点击向上的箭头,如下图所示:

在对话框中选择数据格式TEXT,输入需要发送的数据,然后点击"SEND"进行发送,如下图所示:

发送成功后,在QCOM串口工具中收到设备发送的数据。
from phone
模块给nRF Connect发送数据
打开UUID 0xFFF3的通知功能,使用QCOM串口工具发送数据:
AT+QBLEGATTSNTFY=fff3,from fc41d OKnRF Connect UUID 0xFFF3显示接收的数据,如下图所示:

中心设备角色
建立连接过程中发起建立活跃物理连接请求的LE设备定义为中心设备角色,中心设备角色在连接状态下的链路层中是主机角色。
配置模块为中心设备
AT+QBLEINIT=1 //模块为中心设备进行BLE初始化。
OK
AT+QBLESCAN=1 //打开BLE扫描。
OK
+QBLESCAN:HTV33,1,90d4c4c51a65
AT+QBLESCAN=0 //关闭BLE扫描。
OK
AT+QBLECONN=1,90d4c4c51a65 //连接外围设备。
OK
+QBLESTAT:CONNECTED
+QBLEMTU:<512>
+QBLEINFO:3 2a05
+QBLEINFO:22 2a00
+QBLEINFO:24 2a01
+QBLEINFO:26 2aa6
+QBLEINFO:42 fff2
nRF Connect配置
服务配置
打开nRF Connect,点击"Configure GATT server",如下图所示:

添加一个名为"FC41D"的配置,设置Service UUID为0xFFF1,设置Characteristic UUID为0xFFF2,如下图所示:

广播配置
选择"ADVERTISER",点击右下角加号,如下图所示:

在"Display name"中输入"FC41D",在"Options"选项中勾选"Connectable",然后点击"OK",如下图所示:

广播配置完成,开始广播。此外,用户可以手动设置播放时长,如下图所示:


nRF Connect给模块发送数据
选择一个可以编辑的特征值,并点击向上的箭头,如下图所示:

在对话框中选择数据格式TEXT,输入需要发送的数据,然后点击"SEND"进行发送,如下图所示:

发送成功后,在QCOM串口工具中收到设备发送的数据:
from phone
模块给nRF Connect发送数据
打开UUID 0xFFF2的通知功能,使用QCOM串口工具发送数据:
AT+QBLEGATTCWR=fff2,from fc41dr OKnRF Connect UUID 0xFFF2显示接收的数据,如下图所示:

蓝牙配网
蓝牙配网准备工作
准备两个模块,分别为模块A和模块B。将模块A配置为外围设备,模块B配置为中心设备,然后将模块A连接至模块B。
配置模块A为外围设备配网模式
AT+QBLENAME=Quec_FC41D //设置模块名称。
OK
AT+QBLEINIT=3 //模块为外围设备进行蓝牙配网。
OK
配置模块B为中心设备
打开QCOM工具,选择"COM Port",点击"Open Port",然后重置FC41D模块。
AT+QBLEINIT=1 //模块为中心设备进行BLE初始化。
OK
AT+QBLESCAN=1 //打开BLE扫描。
OK
+QBLESCAN:Quec_FC41D,0,bcd10cf0fb80
AT+QBLESCAN=0 //关闭BLE扫描。
OK
AT+QBLECONN=0,bcd10cf0fb80 //连接外围设备。
OK
蓝牙配网
模块B通过AT+QBLEGATTCWR=<UUID>,<data>配置Wi-Fi。<data>配置为Wi-Fi相关AT命令,若配置的AT命令中有多个参数,需在","前加上"\"。例如:AT+QBLEGATTCWR=<UUID>,AT+QSTAAPINFO=<SSID>\,<pwd>。
AT+QBLECFGMTU? //查询BLE最大传输单元。
+QBLEMTU:<512>
OK
AT+QBLEGATTCWR=ff01,AT+QWSCAN //通过BLE发送AT+QWSCAN。
OK
+QWSCAN:"Quectel-Customer-2.4G",WPA2_MIXED_PSK,32,f0:9b:b8:32:94:b0,9
+QWSCAN:"Quectel-HF-2.4G",UNKNOWN,32,f0:9b:b8:32:94:b2,9
+QWSCAN:"Quectel-HF",UNKNOWN,32,f0:9b:b8:32:94:b3,9
+QWSCAN:"ST_ShortRange",WPA2_AES_PSK,29,e0:d4:62:13:93:30,6
+QWSCAN:"hellowr",WPA2_AES_PSK,26,90:bd:e6:e3:66:9e,6
+QWSCAN:"Quectel-HF",UNKNOWN,21,f0:9b:b8:33:18:b3,13
+QWSCAN:"Quectel-HF-2.4G",UNKNOWN,23,f0:9b:b8:33:21:f2,1
OK
AT+QBLEGATTCWR=ff01,AT+QSTAAPINFO=Quectel-SH\,*******
//通过BLE连接AP热点。
OK
AT+QSTAAPINFO=Quectel-SH,*******
OK
+QSTASTAT:WLAN_CONNECTED
+QSTASTAT:GOT_IP
TCP/UDP功能
透传模式
以下为打开/关闭透传模式下TCP/UDP客户端相关示例。
AT+QIOPEN=0,"TCP","192.0.2.2",8252,2020,2 //打开TCP客户端。
CONNECT
//输入数据
+++ //退出透传模式。
OK
ATO //再次进入透传模式。
CONNECT
//输入数据
+++ //退出透传模式。
OK
AT+QICLOSE=0 //关闭TCP客户端。
OK
+QIURC: "closed",0
以下为透传模式下TCP/UDP客户端异常断开时的相关示例。
AT+QIOPEN=0,"TCP","192.0.2.2",8252,2020,2 //打开TCP客户端。
CONNECT
//输入数据
NO CARRIER //连接被异常被断开。
非透传模式
下面的例子,展示了如何通过命令方式读取TCP/UDP数据。
AT+QIOPEN=0,"TCP","192.0.2.2",8252,2020,0 //打开TCP客户端,收到数据以命令方式读取。
OK
+QIOPEN: 0,0
AT+QISEND=0,10,"1234567890"
+QISEND: 10
OK
+QIURC: "recv",0 //收到新数据的提示。
AT+QIRD=0,10 //读取新数据。
+QIRD: 10
0123456789
OK
AT+QICLOSE=0 //关闭TCP客户端。
OK
+QIURC: "closed",0
AT+QIOPEN=1,"UDP SERVICE","192.0.2.2",8252,2020,0 //建立UDP服务,收到数据以命令方式读取。
OK
+QIOPEN: 1,0
AT+QISEND=1,10,"1234567890","192.0.2.2",8252
+QISEND: 10
OK
+QIURC: "recv",1 //收到新数据的提示。
AT+QIRD=1,10 //读取新数据。
+QIRD: 10,"192.0.2.2",8252
0123456789
OK
AT+QICLOSE=1 //关闭UDP服务。
OK
+QIURC: "closed",1
以下为通过URC方式上报TCP/UDP收到新数据的相关示例。
AT+QIOPEN=0,"TCP","192.0.2.2",8252,2020,1 //打开TCP客户端,收到新数据以URC方式上报。
OK
+QIOPEN: 0,0
AT+QISEND=0,10,"1234567890"
+QISEND: 10
OK
+QIURC: "recv",0,10 //收到新数据的提示。
0123456789
AT+QICLOSE=0 //关闭TCP客户端。
OK
+QIURC: "closed",0
AT+QIOPEN=1,"UDP SERVICE","192.0.2.2",8252,2020,1 //建立UDP服务,收到新数据以URC方式上报。
OK
+QIOPEN: 1,0
AT+QISEND=1,10,"1234567890","192.0.2.2",8252
+QISEND: 10
OK
+QIURC: "recv",1,10, "192.0.2.2",8252 //收到新数据的提示。
0123456789
AT+QICLOSE=1 //关闭UDP服务。
OK
+QIURC: "closed",1
SSL功能
以下为SSL单向认证时,通过URC上报进行数据的收发的示例。
AT+QSSLCFG="verify",1,1 //设置为单向认证。
OK
AT+QSSLCFG="verify",1 //查询设置是否成功。
+QSSLCFG: "verify",1,1
OK
AT+QSSLCERT="CA",2,1657 //上传CA证书。
CONNECT
-----BEGIN CERTIFICATE-----
MIIE5TCCA02gAwIBAgIJAP5uWtPRe+IxMA0GCSqGSIb3DQEBCwUAMIGHMQswCQYD
VQQGEwJDTjELMAkGA1UECAwCQUgxCzAJBgNVBAcMAkhGMRwwGgYDVQQKDBNEZWZh
dWx0IENvbXBhbnkgTHRkMRgwFgYDVQQDDA8yMjAuMTgwLjIzOS4yMTIxJjAkBgkq
hkiG9w0BCQEWF2VkZGllLnpoYW5nQHF1ZWN0ZWwuY29tMCAXDTIxMDEyNzAzMzk0
M1oYDzIxMjEwMTAzMDMzOTQzWjCBhzELMAkGA1UEBhMCQ04xCzAJBgNVBAgMAkFI
MQswCQYDVQQHDAJIRjEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDEYMBYG
A1UEAwwPMjIwLjE4MC4yMzkuMjEyMSYwJAYJKoZIhvcNAQkBFhdlZGRpZS56aGFu
Z0BxdWVjdGVsLmNvbTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANf3
w0ep+Sv4qDjhafwc3wiaGdzwAXOsRgfGgBEGYL5MuPbpzjERo21yHae6Tx19DIUt
g6hgW5N/bvDqXLbEMChy9b8aNl62+Y6O35Tya2hoz4XXQkrPkRXvlP2eonjPMfQB
Yu4wtAfNKPa10MJF8qjFI7WWBpcQMpoQvt/SekoD6IyxgRu8ApjtmJicvvWu3BqW
W93MZqLhSFf57pKLQEhgskpl/gb+rLiUwObMTRM948J04NoYBx1jwMZLNEFs6os6
91J8B5oHlgQAsgcXjoXORxncgt2d/fZyr9NjVevc/GIkcbfVAAWohFCQmjpgLESW
iTPaRlLyeLLjTb+WrSOKosinVH+1R8ozfBnkzO+tf9lpBzdP9QCDYzNQeU4Xp0wJ
8Neo5tA4tioDEZjkbsHL+bVvssqOwfupR9b03Z2ZLfgEzs3TwYbPB7ULJQrdqe9x
QtpaFSsDeyKJ6CR8yEHz5d0lypPeRLCjZGb49Yo3FKhMdzP+ZMT+Ku001cr4GwID
AQABo1AwTjAdBgNVHQ4EFgQU4FfBsWrgpoGtvuF+3XN9kbUx0yUwHwYDVR0jBBgw
FoAU4FfBsWrgpoGtvuF+3XN9kbUx0yUwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B
AQsFAAOCAYEAqfVX0LhhxYZ/KsC9jhWYHgmYggVcsTa7AtZsNKW79TLmz98iWdfM
wpi44rwbn1Xek5pDH/rimaJuwxcX8Q4cFHqeQJStRkcuU6CgyurVBpjGWRv5qt3W
nJc/z92x3TPzW1VJv5rXj4pzX9N4hlAHGGzFBm+VMAexS006/dksGa9uEKE/2A0+
9W/V9YbcjhejdENiRAvJB4J0QsOrNUjsH5bPEa3CxdXbKOQzGjJtS7f0BH38Fmyi
C+Cui8U0c+BwRGY3HXL7ANhCe0vdUbUGCG2L6byRvf1TIkuGpi0RxtQfEF3sTDH5
jAot50rJhbckQyLH0xkIOQ9qmU/gbt/wgoZ9AzUVIyh0RsyWo19BGz2DpsuYNBXD
4jqL4NMqsyGRq5YUTrJlIi9PVUp176Ec79xSffvUbitiq9fMmxuhsRbkP4piM1TE
D5oXKPme86RvR1/foRqAdbJg5RPYdah3LdOlAE2HePVy6b0xQ5dcCHaqHmR2SVlY
m7TQs6tfvfhy
-----END CERTIFICATE-----
OK //上传完成。
AT+QSSLOPEN=1,1,"192.0.2.0",12000 //建立SSL连接。
OK
+QSSLOPEN: 1,0
AT+QSSLSTATE //查看连接状态。
+QSSLSTATE: 1,"SSL CLIENT","192.0.2.0",12000,6601,2
OK
AT+QISWTMD=1,1 //切换数据访问模式为直吐模式。
OK
AT+QSSLSEND=1,6,"123456" //发送数据。
+QSSLSEND: 6
OK
+QSSLURC: "recv",1,6 //URC上报接收到的服务器数据。
123456
AT+QSSLCERT="CA",0 //删除证书。
OK
AT+QSSLCLOSE=1,1 //关闭SSL连接。
OK
+QSSLURC: "closed",1
MQTT功能
AT+QMTCFG="version",1,4 //配置MQTT协议版本为V4。
OK
AT+QMTOPEN=1,"192.0.2.0",8306 //与MQTT服务器建立会话连接。
OK
+QMTOPEN: 1,0
AT+QMTCONN=1,"client1","test","test" //建立MQTT连接。
OK
+QMTCONN: 1,0,0
AT+QMTSUB=1,1,"quectel",1 //订阅"quectel"主题的消息。
OK
+QMTSUB: 1,1,0,1
//直吐方式
AT+QMTPUB=1,1,1,0,"quectel",3,"123" //发布主题为"quectel"的消息。
OK
+QMTPUB: 1,1,0
+QMTRECV: 1,1,"quectel",3,"123" //接收到主题为"quectel"的消息。
//发送十六进制消息
AT+QMTPUBRAW=1,1,1,0,"quectel",6
>
d0 01 02 03 f4 f5 //接收到>后发送十六进制数据。
OK
+QMTPUB: 1,1,0
+QMTRECV: 1,1,"quectel",6,"d0 01 02 03 f4 f5" //接收到主题为"quectel"的十六进制消息。
//缓存方式
AT+QMTCFG="recv/mode",1,1
OK
AT+QMTPUB=1,1,1,0,"quectel",4,"3132" //发布主题为"quectel"的消息。
OK
+QMTPUB: 1,1,0
+QMTRECV: 1,0
AT+QMTRECV=1,0
+QMTRECV: 1,1,"quectel",4,"3132"
OK
AT+QMTPUBRAW=1,1,1,0,"quectel",6
>
d0 01 02 03 f4 f5 //接收到>后发送十六进制数据。
OK
+QMTPUB: 1,1,0
+QMTRECV: 1,1
AT+QMTRECV=1,1
+QMTRECV: 1,2,"quectel",6,"d0 01 02 03 f4 f5"
OK
AT+QMTUNS=1,1,"quectel" //取消订阅"quectel"主题的消息。
OK
+QMTUNS: 1,1,0
AT+QMTDISC=1 //断开MQTT连接。
OK
+QMTDISC: 1,0
HTTP(S)功能
//发送HTTP(S) GET请求的示例
//第一步:设置URL
AT+QHTTPCFG="url","http://www.example.com"
OK
//第二步:发送GET请求
AT+QHTTPGET=120 //打开网页。
OK
+QHTTPGET: 0,200
//第三步:读取响应数据
AT+QHTTPREAD=60 //读取响应数据。
CONNECT
<html>
<head>
<script>
location.replace(location.href.replace("https://","http://"));
</script>
</head>
<body>
<noscript><meta http-equiv="refresh" content="0;url=http://www.example.com/">
......................
OK
+QHTTPREAD: 0
//发送HTTP(S) POST请求的示例。
//第一步:设置URL
AT+QHTTPCFG="url","http://example/study_log/"
OK
//第二步:发送POST请求
AT+QHTTPPOST=1024,120,120,"file","test.txt","text/plain"
//POST方式上传Form-data形 式文件。
CONNECT
//输入文件内容,达到<body_length>后退出数据模式。
OK
+QHTTPPOST: 0,200,1538
//第三步:读取响应数据
AT+QHTTPREAD=60 //读取响应数据。
CONNECT
<html>
<head>
......................
OK
+QHTTPREAD: 0
//HTTP(S) PUT的例子
//第一步:设置URL
AT+QHTTPCFG="url","http://example/test.txt"
OK
//第二步:发送PUT请求
AT+QHTTPPUT=1024,120,120 //PUT方式上传文件。
CONNECT
//输入文件内容,达到<body_length>后退出数据模式
OK
+QHTTPPUT: 0,200,1538
//第三步:读取响应数据
AT+QHTTPREAD=60 //读取响应数据。
CONNECT
<html>
<head>
......................
OK
+QHTTPREAD: 0
//自定义Header的例子
//通过自定义Header: Range: bytes=x-x,实现HTTP断点下载的功能
AT+QHTTPCFG="header","Range","bytes=0-511"
OK
AT+QHTTPCFG="url","http://example.txt"
OK
AT+QHTTPGET=60
OK
+QHTTPGET: 0,200,512
AT+QHTTPREAD=60 //读取响应数据。
CONNECT
//数据
OK
+QHTTPREAD: 0
GPIO功能
AT+QGPI0CFG=?
+QGPIOCFG:<mode>,<pin>,<dir>,<pul>,<drv>/<val>
OK
AT+QGPI0CFG=1,22,1,0,3 //配置引脚22为输出,驱动电流20 mA。
OK
AT+QGPIOCFG=2,22 //查询引脚22电平状态。
+QGPIOCFG: 0
OK
AT+QGPI0CFG=3,22,1 //将引脚22拉高。
OK
结果码
TCP/UDP/SSL结果码:
| 结果码 | 英文描述 | 中文描述 |
|---|---|---|
| 0 | Operation success | 操作成功 |
| 550 | Invalid parameter | 参数无效 |
| 551 | Unknown error | 未知错误 |
| 552 | Memory not enough | 内存不足 |
| 553 | Socket ID has been used | Socket ID被占用 |
| 554 | Socket ID not exist | Socket ID不存在 |
| 555 | Socket allocate failed | Socket分配失败 |
| 556 | Operation not allowed | 操作不允许 |
| 557 | Operation not supported | 操作不支持 |
| 558 | No network | 网络异常 |
| 559 | No certificate | 未认证 |
| 560 | Operation busy | 操作繁忙 |
| 561 | Operation timeout | 操作超时 |
| 562 | Socket write failed | Socket写失败 |
| 563 | Socket read failed | Socket读失败 |
HTTP(S)结果码:
| 结果码 | 英文描述 | 中文描述 |
|---|---|---|
| 0 | Operation success | 操作成功 |
| 1 | Invalid parameter | 参数无效 |
| 2 | Unknown error | 未知错误 |
| 3 | Memory not enough | 内存不足 |
| 4 | Socket failure | Socket异常 |
| 5 | Operation not supported | 操作不支持 |
| 6 | Operation not allowed | 操作不允许 |
| 7 | No network | 没有联网 |
| 8 | Lack of SSL Cert | 缺少SSL证书 |
| 9 | Response timeout | 等待响应超时 |
| 10 | Body wait timeout | 等待输入HTTP(S)消息主体超时 |
HTTP(S)状态码:
| 状态码 | 英文描述 | 中文描述 |
|---|---|---|
| 200 | OK | 操作成功 |
| 204 | No Content | 请求成功但无返回内容 |
| 301 | Moved Permanently | 资源永久重定向 |
| 302 | Found | 资源临时重定向 |
| 400 | Bad Request | 错误请求 |
| 401 | Unauthorized | 未认证或认证失败 |
| 403 | Forbidden | 权限不足 |
| 404 | Not Found | 资源不存在 |
| 500 | Internal Server Error | 服务器内部未知错误 |
| 502 | Bad Gateway | 网关服务器收到无效响应 |
| 504 | Gateway Timeout | 网关未及时获取后端响应 |
附录
术语缩写:
| 缩写 | 英文全称 | 中文全称 |
|---|---|---|
| ACK | Acknowledgement | 确认消息 |
| AP | Access Point | 接入点 |
| BLE | Bluetooth Low Energy | 蓝牙低功耗 |
| BSSID | Basic Service Set Identifier | 基本服务集标识符 |
| DHCP | Dynamic Host Configuration Protocol | 动态主机设置协议 |
| DNS | Domain Name Server | 域名系统(服务)协议 |
| GATT | Generic Attribute Profile | 通用属性协议 |
| GPIO | General Purpose Input/Output | 通用输入输出 |
| MAC | Medium Access Control | 媒体访问控制 |
| MQTT | Message Queuing Telemetry Transport | 消息队列遥测传输 |
| MTU | Maximum Transmission Unit | 最大传输单元 |
| HTTP | Hyper Text Transfer Protocol | 超文本传输协议 |
| HTTPS | Hypertext Transfer Protocol Secure | 超文本传输安全协议 |
| ID | Mostly refers to Identifier in terms of software | 软件中多数指"标识符" |
| IP | Internet Protocol | 网际互连协议 |
| NTP | Network Time Protocol | 网络时间协议 |
| OTA | Over-the-Air Techology | 空中下载技术 |
| PSK | Pre-Shared Key | 预共享密钥 |
| QoS | Quality of Service | 服务质量 |
| SNI | Server Name Indication | 服务器名称显示 |
| STA | Station | 站点 |
| SSID | Service Set Identifier | 服务集标识符 |
| SSL | Secure Sockets Layer | 安全套接层 |
| TA | Terminal Adapter | 终端适配器 |
| TCP | Transmission Control Protocol | 传输控制协议 |
| TLS | Transport Layer Security | 传输层安全(协议) |
| TTL | Time To Live | 存活时间 |
| UDP | User Datagram Protocol | 用户数据报协议 |
| URC | Unsolicited Result Code | 非请求结果码 |
| UTC | Coordinated Universal Time | 协调世界时 |
| UUID | Universally Unique Identifier | 通用唯一识别码 |