Mimic — Тумблер

Просмотр 15 сообщений - с 1 по 15 (из 26 всего)
  • Автор
    Сообщения
  • #40263
    manjey73
    Участник

    Как сделать аналог рычажка по статусу и отправить команду сразу?
    При Формате Off|On

    • Тема изменена 1 месяц, 2 недели назад пользователем Mikhail.
    #40264
    Mikhail
    Модератор

    Уточните, пожалуйста, как должен работать «рычажок по статусу» и чем он отличается от обычного компонента Тумблер?

    #40265
    manjey73
    Участник

    1. в текущем редакторе мы выбираем цвет Status и при наличии команды перечисления у нас рычажок Красный — выключен, Зеленый — Включен.
    Я вписал руками ‘Status’ в цвет рычажка и он пропал — как в Mimic получить при выключенном состоянии Красный рычажок, при включенном — Зеленый ?

    2. А так же как задать «Отправить команду сразу» чтобы он переключался ? — там есть выбор «отправить команду» и вызывается окно с двумя кнопками.

    В общем как добиться простого поведение как в текущем редакторе?

    #40266
    manjey73
    Участник

    я про компонент Тумблер в Mimic и спрашиваю — как добиться аналогичного поведения как в текущем редакторе.

    #40268
    manjey73
    Участник

    AutoCad — Панель свойств

    Mimic — панель свойств

    Для сравнения, например в AutoCAD мне не надо погружаться дальше в «Редактировать» если свойство одиночное. Все можно изменить сразу в панели.
    Например если бы я выбрал один элемент, он бы мне отобразил конкретный цвет элемента, тут выбрано два элемента с разными цветами, что в панели и указано.
    Можно сразу двум элементам поменять цвет на какой-то другой. Переместить в другой слой и т.д.

    Это гораздо удобнее и быстрее, чем прыгать еще в «Редактировать».
    При этом более сложное Редактирование в общем никто не отменял, но для этого достаточно маленькой кнопки справа.

    Нашел как отправить команду сразу. В аргументах команды снял галочку — Показывать диалог.
    Но вопрос как менять цвет рычажка остается открытым.

    #40269
    manjey73
    Участник

    Читаю описание «Особенности PlgMimic» — ни черта не понятно 🙂

    #40270
    manjey73
    Участник

    Структура привязки одного свойства:
    • Имя свойства. Для объектов полное имя разделяется точками. // Тут что? мы сами что-то придумываем или надо откуда-то брать?
    • Источник данных – это номер канала, код канала или код тега. — // ок, с номером понятно, он уникален, а вот код канала и тем более код тега не уникальны и завияст от устройств (ниже)...
    • Элемент данных. Определяет поле структуры данных канала. // Выбрал тут "Основной цвет" - а дальше то что делать?
    • Формат. Работает только для строковых значений. Пример: Hello {0} friend. // ну к тумблеру не имеет отношения

    1.
    Задан номер объекта. В поле Источник данных в привязке содержится часть кода канала. Чтобы определить номер канала, к коду объекта добавляется часть кода из источника данных, и канал ищется по коду среди каналов заданного объекта.

    Если на одном объекте два и более одинаковых устройств — то есть код тега 2-х устройств в одном объекте уже могут совпасть — как это разруливать?

    #40271
    manjey73
    Участник

    В общем с тумблером какие-то не лады. А именно с рычажком.
    Например если задать границу, и при наведении указать смену цвета, цвет границы меняется. А вот Основной цвет при наведении не меняется.

    #40272
    manjey73
    Участник

    а вот цвет фона меняется, если привязаться к нему.

    #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;
          }
        }
    }
    
    #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;
        }
    }
    
    #40330
    Mikhail
    Модератор

    Рекомендую ознакомиться с этим документом. Про скрипты там тоже есть.

    Основная идея скриптов — в методе dataUpdated меняете свойства компонента, затем компонент их отображает. Выполнение встроенного скрипта можно отменить, если логика его работы мешает.

    #40331
    Mikhail
    Модератор

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

    #40335
    manjey73
    Участник

    Так рычажок не работает 🙂 в смысле ни наведение, ни смена цвета, если привязать свойство основного цвета — нет реакции.
    И в то же время если использовать фон — то все работает без скриптов, как и в старом редакторе.

    #40342
    Mikhail
    Модератор

    Там создаются привязки по умолчанию. Посмотрите описание компонента в документе выше.
    По умолчанию тумблер работает как раньше, меняет цвет без дополнительных настроек.
    Если не работает, нужно разбираться.
    Основной цвет для тумблера не используется, если не ошибаюсь. Это одно из базовых свойств всех компонентов, которое может оказаться неиспользуемым. Не так. Описание в файле.

    • Ответ изменён 9 месяцев, 2 недели назад пользователем Mikhail.
Просмотр 15 сообщений - с 1 по 15 (из 26 всего)
  • Для ответа в этой теме необходимо авторизоваться.