Визуализация в SVG панели

Добрый день. Есть возможность сделать визуализацию в svg панели более информативно с большими возможностями? Нужно вывести показания устройства по нажатию на объект. То-есть допустим у меня схема здания, мне нужно чтоб можно было по нажатию на объект отобразились все параметры этого объекта то-есть если это датчик температуры чтоб он мне показал показания этого датчика. Зачем такие сложности, отвечаю. Есть
комбинированные датчики в которых есть огромное количество разных датчиков например (WB-MSW v.3). и если все эти параметры будут постоянно отображаться то мало что будет заметно на самой карте (то-есть грубо говоря эта вся информация она важна но не в постоянном отображение. ).

То есть, грубо говоря, отображать или не отображать слои svg? а есть пример, какой-нибудь svg с такими параметрами, которые хотелось бы прятать?


маленький кружок это датчик (WB-MSW v.3) я б хотел нажать на маленький кружок и чтоб мне вышел большой кружок на который указывает красная стрелка и в этом окне чтоб отображались все параметры этого датчика. я понимаю что большой круг можно сделать прозрачным пока не произойдет событие при котором оно отобразится. но параметры все-равно будут отображаться всегда даже когда не-будет большого круга

Здравствуйте!

Значения параметров можно также скрывать, пример на видео

1 лайк

Вы совершенно верно представляете решение и описываете его на примере круга, только можно не прозрачным его делать, а просто скрывать, для этого использовать поле Visible.

К сожалению, редактор дашборда игнорирует группы, поэтому мы не можем сгруппировать объект и скрывать его целиком, поэтому по условию придётся скрывать и сам кружок и значения.

Заметьте, что скрытие или изменение стиля элемента может происходить только по условию, в котором участвует значение из MQTT топика, поэтому конструкция будет такой:

  1. Создаёте виртуальное устройство на wb-rules, топики которого будут хранить текущее состояние большого кружочка с цифрами для каждого датчика: 1,2,3,4,5 …
  2. В редакторе дашборда для синего кружочка (1) назначаете топик одного из контролов созданного выше виртуального устройства и прописываете логику, чтобы при нажатии на этот кружок у вас в топик (1) писалась 1 или 0. То есть просто инвертировалось значение.
  3. Для большого кружка и цифр в нём прописываете в параметре Visible условие, что если в топике (1) 1, то показываем, а если 0 — скрываем.

1 лайк

я в теории понял, возможно глупый вопрос, но как мне привязать маленький синий кружок к большому с параметрами ?

Не к большому, по нажатию (щелчку) на маленьком инвертируется значение switch в виртуальном устройстве.

Через виртуальное устройство на wb-rules, которое будет посредником.

Я тут ещё подумал, с помощью виртуального устройства можно будет при желании автоматом скрывать уже открытые датчики.

по третьему пункту есть вопрос. параметры датчика не привязываются к большому кругу если указывать style ( в style топик датчика в контроллере )
указал в топике виртуальное устройство и завелось. спасибо за помощь все получилось )

1 лайк

Извините, у меня вопрос по работе. Дело в том что при нажатие параметры некоторое время не отображаются. Нужно время чтоб все стали отображаться. Это нормально или это я нарукожопил?


Думаю, что это баг. До новой публикации в топик после включения видимости параметр отображается некорректно. Сделаю баг-репорт для разработчиков.

я правильно понимаю что на каждый датчик (WB-MSW v.3) нужно создавать новое виртуальное устройство ?

Проще функцией, передавать в нее изменяющиеся параметры. И да, “устройств” может быть одно, главное чтобы контролов в нем было на каждый элемент svg

И да, “устройств” может быть одно, главное чтобы контроллеров в нем было на каждый элемент svg (тут я понял просто в виртуальном устройстве создаю количество необходимое по общему количеству показателей всех устройств) а вот тут я не понял (Проще функцией, передавать в нее изменяющиеся параметры.)

Так: Подключение термоэлектрических сервоприводов к WBIO-DO-SSR-8 или WBIO-DO-HS-8 - #6 от пользователя BrainRoot

пришел к выводу что он заводится в тот момент когда параметры датчика меняются. если они без изменений они не будут отображаться. может добавить тысячные чтобы решить это? но для того чтоб отображались тысячные я так понимаю необходимо лезть в настройки самого датчика.

Да, значение начинает нормально отображаться после публикации нового значения в привязанный к полю топик. Наверное, хорошее решение сейчас подсказать не получится. Как вариант можно попробовать опрашивать более точный регистр температуры датчика, изменив шаблон:

4	0x0004	Input	RO	s16	Температура	x0.01, °C Error: 0x7FFF	4.2

Также можно попробовать принудительно задать интервал публикации неизменившихся значений в настройках драйвера wb-mqtt-serial:

извините за глупый вопрос! но как мне зайти в регистр датчиков ? и возможно ли это через веб морду ? да и я смотрю у вас Русскоязычное меню . как мне сделать тоже русскоязычное меню ?

А попробуйте вместо сокрытия через Visible делать элемент прозрачным через Style, как вы хотели в самом начале.

Если получится, то вы сможете использовать дашборд уже сейчас и не ждать, пока мы исправим ошибку.

Да, возможно добавить опрос допольнительного регистра и через веб-интерфейс. Нужно сконфигурировать пользовательский регистр:


Переключение на русский язык описано в документации, на всякий случай приложу скриншот:


Если у вас такой настройки нет, то нужно будет обновить ПО контроллера.