Добрий день.
Была у меня задача - разработать банальный GPS трекер. Разработал на основе SIM300D+itrax300
В общем проблема в том что на столе пока все лежит устойчиво работает хоть неделю, а как на машины поставили, так где-то раз в день пропадает связь с трекером на время от 20 минут до пары часов. Это в городе. Как машина едет за город так связь может пропасть на пол дня, иногда вообще до перегрузки трекера. Я думаю это как-то связано с пропаданием сети. Естественно посмотреть терминалом лог связи МК-СИМ300 во время таких глюков не могу.
Скорее всего у меня не правильный алгоритм GPRS соединения, так как найти пример не в даташите ни на форумах не смог. Может кто поделится алгоритмом, или подскажет как правильно держать GPRS подключение всегда открытым. То есть при включении питания/пропадании сети пытатся соединятся с интернетом... короче что б при любых условия было соединение с интернетом.
Заранее спасибо.
ЗЫ: у меня все реализовано относительно команды ipstatus, но вот как правильно реагировать на все значения я не нашел. если ответ: INITIAL или GPRSACT или IP START или IP CONFIG то коннектимся: at+creg? at+cgreg? at+cgatt=1 at+cipcsgp=1 бла бла at+cstt at+ciicr Ок at+cifsr
(Вопрос: обязательно ли учитывать ответы на каждую команду(у меня учитывается только ответ ОК на at+ciicr) или можно при неудаче соединения пытаться снова???)
Если IP STATUS или IP CLOSE конектимся к серверу: at+cipstart=ТСП, адрес, порт ждем CONNECT OK at+cipsend=164 / Данные/ at+cipclose
если при опросе ipstatusсом ответ CONNECTING или CONNECT OK (не закрывается долго соединение) или IP START или IP CONFIG повторяется большое количство раз подряд - тогда резет.
если ответ PDP DEACT или IP IND - резет сразу
Знаю что алгоритм говняный и никуда не годится, но я окончательно запутался в этой массе команд и ответов и слепил все как-нить но что б хоть как-то работало.
Вот и прошу Вашей помощи...
|