0
Answered
где прочитать об аргументе PickColor и почему его нет в iRidium Script Helper??
Андрей Попович 9 years ago
in iRidium Script
•
updated by Dmitry - support (expert) 9 years ago •
7
• 1 duplicate
День добрый всем! Помогите новичку!!!
В Примере: Демонстрационные интерфейсы iRidium -> Продвинутые графические возможности, есть пример Scrip-та для странички Color Picker, в нём есть выражение
M1.GetState(0).FillColor = P1.PickColor; если его развернуть то получим выражение
IR.GetItem("Color Picker").GetItem("Ligjt_map_1").GetState(0).FillColor = IR.GetItem("Color Picker").GetItem("Item 1").PickColor;
Вопрос где прочитать об аргументе PickColor и почему его нет в iRidium Script Helper??
Duplicates
1
Customer support service by UserEcho
Здравствуйте!
Данный аргумент применяется при работе с элементом типа Joystick. Предназначен он для того, чтобы взять определенный цвет на элементе.
Подробнее об использовании данного аргумента вы можете прочитать на примере использования с оборудованием Modbus
К тому же в Script Helper он есть, только назван немного по другому
Спасибо за ответ!!! я взял пример Modbus как вы и написали и попытался адаптировать для Clipsal и столкнулся с проблемой функция Set не работает в случае если в идентификаторе канала channel задать имя, она работает только если задать порядковый номер, может я что то не правильно делаю подскажите??
...вот мой пример (работает только так) по номеру канала мой Clipsal_ColorPicker.irpz
function work_pick_color(in_color_picker, in_color_resipient, in_sRed, in_sGreen, in_sBlue)
{
var device = IR.GetDevice("Clipsal"); // Clipsal (был ModBus TCP Driver in your Project Device Tree)
var color = in_color_picker.PickColor;
var red = (color >> 24) & 0xFF;
var green = (color >> 16) & 0xFF;
var blue = (color >> 8) & 0xFF;
in_color_resipient.GetState(1).FillColor = color;
IR.GetDevice("Clipsal").Set(3, red); // работает только так
IR.GetDevice("Clipsal").Set(4, green); // работает только так
IR.GetDevice("Clipsal").Set(5, blue); // работает только так
//IR.GetDevice("Clipsal").Set("Drivers.Clipsal.R", red); // не работает
//IR.GetDevice("Clipsal").Set("G", green); //не работает
//IR.GetDevice("Clipsal").Set("B", blue); //не работает
//device.Set(in_sRed, red); //не работает
//device.Set(in_sGreen, green); //не работает
//device.Set(in_sBlue, blue); //не работает
}
// RU. Обработчик DMX 1. Скопируйте этот модуль, чтобы управлять еще одним DMX ColourPicker:
IR.AddListener(IR.EVENT_ITEM_RELEASE,
IR.GetItem("Page_ColorPicker").GetItem("Item Color Picker 1"), // Color Picker (Page.Item)
function()
{
work_pick_color(
IR.GetItem("Page_ColorPicker").GetItem("Item Color Picker 1"), // olor Picker (Page.Item)
IR.GetItem("Page_ColorPicker").GetItem("Item Display Color 1"), // Display Colour Item(Page.Item) "R", // Red Channel
"G", // Green Channel
"B"); // Blue Channel
}
);
Да вы правы, с данным драйвером используется только идентификатор. К сожалению, по имени обратиться нет возможности.
А как это исправить??? это в примере 5 переменных а когда их сотни, то мне что нужно сидеть и считать какая она по номеру, ведь даже номер не понятно откуда брать, где он отображается?? и для работы в скриптах сложно потом разобрать куда отсылается, путаница начинается? думаю что при небольшом желании исправить просто, как думаете?
К сожалению, в данном случае придется только вручную считать под каким номером находится команда и вводить ее идентификатор, либо для удобства создавать нужные команды в самом начале списка. Понимаю что это не удобно, но мы уже исправили этот недостаток в новой версии Иридиума. Теперь при работе с этим драйвером есть возможность обращаться по имени команды.
да, но для Clipsal ещё и драйвера же не существует, как исправили то?
Он есть, правда в статусе бета версии. Но функционал, о котором мы говорим в нем работает. Если у вас его нет в базе драйверов, то попробуйте поставить последний доступный setup с сайта.