我正在编写一个应用程序来处理SIM900 GPRS并以多连接模式(AT+CIPMUX=1
)向服务器发送/接收数据。问题是当我从服务器获取数据时,它也可能会被调制解调器响应破坏,并且没有如何检测或避免这种情况的方法。
一切准备就绪后发送数据(到连接 0)的正常过程是:
AT+CIPSEND=0
>
GET /index.php?packet=Test HTTP/1.1 rn Host:...
+RECEIVE,0,137:
bla bla bla
bla bla bla
bla bla bla
因此,请考虑您在这些blas之间获得了调制解调器响应。例如,如果我发送AT+CIPSEND=1
(在第一个之后),我会在+RECEIVE
之后的数据块之间得到>
。这是一个例子,我可能会得到X, CLOSED
,Y, CONNECT OK
,...
+RECEIVE,0,137:
bla bla bla
bla bla 1, CONNECT OK
bla bla bla bla
如何在不中断调制解调器响应的情况下正确获取数据?
有命令AT+CIPTXISS
将"在TCP数据模式下丢弃输入AT数据"(来自SIM900 AT手册)。desc对我来说不是很清楚,但是正如我测试的那样,在接收TCP数据时很明显,发送任何AT命令都将被丢弃,尽管将收到诸如CONNECT OK
或CLOSED
之类的响应,但在+RECEIVE
块之后或之前,因此不会中断数据块。