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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Передача данных по TCP, не могу понять, Передача данных по TCP, не могу понять
MKdemiurg
сообщение Aug 9 2011, 08:43
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Цитата(ap77 @ Aug 9 2011, 11:31) *
По 1) тоже пытаюсь так работать
По 2) наблюдаю аналогичное поведение, но если закрывать сессию на сервере, то повторное соединение (со сбросом CIPSHUT) восстанавливает связь.


1) я ещё с sim300 такую ветку подключения перенёс.
2) Не понял, а как сервер разорвёт соединение, если он к нему и не подключился? Или имеется ввиду отключение от точки доступа оператора?
Go to the top of the page
 
+Quote Post
ap77
сообщение Aug 9 2011, 09:34
Сообщение #32


Участник
*

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



Цитата(MKdemiurg @ Aug 9 2011, 15:43) *
2) Не понял, а как сервер разорвёт соединение, если он к нему и не подключился? Или имеется ввиду отключение от точки доступа оператора?

Нет, имеется ввиду закрытие сессии по инициативе сервера (того, с которым установлено TCP соединение).

У меня сессия после отправки пакета не закрывается, т.е. один раз CIPSTART и много CIPSTATUS+CIPSEND, а когда CIPSTATUS возвращает не CONNECT OK, тогда пытаюсь сделать CIPCLOSE, CIPSHUT (которые не помогают в некоторых случаях).
Но у меня по таймауту, если небыло сообщений, сервер закрывает подключение.. и соответственно, тогда CIPSHUT с повторным подключением к серверу нормально срабатывают.

Это конечно не вариант нормальной работы, но как пища для размышлений )
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Aug 9 2011, 09:59
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Цитата(ap77 @ Aug 9 2011, 12:34) *
Нет, имеется ввиду закрытие сессии по инициативе сервера (того, с которым установлено TCP соединение).

У меня сессия после отправки пакета не закрывается, т.е. один раз CIPSTART и много CIPSTATUS+CIPSEND, а когда CIPSTATUS возвращает не CONNECT OK, тогда пытаюсь сделать CIPCLOSE, CIPSHUT (которые не помогают в некоторых случаях).
Но у меня по таймауту, если небыло сообщений, сервер закрывает подключение.. и соответственно, тогда CIPSHUT с повторным подключением к серверу нормально срабатывают.

Это конечно не вариант нормальной работы, но как пища для размышлений )


Нет, у меня при подключении к серверу CIPCLOSE CIPSHUT срабатывает всегда.
А когда при CIPSTART вывыливается ..STATE: PDP DEACT....CONNECT FAIL..( причём сразуже после подачи cipstart) - просто перегружаю модем ( PDP уже отключён, а к серверу не подсоеденилось). Но проблема в том , что ресет тоже не всегда срабатывает и ..STATE: PDP DEACT.. вываливается до 3х раз подряд.

PS перешёл на "длинный" вариант - буду тестить.


Go to the top of the page
 
+Quote Post
ap77
сообщение Aug 9 2011, 10:22
Сообщение #34


Участник
*

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



Цитата(MKdemiurg @ Aug 9 2011, 16:59) *
Нет, у меня при подключении к серверу CIPCLOSE CIPSHUT срабатывает всегда.
А когда при CIPSTART вывыливается ..STATE: PDP DEACT....CONNECT FAIL..( причём сразуже после подачи cipstart) - просто перегружаю модем ( PDP уже отключён, а к серверу не подсоеденилось). Но проблема в том , что ресет тоже не всегда срабатывает и ..STATE: PDP DEACT.. вываливается до 3х раз подряд.

PS перешёл на "длинный" вариант - буду тестить.

Да, почитал свое сообщение, изложил неточно. т.е. ситуация как и у вас.. в конечном счете. CIPSHUT тоже типа срабатывает всегда, имелось ввиду - возвращает SHUT OK, но при этом статус в IP INITIAL не устанавливается. И вот тогда при попытке повторного CIPSTART тоже возвращает STATE: PDP DEACT....CONNECT FAIL. ну и далее.. через некоторое время, сервер закрывает сессию, у меня модем присылает CLOSED и жизнь налаживается... как-то так.

...с интересом жду результатов тестирования "длинного варианта"
Go to the top of the page
 
+Quote Post
Варяг
сообщение Aug 9 2011, 11:01
Сообщение #35


Частый гость
**

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



Цитата(Aurochs @ Jul 31 2011, 22:35) *
Пауза 15 сек. для CIPSTART - этого мало.
Нужно ожидать ответа в течение 3 минут. За это время должно прийти либо CONNECT OK либо CONNECT FAIL.
Если же вообще ничего не пришло, то это нужно рассматривать уже как аварийную ситуацию (зависание модема, отказ UARTа или еще что-то)


У меня приборы в одной VPN сети Билайна. Если обе подключились к GPRS нормально, то CONNECT OK приходит за 1,5-4 секунды, не больше. Когда ничего не приходит в ответ на CIPSTART то это 100% завис сервер, по крайней мере у меня. При рестарте сервера, он начинает опять принимать сообщения.

Цитата(Варяг @ Aug 9 2011, 11:13) *
У меня такой вопрос... Есть два модуля. Один в режиме клиента, другой в режиме сервера. Клиент постоянно передает данные серверу с периодом 15 секунд. В таком режиме сервер (sim900d) принимает все данные без ошибок. Но примерно через 15 минут перестает принимать сигналы напроч, и даже при переподключении как сервера тоже не принимает. Начинает продолжать принимать данные только после сброса питания на модуле. В чем может быть проблема?

И еще второй вопрос. Что выгоднее при передаче коротких сообщении - ТСР соединение или UDP? И верно ли, что в режиме UDP EXTENDED MODE модуль принимает все что ему пошлют, и его не надо настраивать как сервер?
чем отличаютсо TCP oT UDP?


Кто-нибудь ответить?
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Aug 9 2011, 11:04
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



ap77
Цитата
Да, почитал свое сообщение, изложил неточно. т.е. ситуация как и у вас.. в конечном счете. CIPSHUT тоже типа срабатывает всегда, имелось ввиду - возвращает SHUT OK, но при этом статус в IP INITIAL не устанавливается. И вот тогда при попытке повторного CIPSTART тоже возвращает STATE: PDP DEACT....CONNECT FAIL. ну и далее.. через некоторое время, сервер закрывает сессию, у меня модем присылает CLOSED и жизнь налаживается... как-то так.

...с интересом жду результатов тестирования "длинного варианта"


Нашёл я в чём загвоздка и разница 2х веток, всё оказалось банально.


22:30:05 AT+CIPCSGP=1,"www.kyivstar.net","",""....OK.. // "ОК" приходит с разницей меньше 200мс.
22:30:08 AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","5678"....OK..

Вообщем пока между этими командами стояла задержка в 5 секунд - всё работало. Мне показалось долго и я урезал до 2 секунд.

В свяске же :

13:42:35.765 AT+CIICR..
13:42:40.453 ..OK..
Видно что GPRS подымается около 5 секунд(может и дольше), в общем всё встало на свои места с ожидаем OK на команду CIICR. Вот подумываю всё равно проверять CIPSTATUS.

вообщем "курить мануалы" и не жмотится на задержки в критических местах есть очень разумная вещь biggrin.gif

ЗЫ Хотя буду ждать, может всётаки не в этом дело...

Сообщение отредактировал MKdemiurg - Aug 9 2011, 11:17
Go to the top of the page
 
+Quote Post
Варяг
сообщение Aug 9 2011, 11:11
Сообщение #37


Частый гость
**

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



Цитата(MKdemiurg @ Aug 9 2011, 14:04) *
ap77


Нашёл я в чём загвоздка и разница 2х веток, всё оказалось банально.


22:30:05 AT+CIPCSGP=1,"www.kyivstar.net","",""....OK.. // "ОК" приходит с разницей меньше 200мс.
22:30:08 AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","5678"....OK..

Вообщем пока между этими командами стояла задержка в 5 секунд - всё работало. Мне показалось долго и я урезал до 2 секунд.

В свяске же :

13:42:35.765 AT+CIICR..
13:42:40.453 ..OK..
Видно что GPRS подымается около 5 секунд(может и дольше), в общем всё встало на свои места с ожидаем OK на команду CIICR. Хотя вот подумываю всё равно проверять CIPSTATUS.

вообщем "курить мануалы" и не жмотится на задержки в критических местах есть очень разумная вещь biggrin.gif

ЗЫ Хотя буду ждать, может всётаки не в этом дело...


На AT+CIICR ОК придет в любом случае, но надо иногда долго ждать. У меня тоже стоит большая задержка после AT+CIICR, но иногда её не хватает, и модуль не хавает последующие команды. Тогда есть Вариант перед каждым CIPSTART давать AT+CIFSR, потому что без AT+CIFSR не дается айпишник и соответственно не получается передать данные.
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Aug 9 2011, 11:14
Сообщение #38


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Цитата(Варяг @ Aug 9 2011, 14:11) *
На AT+CIICR ОК придет в любом случае, но надо иногда долго ждать. У меня тоже стоит большая задержка после AT+CIICR, но иногда её не хватает, и модуль не хавает последующие команды. Тогда есть Вариант перед каждым CIPSTART давать AT+CIFSR, потому что без AT+CIFSR не дается айпишник и соответственно не получается передать данные.


Я завёл таймер на полторы минуты. Если ОК не приходит таймер перегружает модем.
Go to the top of the page
 
+Quote Post
Варяг
сообщение Aug 9 2011, 11:19
Сообщение #39


Частый гость
**

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



Цитата(MKdemiurg @ Aug 9 2011, 14:14) *
Я завёл таймер на полторы минуты. Если ОК не приходит таймер перегружает модем.


Сейчас стабильно укладываюсь в пять секунд. Раньше не укладывался, потому что антенна хреновая была и не всегда даже GPRS подрубался.
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Aug 9 2011, 11:34
Сообщение #40


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



К вопросу о времени.

14:30:01.015 AT+CIICR..
14:30:13.312 ..OK..

Оператор MTS-UA. Такие вот пироги


Go to the top of the page
 
+Quote Post
ap77
сообщение Aug 10 2011, 04:02
Сообщение #41


Участник
*

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



Цитата(MKdemiurg @ Aug 9 2011, 18:04) *
Нашёл я в чём загвоздка и разница 2х веток, всё оказалось банально.


22:30:05 AT+CIPCSGP=1,"www.kyivstar.net","",""....OK.. // "ОК" приходит с разницей меньше 200мс.
22:30:08 AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","5678"....OK..

Вообщем пока между этими командами стояла задержка в 5 секунд - всё работало. Мне показалось долго и я урезал до 2 секунд.

В свяске же :

13:42:35.765 AT+CIICR..
13:42:40.453 ..OK..
Видно что GPRS подымается около 5 секунд(может и дольше), в общем всё встало на свои места с ожидаем OK на команду CIICR. Вот подумываю всё равно проверять CIPSTATUS.

вообщем "курить мануалы" и не жмотится на задержки в критических местах есть очень разумная вещь biggrin.gif

ЗЫ Хотя буду ждать, может всётаки не в этом дело...

Мне не понятно другое,

1) у меня задержек никаких нет вообще. работаю по получению ответа или таймауту. Т.е. предполагаю, что когда команда присылает ответ (OK или ERROR + что-то еще по мануалу) можно двигаться дальше. Это не всегда так? Не для всех команд?

2) в мануале написано, что CIPCSGP+CIPSTART можно подавать, когда статус возвращает IP INITIAL. Именно так и делаю... и все-же иногда возвращается PDP:DEAC... вот это тоже странно... только что статус вернул IP INITIAL, а при старте уже неактивный контекст?

А задержки, они вообще для чего? если у нас диалог...
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Aug 10 2011, 08:10
Сообщение #42


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Цитата(ap77 @ Aug 10 2011, 08:02) *
Мне не понятно другое,

1) у меня задержек никаких нет вообще. работаю по получению ответа или таймауту. Т.е. предполагаю, что когда команда присылает ответ (OK или ERROR + что-то еще по мануалу) можно двигаться дальше. Это не всегда так? Не для всех команд?

2) в мануале написано, что CIPCSGP+CIPSTART можно подавать, когда статус возвращает IP INITIAL. Именно так и делаю... и все-же иногда возвращается PDP:DEAC... вот это тоже странно... только что статус вернул IP INITIAL, а при старте уже неактивный контекст?

А задержки, они вообще для чего? если у нас диалог...


1) Я также работаю. ОК получил - двигаем дальше. Только я команды отправляю с интервалом в 0.5-1 сек. Так вот когда у меня стояла задержка между cipcsgp и cipstart в 5 секунд( при 0.5-1 секунды выбивало PDP:DEAC всегда ) - всё было пучком -> взял и урезал до 2 секунд - начало выбивать 50\50. Это мои наблюдения. По AT+CIPSTATUS не проверял.
2)теперь перешёл на схему
10:52:46.562 AT+CGATT=1....OK..
10:52:48.609 AT+CGATT?....+CGATT: 1....OK..
10:52:54.343 AT+CIPMODE=1....OK..
10:52:56.078 AT+CIPCSGP=1,"internet","",""....OK..
10:52:57.109 AT+CSNS=4....OK..
10:52:59.171 AT+CSTT="internet","",""....OK..
10:53:00.203 AT+CIICR..
10:53:03.015 ..OK..
10:53:04.055 AT+CIFSR....xxx.xxx.xxx.xxx..
10:53:05.031 AT+CIPSTART="TCP","xxx.xxx.xxx.xxx","5678"....OK..

5 макетов уже сутки передают без PDP:DEAC. Вот думаю ещё ввести проверки по CIPSTATUS.

Сообщение отредактировал MKdemiurg - Aug 10 2011, 08:14
Go to the top of the page
 
+Quote Post
ap77
сообщение Aug 10 2011, 09:27
Сообщение #43


Участник
*

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



Цитата(MKdemiurg @ Aug 10 2011, 15:10) *
5 макетов уже сутки передают без PDP:DEAC. Вот думаю ещё ввести проверки по CIPSTATUS.

полезная информация, спасибо!

еще бы в причинах разобраться )
некомфортно, когда только методом тыка подобрано
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Aug 10 2011, 16:34
Сообщение #44


Гуру
******

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



Цитата(ap77 @ Aug 10 2011, 08:02) *
2) в мануале написано, что CIPCSGP+CIPSTART можно подавать, когда статус возвращает IP INITIAL. Именно так и делаю... и все-же иногда возвращается PDP:DEAC... вот это тоже странно... только что статус вернул IP INITIAL, а при старте уже неактивный контекст?

Вот если дать +CIPSHUT и тут же +CIPSTART - то гарантированно DEACT. И статус проверяю - "IP INITIAL", но без задержки гарантированно вылетает. Вроде в восьмой версии пофиксено - сейчас возобновляю разборки со своим проектом, так эти проблемы при рестарте сессии уже замучали. Причем и с задержками тоже не гарантированно - при PDP DEACT выдаю +CIPSHUT, через минуту проверяю статус и делаю старт - и опять то же самое. Двести раз - и все одно. Перерегистрация - и то же самое бывает. Правда, МТСовский GPRS у меня тут работает отвратительно... Перешью, поиграюсь...
Go to the top of the page
 
+Quote Post
ap77
сообщение Aug 11 2011, 02:18
Сообщение #45


Участник
*

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



Цитата(rx3apf @ Aug 10 2011, 23:34) *
Вот если дать +CIPSHUT и тут же +CIPSTART - то гарантированно DEACT. И статус проверяю - "IP INITIAL", но без задержки гарантированно вылетает. Вроде в восьмой версии пофиксено - сейчас возобновляю разборки со своим проектом, так эти проблемы при рестарте сессии уже замучали. Причем и с задержками тоже не гарантированно - при PDP DEACT выдаю +CIPSHUT, через минуту проверяю статус и делаю старт - и опять то же самое. Двести раз - и все одно. Перерегистрация - и то же самое бывает. Правда, МТСовский GPRS у меня тут работает отвратительно... Перешью, поиграюсь...

У меня EAT, второй версии... тоже самое. Поставлю третью версию, может полегчает
Go to the top of the page
 
+Quote Post

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

 


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


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