реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> GPRS непечатные символы, SIM300DZ не хочет их передавать
Nikitoc
сообщение May 21 2010, 09:59
Сообщение #1


Местный
***

Группа: 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
Go to the top of the page
 
+Quote Post
mempfis_
сообщение May 21 2010, 10:22
Сообщение #2


Профессионал
*****

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



Может стоит перевести передачу с бинарной в ascii-кодированную?
Траффик увеличится в 2 раза но зато в данных не будет таких символов которые интерпретировались-бы как управляющие.
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение May 21 2010, 10:30
Сообщение #3


Местный
***

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



Цитата(mempfis_ @ May 21 2010, 13:22) *
Может стоит перевести передачу с бинарной в ascii-кодированную?

Я извиняюсь. А как это сделать?
Go to the top of the page
 
+Quote Post
av-master
сообщение May 21 2010, 10:39
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 857
Регистрация: 14-05-05
Из: Украина
Пользователь №: 4 998



ппц ... мужики.. эти вещи надо в Прозрачном режиме передавать... бинарник таким способом непройдет (попробуй послать пачку из бинарников от 00 по 30 ... помоему 11 / 13 / 17 и т.д... вообще управляющие символы...)
Go to the top of the page
 
+Quote Post
mempfis_
сообщение May 21 2010, 11:07
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 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 cool.gif.
Таким образом гарантировано в сообщении не встретятся управляющие символы.

Сам пользуюсь модемами telit. Не встречал такого чтобы стек tcp/ip после установления связи с сервером через сокет не передавал некоторые бинарные данные.

Сообщение отредактировал mempfis_ - May 21 2010, 11:11
Go to the top of the page
 
+Quote Post
CADiLO
сообщение May 21 2010, 11:29
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Приз получает правильный ответ про прозрачный режим.
При этом переключение 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 (последние слайды)


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
M_Z
сообщение May 21 2010, 12:15
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 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А
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение May 21 2010, 13:57
Сообщение #8


Местный
***

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



Цитата(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 - May 21 2010, 14:22
Go to the top of the page
 
+Quote Post
Nikitoc
сообщение May 24 2010, 11:44
Сообщение #9


Местный
***

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



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

Извиняюсь. Уже разобрался. Просто не дожидался сообщения CONNECT от модема, начинал передавать сразу. blush.gif

Сообщение отредактировал Nikitoc - May 24 2010, 12:08
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016