2017-01-02 4 views
0

Я работаю с модемом BGS2-W. У меня есть приложение C, которое записывает AT-команды модему. Ответы модема выглядят примерно так: \ r \ n ОК или \ r \ n \ n ОК. Каждый раз, когда я получаю \ r или a \ n, я считаю, что конец модема при ответе.Загрузка двоичного файла через GSM-модем

Проблема. Я пытаюсь загрузить двоичный файл через HTTP GET, и двоичный файл может содержать и \ '\ r' и '\ n'. Это вызывает проблемы, когда я пытаюсь разобрать ответы модема.

Кто-нибудь когда-либо испытывал эту проблему? Благодарю.

ответ

0

Я нашел что-то от this file, страница 237, есть пример загрузки HTTP.

При использовании AT^SISR = 4, [reqLength], из 1-й строки ответа имеется длина данных. Отсюда вы должны использовать эту длину данных, но не \ r или \ n как конечную метку.

Со страницы 208, есть больше объяснений^SISR.

0

Вы не должны рассматривать \ r или \ n как модемный ответ, так как эти символы могут использоваться как законный обмен данными как в двоичных файлах, так и в файлах ascii или только в заголовке http-сообщения.
AT + RECV или любая аналогичная команда, которую использует ваш модем для приема данных, должны иметь поле, в котором указывается количество полученных данных, затем поступают данные, а затем строка OK.
Сосредоточьтесь на анализе поля в целом, чтобы вы игнорировали эти специальные символы в ожидаемых данных.

1

Обычно большинство модемов имеют командный режим и режим данных (источник: https://en.wikipedia.org/wiki/Command_and_Data_modes_(modem)). Когда хост отправляет команду для вызова режима данных, модем отправляет ответ «CONNECT», а затем вы должны интерпретировать данные так, как есть. Пожалуйста, используйте ту же концепцию при написании кода на языке C. Хорошо писать свой собственный код, но я могу предложить вам найти библиотеку с открытым исходным кодом, которая позаботится об этом.

+0

* «Когда модем хочет использовать режим данных ...» * - Это не до модема. Режим командной строки (или прозрачный) полностью контролируется хостом. В противном случае ваш ответ будет наиболее информативным из 3 текущих ответов. – sawdust

+0

Согласовано. Соответственно отредактировал ответ – manishg

Смежные вопросы