|
|
  |
Передача данных по TCP, не могу понять, Передача данных по TCP, не могу понять |
|
|
|
Jul 30 2011, 15:57
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
Цитата(Alt.F4 @ Jul 30 2011, 19:04)  Читал !!! Но мне не надо знать свой айпи. А APN я ввожу через AT+CIPCSGP. И сразу запускаю AT+CIPSTART. Работает , уже 2 месяц устройство на тесте стоит с такой последовательностью. На форуме видел люди и так и так подключаются... надо будет у CADILO уточнить. Цитата Пробовал дольше, CONNECT OK не приходит. Дело 100% в модеме или в оборудовании опсоса, сервер всегда доступен. Скорее всего.
|
|
|
|
|
Jul 30 2011, 16:28
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Причина определена: Если начинать работу с GPRS после прихода SMS, то ответа "CONNECT OK" от модема не дождаться... Теперь надо определиться как поступать в этом случае. Одиночная AT+CIPCLOSE не помогает. Дуэт AT+CIPCLOSE и AT+CIPSHUT помогает, но не всегда с первого раза... Код ....... AT+CIPSTART="TCP","***.***.***.***","80" OK - жду 15сек AT+CIPCLOSE CLOSE OK AT+CIPSTART="TCP","***.***.***.***","80" OK - жду 15сек AT+CIPCLOSE CLOSE OK AT+CIPSHUT SHUT OK 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.189.74 AT+CIPSTART="TCP","***.***.***.***","80" OK - жду 15сек AT+CIPCLOSE CLOSE OK AT+CIPSTART="TCP","***.***.***.***","80" OK - жду 15сек AT+CIPCLOSE CLOSE OK AT+CIPSHUT SHUT OK 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 178.154.61.19 AT+CIPSTART="TCP","***.***.***.***","80" OK CONNECT OK - получен через 1сек Потестил еще несколько раз: поспешил я с причиной, все-таки СМС не влияет...
Сообщение отредактировал Alt.F4 - Jul 31 2011, 11:59
|
|
|
|
|
Jul 31 2011, 05:33
|
Участник

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

|
Цитата(Alt.F4 @ Jul 30 2011, 22:38)  Проверять можно, только смысл?
Ошибка плавающая, и потестить все довольно сложно, уже полчаса пытаюсь повторить сценарий, но безуспешно... Может секрет в паузах между ответом модема и следующей командой? Было 100мс, увеличил местами до 200/300мс. Смысл, в однозначном определении статуса "CONECT OK" Если после CIPSTATUS возвращается "CONECT OK" - можно отправлять данные. Если нет, устанавливаем таймаут и опрашиваем статус в цикле, либо до "CONECT OK", либо до таймаута. После таймаута - сбрасываем соединение (CIPSHUT)
|
|
|
|
|
Jul 31 2011, 11:56
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Цитата Смысл, в однозначном определении статуса "CONECT OK" Если после CIPSTATUS возвращается "CONECT OK" - можно отправлять данные. Если нет, устанавливаем таймаут и опрашиваем статус в цикле, либо до "CONECT OK", либо до таймаута. Когда работает, то сервер отвечает максимум 2сек. Я ждал минуту, смысла в запросе CIPSTATUS'а просто не вижу, если соединение проходит успешно, "CONECT OK" приходит и после AT+CIPSTART, а если появляется этот "глюк", я все равно более 15сек ждать не буду. Цитата После таймаута - сбрасываем соединение (CIPSHUT) В том то и дело, что оно не помогает!!! см. 17постЦитата чтоб не гадать в чем проблема в модуле, сети или в сервере поставьте сим-карту в обычный GSM-модем и попробуйте установить соединение с сервером с компа. Ошибка плавающая, вчера пол дня считай убил, а сценарий повторился с десяток раз... Может у кого-то просто было подобное или есть мнение как решить проблему? Спасибо.
Сообщение отредактировал Alt.F4 - Jul 31 2011, 11:57
|
|
|
|
|
Aug 1 2011, 06:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Цитата Нужно ожидать ответа в течение 3 минут. За это время должно прийти либо CONNECT OK либо CONNECT FAIL. Если считать, что сервер всегда доступен и у модема нет багов в прошивке, то получается по приходу CONNECT FAIL "тормозит" оборудование опсоса. Тогда почему после переинициализации GPRS ошибка повторяется?
|
|
|
|
|
Aug 1 2011, 07:06
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Попробую сменить оператора. Только потестить получится аж через выходные... Просто смущает это: Код AT+CIPSTART="TCP","***","80" OK - недождались CONNECT OK , но попробуем установить соединение еще раз AT+CIPSTART="TCP","***","80" ЕRROR ALREADY CONNECT - хм , уже законнектились??? AT+CIPSEND ЕRRОR - значит нет... Почему пишет "ALREADY CONNECT"?
|
|
|
|
|
Aug 1 2011, 08:53
|
Ортодокс
  
Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775

|
Цитата(Alt.F4 @ Aug 1 2011, 09:03)  Если считать, что сервер всегда доступен и у модема нет багов в прошивке, то получается по приходу CONNECT FAIL "тормозит" оборудование опсоса. Тогда почему после переинициализации GPRS ошибка повторяется? В таком случае нужно "брать за вымя" оператора.
|
|
|
|
|
Aug 9 2011, 08:13
|

Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 4-04-11
Из: челябинск
Пользователь №: 64 111

|
Цитата(MKdemiurg @ Aug 8 2011, 10:20)  22:29:54 AT+CGATT=1....OK.. 22:29:56 AT+CGATT?.... //анализ состояния ... запрос 5 раз с интервалом в 2 секунды 22:30:02 AT+CIPMODE=1....OK.. 22:30:05 AT+CIPCSGP=1,"www.kyivstar.net","",""....OK.. 22:30:11 AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","5678"....OK.. я, к сожалению не гуру, но именно в такой последовательности я подключался к ya.ru. Теперь подключаюсь по второму варианту. У меня такой вопрос... Есть два модуля. Один в режиме клиента, другой в режиме сервера. Клиент постоянно передает данные серверу с периодом 15 секунд. В таком режиме сервер (sim900d) принимает все данные без ошибок. Но примерно через 15 минут перестает принимать сигналы напроч, и даже при переподключении как сервера тоже не принимает. Начинает продолжать принимать данные только после сброса питания на модуле. В чем может быть проблема? И еще второй вопрос. Что выгоднее при передаче коротких сообщении - ТСР соединение или UDP? И верно ли, что в режиме UDP EXTENDED MODE модуль принимает все что ему пошлют, и его не надо настраивать как сервер?
|
|
|
|
|
Aug 9 2011, 08:31
|
Участник

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

|
Цитата(MKdemiurg @ Aug 8 2011, 14:20)  2)Соответсвенно иногда(раз на 10-20 подключений) вываливается такая штука: 22:32:11.531 AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","5678"....OK.. 22:32:12.093 ..STATE: PDP DEACT....CONNECT FAIL.. Иногда не лечится даже полным перезапуском с отрывом питания. Это оператор или же всётаки надо менять последовательность подключения ? По 1) тоже пытаюсь так работать По 2) наблюдаю аналогичное поведение, но если закрывать сессию на сервере, то повторное соединение (со сбросом CIPSHUT) восстанавливает связь.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|