Стартовая страница › Форумы › Понять, как работает ПО › Мнемосхемы › Mimic — Тумблер
- В этой теме 25 ответов, 3 участника, последнее обновление 5 месяцев, 3 недели назад сделано
Mikhail.
-
АвторСообщения
-
09.09.2025 в 00:06 #40263
manjey73УчастникКак сделать аналог рычажка по статусу и отправить команду сразу?
При Формате Off|On-
Тема изменена 1 месяц, 2 недели назад пользователем
Mikhail.
09.09.2025 в 12:57 #40264
MikhailМодераторУточните, пожалуйста, как должен работать «рычажок по статусу» и чем он отличается от обычного компонента Тумблер?
09.09.2025 в 13:15 #40265
manjey73Участник1. в текущем редакторе мы выбираем цвет Status и при наличии команды перечисления у нас рычажок Красный — выключен, Зеленый — Включен.
Я вписал руками ‘Status’ в цвет рычажка и он пропал — как в Mimic получить при выключенном состоянии Красный рычажок, при включенном — Зеленый ?2. А так же как задать «Отправить команду сразу» чтобы он переключался ? — там есть выбор «отправить команду» и вызывается окно с двумя кнопками.
В общем как добиться простого поведение как в текущем редакторе?
09.09.2025 в 13:16 #40266
manjey73Участникя про компонент Тумблер в Mimic и спрашиваю — как добиться аналогичного поведения как в текущем редакторе.
09.09.2025 в 13:57 #40268
manjey73УчастникДля сравнения, например в AutoCAD мне не надо погружаться дальше в «Редактировать» если свойство одиночное. Все можно изменить сразу в панели.
Например если бы я выбрал один элемент, он бы мне отобразил конкретный цвет элемента, тут выбрано два элемента с разными цветами, что в панели и указано.
Можно сразу двум элементам поменять цвет на какой-то другой. Переместить в другой слой и т.д.Это гораздо удобнее и быстрее, чем прыгать еще в «Редактировать».
При этом более сложное Редактирование в общем никто не отменял, но для этого достаточно маленькой кнопки справа.Нашел как отправить команду сразу. В аргументах команды снял галочку — Показывать диалог.
Но вопрос как менять цвет рычажка остается открытым.09.09.2025 в 14:24 #40269
manjey73УчастникЧитаю описание «Особенности PlgMimic» — ни черта не понятно 🙂
09.09.2025 в 14:33 #40270
manjey73УчастникСтруктура привязки одного свойства:
• Имя свойства. Для объектов полное имя разделяется точками.// Тут что? мы сами что-то придумываем или надо откуда-то брать?
• Источник данных – это номер канала, код канала или код тега. —// ок, с номером понятно, он уникален, а вот код канала и тем более код тега не уникальны и завияст от устройств (ниже)...
• Элемент данных. Определяет поле структуры данных канала.// Выбрал тут "Основной цвет" - а дальше то что делать?
• Формат. Работает только для строковых значений. Пример: Hello {0} friend.// ну к тумблеру не имеет отношения1. Задан номер объекта. В поле Источник данных в привязке содержится часть кода канала. Чтобы определить номер канала, к коду объекта добавляется часть кода из источника данных, и канал ищется по коду среди каналов заданного объекта.Если на одном объекте два и более одинаковых устройств — то есть код тега 2-х устройств в одном объекте уже могут совпасть — как это разруливать?
09.09.2025 в 15:11 #40271
manjey73УчастникВ общем с тумблером какие-то не лады. А именно с рычажком.
Например если задать границу, и при наведении указать смену цвета, цвет границы меняется. А вот Основной цвет при наведении не меняется.09.09.2025 в 15:17 #40272
manjey73Участника вот цвет фона меняется, если привязаться к нему.
10.09.2025 в 15:52 #40328
MikhailМодераторСкорее всего, можно сделать, то что описано с помощью скрипта компонента.
Пример скрипта для компонента Текст:class extends ComponentScript { domCreated(args) { console.log("DOM created for component " + args.component.id); } domUpdated(args) { console.log("DOM updated for component " + args.component.id); } dataUpdated(args) { const props = args.component.properties; const cnlData = args.dataProvider.getCurData(props.inCnlNum); const blinking = cnlData.d.stat > 0 && cnlData.d.val >= 10; if (props.blinking !== blinking) { props.blinking = blinking; args.propertyChanged = true; } } }10.09.2025 в 15:53 #40329
MikhailМодераторПример встроенного скрипта для компонента Тумблер:
class extends ComponentScript { dataUpdated(args) { // set toggle position const BasicTogglePosition = rs.mimic.BasicTogglePosition; let cnlNum = args.component.bindings?.inCnlNum; if (cnlNum > 0) { let curData = args.dataProvider.getCurData(cnlNum); let prevData = args.dataProvider.getPrevData(cnlNum); if (dataProvider.dataChanged(curData, prevData)) { let props = args.component.properties; let position = BasicTogglePosition.NOT_SET; if (curData.d.stat > 0) { position = curData.d.val > 0 ? BasicTogglePosition.ON : BasicTogglePosition.OFF; } if (props.position !== position) { props.position = position; args.propertyChanged = true; } } } } getCommandValue(args) { return args.component.properties.position === rs.mimic.BasicTogglePosition.ON ? 0 : 1; } }10.09.2025 в 15:56 #40330
MikhailМодераторРекомендую ознакомиться с этим документом. Про скрипты там тоже есть.
Основная идея скриптов — в методе dataUpdated меняете свойства компонента, затем компонент их отображает. Выполнение встроенного скрипта можно отменить, если логика его работы мешает.
10.09.2025 в 15:57 #40331
MikhailМодераторСписок свойств компонентов можно посмотреть в коде. Если нужно, я дам ссылку.
10.09.2025 в 16:34 #40335
manjey73УчастникТак рычажок не работает 🙂 в смысле ни наведение, ни смена цвета, если привязать свойство основного цвета — нет реакции.
И в то же время если использовать фон — то все работает без скриптов, как и в старом редакторе.10.09.2025 в 17:01 #40342
MikhailМодераторТам создаются привязки по умолчанию. Посмотрите описание компонента в документе выше.
По умолчанию тумблер работает как раньше, меняет цвет без дополнительных настроек.
Если не работает, нужно разбираться.
Основной цвет для тумблера не используется, если не ошибаюсь. Это одно из базовых свойств всех компонентов, которое может оказаться неиспользуемым.Не так. Описание в файле.-
Ответ изменён 9 месяцев, 2 недели назад пользователем
Mikhail.
-
Тема изменена 1 месяц, 2 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.