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