|
Передача данных по TCP, не могу понять, Передача данных по TCP, не могу понять |
|
|
|
May 13 2011, 10:46
|
Группа: Новичок
Сообщений: 6
Регистрация: 3-02-08
Пользователь №: 34 712

|
Здравствуйте нужно перередаваты данные по TCP / IP, работаю с модулями sim300C, Sim300d. С одной стороны стандартный симкомовський кит с другой программа server.exe, скачал с сайта Гаммы. Программа работает, проверял клиентом написанным на С #. При соединении с сервером с кита после команды at + cipstart = "tcp", "46.211.75.141", "2020" получаю только слово ОК, но не получаю CONNECT OK. И не могу передавать данные. в чем ошибка? Call Ready 13:44:24 at OK 13:44:26 at+cgatt=1 OK 13:44:31 at+cipcsgp=1,"www.kyivstar.net" OK 13:44:35 at+cdnsorip=0 OK 13:44:38 at+cstt OK 13:44:41 at+ciicr 13:44:43 OK 13:44:46 at+cifsr 178.137.232.20 13:44:49 at+cipstart="tcp","46.211.75.141","2020" OK 13:44:58
Сообщение отредактировал unKind - May 13 2011, 10:48
|
|
|
|
|
May 13 2011, 12:37
|
Группа: Новичок
Сообщений: 6
Регистрация: 3-02-08
Пользователь №: 34 712

|
Использую котрактную карточку Киевстар.
|
|
|
|
|
May 13 2011, 13:39
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(unKind @ May 13 2011, 14:46)  При соединении с сервером с кита после команды at + cipstart = "tcp", "46.211.75.141", "2020" получаю только слово ОК, но не получаю CONNECT OK. И не могу передавать данные. в чем ошибка?  "OK" - команда принята. А дальше нужно ждать установления соединения. Может быть, сервер недоступен ? Порт не проброшен ? В любом случае - ждать результата ("OK" - не результат, это лишь подтверждение приема команды). "CONNECT FAIL" - не смог соединиться, тогда копать дальше (попробовать с каким-нибудь другим сервером, хоть с google.com по порту 80). Ждать надо достаточно долго, уж 10-15 секунд таймаут это как минимум, я бы предложил секунд 30.
|
|
|
|
|
May 13 2011, 13:54
|
Группа: Участник
Сообщений: 5
Регистрация: 23-03-11
Пользователь №: 63 819

|
Я бы добавил проверку AT+CGATT? чтобы убедится что он действительно в 1. Разве не надо использовать AT+CGDCONT для определения PDP контекста (APN, login, password) для оператора? И точно ли сервер на этом порту принимает соединения извне?
|
|
|
|
|
May 13 2011, 14:00
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(shootnik911 @ May 13 2011, 17:54)  Я бы добавил проверку AT+CGATT? чтобы убедится что он действительно в 1. А я ее вообще вместе с +cipstart сунул, потому как отваливалось иногда... Цитата Разве не надо использовать AT+CGDCONT для определения PDP контекста (APN, login, password) для оператора? Можно и через +cipcsgp Цитата И точно ли сервер на этом порту принимает соединения извне? О ! Потому при сомнениях надо попробовать сунуться куда-нибудь на общедоступный сервер. Но для начала хоть ответа дождаться...
|
|
|
|
|
May 15 2011, 16:07
|
Группа: Новичок
Сообщений: 6
Регистрация: 3-02-08
Пользователь №: 34 712

|
Да, проблема была в том, что я использовал карточки одного оператора. Поставив другую все решылось.
Теперь нужно отслежывать состояние подключения. Как ето делать удобно? какие команды использовать?
|
|
|
|
|
Jul 30 2011, 13:41
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Столкнулся с похожей проблемой как у автора (sim900 8-ая прошивка): Код AT+CGATT=1 OK AT+CGREG? +CGREG: 0,1 OK AT+CIPCSGP=1,"internet.life.com.by" OK AT+CSTT OK AT+CIICR OK AT+CIFSR 109.126.166.74 AT+CIPSTART="TCP","***.***.***.***","80" OK Жду минуту, затем AT+CIPCLOSE CLOSE OK - т.е. соединение было установлено??? AT+CIPSHUT SHUT OK И повторяю все снова. Даже перезагрузка с отключением питания иногда не помогает... CONNECT OK не приходит около 1-5 раз, затем все хорошо. Пытался найти зависимость: звонил, получал/отправлял SMS во время GPRS-передачи, затем заново переподключался. Но зависимости от каких-либо действий не заметил, один раз из двадцати CONNECT OK не приходит... Что можно придумать? Спасибо.
Сообщение отредактировал Alt.F4 - Jul 30 2011, 15:08
|
|
|
|
|
Jul 30 2011, 14:12
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Цитата Зачем использовать вот эти команды? AT+CSTT AT+CIICR AT+CIFSR Для инициализации PDP-контекста, запуска GPRS-соединения и получения IP-адреса. Попробовал выйти из положения поста #9, чудеса прямо какие-то... Код AT+CIPSTART="TCP","***.***.***.***","80" OK - не дождались CONNECT OK, но попробуем дальше AT+CIPSEND ERROR - установим соединение еще раз AT+CIPSTART="TCP","***.***.***.***","80" ERROR ALREADY CONNECT - хм, уже законнектились??? AT+CIPSEND ERROR - значит нет... Что же делать?
Сообщение отредактировал Alt.F4 - Jul 30 2011, 14:20
|
|
|
|
|
Jul 30 2011, 14:31
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
Цитата(Alt.F4 @ Jul 30 2011, 18:12)  Для инициализации PDP-контекста, запуска GPRS-соединения и получения IP-адреса. Ну так оно и так неплохо работает в 2 команды вместо 5 !!! Мне казалось что запуском AT+CIPCSGP и AT+CIPSTART все инициализации и подключения автоматом происходят. По поводу вашей проблемы А дольше подождать не резон? Попробуйте законектица просто на ya.ru Кстати а почему вы не устанавливаете AT+CIPMODE ? Или он раньше установлен?
Сообщение отредактировал MKdemiurg - Jul 30 2011, 14:32
|
|
|
|
|
Jul 30 2011, 15:04
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Цитата Ну так оно и так неплохо работает в 2 команды вместо 5 !!! Мне казалось что запуском AT+CIPCSGP и AT+CIPSTART все инициализации и подключения автоматом происходят. SIM900_TCPIP_Application Note_V1.02.pdfЦитата По поводу вашей проблемы. А дольше подождать не резон? Пробовал дольше, CONNECT OK не приходит. Дело 100% в модеме или в оборудовании опсоса, сервер всегда доступен. Цитата Кстати а почему вы не устанавливаете AT+CIPMODE ? Или он раньше установлен? Я использую непрозрачный режим.
Сообщение отредактировал Alt.F4 - Jul 30 2011, 15:06
|
|
|
|
|
Jul 30 2011, 15:23
|
Участник

Группа: Свой
Сообщений: 63
Регистрация: 18-01-11
Из: Новосибирск
Пользователь №: 62 313

|
Цитата(Alt.F4 @ Jul 30 2011, 20:41)  Столкнулся с похожей проблемой как у автора (sim900 8-ая прошивка): ... Спасибо. Предлагаю проверять AT+CIPSTATUS
|
|
|
|
|
Jul 30 2011, 15:38
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Цитата Предлагаю проверять AT+CIPSTATUS Проверять можно, только смысл? Ошибка плавающая, и потестить все довольно сложно, уже полчаса пытаюсь повторить сценарий, но безуспешно... Может секрет в паузах между ответом модема и следующей командой? Было 100мс, увеличил местами до 200/300мс.
Сообщение отредактировал Alt.F4 - Jul 30 2011, 15:55
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|