Boriss

Ответы в темах

Просмотр 15 сообщений - с 46 по 60 (из 87 всего)
  • Автор
    Сообщения
  • в ответ на: Mimic js-script Скользящая разница #42284
    Boriss
    Участник

    Простейший пример Фейсплейт: https://disk.yandex.ru/d/ea0vo560GrjvTQ

    в ответ на: Mimic js-script Скользящая разница #42271
    Boriss
    Участник

    Надеюсь нас не станет больше.
    Разработчикам респект за привязку свойств компонента в последней версии. Теперь не надо все это выискивать в js скриптах и в консоли.

    в ответ на: Mimic js-script Скользящая разница #42269
    Boriss
    Участник

    свойство inCnlNum (Входной канал) невозможно экспортировать, канал привязывается к фейсплейту. Мда… Для моих задач фейсплейт совершенно бесполезен.

    в ответ на: Mimic js-script Скользящая разница #42268
    Boriss
    Участник

    Ээээ… с этим все понятно и эти свойства будут доступны на мнемосхеме. С этим проблем нет. Но у меня скрипт на фейсплейте, который меняет свойства компонента, на него вставленного. Можно повесить скрипт на мнемосхему и использовать экспортируемые свойства, но тогда зачем вообще нужен фейсплейт и экспорт свойств, если и без него все работает и объем рутинной работы по созданию мнемосхемы он не сокращает никак? С фейсплейтом пока проблем больше, чем пользы.

    в ответ на: Mimic js-script Скользящая разница #42266
    Boriss
    Участник

    И возникло множество вопросов. Некоторые я пока даже внятно озвучить не смогу, очень сложно разобраться, как что работает.
    Свойство blinking(мигание) компонента текст я не смог изменить из скрипта. Не работает. Скрипт меняет свойство blinking для фейсплейта. Т.е. мигает не конкретный компонент на фейсплейте, а весь фейсплейт. И как быть, если на фейсплейте больше одного компонента? Похоже, что никак.
    Как сделать рабочий фейсплейт из нескольких компонентов? Например из двух компонентов «Текст» с привязкой к разным каналам? А если надо сделать около пятидесяти однотипных элементов мнемосхемы, каждый из которых состоит из 5-10 компонентов с привязкой к разным каналам. Фейсплейты тут не помогут. Или помогут? Я не совсем понимаю логику и назначение фейсплейтов.

    в ответ на: Mimic js-script Скользящая разница #42265
    Boriss
    Участник
    Boriss
    Участник

    3. Запускаю Администратор, ищу согласно инструкции модуль в дереве Экземпляры-Default-Сервер-Модули, там пусто.

    Поищите в дереве Экземпляры-Default-Вебстанция-Плагины

    в ответ на: Mimic js-script Скользящая разница #42154
    Boriss
    Участник

    Остановился на таком варианте. Цель: привлечь внимание оператора, если какой то параметр «поплыл». Скрипт для компонента мнемосхемы «Текст». В свойствах указывается номер канала, который надо контролировать. Скрипт отображает стрелку ↓ или ↑, когда значение канала меняется на определенную величину за заданный временной интервал.

    class extends ComponentScript {
    	domCreated(args) {
    		args.component.customData ??= {};
    		const customData = args.component.customData;
    		customData.interval = 120; //временной интервал в сек.
    		customData.arr_int = new Array(); //создаем пустой массив
    		//console.log("DOM created for component " + args.component.id);
    	}
    	
    	dataUpdated(args) {
    		const customData = args.component.customData;
    		const props = args.component.properties;
    		const cnlData = args.dataProvider.getCurData(props.inCnlNum);
    		customData.arr_int.unshift(cnlData.d.val); //добавляем значение канала в начало массива
    		if (customData.arr_int.length > customData.interval) {
    			customData.arr_int.pop(); //удаляем последний слот при заполнении массива
    		} 
    		customData.res = customData.arr_int[0] - customData.arr_int[customData.arr_int.length - 1]; //результат: слот 0 минус последний слот.
    		customData.res_slice = customData.res.toFixed(6).slice(0,-4); //обрезаем до двух знаков после запятой.	
    		
    		const blinking = customData.res < -10 || customData.res > 10;
    		
    		if (customData.res < -2.5) {
    			props.text = "↓"; //если разница за временной интервал меньше -2.5, рисуем "стрелку вниз"
    		} else if (customData.res > 2.5) {
    			props.text = "↑"; //если разница за временной интервал больше 2.5, рисуем "стрелку вверх"
    		} else {
    			props.text = " ";			
    		}
            
    		if (props.blinking !== blinking) {
    			props.blinking = blinking; //если разница за временной интервал меньше -10 или больше 10, включаем мигание стрелки.
            }
    		args.propertyChanged = true //разрешаем обновление свойства компонента
    		
    		//console.log(customData.arr_int); //выводим массив в консоль
    		//console.log("Разница за " + customData.interval + " сек. : " + customData.res_slice); //выводим результат в консоль
    		
    	}
    }
    в ответ на: Mimic ExtraMarkup #41978
    Boriss
    Участник

    Конечно я использую отладчик и консоль и всё, что под руку попадется.
    По теме. Все оказалось гораздо проще. Не надо там никаких скриптов, достаточно html разметки. Вот так работает:

    <div class="dropdown">
      <button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">
        Markup Demo
      </button>
      <ul class="dropdown-menu">
        <li><a class="dropdown-item markup-item1" href="#" onclick="window.top.location ='/View/50'">Главная</a></li>
        <li><a class="dropdown-item markup-item2" href="#" onclick="window.top.location ='/View/45'">Link-2(45)</a></li>
      </ul>
    </div>
    в ответ на: Mimic ExtraMarkup #41966
    Boriss
    Участник

    Так я и думал… Надо разбираться. Пример есть, это хорошо. Документации нет, плохо…

    в ответ на: Mimic ExtraMarkup #41961
    Boriss
    Участник

    Обновился, проверил, откатился и еще раз обновился. В так в разных комбинациях. В итоге версия 6.4.4 + патч для фейсплейтов. Результат:
    Создаю фейсплейт. Прописываю класс. Добавляю компонент текст. Прописываю входной канал. Сохраняю и закрываю фейсплейи.
    Открываю мнемосхему. Добавляю зависимость. Класс и путь к фейсплейту. Он появляется в меню слева. Добавляю фейсплейт на мнемосхему. Сохраняю мнемосхему, закрываю. Перезапускаю вебстанцию. Открываю в браузере представление с мнемосхемой. Фейсплейт есть, но мертвый. Совсем.
    Может так и должно быть? Другие компоненты в нем не работают? Это другое? Нужно создавать экспортируемые свойства?

    в ответ на: Mimic ExtraMarkup #41958
    Boriss
    Участник

    Патч для фейсплейта я установил. ПК для разработки нет, «дергаю» основную вебстанцию )))
    У меня версия скады 6.4.3. Надо ставить последнюю версию… Или не сегодня… Пятница 13-е…

    в ответ на: Mimic ExtraMarkup #41955
    Boriss
    Участник

    Не только скрипты не работают. Вообще ничего не работает. Ни один компонент. Последнее обновление я не ставил. Может в этом причина?

    в ответ на: Mimic ExtraMarkup #41951
    Boriss
    Участник

    Добрый день! Спасибо за ответ. Помогло. Вот только в фейсплейте не работает. В фейсплейтах вообще не работают скрипты для компонентов. Почему? Не понятно… В моем случае меню в виде фейсплейта и присутствует на всех мнемосхемах …и не работает. Придется меню вставлять на каждую мнемосхему.

    в ответ на: Запуск редактора Mimic #41836
    Boriss
    Участник

    Или в настройках мимикланчера https://disk.yandex.ru/i/Fx-_erpIsH3S4A поменять localhost на 127.0.0.1

Просмотр 15 сообщений - с 46 по 60 (из 87 всего)