JS Плагин: onSub для devices - обработчик не вызывается
-
Окружение: Docker образ ubuntu:noble, платформа amd64
Host машина: mac os 15.7.4, m1 pro, 16gb ram
Версия ПО: 5.18.55. Никаких дополнительных настроек. Все по умолчанию
Ожидаемое поведение: при подписке на изменения всех устройств в разрабатываемом JS плагине срабатывает зарегистрированный обработчик.
Фактическое поведение: обработчик не вызывается.Согласно документации (https://docs.intrascada.com/ru/pg142#обработчик-команд-процесса-сканирования-strong-onscan-cb-strong)
ожидаю, что при использовании метода onSub в app.js плагина будет вызываться переданный на вход этому методу обработчик при изменениях показаний датчиков.
Однако, при использовании конструкции как на скриншоте выше, ничего не происходит.
Если же использовать вариант onSub с фильтром - обработчик срабатывает корректно
-
Добрый день, @tallerhorizon
Вы правы, действительно, вариант без фильтра устарел и сейчас не работает.
Был убран по причине очень большого потока данных на плагин, поскольку постоянно отправляются свойства всех устройств, включая все системные индикаторы, и это обычно не то, что требуется.Если вам действительно нужны в плагине все значения, можно использовать механизм Расширений (флаг "extratab":1 в манифесте). Так работает например плагин opcuaserver.
Для Расширений также нужно задать фильтры (device | tag | location), но если по location (папка в дереве устройств) выбрать Все, будут приходить абсолютно все изменения всех устройств.Подписка должна быть с флагом extra:
plugin.onSub('devices', { extra: 1 }, data => { plugin.log('onSub data: ' + util.inspect(data,null, 4)) data.forEach(item => { // ... }); });Спасибо за вопрос, внесем изменения в документацию.
-
@intrapro Спасибо за ответ.
Согласен по поводу того, что использовать подписку на все датчики не очень оптимально, однако у меня не получилось, ознакомившись с документацией, придумать иного решения.
Мы хотели бы отправлять во внешнюю систему показания с определенных датчиков как только они изменяются. Однако список датчиков, изменения которых мы наблюдаем может изменяться в процессе работы.
Подскажите, пожалуйста, как было бы лучше это сделать?
Спасибо!
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти