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

 
 
> SIM900 - странное поведение +CIPCLOSE...
rx3apf
сообщение Aug 20 2011, 20:00
Сообщение #1


Гуру
******

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



Что-то я никак не соображу - запускаю TCP-соединение (+CIPSTART), разрываю, не дождавшись (+CIPCLOSE) - нормально. Дождался соединения, разрываю - тоже нормально. А вот когда сделал соединение, послал запрос http get, получил файл, пытаюсь сделать +CIPCLOSE - получаю "ERROR". И раз, и два (с интервалом в секунду) - все "ERROR". Потом уже получаю закрытие по инициативе сервера, и статус меняется на "TCP CLOSED". Но в тот момент, когда я даю +CIPCLOSE, статус-то был "CONNECT OK" ! И после получения "ERROR" он таковым оставался, и на второй попытке то же самое. Версия прошивки была 6, сейчас 9 - поведение одинаковое. Как-то раньше я на этот момент внимания не обращал (и вообще пользовался +CIPSHUT), а тут вдруг обнаружил. И как быть ? Ждать разрыва от сервера или все ж пытаться сделать +CIPCLOSE ? +CIPSHUT больше без крайней нужды пользоваться не хочу...

Короче, вопрос звучит так - почему при статусе "CONNECT OK" на команду +CIPCLOSE приходит "ERROR" ? При каких условиях это происходит и как с этим бороться ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RadikX
сообщение Jan 9 2013, 06:51
Сообщение #2


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

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



Аналогичная ситуация заметил тоже бывает. Сейчас просто долблю команду закрытия до 5-ти раз, при незакрытии соединения закрываю сессию. Возникает очень редко, но неприятно.
Go to the top of the page
 
+Quote Post
zebrox
сообщение Jan 9 2013, 09:54
Сообщение #3


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

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



Для себя выход нашел в передаче AT+CIPCLOSE=1, + таймер, 200 сек, на получение ОК либо ERROR от сима, если он истекает, перезапускаю сим.
Еще заметил, что иногда на CGATT=1, сим проглатывает ответ, на какое-то время, и выдает его только после отправки следущей команды (в моем случае, это начало процедуры отключения, т.к. не получен ОК на CGATT)

А вообще да, неприянтно, но жить можно.
Go to the top of the page
 
+Quote Post
Цырен.
сообщение Jan 10 2013, 08:52
Сообщение #4


Евгений
***

Группа: Участник
Сообщений: 341
Регистрация: 13-10-11
Пользователь №: 67 706



Цитата(zebrox @ Jan 9 2013, 13:54) *
Для себя выход нашел в передаче AT+CIPCLOSE=1, + таймер, 200 сек, на получение ОК либо ERROR от сима, если он истекает, перезапускаю сим.
Еще заметил, что иногда на CGATT=1, сим проглатывает ответ, на какое-то время, и выдает его только после отправки следущей команды (в моем случае, это начало процедуры отключения, т.к. не получен ОК на CGATT)

А вообще да, неприянтно, но жить можно.


Господа, поясню чуток.
CIPCLOSE(обычный) - команда с подтверждением. Т.е. модуль говорит серверу "закрываемся", сервер подтверждает закрытие, модуль подтверждает что принял подтверждение. Таймаут закладывайте 2 минуты. Если надо закрыть, чтобы модуль свой стек сбросил в начальное положение без участия сервера, используйте быстрое закрытие CIPCLOSE=1.

"CGATT=1" подавать просто на пустом месте нельзя. Сначала проверьте его текущее состояние и если не "1", то задавайте CGATT=1.

Небольшой тренинг вам в помощь - Прикрепленный файл  SIM900_Training_TCPIP.ppt ( 1.09 мегабайт ) Кол-во скачиваний: 1636
.

Сообщение отредактировал Цырен. - Jan 10 2013, 08:52


--------------------
Go to the top of the page
 
+Quote Post



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

 


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


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