Цитата(av-master @ Mar 19 2009, 13:08)

чето не понял где здесь уличение? в том что смс не доставленна? довольно затратный способ ИМХО.
Обнаружение того что с модемом что-то не так (завис попросту говоря) происходит в результате неуспешной отправки SMS в течении определённого времени. Если за это время сообщение так и не было отправлено - перегружаем модем, сообщение же всё это время находится в очереди, пока позволяет "время жизни", либо пока не будет отправлено. Для моей задачи, например, время жизни для SMS в 5 мин. является приемлимым. В таком случае сообщение будет потеряно, если закончились деньги на сим-карте, либо сим-карта не зарегистрирована в сети, либо большой поток SMS-сообщений для отправки (тогда старые сообщения затираются новыми при отсутствиии места в очереди), либо перегрузка сети, как бывает в новогоднюю ночь. Иначе сообщение доставляется без проблем, независимо от зависания модема.
Согласен, способ немного затратен по ресурсам памяти для организации очереди и коду для проверки различных таймаутов, но для современных контроллеров это не помеха. Всё же при таком подходе нет надобности в периодической перезагрузке модема.
Цитата(M_Z @ Mar 19 2009, 13:24)

Я бы сделал маленькое дополнение. Если после определенного количества попыток перезагрузки модуля работа не возобновилась, делаем пузу на некоторое время, не перезагружаем модуль. Это может быть несколько часов, дело вкуса. потом повторяем по новой. Я это делаю, но не SMSкой а попыткой законектиться к серверу и передать данные. оно дешевле и проще. Поскольку если устройство работает, то данные в любом случае передаются.
Можно конечно узнать наличие денег, запросив баланс. Но тут много мароки, лень.
Если пользуете GPRS, то наличие денег определять можно по ответу на команду at+cgatt=1. если денег нет получаю ошибку. Правда это проверялось только опытным путем на нескольких операторах на просторах былого СССР а также в странах дальнего зарубежья. Работает стабильно.
Вы правы,
M_Z, так и надо делать. Так я делаю и у себя, приостанавливая работу с модемом минут на 10-20, если, например, нет денег на сим-карте и не удалось зарегистрировать сервис GPRS (командой CGREG), чтобы зря не мучить модем частыми перезагрузками.