Получите удаленные данные без разрыва с ответом модема - PullRequest
0 голосов
/ 01 мая 2019

Я пишу приложение для работы с 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

Как правильно получить данные без разрыва с ответами модема?

1 Ответ

0 голосов
/ 05 мая 2019

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

...