|
|
  |
GPRS непечатные символы, SIM300DZ не хочет их передавать |
|
|
|
May 21 2010, 09:59
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Всем здрасте. Вот столкнулся с такой проблемкой. Пытаюсь передать jpg картинку через GPRS. Делаю коннект, даю команду cipsend и передаю картинку побайтно (putchar'ом по 100 байт). Вот. Ну и заметил, что если в посылочке есть байтики до 0х30 (хотя не факт, что ИМЕННО ВСЕ байты до 0х30) то модуль эту посылочку некорректно передает. По крайней мере вместо SEND OK дает просто OK, да и на серваке картинка не сходится. Символ окончания посылки 0x1A я отлавливаю и как данные не передаю (вот еще, кстати, вопрос - как передать такой байт в роли данных?). При попытке передавать данные более 0х30 - все работает нормально. Если это уже обсуждалось на форуме (а должно было) - просьба не пинать, а кинуть ссылочкой или апнотом. Я честно искал, но не нашел.
Сообщение отредактировал Nikitoc - May 21 2010, 10:01
|
|
|
|
|
May 21 2010, 11:07
|

Профессионал
    
Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409

|
Цитата(Nikitoc @ May 21 2010, 13:30)  Я извиняюсь. А как это сделать? Я не имел ввиду перевести модем в режим передачи ascii-кодированной передачи!!! Я вообще не знаком с этим модемом!!! Имелось ввиду изменить формат передачи когда один бинарный байт кодируется 2мя ascii-символами. Например бинарное число 0x69 передаётся как пара 0x36 0x39 (т.е. ascii-коды цифр 0x6 0x9) 0xAB передаётся как 0x41 0x42 (ascii-коды букв A  . Таким образом гарантировано в сообщении не встретятся управляющие символы. Сам пользуюсь модемами telit. Не встречал такого чтобы стек tcp/ip после установления связи с сервером через сокет не передавал некоторые бинарные данные.
Сообщение отредактировал mempfis_ - May 21 2010, 11:11
|
|
|
|
|
May 21 2010, 12:15
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(Nikitoc @ May 21 2010, 12:59)  Всем здрасте. Вот столкнулся с такой проблемкой. Пытаюсь передать jpg картинку через GPRS. Делаю коннект, даю команду cipsend и передаю картинку побайтно (putchar'ом по 100 байт). Вот. Ну и заметил, что если в посылочке есть байтики до 0х30 (хотя не факт, что ИМЕННО ВСЕ байты до 0х30) то модуль эту посылочку некорректно передает. По крайней мере вместо SEND OK дает просто OK, да и на серваке картинка не сходится. Символ окончания посылки 0x1A я отлавливаю и как данные не передаю (вот еще, кстати, вопрос - как передать такой байт в роли данных?). При попытке передавать данные более 0х30 - все работает нормально. Если это уже обсуждалось на форуме (а должно было) - просьба не пинать, а кинуть ссылочкой или апнотом. Я честно искал, но не нашел. а не пробывал слать командой cipsend=ххх. где ххх - число передаваемых байт. тогда в конце не надо никакого 1А
|
|
|
|
|
May 21 2010, 13:57
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Цитата(CADiLO @ May 21 2010, 14:29)  Приз получает правильный ответ про прозрачный режим. Всем спасибо этот ответ действительно получает приз т.к. удалось таки передать картинку! Всем откликнувшимся - большое спасибо! P.S. Тут еще такой вопросец - растолкуйте мне параметры команды at+cipccfg = 3,2,256,1 Судя по документации 3 - это кол-во повторных передач пакета, 2 - кол-во 200мс интервалов в течение которых пакет будет ожидаться со входа, 256 - максимальное количество байтов в пакете, при достижении которого пакет отправится, 1 - наличие escape последовательности (здесь не понял). Вопрос в следующем когда отправится пакет? При заполнении до 256 байтов или по истечении 2х200мс интервала или после escape последовательности (какая она кстати должна быть?)?
Сообщение отредактировал Nikitoc - May 21 2010, 14:22
|
|
|
|
|
May 24 2010, 11:44
|

Местный
  
Группа: Validating
Сообщений: 207
Регистрация: 14-01-09
Из: Днепропетровск
Пользователь №: 43 367

|
Всем привет. Борьба с передачей данных в прозрачном режиме не окончена. Вылез следующий трабл: после передачи одной картинки в прозрачном режиме я возвращаюсь в командный режим, проверяю соединение (мне возвращает CONNECT OK) и пытаюсь вернуться в data mode, подав команду ato\r\n. Модем возвращает CONNECT, и практически сразу соединение рвется, вылазит сообщение CLOSED ну и, естественно, выбрасывает обратно в командный режим (передавать пытаюсь то же самое). Если после этого я пытаюсь заново установить соединение - (командой at+cipstart) то все замечательно работает до выхода из data mode (с которого я начал описание). Я вот думаю, может это я как-то неправильно использую команду ato ? Почему соединение может рваться? Извиняюсь. Уже разобрался. Просто не дожидался сообщения CONNECT от модема, начинал передавать сразу.
Сообщение отредактировал Nikitoc - May 24 2010, 12:08
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|