CIPRXGET
手动获得网络数据:AT+CIPRXGET
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 设置命令 | 单链接(AT+CIPMUX=0)时: AT+CIPRXGET=<mode>[,<len>] |
打开手动获取数据功能: AT+CIPRXGET=1(或5) OK 设置为1后,第一次上报数据会有+CIPRXGET:1的URC上报,后面再来数据就不报了,直到AT+CIPRXGET=2或3来读取,才会再次上报。 设置为5后,每次来数据皆有上报,不管上次数据有没有读过。 |
收到+CIPRXGET:1输入以下命令来手动读取数据:AT+CIPRXGET=2,<len>+CIPRXGET:2,<cnlen>,<rlen>……数据….. OK |
||
收到+CIPRXGET:1也可以16进制读取:AT+CIPRXGET=3,<len> +CIPRXGET:3,<cnlen>,<rlen>……数据…..OK |
||
| 查询还有多少数据未读: AT+CIPRXGET=4 +CIPRXGET:4,<rlen>OK |
||
多链接(AT+CIPMUX=1)时: AT+CIPRXGET=<mode>,<n>[,<len>] |
打开手动获取数据功能输入:AT+CIPRXGET=1(或5) OK 后续来数据会有+CIPRXGET:1的URC上报 |
|
收到+CIPRXGET:1输入以下命令来手动读取数据:AT+CIPRXGET=2,<n>,<len> +CIPRXGET:2,<n>,<cnlen>,<rlen>……数据….. OK |
||
收到+CIPRXGET:1也可以16进制读取:AT+CIPRXGET=3,<n>,<len>+CIPRXGET:3,<n>,<cnlen>,<rlen>……数据….. OK |
||
查询还有多少数据未读:AT+CIPRXGET=4,<n>+CIPRXGET:4,<n>,<rlen>OK |
||
| 查询命令 | AT+CIPRXGET? | +CIPRXGET:<mode>OK |
| 测试命令 | AT+CIPRXGET=? | OK |
| URC上报 | +CIPRXGET:1 | 单链接,设置AT+CIPRXGET=1或5后,当收到网络数据时,会有如此的URC上报,表示收到数据 |
+CIPRXGET:1,<n> |
多链接,设置AT+CIPRXGET=1或5后,当收到网络数据时,会有如此的URC上报,表示收到数据 |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<mode> |
模式 | 0 | 关闭手动获取数据功能。缺省值。 |
| 1 | 开启手动获取数据功能。设置为1后,第一次上报数据会有+CIPRXGET:1的URC上报,后面再来数据就不报了,直到AT+CIPRXGET=2或3来读取,才会再次上报 | ||
| 2 | 读取数据 | ||
| 3 | 读取数据(16进制) | ||
| 4 | 还有多少数据未读 | ||
| 5 | 开启手动获取数据功能。设置为5后,每次来数据皆有上报。 | ||
<n> |
多链接时的Link id | 0-5 | 定义同+CIPSTART命令的 |
<len> |
将要读取的数据的长度 | 1-1460 | 普通字符方式读取时 |
| 1-730 | HEX方式读取时 | ||
<cnlen> |
已经读取的数据 | 单位:字节 | |
<rlen> |
尚未读取的数据 | 单位:字节 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| 单链接时如何手动读取网络数据 | ||
| → | AT+CIPRXGET=1 | 开启手动获取网络数据功能 |
| ← | OK | |
| → | AT+CGREG? | 查询当前GPRS注册状态 |
| ← | +CGREG: 0,1 OK |
<n>=0,表示禁用URC上报<stat>=1,标识已经注册GPRS网络,而且是本地网 |
| → | AT+CIPSTART="TCP","36.9.88.120",6001 | 连接服务器(单链接) |
| ← | OK | |
| ←(URC) | CONNECT OK | 已经连上了 |
| ←(URC) | +CIPRXGET: 1 | 服务器那边发数据过来了 |
| → | AT+CIPRXGET=2,150 | 读取数据,读150个字符,以普通的字符的方式读取 |
| ← | +CIPRXGET: 2,10,01234567890 OK |
读到了10个数据:1234567890,还有0个数据未读取 |
| → | AT+CIPRXGET=4 | 查询下还有多少数据未读 |
| ← | +CIPRXGET: 4,0 OK |
0个未读 |
| ←(URC) | +CIPRXGET: 1 | 服务器那边又发数据过来了 |
| → | AT+CIPRXGET=3,150 | 读取数据,读150个字符,以HEX的方式读取 |
| ← | +CIPRXGET: 3,5,048454C4C4F OK |
读到了5个数据:HELLO,还有0个数据未读取 |
| 多链接时如何手动读取网络数据 | ||
| → | AT+CIPRXGET=1 | 开启手动获取网络数据功能 |
| ← | OK | |
| → | AT+CIPMUX=1 | |
| ← | OK | |
| → | AT+CSTT | 模块注册网络后会从网络自动获取<apn>并激活一个PDP上下文(此<apn>可以通过AT+CGDCONT?来查询),所以直接输入AT+CSTT即可,模块会按照自动获取的<apn>来设置CSTT的APN |
| ← | OK | |
| → | AT+CIICR | |
| ← | OK | |
| → | AT+CIFSR | |
| ← | OK | |
| → | AT+CIPSTART=3,"TCP","36.9.88.120",6001 | 建立多链接 |
| ← | OK | |
| ←(URC) | 3, CONNECT OK | |
| ←(URC) | +CIPRXGET: 1,3 | id=3的链接上,收到服务器发来的数据 |
| → | AT+CIPRXGET=2,3,10 | 读取链接3的数据,读10个字符,以普通的字符的方式读取 |
| ← | +CIPRXGET: 2,3,5,0 AAAAA OK |
在链接3上读取了5个字符:AAAAA,还有0个未读 |
| → | AT+CIPRXGET=4,3 | 查询下链接3还有多少数据未读 |
| ← | +CIPRXGET: 4,3,0 OK |
0个未读 |