6-AT命令交互之-TCPIP
我们在使用模块访问网络时一般有两种做法,一种是通过ppp拨号的方式,将设备挂载到主CPU上,这种对linux系统方案的外接比较方便;另一种是直接使用AT交换的方式,通过AT进行发送和接收数据。对于AT方式的TCPIP接口一般都是各个厂家自己封装的指令,下面以移远和simcom公司的为例进行说明。移远模块(AT+QI***)1.连接TCPTCP的建立可以是IP也可以是域名,不过需要在连...
我们在使用模块访问网络时一般有两种做法,一种是通过ppp拨号的方式,将设备挂载到主CPU上,这种对linux系统方案的外接比较方便;另一种是直接使用AT交换的方式,通过AT进行发送和接收数据。
对于AT方式的TCPIP接口一般都是各个厂家自己封装的指令,下面以移远和simcom公司的为例进行说明。
移远模块(AT+QI***)
1.连接TCP
TCP的建立可以是IP也可以是域名,不过需要在连接之前设置
设置为域名连接:AT+QIDNSIP=1
建立TCP连接:AT+QIOPEN=“TCP”,“121.201.34.111”,“1234”
AT+QIOPEN="TCP","121.201.34.111","1234"
OK
CONNECT OK
QIOPEN返回的结果的时间跟网络有关系,所以有时候为了避免等待会主动查询当前的网络状态。
查询TCP连接状态:AT+QISTAT
AT+QISTAT
OK
STATE: CONNECT OK
2.发送
发送数据:AT+QISEND=195
AT+QISEND=61
> HJDSJFHLKDSJFH...
SEND OK
查询发送结果:AT+QISACK
AT+QISACK
+QISACK: 61, 0, 61 //表示已经发送0个字节,还有61个字节未发送
OK
AT+QISACK
+QISACK: 61, 61, 0 //表示61个字节全部发生完成
OK
3.接收
数据的接收有两种情况,一种是模块将接收到的数据直接返回给AT发送者,一种是模块将接收到的数据存在缓存里面,有用户自行调用接口去读取数据。
要在TCP连接之前就设置为缓存模式
AT+QINDI=1
数据的接收可以不一次性接收完成,可能分段接收。
查询接收结果:AT+QIRD
AT+QIRD=0,1,0,12
+QIRD: 121.201.34.190:20016,TCP,12
!姂
OK
4.断开TCP
断开TCP连接:AT+QICLOSE
AT+QICLOSE
CLOSE OK
5.其他
断开GPRS:AT+QIDEACT
AT+QIDEACT
DEACT OK
激活GPRS:AT+QIACT
AT+QIACT
OK
SimCom模块(AT+CIP***)
1.连接TCP
建立TCP连接:AT+CIPSTART=“TCP”,“121.201.34.111”,“1234”
AT+CIPSTART="TCP","121.201.34.111","1234"
OK
CONNECT OK
CIPSTART返回的结果的时间跟网络有关系,所以有时候为了避免等待会主动查询当前的网络状态。
查询TCP连接状态:AT+CIPSTATUS
AT+CIPSTATUS
OK
STATE: CONNECT OK
2.发送
发送数据:AT+CIPSEND=12
AT+CIPSEND=12
> HJDSJFHLKDSJFH
SEND OK
CIPSEND返回的结果的时间也跟网络有关系,所以有时候为了避免等待会主动查询当前的发送状态。
查询发送结果:AT+CIPACK
AT+CIPACK
+CIPACK: 12,4,8 //表示已经发送4个字节,还有8个字节未发送
OK
AT+CIPACK
+CIPACK: 12,12,0 //表示12个字节均已发生完成
OK
3.接收
数据的接收有两种情况,一种是模块将接收到的数据直接返回给AT发送者,一种是模块将接收到的数据存在缓存里面,有用户自行调用接口去读取数据。
要在TCP连接之前就设置为缓存模式
AT+CIPRXGET=1
数据的接收可以不一次性接收完成,可能分段接收。
查询接收结果:AT+CIPRXGET=2,69
AT+CIPRXGET=2,12 //接收头部12个字节
+CIPRXGET: 2,12,64 //接收到12个字节,剩余64个字节
OK
AT+CIPRXGET=2,64 //接收剩余的64个字节
+CIPRXGET: 2,64,0 //接收到64个字节,剩余0个字节
OK
4.断开TCP
断开TCP连接:AT+CIPCLOSE
AT+CIPCLOSE
CLOSE OK
AT+CIPSTATUS
OK
STATE: TCP CLOSED
5.其他
断开GPRS:AT+CIPSHUT
RIL_SetQIDeact(ChannelID, pWrlChannelCtl->gb_hCallRIL, NULL);
激活GPRS:AT+CIICR
RIL_SetQIAct(ChannelID, pWrlChannelCtl->gb_hCallRIL, NULL);
更多推荐
所有评论(0)