Модем GenLoc31e от Erco&Gener, на модуле Wavecom Q24 Plus. Вещь в себе.

Mar 15, 2010 19:53

Модем GenLoc31e от Erco&Gener, построенный на модуле Wavecom Q24 Plus с GPS приемником uBlox.
Много часов провел я разбираясь в устройстве этой коробочки и хочу про нее что-нибудь написать ;)



Началось всё с того, что на основе этого модема решили строить систему слежения за транспортом http://www.tkrd.ru/
(Систему кстати сделали. На сайте можно посмотреть в режиме демонстрации за несколькими машинками, на которых установлены эти коробочки с программой, которую написал я =).

Рекламные PDF с сайта производителя http://www.ercogener.com/ и с сайта официального дистрибьютора в России, компании Компэл http://compel.ru/ рассказывали, что этот модем умеет собирать данные со встроенного GPS приемника, накапливать их и передавать самостоятельно через GPRS соединение на заданный сервер. Это было как раз то, что нужно для системы. Естественно, на русском языке никакого описания, кроме рекламы, нигде не было.
Когда купили модемы оказалось, что не всё так просто. Модем будет уметь всё это делать только если загрузить на него специальную программу WS0008 от ErcoGener, которую везде почему-то называют прошивкой (это не прошивка, об этом речь ниже).

Сначала было непонятно где её вобще можно скачать и где найти к ней описание. Везде в интернетах написано только, что она есть, она бесплатна, и что с ней вам всё будет. Потом через Компэл связались с ErcoGener и получили эту программу и даташит к ней. Но WS0008 оказалась очень сырой и глючной, теряла данные при работе через TCP, не позволяла нормально настраивать периодичность отправки данных и соединения с сервером, sms-управление оставляло желать лучшего, вобщем еще много чего эта программа не умела, нужного нам.
 (Там очень интересно в даташите к WS0008 написано. Например: "умеет то-то и то-то". и в скобочках рядом "пока в разработке".)

Короче, решили писать свою программу для этого модема. Про такую возможность тоже было написано в рекламных PDF. Я стал разбираться, как это сделать. Тут оказалось, что всё ещё сложнее;) Оказалось, что модем GenLoc31e - это на самом деле модуль Wavecom Q24 Plus + GPS приемник uBlox + непонятная обвеска, которую прикрутили в ErcoGener. И всё это запихано в корпус, на котором написано Erco&Gener GenLoc31e.


 

Ладно, я выяснил, что пользовательская программа исполняется в модуле Wavecom и пошел на их сайт http://www.wavecom.com искать, что делать дальше. На сайте ErcoGener кстати ни слова не написано, что делать, чтобы писать программы под их модемы.

Стал я разбираться, что нужно, чтобы мне написать программу для этого модуля Q24 Plus.
Документация, среда разработки и примеры от Wavecom - это вобще отдельная песня. "Бесплатная среда разработки Open AT", как они её называют - это большой архив совершенно разных программных продуктов, скрученных друг с другом огромным количеством скриптов, написанных под Linux и выполняющихся в эмуляторе(!) bash'a в Windows. M2M Studio - то же самое, но с более красивым названием. Всё это работает глючно и безумно медленно. Описания этой среды и что зачем в ней нужно нет. Информации про разработку программ тоже очень мало. Причем, для понимания того, что есть, надо сначала уметь понимать принцип работы модуля. А это мозгом с первого раза не берется ;)

Оказывается, "программа для модема" - это на самом деле не просто программа, а целая операционная система, которая компилируется вместе с твоим программным кодом из библиотек. Дальше, в самом модуле работает не только эта программа (читай ОС+программа), но ещё и прошивка самого модема (это нечто отдельное). Дальше, в модеме от ErcoGener есть ещё некоторые дополнительные штуки (это GPS модуль, микросхема ввода-вывода к которой подлючены через оптическую развязку входы и выход модема, сторожевой таймер watchdog), и ими нужно как-то управлять из Wavecom модуля. Про это нигде(!) не написано. Даже не сказано, что они есть.
Очень просто, правда? ;)

Вобщем, дальше было долго и скучно. Вам эти пункты ничего не скажут, а у меня они отняли массу времени;)
- Например доставали исходники программы для работы с GPS модулем, чтобы понять как с ним общаться из Wavecom модуля.
- Потом я долго боролся со встроенным в модем ErcoGener сторожевым таймером watchdog. Он очень хитро сбрасывается. Если его не сбрасывать, то при вставленной sim карте он через каждые полторы минуты перезагружает модем отключая и включая у него питание. Нигде о нём нет ни слова. (На сайте wavecom нету, потому что у них в модуле watchdog'а нет, на сайте ErcoGener нет вобще ничего для разработки.) На письма в ErcoGener, там вобще не понимали о чем им говорят. Отвечали - что Вы, у нас в модеме нет сторожевого таймера. Вы пробовали выключить и включить? Проблема в вашей программе.
- Потом еще разбирался, что за микросхема ввода/вывода стоит внутри (она там подключена по SPI шине к модулю) и как с ней работать. (Теперь с моей программой модем умеет через свои входы принимать показания с импульсных топливомеров).
- Или например, оказывается плагин для работы с GPRS WIP 3.10.1034, который входит в самую новую сборку Open AT SDK 3.21, не работает стабильно с прошивкой 657g00_full_g24pl0001 для модуля Q24 Plus из этой же сборки. При передаче данных через несколько минут приводит к перезагрузке модема с сообщением ADL_INIT_FROM_EXCEPTION. То есть тупо где-то виснет. Кто бы мог подумать;)

Последние несколько дней я писал кусок программы, который позволял бы автоматически проверять новую версию программы через интернет, скачивал бы её и устанавилвал в модем. Вчера всё написал. У нас теперь супер-крутая программа, которая даже это умеет. Теперь вот ностальгирую и вспоминаю как мучался в начале и как всё это было непонятно;)

Вдруг кому-нибудь этот рассказ пригодится? Сократит пару недель/месяцев понимания маштабов так сказать ;) Вобщем вопросы в коменты.
Previous post Next post
Up