При разработке плагина столкнулся с проблемой того, что в 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.
