Цитата(Romashki @ Oct 14 2011, 22:54)

1 - проверяем ногу статус (это нам скажет о том, что модуль может принимать команды). Без появления этого сигнала - дальнейшая работа с модулем бессмысленна.
2 - ожидаем окончания регистрации в сети (CREG), если регистрация долго отсутствует (например на протяжении 40 секунд), пытаемся перезапустить модуль (поверкей или CFUN=1,1). Без регистрации дальнейшая работа с модулем бессмысленна.
....
не совсем понимаю где проблема???
Нет нет - нет проблем. Я собственно приблизительно такой алгоритм сейчас и реализовал вместо посылки АТ и ожиданием OK. Я был озадачен тем, на сколько это, как бы, объективно.
С AT+CREG? это конечно лучше - так как и ответ придет (стык с модемом на уровне USART) и регистрацию проверяем (на канальном уровне GSM). Если что-то возникнет более существенное в опытной эксплуатации за 3 мес. - то буду править код под уже возникающие проблемы.
Цитата(Romashki @ Oct 14 2011, 22:54)

Если боитесь перегрева - спрашивайте у модуля температуру;
напряжение питания - спрашивайте питание;
если и это не 100% - то спрашивайте текущее время и сравнивайте с предыдущим значением.
Эти моменты я учел в проверке. Думаю на данном этапе все эти меры будут конечно не 100% гарантировать слежение за зависанием, но хотябы избежать большей части (если конечно это вообще наступит).
Возник еще такой вопрос:
Есть ли какой-либо параметр определяющий максимальное время ответа модема SIM900 по USART на команды?
Т.е. я имею ввиду что, MCU посылает модему команду AT на скорости 9600, через какое максимальное время мне ожидать прием первого символа ответа?
Я понимаю, что например в команде AT+CMGDA=6 - ответ идет долго - потому что стираются смски. Но для простых команд типа ATZ, ATE, AT и т.п есть ли такие временные рамки?
Я к чему спрашиваю. К примеру, посылаю команду, в ответ ожидается "OK" и через сколько его ждать от SIM900? 100 мс, 300 мс, 1 с? Дело в программном ожидании ОК от модема. Через прерывания в данном случае не могу реализовать - там задействован другой код программы. Если я не буду ограничивать время ожидания ОК и если оно не придет - то гаджет бесконечно зациклится на этом ожидании. Думал решить такую проблему через "хитросбрасываемый" watchdog - но слишком уж жестко это, хотя...
Сообщение отредактировал Ildar Belkin - Oct 16 2011, 08:43