Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GPRS непечатные символы
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Nikitoc
Всем здрасте. Вот столкнулся с такой проблемкой. Пытаюсь передать jpg картинку через GPRS. Делаю коннект, даю команду cipsend и передаю картинку побайтно (putchar'ом по 100 байт). Вот. Ну и заметил, что если в посылочке есть байтики до 0х30 (хотя не факт, что ИМЕННО ВСЕ байты до 0х30) то модуль эту посылочку некорректно передает. По крайней мере вместо SEND OK дает просто OK, да и на серваке картинка не сходится. Символ окончания посылки 0x1A я отлавливаю и как данные не передаю (вот еще, кстати, вопрос - как передать такой байт в роли данных?). При попытке передавать данные более 0х30 - все работает нормально.
Если это уже обсуждалось на форуме (а должно было) - просьба не пинать, а кинуть ссылочкой или апнотом. Я честно искал, но не нашел.
mempfis_
Может стоит перевести передачу с бинарной в ascii-кодированную?
Траффик увеличится в 2 раза но зато в данных не будет таких символов которые интерпретировались-бы как управляющие.
Nikitoc
Цитата(mempfis_ @ May 21 2010, 13:22) *
Может стоит перевести передачу с бинарной в ascii-кодированную?

Я извиняюсь. А как это сделать?
av-master
ппц ... мужики.. эти вещи надо в Прозрачном режиме передавать... бинарник таким способом непройдет (попробуй послать пачку из бинарников от 00 по 30 ... помоему 11 / 13 / 17 и т.д... вообще управляющие символы...)
mempfis_
Цитата(Nikitoc @ May 21 2010, 13:30) *
Я извиняюсь. А как это сделать?


Я не имел ввиду перевести модем в режим передачи ascii-кодированной передачи!!!
Я вообще не знаком с этим модемом!!!

Имелось ввиду изменить формат передачи когда один бинарный байт кодируется 2мя ascii-символами.
Например бинарное число 0x69 передаётся как пара 0x36 0x39 (т.е. ascii-коды цифр 0x6 0x9)
0xAB передаётся как 0x41 0x42 (ascii-коды букв A cool.gif.
Таким образом гарантировано в сообщении не встретятся управляющие символы.

Сам пользуюсь модемами telit. Не встречал такого чтобы стек tcp/ip после установления связи с сервером через сокет не передавал некоторые бинарные данные.
CADiLO
Приз получает правильный ответ про прозрачный режим.
При этом переключение command-data mode лучше делать аппаратно дергая DTR (естественно настроив ножку по AT&D)
Как сделать есть в даташитах и апнотах. Не забываем про RTS-CTS при работе с данными!

TCPIP Application Note_V3.00.pdf
TCP_ATC_V2.01.pdf
_Module FAQ-2.pdf
SIM300 seminar2009.ppt (последние слайды)
M_Z
Цитата(Nikitoc @ May 21 2010, 12:59) *
Всем здрасте. Вот столкнулся с такой проблемкой. Пытаюсь передать jpg картинку через GPRS. Делаю коннект, даю команду cipsend и передаю картинку побайтно (putchar'ом по 100 байт). Вот. Ну и заметил, что если в посылочке есть байтики до 0х30 (хотя не факт, что ИМЕННО ВСЕ байты до 0х30) то модуль эту посылочку некорректно передает. По крайней мере вместо SEND OK дает просто OK, да и на серваке картинка не сходится. Символ окончания посылки 0x1A я отлавливаю и как данные не передаю (вот еще, кстати, вопрос - как передать такой байт в роли данных?). При попытке передавать данные более 0х30 - все работает нормально.
Если это уже обсуждалось на форуме (а должно было) - просьба не пинать, а кинуть ссылочкой или апнотом. Я честно искал, но не нашел.

а не пробывал слать командой cipsend=ххх. где ххх - число передаваемых байт. тогда в конце не надо никакого 1А
Nikitoc
Цитата(CADiLO @ May 21 2010, 14:29) *
Приз получает правильный ответ про прозрачный режим.

Всем спасибо этот ответ действительно получает приз т.к. удалось таки передать картинку! 08.gif
Всем откликнувшимся - большое спасибо!
P.S. Тут еще такой вопросец - растолкуйте мне параметры команды at+cipccfg = 3,2,256,1 Судя по документации 3 - это кол-во повторных передач пакета, 2 - кол-во 200мс интервалов в течение которых пакет будет ожидаться со входа, 256 - максимальное количество байтов в пакете, при достижении которого пакет отправится, 1 - наличие escape последовательности (здесь не понял). Вопрос в следующем когда отправится пакет? При заполнении до 256 байтов или по истечении 2х200мс интервала или после escape последовательности (какая она кстати должна быть?)?
Nikitoc
Всем привет. Борьба с передачей данных в прозрачном режиме не окончена. Вылез следующий трабл: после передачи одной картинки в прозрачном режиме я возвращаюсь в командный режим, проверяю соединение (мне возвращает CONNECT OK) и пытаюсь вернуться в data mode, подав команду ato\r\n. Модем возвращает CONNECT, и практически сразу соединение рвется, вылазит сообщение CLOSED ну и, естественно, выбрасывает обратно в командный режим (передавать пытаюсь то же самое). Если после этого я пытаюсь заново установить соединение - (командой at+cipstart) то все замечательно работает до выхода из data mode (с которого я начал описание). Я вот думаю, может это я как-то неправильно использую команду ato ? Почему соединение может рваться?

Извиняюсь. Уже разобрался. Просто не дожидался сообщения CONNECT от модема, начинал передавать сразу. blush.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.