|
Зависает радиоканал в SIM300D!, Зависает радиоканал в SIM300D! |
|
|
|
Jul 31 2008, 08:58
|
Частый гость
 
Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116

|
Прошу помощи. 2 раза сумел загнать модуль в тупик (1-й раз микроконтроллер, отправляя sms, накидал мусора, 2-й раз при дозвоне на модуль разорвалась связь). Что произошло: 1. На кнопку powerkey не реагирует (только снимать питание, благо, предусмотрел). 2. Вопрос - AT+CREG: ответ - +CREG=0,1 - норма 3. Вопрос - AT+CPBR=1: ответ - норма (пункты 2 и 3 использую раз в 5 минут для проверки модуля на зависание и т. п.) 4. 3. Вопрос - AT+CSQ: ответ - норма 5. Модуль становится недоступным, сам позвонить, отправить sms не может. 6. Сигнал STATUS в норме. 7. Светодиод мигает как положено. Ждал часа 2, думал сам очухается, не помогло. Что делать? Если с первой причиной можно бороться (не слать мусор), то от второй никто не застрахован. Существует ли AT-команда для такой проверки работоспособности? На сегодняшний день единственное, что придумал - раз в 2 часа тупо выключать/включать модуль. Посоветуйте, что делать.
|
|
|
|
|
 |
Ответов
|
Mar 19 2009, 07:49
|
Участник

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

|
Если интересует как именно можно уличить модем в зависании, могу предложить следующий алгоритм, используемый в своих наработках. Задача: при определённых событиях необходимо отправлять SMS-сообщения на указанный номер. Для этого SMS сообщения помещаются в программную очередь. Программа, отслеживая кол-во сообщений в очереди берёт первое сообщение (НЕ удаляя его из очереди), формирует нужные AT-команды, и отправляет SMS. В случае ошибки при отправке стартует таймер (назовём его таймер ошибки), отсчитывающий время с момента первой ошибки. Программа же через некоторый интервал снова проверяет очередь, достаёт SMS (если предыдущее не было отправлено, то это то же самое SMS) и снова пытается отправить. Если отправки SMS идут неуспешные одна за другой, то как только таймер ошибки достигнет определённого значения (например 1 мин.) - выполняется перезагрузка модуля (сообщения в очереди никуда не деваются в этот момент). Если же в течении таймаута ошибки была успешная отправка - таймер ошибки останавливаем. При успешной отправке SMS удаляем его из очереди. Важное замечание: для каждого сообщения в очереди есть понятие "время жизни". Если очередное сообщение в голове очереди лежит дольше времени жизни - оно удаляется, т.е. его отправка не удалась. Очередь является циклической, т.е. при большом потоке поступлений SMS на отправку в очередь, если кол-во SMS начинает превышать размер очереди - удаляем первое сообщение из головы, теряя его. Таким образом можно варьировать размером очереди в зависимости от доступного размера памяти данных и временем жизни сообщения в очереди в зависимости от срочности отправки SMS. Минус такого подхода - модуль будет частенько перегружаться при отсутствии денег на SIM-карте и частой отправке SMS, т.к. постоянно будут сыпаться ошибки при отправке SMS. Тут уж следите за балансом, либо можно поставить второй разъём для SIM и переключаться на вторую (запасную) SIM-карту в таких случаях. Данный алгоритм работает на реальных устройствах как с SMS, так и с GPRS-сообщениями. Кого заинтересуют подробности - обращайтесь, буду рад помочь.
|
|
|
|
|
Mar 19 2009, 08:24
|
Местный
  
Группа: Свой
Сообщений: 483
Регистрация: 1-09-06
Из: Гродно РБ
Пользователь №: 20 011

|
Цитата(vladimir_k @ Mar 19 2009, 10:49)  Минус такого подхода - модуль будет частенько перегружаться при отсутствии денег на SIM-карте и частой отправке SMS, т.к. постоянно будут сыпаться ошибки при отправке SMS. Тут уж следите за балансом, либо можно поставить второй разъём для SIM и переключаться на вторую (запасную) SIM-карту в таких случаях. Я бы сделал маленькое дополнение. Если после определенного количества попыток перезагрузки модуля работа не возобновилась, делаем пузу на некоторое время, не перезагружаем модуль. Это может быть несколько часов, дело вкуса. потом повторяем по новой. Я это делаю, но не SMSкой а попыткой законектиться к серверу и передать данные. оно дешевле и проще. Поскольку если устройство работает, то данные в любом случае передаются. Можно конечно узнать наличие денег, запросив баланс. Но тут много мароки, лень. Если пользуете GPRS, то наличие денег определять можно по ответу на команду at+cgatt=1. если денег нет получаю ошибку. Правда это проверялось только опытным путем на нескольких операторах на просторах былого СССР а также в странах дальнего зарубежья. Работает стабильно.
Сообщение отредактировал M_Z - Mar 19 2009, 08:26
|
|
|
|
|
Mar 19 2009, 15:35
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(M_Z @ Mar 19 2009, 10:24)  Если пользуете GPRS, то наличие денег определять можно по ответу на команду at+cgatt=1. если денег нет получаю ошибку. Правда это проверялось только опытным путем на нескольких операторах на просторах былого СССР а также в странах дальнего зарубежья. Работает стабильно. У моего оператора логика другая. У тарифного плана есть фича - подключение GPRS. Можно подключить, можно нет. Так если денег нет, а фича была подключена, то после at+cgatt=1 исправно выдается ОК А вот уже на попытку законнектиться куда-нибудь вываливается ошибка. Логика видимо следующая: фича активирована, значит подключаться можно, это бесплатно. А вот данные передавать - извини, нельзя - за это мы деньги хотим
|
|
|
|
Сообщений в этой теме
Budek Зависает радиоканал в SIM300D! Jul 31 2008, 08:58 CADiLO Поверкей кнопка или управляется от контроллера ? Е... Jul 31 2008, 12:07 Budek Цитата(CADiLO @ Jul 31 2008, 18:07) Повер... Jul 31 2008, 13:14 Harbinger Принудительная регистрация в домашней сети - AT+CO... Jul 31 2008, 15:10 Budek Цитата(Harbinger @ Jul 31 2008, 21:10) Пр... Jul 31 2008, 17:03 CADiLO Попробуйте вот эту прошивку.....
Это на новой плат... Aug 1 2008, 05:28 Budek Цитата(CADiLO @ Aug 1 2008, 11:28) Попроб... Aug 1 2008, 15:53 Harbinger Пардон за оффтоп... я так понимаю, 1604 и 1008 дел... Aug 1 2008, 18:31 ArtemKAD ЦитатаУ меня питание 4,1В (МК и модуль питаются вм... Aug 4 2008, 10:40 Kaplinsky Budek, здорово что Вы это описали.
Такая проблема... Aug 20 2008, 05:40 Budek Цитата(Kaplinsky @ Aug 20 2008, 11:40) Bu... Aug 20 2008, 06:20  Dimashik78 Цитата(Budek @ Aug 20 2008, 09:20) Я в ко... Mar 13 2009, 13:11   Budek Цитата(Dimashik78 @ Mar 13 2009, 18:11) П... Mar 13 2009, 18:50 =F8= Аналогичная проблема ничего умнее периодического ... Mar 16 2009, 05:53   M_Z Цитата(Baser @ Mar 19 2009, 19:35) У моег... Mar 20 2009, 06:35 av-master чето не понял где здесь уличение? в том что смс не... Mar 19 2009, 08:08 vladimir_k Цитата(av-master @ Mar 19 2009, 13:0... Mar 19 2009, 08:43 av-master все зависит от конечной цели. я почти всегда держу... Mar 19 2009, 08:57 =F8= Хм.. А почему бы для проверки не завис ли модем не... Mar 21 2009, 06:40 Harbinger Наверное можно... Можно ещё SMS-ки пытаться из кар... Mar 21 2009, 11:25 HARMHARM Цитата(Harbinger @ Mar 21 2009, 13:25) На... Mar 21 2009, 11:51 =F8= Цитата(Harbinger @ Mar 21 2009, 14:25) На... Mar 21 2009, 12:08  HARMHARM Цитата(=F8= @ Mar 21 2009, 14:08) Вы это ... Mar 21 2009, 16:20   =F8= Цитата(HARMHARM @ Mar 21 2009, 19:20) А н... Mar 22 2009, 09:26    HARMHARM Цитата(=F8= @ Mar 22 2009, 11:26) На како... Mar 22 2009, 09:28     =F8= Цитата(HARMHARM @ Mar 22 2009, 13:28) Сиг... Mar 22 2009, 14:25      M_Z Цитата(=F8= @ Mar 22 2009, 18:25) Мне тож... Mar 22 2009, 16:41       =F8= Цитата(M_Z @ Mar 22 2009, 19:41) Если Вы ... Mar 23 2009, 19:04 HARMHARM Кстати, недавно встретился с забавным зависанием S... Mar 24 2009, 05:38
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|