Получите удаленные данные без прерывания с ответом модема

Я пишу приложение для работы с SIM900 GPRS и отправки/получения данных на серверы в режиме множественного соединения (AT+CIPMUX=1). Проблема в том, что когда я получаю данные с сервера, они также могут быть нарушены ответом модема, и нет никакого понимания, как это обнаружить или избежать.

Обычная процедура отправки данных (на соединение 0) после того, как все готово:

AT+CIPSEND=0
>
GET /index.php?packet=Test HTTP/1.1 \r\n Host:...
+RECEIVE,0,137:
bla bla bla
bla bla bla
bla bla bla

Итак, считайте, что вы получили ответ модема между этими вещами. Например, если я отправлю AT+CIPSEND=1 (после первого), я получу > между блоками данных после +RECEIVE. Это пример, я могу получить X, CLOSED, Y, CONNECT OK, ...

+RECEIVE,0,137:
bla bla bla
bla bla 1, CONNECT OK
bla bla bla bla

Как правильно получить данные, не нарушая ответы модема?


person SAMPro    schedule 01.05.2019    source источник


Ответы (1)


Существует команда AT+CIPTXISS, которая будет «Отбрасывать входные данные AT в режиме данных TCP» (из руководства SIM900 AT). Desc для меня не очень ясен, но, как я тестировал, очевидно, что при получении данных TCP отправка любой AT-команды будет отброшена, хотя ответы, такие как CONNECT OK или CLOSED, будут получены, но после или до блока +RECEIVE, таким образом, не прерывая блок данных .

person SAMPro    schedule 05.05.2019