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

 
 
> <AT+CIICR> + <RING> + <SIM300C> = ГЛЮК, Модем странно себя ведёт
david_off
сообщение Nov 4 2008, 18:18
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 15-10-08
Из: Одесса, Украина
Пользователь №: 40 978



В своем посте "Краткий курс по TCP/IP" я писал про три чудо команды AT+CSTT, AT+CIICR, AT+CIFSF и про глючно работающую AT+CIPSHUT.

На горьком опыте убедился, что одна из чудо команд так же имеет особенность. Заметил, что если после посылки AT+CIICR поступает входящий звонок, то модем:
1) в упор отказывается присылать ответ на AT+CIICR, пока есть входящий звонок
2) пока есть входящий звонок - лезут сообщения RING, а любые команды посылаемые модему игнорируются.

Получается, что если кто-то дозвонился после посылки команды AT+CIICR и до приёма ответа на эту команду - то надо ждать пока на той стороне положат трубку. На нашей стороне нельзя ни отклонить ни принять звонок.

Отдалённо я понимаю, что эти модемы не мультизадачны, но должен же быть какой-то выход из этой ситуации?
Может хотя бы можно поставить ограничение на количество RING, после которых, если трубка не снимается, то модем сам выполняет ATH. Это конечно не решает проблему, но хотя бы сокращает время "зависания" модема.


Для лучшего понимания приведу лог. Лог реальный! CTRL+C, CTRL+V из окна терминала (кроме коментов кончено):

AT+CSTT="WWW.UMC.UA"
OK
AT+CIICR
RING
RING //в этот момент посылаю ATH первый раз
RING //в этот момент посылаю ATH второй раз
RING
RING
RING
NO CARRIER //положил на другой стороне трубку
+PDP: DEACT //модем ожил и вспомнил, что выполняет команду CIICR
ATH //получаю эхо на посланную первый раз ATH
ERROR //ответ на первый ATH
ATH //получаю эхо на посланную второй раз ATH
OK //ответ на второй ATH

Сообщение отредактировал david_off - Nov 4 2008, 19:00
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
david_off
сообщение Nov 4 2008, 19:29
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 15-10-08
Из: Одесса, Украина
Пользователь №: 40 978



Тихо сам с собой веду беседу...
Нашёл регистр S7. В нём хранится значение в секундах, которое вызывающий модуль будет ждать до установления связи. По его истечению он перестаёт пытаться дозвонится и выдаёт команду NO ANSWER. Штука почти что надо, только она не совсем корректно работает при разной нагрузке на сеть.
Если бы найти что-то подобное для случая, когда поступает входящий звонок и можно регулировать время приёма сообщений RING до автоматической посылки команды ATH, то было бы лучше.

Сообщение отредактировал david_off - Nov 4 2008, 19:30
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Nov 4 2008, 21:52
Сообщение #3





Guests






Цитата(david_off @ Nov 4 2008, 22:29) *
Если бы найти что-то подобное для случая, когда поступает входящий звонок и можно регулировать время приёма сообщений RING до автоматической посылки команды ATH, то было бы лучше.

Попробуйте при получении RING, вместо ATH, использовать команду ATA (ответ другому модему). Далее - сразу же прервать связь и, тем самым, отключить звонящего. (По моему цель такая?). В регистре S1 находится текущий счетчик звонков (количество принятых RING-ов). Можете воспользоваться, если хотите ответить не сразу. Еще режим автоответа можно попробовать задействовать для решения Вашей проблемы...
По моему скромному мнения, Вам нужно для начала основательно разобраться с работой обычного, стандартного модема. Далее - изучить дополнительные особенности вашего модема (модуля), потом - сети, с которой работаете. Вы, почему-то, движетесь строго с "противоположного конца". Отсюда - и большинство проблем...
Go to the top of the page
 
+Quote Post
david_off
сообщение Nov 4 2008, 22:18
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 15-10-08
Из: Одесса, Украина
Пользователь №: 40 978



Цитата(@Ark @ Nov 5 2008, 01:52) *
Попробуйте при получении RING, вместо ATH, использовать команду ATA


Я же говорю, что ни одна команда модемом не воспринимается в этот момент. Ни ATA ни ATH. По логу видно, что модем даже эхо не выдаёт, пока на той стороне не положат трубку.

Цитата
В регистре S1 находится текущий счетчик звонков

В моём модеме нет такого регистра. Проверял ATS1? - выдает ERROR. AT&V - показывает S0, S2, S3...
Кроме того, даже если бы было, то всё равно наврядли помогло бы. Модем НЕ РЕАГИРУЕТ ни на какие посылаемые ему команды.

Цитата
По моему скромному мнения, Вам нужно для начала основательно разобраться с работой обычного, стандартного модема. Далее - изучить дополнительные особенности вашего модема (модуля), потом - сети, с которой работаете. Вы, почему-то, движетесь строго с "противоположного конца". Отсюда - и большинство проблем...

Спорить с вами не буду. Убедился, что у Вас опыта побольше будет. Но помоему эта фраза не очень к месту относительно данной темы. Со всеми аспектами касательно данного вопроса я разобрался. Моя же проблема возникла не из-за недостатка знания, а из-за БАГА-ФИЧИ конкретного модема. Её решение ИМХО может быть только каким-то недокументированным способом. А может она вообще не решаема.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Nov 4 2008, 22:35
Сообщение #5





Guests






Цитата(david_off @ Nov 5 2008, 01:18) *
Я же говорю, что ни одна команда модемом не воспринимается в этот момент. Ни ATA ни ATH. По логу видно, что модем даже эхо не выдаёт, пока на той стороне не положат трубку.


Попробуйте, все-таки, включить автоответ (он-то должен быть, раз есть регистр S0). Заблаговременно включите, конечно, а не когда получите RING...

Цитата(david_off @ Nov 5 2008, 01:18) *
Спорить с вами не буду. Убедился, что у Вас опыта побольше будет. Но помоему эта фраза не очень к месту относительно данной темы. Со всеми аспектами касательно данного вопроса я разобрался.

За фразу, конечно, могу извиниться, если полагаете что впечатление ошибочно. smile.gif
Go to the top of the page
 
+Quote Post
david_off
сообщение Nov 5 2008, 09:18
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 37
Регистрация: 15-10-08
Из: Одесса, Украина
Пользователь №: 40 978



Проверил ваше предложение. Пришёл к выводу, что проблема вообще не решаема для данного модема.
Вот листинг нагладно показывающий это.

1)Устанавливаю автоматический ответ после двух RING.
ats0?
0
OK
ats0=2
OK

2) Проверяю работоспособность функции автоответа - работает.
RING
RING
CONNECT 9600
OK
ath
OK

3) Пробую, ответит ли модем, если звонок поступит во время выполнения команды CIICR. НЕ РАБОТАЕТ!
AT+CSTT="WWW.UMC.UA"
OK
AT+CIICR
RING
RING
RING
RING
RING
RING
NO CARRIER//кладу на другой стороне трубуку
OK//когда пропал сигнал входящего звонка - модуль оживает и даёт ответ на AT+CIICR

4) Проверяю, а работает ли ещё функция автоответа (после глюка при CIICR) - работает.
RING
RING
CONNECT 9600

Получается, что пока единственно подходящий вариант, ограничить время попытки создать коннект у вызывающего модема(S7). Это хотя бы сократит период подвешивания вызываемого модема.

Сообщение отредактировал david_off - Nov 5 2008, 09:22
Go to the top of the page
 
+Quote Post



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

 


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


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