AT命令开发指南
Wi-Fi基础AT命令
这节主要分析的是Wi-Fi设备扫描、连接等基础AT命令。
AT+WIFISCAN
- 功能说明
用于扫描一次当前空口环境的路由器或热点,全信道扫描。
- 命令格式
AT+WIFISCAN- 参数说明
无参数
- 测试用例
输入:
AT+WIFISCAN如果输入这条命令,命令执行成功,则上报扫描结果,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 响应格式
<SSID> <BSSID> < RSSI> <CHANNEL> < SECURITY >- 参数说明
<SSID>:字符串参数,AP的SSID<BSSID>:字符串参数,AP的MAC地址< RSSI>:信号强度<CHAN>:信道号< SECURITY >:加密方式
- 测试实例
发送命令:【bk_ioctrl send_at AT+WIFISCAN】 返回结果:最多支持48个结果输出 scan found 48 APs SSID BSSID RSSI CHAN SECURITY ------------------------------------------------ ---- ---- --------- Product_test 10:5f:02:f8:5c:38 -37 6 WPA2-AES stability-router2 d4:31:27:58:ac:d9 -43 6 WPA2-AES H3C_OTA 34:ca:81:a9:c5:0f -43 6 WPA2-AES ······ EVT:WLAN STA SCAN_DONE CMDRSP:OK
AT+WIFISCAN=SSID
- 功能说明
用于扫描指定SSID的路由器或者热点。
- 命令格式
AT+WIFISCAN =ssid- 参数说明
支持1个参数
ssid:指定扫描的路由器或者热点名称
- 测试用例
输入:
AT+WIFISCAN=aclsemi如果输入这条命令,命令执行成功,则上报扫描结果,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+WIFISCAN=aclsemi】 返回结果: scan found 3 APs SSID BSSID RSSI CHAN SECURITY ---------------------------------------- ---- ---- --------- aclsemi 58:c7:ac:7e:2d:f0 -42 11 WPA2-AES aclsemi 58:c7:ac:7e:2a:30 -45 6 WPA2-AES aclsemi 74:50:4e:3f:7e:d0 -53 1 WPA2-AES EVT:WLAN STA SCAN_DONE CMDRSP:OK
AT+STASTART=SSID,PWD
- 功能说明
用于连接到指定的路由器或者热点。
- 命令格式
AT+STASTART=ssid,<pwd>- 参数说明
支持2个参数
ssid:指定连接的路由器或者热点名称pwd:指定连接的路由器或者热点的密码(连接不加密的,该参数可省略)
- 测试用例
输入:
AT+STASTART=Atest,12345678输入:
AT+STASTART=Atest
如果输入这条命令,连接完成并获取IP则成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
1、连接成功的场景:
发送命令:【bk_ioctrl send_at AT+STASTART=Xiaomi】 返回结果: EVT:WLAN STA CONNECTED CONNECTED SSID:Xiaomi STA CONNECT IND: connect to 'Xiaomi' (-35 dBm) ip: 192.168.31.43, mk: 255.255.255.0, gw: 192.168.31.1, dns: 192.168.31.1 EVT:BK STA GOT IP sta got ip:192.168.31.43 CMDRSP:OK
2、连接错误SSID的场景:
发送命令:【bk_ioctrl send_at AT+STASTART=Xiaomixxxxx】 返回结果: EVT:WLAN STA DISCONNECTED EVT:DISCONNECT REASON:NO_AP_FOUND(REASON CODE:257)【连接失败的原因】 local generated:yes CMDRSP:ERROR
- 参数说明
REASON CODE:错误码,仅供参考
256:无法探知已连接的AP
257:未找到连接AP
258:密码错误
259:应用断开连接
260:获取IP地址超时;
其他失败原因,参考wifi协议reason code
AT+SAPSTART=SSID,PWD,CHAN
- 功能说明
用于开启Wi-Fi热点。
- 命令格式
AT+SAPSTART =ssid,<pwd>,<chan>- 参数说明
支持3个参数
ssid:指定的热点名称(less than 32 Bytes)pwd:指定的热点密码或信道号 - 密码:开启加密热点,该参数可缺省。请输入8~64个字符以上的密码!!!,如果密码的字符长度小于8,会默认为不加密。 - 信道:当输入字符小于2个字符时,认定输入为信道号chan:信道:想要启动热点的所属信道,可以缺省
- 测试用例
输入:
AT+SAPSTART=Atest,12345678输入:
AT+SAPSTART=Atest,11输入:
AT+SAPSTART=Atest,12345678,11输入:
AT+SAPSTART=Atest
如果输入这条命令,配置成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+SAPSTART=SSID,PWD123454】 返回结果: CMDRSP:OK
AT+STASTOP
- 功能说明
用于关闭Wi-Fi STA模式。
- 命令格式
AT+STASTOP- 参数说明
无参数
- 测试用例
输入:
AT+STASTOP如果Wi-Fi STA功能关闭成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+STASTOP】 返回结果: STA DISCONNECT IND: disconnect CMDRSP:OK EVT:WLAN STA DISCONNECTED EVT:DISCONNECT REASON:DEAUTH_LEAVING(REASON CODE:3)
AT+SAPSTOP
- 功能说明
用于关闭Wi-Fi SoftAP模式。
- 命令格式
AT+SAPSTOP- 参数说明
无参数
- 测试用例
输入:
AT+SAPSTOP如果Wi-Fi SoftAP功能关闭成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+SAPSTOP】 返回结果: CMDRSP:OK
AT+WIFISTATUS
- 功能说明
用于查看Wi-Fi设备当前的模式状态:SoftAP/STA模式,及当前模式下的IP地址等信息。
- 命令格式
AT+WIFISTATUS- 参数说明
无参数
如果获取状态成功,上报各个模式的状态信息,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 响应格式
sta: <enable>, ap: <enable>, <sap capacity>- 参数说明
<enable>:模式是否使能 - 1:使能 - 0:未使能<sap capacity>:SoftAP支持的能力 - b:支持11b - g:支持11g - n:支持11n
- 测试实例
发送命令:【bk_ioctrl send_at AT+WIFISTATUS】 返回结果: sta: 1, ap: 1, b/g/n EVT:sta:rssi=-46,aid=23,ssid=ax86u,bssid=50:eb:f6:34:13:e8,channel=10,cipher_type=WPA2-AES softap: ssid=SSID, channel=1, cipher_type=WPA2-AES EVT:ap_ip=192.168.176.1,ap_gate=192.168.176.1,ap_mask=255.255.255.0,ap_dns=0.0.0.0 CMDRSP:OK
AT+WIFISTATUS=PARAM1,PARAM2
- 功能说明
用于查询模组指定模式下指定的参数信息。
- 命令格式
AT+ WIFISTATUS =param1, <param2>- 参数说明
支持2个参数
param1:选择STA/SoftAP模式。参数范围:STA/APparam2:指定参数信息。该参数可缺省,缺省时只会查询参数1选择模式的启停状态。参数范围:RSSIBSSIDSSIDIPCHANNEL(SoftAP模式不支持RSSI和BSSID)
- 测试用例
输入:
AT+ WIFISTATUS =STA输入:
AT+ WIFISTATUS =STA, RSSI
如果获取状态成功,上报查询结果,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
1、查看STA的IP:
发送命令:【bk_ioctrl send_at AT+WIFISTATUS=STA,IP】 返回结果: CMDRSP:STA_IP=192.168.32.201,GATE=192.168.32.3,MASK=255.255.255.0,DNS=114.114.114.114 CMDRSP:OK
2、查看STA的RSSI:
发送命令:【bk_ioctrl send_at AT+WIFISTATUS= STA,RSSI】 返回结果: CMDRSP:sta_rssi:-47 CMDRSP:OK
AT+STAPING
- 功能说明
用于执行PING包操作。
- 命令格式
AT+STAPING =ip,<pkn>,<size>- 参数说明
支持3个参数
ip:IP地址pkn:PING包的数量,默认ping 4包size:每个PING包的大小
- 测试用例
输入:
AT+STAPING =192.168.30.1输入:
AT+STAPING =192.168.30.1,10输入:
AT+STAPING =192.168.30.1,10,100
如果指令发送成功,则返回:
CMDRSP:OK并且开始上报每次PING包的结果,执行完成上报全部PING包统计结果
否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+STAPING=192.168.31.1】 返回结果: CMDRSP:OK 60 bytes from 192.168.31.1 icmp_seq=0 ttl=64 time=52 ticks 60 bytes from 192.168.31.1 icmp_seq=1 ttl=64 time=6 ticks 60 bytes from 192.168.31.1 icmp_seq=2 ttl=64 time=24 ticks 60 bytes from 192.168.31.1 icmp_seq=3 ttl=64 time=178 ticks ping end, sent cnt: 4, recv cnt: 4, drop cnt: 0(0.0%)
AT+STAPINGSTOP
- 功能说明
用于执行停止PING包操作。
- 命令格式
AT+STAPINGSTOP- 参数说明
无参数
- 测试用例
输入:
AT+STAPINGSTOP如果指令发送并执行成功,上报之前已经PING包的统计结果,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+STAPINGSTOP】 返回结果: CMDRSP:OK 60 bytes from 192.168.31.1 icmp_seq=3 ttl=64 time=26 ticks ping end, sent cnt: 4, recv cnt: 4, drop cnt: 0(0.0%)【返回已经发送完成的包的统计结果】
AT+CLOSECSA
- 功能说明
用于执行关闭Wi-Fi多身份(SoftAP+ STA)共存模式下SoftAP的CSA。
注意:该命令并不是关闭SoftAP的CSA功能,只用于关闭STA+ SoftAP时SoftAP会做CSA切换到与STA相同的信道上的功能。
- 命令格式
AT+CLOSECSA=param1- 参数说明
支持1个参数
param1:是否关闭共存模式下的CSA,参数取值范围:0/1
- 测试用例
输入:
AT+CLOSECSA=1如果设置成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 命令使用要求
该命令需要在起STA之前下发,否则会返回错误(因为该命令在起STA之后发送无法生效,因此加了错误返回提醒)。
- 测试实例
发送命令:【bk_ioctrl send_at AT+CLOSECSA=0】 返回结果: CMDRSP:OK
PLATFORM
AT+RST
- 功能说明
用于重置模组。
- 命令格式
AT+RST
AT+VERSION
- 功能说明
用于获取当前的版本信息。
- 命令格式
AT+VERSION如果查询成功,上报版本信息,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 参数说明
版本信息包含:
Version:固件版本编译时间;
chip id:芯片版本
soc:芯片型号
- 测试实例
发送命令:【bk_ioctrl send_at AT+VERSION】 返回结果: EVT:version:Jun 9 2025 11:50:19 EVT:chip id:72390101 EVT:soc: bk7239 CMDRSP:OK
AT+WLMAC
- 功能说明
用于查询当前的mac地址。
- 命令格式
AT+WLMAC- 参数说明
无参数
- 测试用例
输入:
AT+WLMAC如果查询成功,上报MAC地址结果,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令:【bk_ioctrl send_at AT+WLMAC】 返回结果: base mac: 8c:87:d0:04:2d:6e sta mac: 8c:87:d0:04:2d:6e ap mac: 8c:87:d0:04:2d:6f CMDRSP:OK
AT+WLMAC=MAC
- 功能说明
用于配置设备MAC地址。
- 命令格式
AT+WLMAC =mac- 参数说明
支持1个参数
mac:MAC地址。例如配置MAC地址为:c8:93:ff:dd:ee:bb,该值写为:c893ffddeebb
- 测试用例
输入:
AT+WLMAC=c893ffddeebb如果输入这条命令,配置成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令: 【bk_ioctrl send_at AT+WLMAC=8c87d0042d6e】 返回结果: set base mac: 8c:87:d0:04:2d:6e CMDRSP:OK
DATACTL
这节主要阐述DATACTL的AT命令,该命令用于控制数据通路,如果需要使用TCPUDPHTTPMQTT以及数传等AT命令,需要先使用该命令配置为1。每次上电,该命令配置一次即一直生效,如果不需要使用可以手动关闭,使用该命令配置为0。
AT+DATACTL
- 功能说明
控制是否使用mac的数据通路
- 命令格式
AT+TCPSTART= ctrl- 参数说明
支持2个参数
ctrl:控制是否使用mac的数据通路
- 测试用例
输入:
AT+DATACTL=1发送成功,并则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令: 【bk_ioctrl send_at AT+DATACTL=1】 返回结果: CMDRSP:OK
TCP
这节主要阐述TCP相关的AT命令
AT+TCPSTART
- 功能说明
用于建立一个TCP客户端,并且与指定地址和端口号的TCP服务器进行连接。
- 命令格式
AT+TCPSTART= port,ip- 参数说明
支持2个参数
port:想要连接的TCP服务器的端口号ip:想要连接的TCP服务器的IP地址
- 测试用例
输入:
AT+TCPSTART=12138,192.168.0.2如果建立TCP客户端并且连接服务器成功,上报连接信息,并则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- AT回显事件
EVT:TCP CLIENT CONNECTED,LINK-ID: %d.:TCP客户端已经连接至指定的TCP服务器EVT:TCP_CLIENT ID NUMS REACHES LIMITED NUM.:TCP客户端建立数量已经超过最大允许数量,不再接收新的TCP客户端连接EVT:TCP CLIENT FD:%d, RECVED LENGTH:%d DATA,FROM FD:%d:TCP客户端从所连接的TCP服务器上接收到数据
- 测试实例
发送命令: 【bk_ioctrl send_at AT+TCPSTART=5150,192.168.31.165】 返回结果: EVT:TCP CLIENT PORT:64256,SOCKET ID:0,CONNECTED TO SERVER SOCKET CREATE SUCCESS CMDRSP:OK
AT+SERVERSTART
- 功能说明
用于建立一个指定端口号的TCP服务器并监听即将到来的连接。
- 命令格式
AT+SERVERSTART=port- 参数说明
支持1个参数
port:想要建立服务器的端口号
- 测试用例
输入:
AT+SERVERSTART=12138如果输入这条命令,创建TCP 服务端成功,上报创建信息,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令: 【bk_ioctrl send_at AT+SERVERSTART=5350】 返回结果: CMDRSP:OK EVT:TCP SERVER INFO:PORT:5350,IP:192.168.32.201,LISTEN FD:0
AT+TCPCLOSE
- 功能说明
用于关闭指定的TCP服务器或客户端。
- 命令格式
AT+TCPCLOSE=param1,param2- 参数说明
支持2个参数
param1:取值范围0/1。0表示服务器,1表示客户端param2:需要删除的socket ID(即创建时返回的LISTEN FD)。
- 测试用例
输入:
AT+TCPCLOSE=0,0如果关闭指定TCP成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例
发送命令: 【bk_ioctrl send_at AT+TCPCLOSE=1,0】 返回结果: CMDRSP:OK
UDP
这节主要阐述UDP相关的AT命令
AT+UDPSTART
- 功能说明
用于建立一个UDP客户端,并且与指定地址和端口号的UDP服务器进行连接。
- 命令格式
AT+UDPSTART= port- 参数说明
支持2个参数
port:想要连接的UDP服务器的端口号
- 测试用例
输入:
AT+UDPSTART=8080如果输入这条命令,UDP配置成功,上报连接信息,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例:
发送命令: 【bk_ioctrl send_at AT+UDPSTART=8084】 返回结果: EVT:UDP CONNECTION SOCKET ID:0,PORT:8084,IP:192.168.32.201,ESTABLISHED. SOCKET CREATE SUCCESS CMDRSP:OK
AT+UDPCLOSE
- 功能说明
用于关闭指定的UDP客户端。
- 命令格式
AT+UDPCLOSE=self_fd- 参数说明
支持1个参数
self_fd:需要删除的socket ID(即创建时返回的LISTEN FD)。
- 测试用例
输入:
AT+UDPCLOSE=0如果关闭指定UDP成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例:
发送命令: 【bk_ioctrl send_at AT+UDPCLOSE=0】 返回结果: CMDRSP:OK
HTTP
这节主要阐述HTTP的AT命令,暂时不支持https。
AT+HTTPSTART
- 功能说明
用于建立一个HTTP客户端,并可携带自定义的HTTP header并使用对应的GET/HEAD方法进行HTTP操作
- 命令格式
GET:
AT+HTTPSTART=method,content,data_total_len,uri_len,0,header_lenPOST:
AT+HTTPSTART=method,content,data_total_len,uri_len,data_len,header_len- 参数说明
支持6个参数
method:HTTP方法,0:RESERVED,1:GET,2:POSTcontent:HTTP内容类型,0:RESERVED,1:application/x-www-form-urlencoded,2:application/json,3:multipart/form-data,4:text/xmldata_total_len:想要发送数据的总长度,为后面几个发送数据长度之和uri_len:HTTP URI长度data_len:想要POST的数据的长度(GET方法此长度设置为0)header_len:HTTP header长度
- 测试用例
输入:
AT+HTTPSTART=1,0,20,20,0,0http://www.baidu.com
HTTP 数据格式
格式示例:
| | | |
| | | |
—— ———URI—— —— —— —— DATA(POST)—— —— —— —— header —— ——
如果建立HTTP客户端并且连接服务器成功,上报连接信息,并则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR
- 测试实例:
发送命令: 【bk_ioctrl send_at AT+HTTPSTART=1,0,39,39,0,0】 返回结果: EVT:READY TO RECV DATA 发送命令: 【bk_ioctrl send_at http://192.168.50.60/E%3A/otarbl/1.html】 返回结果: webclient get response data bytes_read:4 test 【 get 到的数据,每1024 byte的数据通过1条消息发送】 EVT: GET SUCCESS CMDRSP:OK
注意:此命令只适合GET和POST长数据,如果仅仅是操作短数据,可以使用AT+HTTPGET与AT+HTTPPOST命令
AT+HTTPHEAD
- 功能说明
用于发送HTTP HEAD请求。
- 命令格式
AT+HTTPHEAD= url- 参数说明
支持1个参数
url:HTTP请求的URL地址
- 测试用例
输入:
AT+HTTPHEAD=http://ww.baidu.com如果发送HTTP HEAD请求成功,上报响应信息,并则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例:
发送命令: 【bk_ioctrl send_at AT+HTTPHEAD=http://www.baidu.com】 返回结果: HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform Connection: keep-alive Content-Length: 277 Content-Type: text/html Date: Tue, 10 Jun 2025 05:56:26 GMT Etag: "575e1f60-115" Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT Pragma: no-cache Server: bfe/1.0.8.18 CMDRSP:OK
AT+HTTPGET
- 功能说明
用于发送HTTP GET请求。
- 命令格式
AT+ HTTPGET = content,data_total_len- 参数说明
支持2个参数
content:HTTP内容类型,0:RESERVED,1:application/x-www-form-urlencoded,2:application/json,3:multipart/form-data,4:text/xmldata_total_len:想要发送数据的总长度,为后面几个发送数据长度之和
测试用例:
输入:
AT+HTTPGET=0,20http://ww.baidu.com如果发送HTTP GET请求成功,上报响应信息,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR
- 测试实例:
发送命令: 【bk_ioctrl send_at AT+HTTPGET=0,39】 返回结果: EVT:READY TO RECV DATA 发送命令: 【bk_ioctrl send_at http://192.168.50.60/E%3A/otarbl/1.html】 返回结果: AT_HTTP get position handle response status(200). EVT: GET SUCCESS, resp data len 4 test 【 get 到的数据,每1024 byte的数据通过1条消息发送】 CMDRSP:OK
AT+HTTPPOST
- 功能说明
用于发送HTTP POST请求,不使用自定义header。
- 命令格式
AT+HTTPHEAD = content,data_total_len,uri_len,data_len- 参数说明
支持4个参数
content:HTTP内容类型,0:RESERVED,1:application/x-www-form-urlencoded,2:application/json,3:multipart/form-data,4:text/xmldata_total_len:想要发送数据的总长度,为后面几个发送数据长度之和uri_len:HTTP URI长度data_len:想要POST的数据的长度
测试用例:
输入:
AT+HTTPPOST=2,53,37,16http://www.rt-thread.com/service/echolove_from_Beken!如果发送HTTP POST请求成功,上报响应信息,并返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR
- 测试实例:
1、示例一 发送命令: 【bk_ioctrl send_at AT+HTTPPOST=2,48,39,9】 返回结果: EVT:READY TO RECV DATA 发送命令: 【bk_ioctrl send_at http://192.168.50.60/E%3A/otarbl/1.html123456789】 返回结果: AT_HTTP post response status (400) CMDRSP:ERROR 2、示例二 发送命令: 【bk_ioctrl send_at AT+HTTPPOST=2,152,37,115】 返回结果: EVT:READY TO RECV DATA 发送数据: 【bk_ioctrl send_at http://www.rt-thread.com/service/echodevices Code=120002000814&userKey=6b6d71e72c70d136179177ddd231af7d&devicesName=bk7256&random=ZWVUTR&token=2c70426994】 返回结果: HTTP/1.1 200 OK Server: nginx/1.18.0 (Ubuntu) Date: Thu, 12 Jun 2025 06:54:51 GMT Content-Type: text/html Content-Length: 26 Connection: keep-alive X-Powered-By: PHP/5.5.9-1ubuntu4.25 AT_HTTP post response status (200) AT_HTTP post response data resp_len:26 AT_HTTP post response data resp:::devicesCode=120002000814 CMDRSP:OK
MQTT
这节主要阐述MQTT相关的AT命令
AT+MQTTCLIENT
- 功能说明
用于建立一个MQTT客户端
- 命令格式
AT+MQTTCLIENT=host_name/ip,username,password<,topic>- 参数说明
支持3/4个参数
host_name/ip:想要连接的MQTT服务器的域名或IP地址username:MQTT用户名password:MQTT密码topic:想要订阅的topic(可选)
- 测试用例
输入:
AT+MQTTCLIENT=222.71.10.2,aclsemi,******, /aclsemi/bk7256/cmd/1234如果建立MQTT客户端并且连接服务器成功,上报连接信息,并则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例:
发送命令: 【bk_ioctrl send_at AT+MQTTCLIENT=222.71.10.2,aclsemi,***,/aclsemi/bk7256/cmd/changyun】 返回结果: CMDRSP:OK
AT+MQTTSEND
- 功能说明
用于发送MQTT消息。
- 命令格式
AT+MQTTSEND= topic,message- 参数说明
支持2个参数
topic:MQTT主题message:MQTT消息内容
- 测试用例
输入:
AT+MQTTSEND = aclsemi/bk7256/cmd/1234, 12345678999999999如果发送MQTT消息成功,上报发送信息,并则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR- 测试实例:
发送命令: 【bk_ioctrl send_at AT+MQTTSEND=/aclsemi/bk7256/cmd/changyun,123456】 返回结果: CMDRSP:OK
AT DATA
这节主要阐述数据发送和接收相关的AT命令
AT+IPSEND
- 功能说明
用于通过TCP/UDP连接发送数据。
- 命令格式
- TCP:
AT+IPSEND=selftype,self_fd,peer_fd,data_len- UDP
AT+IPSEND=selftype,self_fd,peer_port,peer_ip,data_len
- 参数说明
支持4-5个参数
selftype:想要发送的身份类型,0:客户端,1:服务器self_fd:想要发送的身份的FD值peer_fd:想要发送的对端FD值(tcp only),当对端为服务端时,值等于self_fd。peer_port:想要发送的对端端口号(udp only)peer_ip:想要发送的对端IP地址(udp only)data_len:想要发送的数据长度
测试用例
- TCP:
AT+IPSEND=1,0,1,8
Beken666- UDP:
AT+IPSEND=0,0,12138,192.168.0.3,8
Beken666如果发送数据成功,则返回:
CMDRSP:OK否则返回:
CMDRSP:ERROR
- 测试实例:
1、发送成功 发送命令: 【bk_ioctrl send_at AT+IPSEND=0,0,0,4】 返回结果: EVT:READY TO RECV DATA 发送命令: 【bk_ioctrl send_at 1234】 【注意:使用串口测试命令中数据应为可打印字符,否则AP侧需要调用bk_ioctl_send_at_data发送数据】 返回结果: EVT:lWIP_DATA_READY_SEND EVT:SERVER AT_SAL_DATA_SEND SUCCESS CMDRSP:OK 2、发送超时: 发送命令: 【bk_ioctrl send_at AT+IPSEND=0,0,0,4】 返回结果: EVT:READY TO RECV DATA EVT:AT_SAL_SEND_DATA_TIMEOUT CMDRSP:ERROR
AT+DATARECV
- 功能说明
用于从模组获取指定长度的接收数据至用户端。当接收到MAC层上报接收到消息的EVENT的时候,发送该命令可以从MAC获取到接收的数据。数据在MAC层保存一段时间,如果长时间不接收,MAC层会主动删除数据,目前时间为5s。。
- 命令格式
- TCP:
AT+IPDATARECV=type,self_fd,peer_fd,data_index,size
- UDP:
AT+IPDATARECV=type,self_fd,peer_port,ip,data_index,size
- 参数说明
支持5/6个参数
type:想要接收的身份类型, 1:客户端,0:服务器,UDP默认为客户端self_fd:想要接收的身份的FD值peer_fd:想要接收的对端FD值(tcp only)peer_port:想要接收的对端端口号(udp only)peer_ip:想要接收的对端IP地址(udp only)data_index:想要接收的数据序号size:想要接收的数据大小
测试用例
输入:
- TCP:
AT+IPDATARECV=0,0,1,0,9- UDP:
AT+IPDATARECV=1,0,12138,192.168.0.3,0,9- 如果接收数据成功,上报接收到的数据,并则返回:
CMDRSP:OK- 否则返回:
CMDRSP:ERROR
- 测试实例:
1、正常接收: 上报结果: EVT:TCP CLIENT FD:0, RECVED LENGTH:4 DATA,FROM FD:0 发送命令: 【bk_ioctrl send_at AT+IPDATARECV=1,0,0,0,4】 返回结果: 1234 【接收到的数据】 CMDRSP:OK 2、接收处理超时: 上报结果: EVT:TCP CLIENT FD:0, RECVED LENGTH:4 DATA,FROM FD:0 EVT:recv packet 0 save too long,discard