preload
Ноя 27

При разработке плагина столкнулся с проблемой того, что в SiteAdmin плагин отображается, запускается и работает корректно, но при остановке плагина происходит ошибка. GpsGate Server сообщает (в логах), что не может найти протокол. Также в VehicleTracker не отображается Device mapper. Все условия, вроде бы, выполнены – свойства ProtocolID и StringID соответствующих классов возвращают одинаковые значения.После дня трехэтажного мата и кучи выдернутых волос простое решение нашлось в примере MyDevice. Все же сложно создавать плагины для чужих систем при недостаточной информационной базе.

Решение достаточно простое, необходимо регистрировать протокол каждый раз, когда вызывается метод OnStart() класс-наследника NmeaListener. Пример ниже.

protected override void OnStart()
{
// Install the protocol
MyProtocol proto = new MyProtocol(null);
proto.InstallProtocol();
. . .
}

Всего лишь эти две строчки решают кучу проблем. Не наступайте на чужие грабли, надеюсь кому-нибудь пригодится. :)

Leave a Reply

You must be logged in to post a comment.