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个未读 |