Mimic — Faceplate

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

    Facepalm больше 🙂

    1. Задумка была такова: передавать фейсплейту номер объекта (или устройства), несколько дополнительный параметров (по типу наименования объекта) и иметь некое самостоятельное окно, по сути шаблон, которое в несколько кликов можно вынести и настроить. (c) @imya

    Это основное и самое главное. Но, если мнемосхема может передать целиком переменные Устройства и тем более объекта, то мнемосхема фактически может запрашивать у сервера много данных, больше, чем требуется экземпляру или экземплярам faceplate на данной мнемосхеме.
    а) от faceplate нужна обратная связь в мнемосхему, чтобы мнемосхема построила «карту» параметров для запроса, чтобы после первого запуска мнемосхемы запрашивать у сервера только нужные данные
    б) Необходимо, чтобы мнемосхема передавала в компонент больше данных, не только номера сигналов и коды тегов, но и имена объектов, имена экземпляров, Код и в идеале чтобы это было настраиваемым под мнемосхему. Если не надо, отключаем, если надо (применяем сложные faceplate со скриптами и т.д., мало ли для чего?)
    в) скрипты или даже функционал самого faceplate должны уметь оперировать полученными данными, делать фильтрацию строковых данных по условиям. * любые символы сначала или в конце, ? любой одиночный символ, % — что-то вроде маски и т.д.

    2. После установки faceplate в зависимость проекта, нужна возможность его обновления, если мы что-то решили изменить в коде самого faceplate. Пока только через отключению и новое подключение он обновляется.

    3. Когда мы подключили faceplate в Компоненты — должна быть возможность его настроить. Например изначально faceplate у нас создан под светлую тему, а мы делаем проект в темной теме. Мы должны зайти в настройки faceplate (напомню, в экземпляр faceplate добавленный в Компоненты проекта, а не в сам faceplate, сделав его очередную копию), изменить константы привязанных (экпортируемых) свойств — фон, цвета линий, в общем всего того, что мы вытянем из встроенных компонетов для настроек самого faceplate — надеюсь понятно объяснил хотелку? 🙂

    Кстати то же самое относится и ко всем остальным компонентам, чтобы в проекте можно было настроить ОДИН раз нужные компоненты, а потом просто выбирать и ставить их на холст мнемосхемы, а не заниматься копированием всего и вся.
    Как вариант — ставим первый на холст, настраиваем под тему, потом выбираем его и через контекстное меню или иным способом — Копировать все свойства — Далее применить свойства ЧЕМУ? другому компоненту на холсте, либо компоненту в дереве проекта — Сохранить.

    4. Все скрипты, стили и прочее должно быть изолировано установленным экземпляром.
    Но с возможностью прямо в свойствах мнемосхемы этим оперировать.
    Например faceplate — Клапан. Поставили два и более экземпляров на холст — получили на холсте условно Клапан1 и Клапан2. У каждого есть стиль изменения например цвета
    my-faceplate {color: red;} (или вместо red имя привязанной переменной скажем [colorX] (з.ы. тут я не знаю и не понимаю как это делается в javascript все условно).
    На основной мнемосхеме возможность добавить переменную — Клапан1.colorX или скажем Клапан1.my-faceplate.color — в общем тоже условно для возможности привязать канал, для возможности изменить это свойство другим компонентом и т.д.
    А не дебрями скриптов, которые забудутся через Н-ное время… ползанием по консоли брайзера для вычисления номера компонента или в том же духе… Все должно быть понятно оперируя данными в редакторе мнемосхем.

    5. про предустановленные скрипты уже писал… по аналогии с Администратором. Выбираем из списка предустановленные скрипты, сделать им подсказки, и оно автоматом прописывает в скрипты компонента, тем самым можно будет получать примеры и учиться на них.

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

    > После установки faceplate в зависимость проекта, нужна возможность его обновления, если мы что-то решили изменить в коде самого faceplate.
    Кнопка обновить на верхней панели перезагружает фейсплейт.

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

    > Когда мы подключили faceplate в Компоненты — должна быть возможность его настроить.
    Сделайте это через CSS мнемосхемы.

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

    В CSS есть в том числе переменные. Таблица стилей фейсплейта может быть создана с использованием переменных. А сами переменные уже устанавливаются на уровне таблицы стилей мнемосхемы. Это всё нужно пробовать экспериментально.

    • Ответ изменён 2 месяца назад пользователем Mikhail.
    #41305
    Mikhail
    Модератор

    Самое главное для понимания:
    — Фейсплейт — это такой же компонент, как и все остальные.
    — Он имеет свойства, которые устанавливаются для экземпляра компонента после того, как он помещён на схему.
    — Фейсплейт ничего не знает о каналах, объектах и т.п. Изменение свойств фейсплейта приводит к изменению его отображения.
    — Привязка свойств к данным выполняется на уровне мнемосхемы.

    #41307
    manjey73
    Участник

    Ну вы опять отправляете изучать… CSS, скрипты и т.д.

    Сделайте предустановленные шаблоны скриптов и CSS для различных применений..

    У меня вот вопрос по другой теме сразу. Почему я класс CSS добавил в faceplate, поставил два штуки на мнемосхему + добавил Text на мнемосхему, а выкрасилось в красное все, и оба faceplate-а и Текст.
    А при повороте повернулась еще и мнемосхема.

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

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

    Ещё весьма полезен файл ScadaWeb\wwwroot\plugins\Mimic\css\mimic.css
    В нём можно прописать свои стили, которые будут применяться ко всем мнемосхемам.

    #41309
    manjey73
    Участник

    — Фейсплейт — это такой же компонент, как и все остальные.

    Это я понимаю, потому что он состоит из набора компонентов, просто собранных в одном месте.
    Почему у меня все повернулось, если стиль CSS задан ТОЛЬКО в фейсплейте, я применяю стиль на main схеме и ожидаю, что повернутся все фейсплейты, потому что класс стиля только в них, а поворачивается и main? вот с какого бодуна ?

    Это же должны быть экземпляры компонента, установленные на main со своими правилами.
    И как например обратиться из main к конкретно установленному экземпляру тоже загадка.

    з.ы. опять чувствую пошлете в консоль браузера 🙂

    • Ответ изменён 2 месяца назад пользователем manjey73.
    #41319
    Mikhail
    Модератор

    > опять чувствую пошлете в консоль браузера
    100%, искать причину именно так.
    Выбираете компонент и смотрите, какие стили к нему применились.
    Присылайте скриншоты, тогда смогу дать рекомендации по написанию CSS.

    #41323
    manjey73
    Участник

    1. CSS задан только в faceplate — пример MyFaceplate который вы выкладывали, там есть класс изменения цвета.

    2. установите два таких + текст

    На главной мнемосхеме укажите в стилях my-faceplate

    Почему выкрашивается в красный даже текст, если класс стиля прописан только в faceplate-е ?

    Не должно быть такого, стиль должен был примениться только к экземплярам фейсплейта, установленного на схеме.

    #41325
    Romiros
    Участник

    Убедитесь что название вашего класса уникально. Возможно в этом проблема. Если стили не изолированные, а это только уникальное имя, то они применяются ко всему html документу. Так работает весь web.

    #41326
    manjey73
    Участник

    Вот, отсюда вопросы.

    1. Каким образом сделать, чтобы класс CSS, который я создам в элементе (контейнере), чтобы он принадлежал только контейнеру и никому больше.

    2. Каким образом использовать класс в главной мнемосхеме, чтобы
    а) привязать одну переменную и применить его только к одному экземпляру контейнера на мнемосхеме
    б) привязать одну переменную, но применить сразу ко всем экземплярам контейнера, установленных на мнемосхеме

    Может все же как-то это кодом плагина Mimic организовать, чтобы для пользователей сделать меньше телодвижений ?

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

    Сделайте скриншот из инструментов разработчика, предварительно выбрав компонент. Чтобы был виден HTML-код компонента. Тогда смогу дать рекомендации по оптимальному CSS. Всё это довольно легко делается.

    #41336
    manjey73
    Участник

    скриншот из инструментов разработчика если бы я знал еще что это и где, цены бы не было 😀

    #41337
    manjey73
    Участник

    блин, писал, писал и все слетело 🙁

    лень повторять.

    1. хочу поведение как в программировании ПЛК — Экземпляр объекта, класса и т.д. выделение памяти под него включая все стили, скрипты и т.д.

    2. мне все равно, как это будет работать под капотом, главное чтобы это не валилось все в кучу. Это привычно всем асушникам, кто программирует ПЛК. И это задача редактора и плагина разруливать такие вещи

    3. ХОЧУ (см.1 и 2) чтобы при изменении(применении) стиля он применялся только к тем компонентам, где он прописан, чтобы можно было привязать переменную к этому.
    4. ХОЧУ чтобы можно было применить стиль либо к конкретному ЭКЗЕМПЛЯРУ или ко всем, где данный стиль прописан, а не ко всему подряд.

    тогда это будет правильным и разумны, и мне все равно как это работает под капотом.

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

Просмотр 15 сообщений - с 1 по 15 (из 18 всего)
  • Для ответа в этой теме необходимо авторизоваться.