Это требует добавления в проект специального скрипта - библиотеки RGB. Скрипт необходимо добавить только 1 раз, далее можно использовать его для управления RGB лентами любых встроенных драйверов iRidium.
Палитра, отображение цвета и кнопки +/- для управления яркостью
///////// Copy this function to make one more RGB palette ///////
RGB_player(
"Driver", // Driver in project
"Channel Red", // Name of Red Channel
"Channel Green", // Name of Green Channel
"Channel Blue", // Name of Blue Channel
255, // Top limit for RGB channel (100 or 255)
IR.GetItem("Page 1").GetItem("Item Color Picker 1"), // Item "Color Picker"
/////// optional parameters ////////////////////////////
IR.GetItem("Page 1").GetItem("Item Display 1"), // Item "Display"
IR.GetItem("Page 1").GetItem("Up 1"), // Item "Up"
IR.GetItem("Page 1").GetItem("Down 1"), // Item "Down"
10 // Increment step for "Up" and "Down"
)
В описании укажите где находится палитра, и какому оборудованию отправляет данные:
- IR.GetDevice("Driver") - имя драйвера, которому вы будете отправлять команды RGB. Скопируйте имя драйвера в PROJECT DEVICE PANEL
- "Channel Red", "Channel Green", "Channel Blue" - имена переменных (Commands), которые отвечают за управление красной, зеленой, и синей составляющими цвета. Скопируйте имена в PROJECT DEVICE PANEL. Имена Commands должны совпадать с именами Feedbacks, откуда приходит информация о текущем цвете RGB ленты.
HDL-Buspro, Domintell - имеют особый способ записи имен. Для них нужно указать <имя устройства в сети>:<имя канала>, например "Dimmer in Bedroom:Channel 1"
- 255 - максимальное значение яркости для каждого цвета. Для большей части оборудования яркость регулируется от 0 до 255, но есть драйверы, которые управляют яркостью цвета в диапазоне 0...100 (например, HDL). Для HDL-Buspro укажите значение 100 в этой строке настроек.
- IR.GetItem("Page 1").GetItem("Item Color Picker 1") - имя страницы ("Page 1") и элемента на ней ("Item Color Picker 1") который вы будете использовать как палитру
- IR.GetItem("Page 1").GetItem("Item Display 1") - имя страницы ("Page 1") и элемента на ней ("Item Display 1") который вы будете использовать для отображения цвета, выбранного на палитре
- IR.GetItem("Page 1").GetItem("Up 1") - имя страницы ("Page 1") и элемента на ней ("Up 1") который будет при нажатии увеличивать яркость выбранного цвета
- IR.GetItem("Page 1").GetItem("Down 1") - имя страницы ("Page 1") и элемента на ней ("Down 1") который будет при нажатии уменшать яркость выбранного цвета
- 10 - значение, на которое увеличится/уменьшится яркость выбранного цвета при нажатии кнопок Up и Down
2.3 Нажмите "ОК" чтобы сохранить описание палитры, запустите Эмулятор, чтобы проверить ее работу.
Ошибки, которые могут возникать при некорректном описании палитры, отображаются в окне лога (F4)
Static List (список попапов)
Графический элемент, внутри которого можно перелистывать попапы. Используется для создания меню, управляемого жестами.
1 Создайте элемент, настройте его следующим образом (cм. все настройки):
| Type
|
Joystick
|
| Popups List
|
список попапов: откройте окно настройки и выберите попапы, которые должны отображаться в списке
|
| Direction
|
вертикальный или горизонтальный список
|
| Resistance
|
(%) процент потери инерции при движении списка
|
| Pull Up Type / Time
|
тип анимации при листании списка / (мс) скорость листания списка
|
| List Type
|
способ "прилипания" попапов к краям базового элемента списка: прилипание к центру, к левому краю, к обоим краям. Используется, когда размер попапов в списке не совпадает с размером базового элемента.
|
| List Gap
|
расстояние между попапами на Static list. Свойство появляется, если свойство List Type = Stick Up или Stick Up & Down
|
Команды оборудованию привязываются к графическим элементам на попапах, входящих в список.
Trend (график)
Графический элемент Linear Trend (Линейный График) используется для построения графика изменения переменной во времени.
График можно строить в реальном времени, получая информацию о переменной прямо от оборудования автоматизации. Также можно использовать исторические данные совместно с текущими значениями переменной. Исторические данные могут храниться только на iRidium Server.
Чтобы сохранить историю изменения, настройте сохранение переменной в базу данных сервера. Настройка производится в серверном проекте. Когда переменная сохранена в базу, график ее изменения можно запросить из приложения i3 pro. График объединит исторические и актуальные данные в зависимости от настроек графического элемента Linear Trend.
Настройка отображения графика производится в проекте для панели управления.
1 Создайте переменную, которую нужно отображать на графике. Настройте сохранение переменной в базу данных в проекте iRidium Server.
Формат сохранения данных (Signed 32-bit, Float 64-bit) зависит от размерности переменной. Для сохранения дробных значений всегда используйте Float 64-bit.
Сохранять переменную можно с выбранной периодичностью (Interval) или при изменении ее больше, чем на указанное значение (Deadband).
2 Создайте графический элемент, выберите Type: Linear Trend. Перетяните на элемент один или несколько каналов обратной связи, график изменения которых вы хотите отображать:
3 Перейдите к настройкам графика и опишите его вешний вид:
- Trend - основные параметры графика: работа с базой данных, временной размах, основная кривая
- Range - временной интервал графика (по оси X). При загрузке из базы данных, покажет информацию за указанное время
- Main Curve - выберите основную переменную на графике (будет выделена ярче остальных)
- Background, Data View, Border - оформление цветовой схемы графика, см. пример
- Cursor - в разработке
- General - основные настройки оси времени (ось Х)
- Visible Axis X - отображать ось времени
- Position: Top - шкала времени сверху, Down - снизу
- Line - настройки шкалы времени
Major - настройки оси и разметки (шкалы)
Minor - настройки дополнительной разметки (шкалы)
- Visible - отображать ось Х
- Color - цвет оси и разметки
- Depth - толщина линии
- Interval - временной интервал на шкале времени
- Serif - размер засечки на шкале
- Count - количество дополнительных засечек на шкале
- Label - подпись шкалы времени (формат отображения, шрифт, цвет подписи, отступ от оси)
- Text - подпись оси времени (текст, шрифт, цвет подписи)
- General - основные настройки оси значений (ось Y)
- Visible Axis Y - отображать ось значений
- Position: Left - шкала значений слева, Right - справа
- Range - диапазон значений на оси (от минимума к максимуму)
- Auto scale - ось автоматически подстраивается под значения, приходящие из базы
- Min/Max - минимальное/максимальное значение оси
Остальные настройки аналогичны оси Х.
- Список каналов - переменные, отображенные на графике, и их индивидуальные настройки (Genral, Axis X, Axis Y)
- Индивидуальные настройки кривых для нескольких каналов' - тип отображения, цвет и толщина каждой кривой на графике
- Color - цвет кривой
- Type - тип отображения кривой:
- Dotted line - кривая строится в виде отдельных точек
- Line - кривая строится в виде сплошной линии
- Square line - кривая строится в виде блоков
- Depth - толщина линии
- Setup Axis X and Y - включить индивидуальные настройки осей для данной кривой (если отключено, будут отображаться главные оси графика)
- Tag - полное имя тега, указывает на драйвер и переменную сервера, от которой приходят данные. Позволяет управлять переменной через JavaScript
- Axis X, Axis Y - индивидуальные настройки осей графика (аналогичны настройкам главных осей графика)
Примеры графиков:
Управление отображением трендов с помощью скрипта
Заполнение графика из скриптового массива
График можно создать не только из значений из базы данных, но и вручную, при помощи скриптового массива.
Для построения такого графика в проекте создайте новый графический элемент Linear Trend и кнопку для построения графика
Создайте новый скрипт:
var l_oPage = IR.GetPage("Page 1");
var l_oTrend = l_oPage.GetItem("Item 1");
var L_oCurve = l_oTrend.GetCurve("test");
var l_aArray = [[0, 60], [1, 30], [2, 90], [ 3, 10], [4, 60], [5, 20], [ 6, 80]]; // массив, в который вписываем значения для графика
IR.AddListener(IR.EVENT_ITEM_RELEASE, l_oPage.GetItem("Get_SCRIPT"), function(){
L_oCurve.SetData(l_aArray , 0, l_aArray.length);
});
var l_aArray - массив, в который нужно вписать значения, по которым будет построен тренд.
Тренд из примера, созданный при помощи скриптового массива
Заполнение графика из внешней базы данных
Для того, чтобы вывести информацию из внешней базы данных необходимо настроить подключение iRidium Pro к базе через драйвер ODBC.
1 Создайте серверный проект
2 Настройте подключение к базе данных. Для этого добавьте в серверный проект новый скрипт:
IR.AddListener(IR.EVENT_START,0,function()
{
IR.SetTimeout(2000, function(){
var MySQL = new ODBC("root", "", "MySQLresurs"); // creating database connection object
if(MySQL == false)
{
IR.Log("Wrong connection");
}
else
{
IR.Log("Right connection");
}
var response = MySQL.Query("SELECT * FROM test");
if (response) // if connection is successful and answer exists
{
var rows = response.GetRows();
var columns = response.GetColumns();
var data = {}; // two-dimension array with query result
for (var i = 0; i < columns; i++) {
var colName = response.GetColumnName(i);
data[colName] = [];
for (var j = 0; j < rows; j++) {
data[colName][j] = response.GetRowValue(i, j);
}
}
response.Free(); // free memory of recordset (optional action for memory optimization)
IR.Log(JSON.Stringify(data));
IR.SetVariable("Server.Tags.Data",JSON.Stringify(data));
}
});
});
3 Создайте виртуальный тег, через который данные будут передаваться с серверного проекта в панельный.
4 Создайте панельный проект.
5 Добавьте в него графический элемент Linear Trend и настройте его.
6 Добавьте кнопку, по нажатию которой будут запрашиваться значения из базы.
7 Добавьте в панельный проект скрипт:
var l_oDevice = IR.GetDevice("iRidium Server");
var l_oPage = IR.GetPage("Page 1");
var l_oTrend = l_oPage.GetItem("Item 1");
var L_oCurve = l_oTrend.GetCurve("test");
var l_aArray = [];
IR.AddListener(IR.EVENT_ITEM_RELEASE, l_oPage.GetItem("Get_BD"), function(){
L_oCurve.SetData(l_aArray , 0, l_aArray.length);
});
IR.AddListener(IR.EVENT_TAG_CHANGE, l_oDevice ,function(m_sTag, m_sData){
if(m_sTag == "Data"){
l_aArray = [];
var m_oData = JSON.Parse(m_sData);
for(var Index in m_oData["X"]){
l_aArray[Index] = [m_oData["X"][Index], m_oData["Y"][Index]+0];
}
}
});
Круговой уровень (Circular level)
Круговой уровень - это разновидность уровня с перемещением ползунка по круговой шкале.
1 Создайте переменную, которую нужно регулировать. Настройте ее, как показано в инструкции (cм. все настройки).
2 Создайте уровень, настройте его следующим образом (cм. все настройки):
| Type |
Circular Level
|
| Feedback |
Реакция уровня на нажатия пользователя и на получение данных от оборудования
- Channel - отправляет значение и отображает обратную связь (ползунок перемещается при получении данных)
|
| Mode |
Режим кругового уровня:
- Simple (с одним ползунком и активной зоной),
- Double (с двумя ползунками),
- Triple (с тремя ползунками),
- Looped (бесконечный).
|
| Min Angle / Max Angle |
Пределы изменения угла поворота ползунка в градусах: допустимые значения от 0 до 360, начало и условное направление отсчёта угла - как у стрелок часов. Вы можете задать значения Min Angle / Max Angle одинаковыми или равными 0 и 360, тогда круговой уровень будет вращаться без ограничения угла.
|
| Min Value / Max Value |
Пределы изменения выходной регулируемой величины уровня
|
| Invert Range |
Направление изменения уровня:
- False - по часовой стрелке,
- True - против часовой стрелки.
|
| Range Type |
Тип диапазона:
- Integer - целочисленный,
- Float - с плавающей запятой.
|
| Active Zone |
Размер активной зоны в процентах, от 0 до 100:
- 100 - вся площадь кругового уровня представляет собой активную зону,
- 0 - активной зоны нет, только зона ползунка (ползунков).
|
| DrawFullFirstState |
Отрисовка неактивного сектора кругового уровня:
- False - круговой уровень не отрисовывается в неактивном секторе,
- True - круговой уровень отрисовывается целиком (в неактивном секторе отрисовывается Empty state).
|
| Slider |
Внешний вид ползунка
|
| Slider Color |
Цвет ползунка
|
| Slider Image |
Изображение ползунка в галерее проекта (ползунок должен быть изображён указателем вертикально вверх). Данное свойство доступно при задании в свойстве Slider значения Custom.
|
| Slider Offset |
Смещение изображения ползунка в пикселях вдоль оси ползунка от центра в сторону его верхней точки. Всегда неотрицательное значение.
|
| Slider Stretch |
Подгонка изображения ползунка под размер кругового уровня.
|
| Default Value |
Значение по умолчанию для данного ползунка.
|
3 Перетащите переменную на уровень, в диалоге привязки переменной укажите:
| Action
|
Send Token - отправить переменной значение Value, взятое как текущее положения ползунка уровня в диапазоне Min Value...Max Value.
|
| Event for Action
|
Событие интерфейса, связанное с кнопкой. При возникновении события, в переменную будет записано указанное значение:
- Press - отправить Value при нажатии,
- Release - отправить Value при отпускании,
- Move - отправлять все промежуточные значения Value при перемещении ползунка.
Добавляйте команду Delay (100) перед командой на событии Move, чтобы меньше нагружать оборудование (с командой Delay событие Move будет срабатывать не чаще, чем раз в 100 мс).
Можно использовать все три события одновременно.
|
| Add a feedback channel
|
(Create a feedback channel) Поставьте эту галочку, так как нужно, чтобы ползунок уровня перемещался в соответствии с актуальным состоянием переменной.
|
4 Теперь переменная связана с уровнем. Посмотреть все связи можно в OBJECT PROPERTIES > Programming.
Режимы кругового уровня
Simple - простой круговой уровень, может использоваться как уровень громкости, освещенности и т.д.
Looped - бесконечный круговой уровень.
Уровень удобно использовать, если нужно более точно выставить значение. При выборе этого режима появляется свойство “Changing Angle”, которое устанавливает количество оборотов уровня, необходимое для достижения максимального значения.
Например, при настройке громкости (значения уровня от 0 до 100), при значении 60 музыка играет тихо, а при 65 - очень громко, 62 - оптимальное значение. При установке промежуточных значений на простом круговом уровне могут возникнуть трудности. В таком случае можно использовать бесконечный уровень.
Для этого выбираем соответствующий режим кругового уровня и ставим в свойстве “Changing Angle” удобное для нас значение (2 - один оборот=50, 4 - один оборот=25 и т.д.). Таким образом можно будет легко выставить значение 62.
Double - уровень с двумя значениями.
Может использоваться, например, для настройки датчика температуры обогрева помещения. При этом одно значение будет уставкой датчика, а второе - текущей температурой в помещении. Обогрев будет работать пока не достигнет предельного отклонения от температуры уставки, а когда достигнет ее - отключится.
Для этого в созданном уровне необходимо:
1 Задать режим Double.
2 Одному из значений в параметре Slider Hit установить значение Display Only чтобы в дальнейшем пользователь не мог им управлять. Данное значение будет отображать текущую температуру.
3 Создать скрипт. В данном примере мы используем устройство Modbus.
var point;
IR.AddListener(IR.EVENT_ITEM_RELEASE,IR.GetItem("Page 1").GetItem("Circle level"), function(){
data = IR.GetItem("Page 1").GetItem("Circle level").Value2;
});
var Modbus = IR.GetDevice("Modbus TCP");
IR.AddListener(IR.EVENT_CHANNEL_SET, Modbus, function() {
var temperature = IR.GetVariable("Drivers.Modbus TCP.Feedback 1");
IR.GetItem("Page 1").GetItem("Circle level").Value1 = temperature;
if(temperature>=point+2){
IR.SetVariable("Drivers.Modbus TCP.Channel 1", 0);
}
if(temperature<=point-2) {
IR.SetVariable("Drivers.Modbus TCP.Channel 1", 1);
}
});
Triple - уровень с тремя значениями.
Пример использования этого режима такой же как и в режиме Double, но в этом режиме можно задать 3 значения: минимальная, максимальная и текущая температура в помещении. Следовательно, обогрев будет включаться при установленной минимальной температуре и отключаться при достижении максимальной. Таким образом можно полностью автоматизировать процесс поддержания температуры в помещении.
Настройка данного режима уровня очень похожа на режим Double:
1 Задать режим Triple.
2 Одному из значений в параметре Slider Hit установить значение Display Only чтобы в дальнейшем пользователь не мог им управлять. Данное значение будет отображать текущую температуру.
3 Создать скрипт. В данном примере мы используем устройство Modbus.
var min;
var max;
IR.AddListener(IR.EVENT_ITEM_RELEASE,IR.GetItem("Page 1").GetItem("Circle level"), function(){
min = IR.GetItem("Page 1").GetItem("Circle level").Value1;
max = IR.GetItem("Page 1").GetItem("Circle level").Value2;
});
var Modbus = IR.GetDevice("Modbus TCP");
IR.AddListener(IR.EVENT_CHANNEL_SET, Modbus, function() {
var temperature = IR.GetVariable("Drivers.Modbus TCP.Feedback 1");
IR.GetItem("Page 1").GetItem("Circle level").Value3 = temperature;
if(data>=max){
IR.SetVariable("Drivers.Modbus TCP.Channel 1", 0);
}
if(data<=min) {
IR.SetVariable("Drivers.Modbus TCP.Channel 1", 1);
}
});
Multistate circular level (круговой уровень с анимацией)
Круговой уровень состоящий более чем из 2 состояний. Изменение значения уровня (вращение) отправляет в переменную число, соответствующее текущему положению ползунка. Но ползунка, как такового, нет. Вместо него уровень показывает один из State - состояние, которое соответствует выбранному значению или диапазону значений. Каждому State анимированного уровня можно присвоить свое изображение, текст, цвет.
1 Создайте переменную, которую нужно регулировать. Настройте ее, в соответствии с инструкцией для драйвера, который будет использоваться.
2 Создайте и настройте Multistate circular level, создайте необходимое число состояний - каждое из которых будет отвечать за отображение уровня (cм. все настройки):
| Type |
Multistate Circular Level
|
| Feedback |
Реакция уровня на нажатия пользователя и на получение данных от оборудования
- Channel - отправляет значение и отображает обратную связь (ползунок перемещается при получении данных)
|
| Mode |
Режим кругового уровня:
- Simple (с одним ползунком и активной зоной),
- Looped (бесконечный).
|
| Min Angle / Max Angle |
Пределы изменения угла поворота ползунка в градусах: допустимые значения от 0 до 360, начало и условное направление отсчёта угла - как у стрелок часов. Вы можете задать значения Min Angle / Max Angle одинаковыми или равными 0 и 360, тогда круговой уровень будет вращаться без ограничения угла.
|
| Min Value / Max Value |
Пределы изменения выходной регулируемой величины уровня
|
| Invert Range |
Направление изменения уровня:
- False - по часовой стрелке,
- True - против часовой стрелки.
|
| Range Type |
Тип диапазона:
- Integer - целочисленный,
- Float - с плавающей запятой.
|
| Active Zone |
Размер активной зоны в процентах, от 0 до 100:
- 100 - вся площадь кругового уровня представляет собой активную зону,
- 0 - активной зоны нет, только зона ползунка (ползунков).
|
| DrawFullFirstState |
Отрисовка неактивного сектора кругового уровня:
- False - круговой уровень не отрисовывается в неактивном секторе,
- True - круговой уровень отрисовывается целиком (в неактивном секторе отрисовывается Empty state).
|
| Slider |
Внешний вид ползунка
|
| Slider Image |
Изображение ползунка в галерее проекта (ползунок должен быть изображён указателем вертикально вверх). Данное свойство доступно при задании в свойстве Slider значения Custom.
|
| Slider Offset |
Смещение изображения ползунка в пикселях вдоль оси ползунка от центра в сторону его верхней точки. Всегда неотрицательное значение.
|
| Slider Stretch |
Подгонка изображения ползунка под размер кругового уровня.
|
| Default Value |
Значение по умолчанию для данного ползунка.
|
3 Перетащите переменную на уровень, в диалоге привязки переменной укажите:
| Action
|
Send Token - отправить переменной значение Value, взятое как текущее положения ползунка уровня в диапазоне Min Value...Max Value.
|
| Event for Action
|
Событие интерфейса, связанное с кнопкой. При возникновении события, в переменную будет записано указанное значение:
- Press - отправить Value при нажатии,
- Release - отправить Value при отпускании,
- Move - отправлять все промежуточные значения Value при перемещении ползунка.
Добавляйте команду Delay (100) перед командой на событии Move, чтобы меньше нагружать оборудование (с командой Delay событие Move будет срабатывать не чаще, чем раз в 100 мс).
Можно использовать все три события одновременно.
|
| Add a feedback channel
|
(Create a feedback channel) Поставьте эту галочку, так как нужно, чтобы ползунок уровня перемещался в соответствии с актуальным состоянием переменной.
|
4 Теперь переменная связана с уровнем. Посмотреть все связи можно в OBJECT PROPERTIES > Programming.
Picker (барабан)
Графический элемент, который можно создать только при помощи скрипта. Не используется для работы с оборудованием напрямую. Он позволяет сформировать список пунктов (базирующихся на общем шаблоне), изменять количество пунктов, информацию в них. Основной пример его применения в проектах - для установки даты или времени.
- Создайте новый попап - шаблон для строки барабана.
- С помощью Java Script сформируйте набор данных, из которых должен строиться барабан (например, список дат и месяцев). Используйте Picker API, чтобы создать и заполнить список.
- Создайте графическое оформление вашего барабана.
Страницы и окна проекта
В проекте должна быть хотя бы одна страница. Она определяет размер рабочей зоны проекта. Окна - дополнительные поверхности для размещения графических элементов. Окно всегда открыто поверх страницы.
Новая страница, новый попап
Проект состоит из страниц (Page) и всплывающих окон (popup):
- Страница (Page) - база для размещения графических элементов.
- в проекте должна быть хотя бы одна страница
- страница может быть вертикальной или горизонтальной
- страница поддерживает авто-поворот (переключение Горизонтальная/Вертикальная при повороте панели с акселерометром). Для авто-поворота создаются 2 страницы в разной ориентации
- все страницы проекта одинаковы по размеру и определяют габариты рабочей зоны проекта.
- страницы не могут появляться с эффектами анимации или быть прозрачными и полу-прозрачными
- одновременно может быть показана только одна страница проекта (открытие новой закрывает предыдущую и попапы на ней)
- Попап (Popup) - вспомогательный объект проекта для размещения графических элементов.
- наличие попапов в проекте не является обязательным
- попап не может быть горизонтальным или вертикальным (его координаты фиксированы)
- попап может иметь любой размер, прозрачность и положение на странице
- на одной странице можно открыть любое число попапов
- при авто-повороте страницы, попапы, которые были на открыты, закроются
Создать страницу (попап):
- Add Page – добавить страницу
- Add Popup Page – добавить попап (окно)
- Add Folder – создать папку страниц и окон
- Change View - переключить вид дерева страниц для работы с Popup Groups
Настройки страницы (попапа):
- Новая страница
- Name - имя
- Landscape/Portrait - горизонтальная/вертикальная
- Новый попап
- Name - имя
- Left и Top - сдвиг относительно левого-верхнего угла страницы (в пикселях)
- Width и Height - ширина и высота (в пикселях)
Авто-поворот страницы
При создании страниц вы можете выбрать, а затем изменить их положение.
- Name - имя
- Alternate View - страница с противоположной ориентацией, которая автоматически появится вместо текущей при повороте панели (если панель оснащена датчиком положения)
Дизайна с авто-поворотом должен состоять из одних страниц. Эта рекомендация связана с тем, что при авто-повороте все открытые попапы закрываются. Чтобы при авто-повороте открывать нужные попапы, используйте JavaScript API
Пред-просмотр попапа на странице
Настройте пред-просмотр в меню правой кнопки мыши на открытой странице или в окне.
Переходы между страницами и попапами
Команды управления страницами и окнами могут быть выполнены по событию:
- Нажатие на элемент
- Жест на странице или в окне
Команды формируются в окне макросов для страниц, окон и графических элементов:
Список команд:
| Flip (команды переключения страниц)
|
| Show Page (Имя страницы)
|
Открыть страницу (единовременно может быть открыта только 1 страница). В параметрах команды указывается имя страницы, которую нужно открыть
|
| Prev Page
|
Показать предыдущую открытую страницу проекта
|
| Show Popup (Имя попапа)
|
Показать попап (одновременно может быть показано множество попапов). В параметрах команды указывается имя попапа, который нужно открыть. Также можно изменить координаты Top и Left расположения попапа, установив параметр Use:
|
| Hide Popup (Имя попапа)
|
Скрыть попап. Параметр – имя скрываемого попапа
|
| Toggle Popup (Имя попапа)
|
Переключить попап (показать, если скрыт, скрыть, если показан). В параметрах команды указывается имя попапа, который нужно переключить. Также можно изменить координаты Top и Left расположения попапа, установив параметр Use:
|
| Hide Group (Имя группы)
|
Скрыть все попапы, входящие в Группу попапов (см. далее)
|
| Hide Popups On Page (Имя страницы)
|
Скрыть все попапы на странице (имя страницы)
|
| Hide All Popups
|
Скрыть все попапы, открытые на данный момент в проекте
|
В совокупности кнопки, содержащие команды навигации, образуют систему навигации по страницам и окнам проекта iRidium.
Эти команды выполняются и с помощью жестов. Выберите в 'Projects Overview' страницу, зайдите в 'Object Properties – Programming – Gesture'.
Popup Group
В дереве страниц вы можете создавать Папки (Folders) для группировки страниц и попапов. Это не влияет на работу проекта.
Но вы также можете создавать Группы попапов (Popup Group) по нажатию правой кнопкой мыши на проект или попап:
Popup Group - набор попапов, которые никогда не должны быть открыты одновременно. Попапы, добавленные в одну группу, становятся взаимоисключающими. Если один попап из группы уже открыт, то при вызове другого он закроется автоматчески.
Группы попапов полезны для упрощения системы навигации проекта. Они позволяют не следить за тем, что ненужные попапы действительно были закрыты, т.к. их закрытие происходит автоматически.
Команда Hide Group служит для того, чтобы скрывать любой открытый попап группы:
Скрыть группу попапов можно командой из скрипта: IR.HideGroup("Group")
Стартовая страница проекта
При запуске проекта iRidium откроется только 1 страница и любое количество всплывающих окон.
Выберите стартовую страницу в Project Properties:
- Page – имя страницы, которая должна быть открыта при запуске проекта iRidium (только одна);
- Popups – список попапов, которые должны быть открыты при запуске проекта. Попапы будут открыты по порядку
StartUp в настройках проекта:
Скринсейвер проекта
шаг 1 Создайте страницу-заставку
шаг 2 Настройте кнопку "назад" для возврата к проекту, команда "Prev Page":
шаг 3 Выберите страницу-заставку проекта в Project Properties:
ScreenSaver - экран заставки:
- On/Off – вкл/выкл экран заставки для проекта
- Interval (сек.) – время простоя проекта, через которое будет открываться заставка
- Show Page - если включено, то через указанный интервал появится страница заставки
- Landscape Page – страница, которая будет использоваться в качестве экрана заставки в альбомном отображении проекта
- Portrait Page - страница, которая будет использоваться в качестве экрана заставки в портретном отображении проекта
- Start Script - если включено, выполнится скрипт
- Script Name on Start - имя функции в скрипте
Можно настроить срабатывание скрипта при появлении скринсейвера. Например, уменьшать яркость дисплея устройства, при помощи метода IR.SetVariable.
Пароль на открытие страницы
Используйте систему паролей при настройке кнопок, открывающих страницы и окна.
Пароль присваивается графическому элементу:
- None – пароль не установлен, свободный доступ (по умолчанию)
- 1 … 4 – порядковый номер пароля, определяющий категорию доступа (с 1й по 4ю)
Откройте настройки проекта, чтобы задать пароли, соответствующие их порядковым номерам:
Приложение автоматически запросит пароль при нажатии на защищенную кнопку. Все команды, прикрепленные к кнопке, выполнятся только после ввода правильного пароля. Если пароль не выбран в настойках проекта, окно запроса пароля не появится.
Изменить пароль можно в в iRidium Cloud (см. настройки проекта), iRidium Transfer, а также в системном меню приложения:
в JavaScript API есть метод, который позволяет "проверить" системный пароль, т.е. использовать системные пароли не со стандартным окном запроса пароля, а при выполнении любых действий:
Масштабирование страниц и элементов
Чтобы изменить разрешение проекта, например, сделать из 2048х1536 проект 1024x768, впишите нужное разрешение в свойствах проекта. При этом рекомендуется переходить от большего разрешения к меньшему во избежание потери качества изображений в проекте.
После сохранения проекта в новом разрешении, появятся два диалоговых окна:
1. Подтвердите масштабирование
- "Ok" - подтверждает изменение размера проекта
- "Cancel" - проект сохранит исходное разрешение, никаких действий не будет произведено
2. Выберите, нужно ли изменять размер окон и графических элементов проекта
- "Yes" - размеры окон и графических элементов проекта будут масштабированы пропорционально новому размеру страниц
- "No" - размеры окон и графических элементов останутся старыми, изменится только размер страниц проекта
3. Сохраните масштабированный проект, чтобы зафиксировать изменения.
После сохранения, проект можно редактировать или сращивать с другими проектами.
Особенности масштабирования:
Если в новом разрешении пропорции сторон отличаются от исходных, то результирующий проект может выглядеть излишне растянутым или сжатым.
Вы можете улучшить его внешний вид, меняя разрешение в 2 этапа: сначала уменьшим проект без изменения пропорций. Для этого возьмите финальную высоту проекта и посчитайте ширину, которая позволит сохранить его исходные пропорции. При масштабировании подтвердите, что хотите изменить размеры элементов и окон проекта.
Теперь, проект нужно привести к финальным пропорциям, для чего изменим только его ширину. Отклоните запрос на изменение размера элементов и окон проекта.
Теперь у вас есть проект нужного размера, а элементы на нем сохранили свои исходные пропорции. В правой части проекта появилась не занятая область, или, напортив, не все элементы помещаются на странице. Переместив элементы проекта относительно друг друга, вы можете это компенсировать.
Обработка нажатий и жестов
Виды событий
Взаимодействие пользователя с интерфейсом панели управления - это последовательность событий, при возникновении которых должны выполняться, или отменяться команды интерфейса.
Нажатие на экран, отпускание экрана, сдвиг элемента - это разные события, на которые может отреагировать графический интерфейс.
Страницы, окна, графические элементы, пункты списков - поддерживают разный набор событий, значит, подчиняются разным правилам отправки команд.
Краткое описание:
- Press - отправка команд по касанию кнопки
- Release - отправка команд в момент отпускания кнопки
- Hold - циклическая отправка команд в течении всего времени удержания кнопки
- End Of Hold - однократная отправка команд при отпускании кнопки, если её до этого удерживали
- Move - отправка команд при перемещении ползунка Level или Joystic
- Select - выбор пункта и подпункта в элементе List. Управление событием доступно в JavaScript: List API
- Change - ввод символа или команды в элемент Edit Box. Подробные даныне доступны в JavaScript: GUI API
- Enter - нажатие клавиши Enter в элементе Edit Box
- Lost Focus - событие, которое генерирует любой элемент, вне зависимости от типа и условий, в момент отпускания. Событие означает потерю элементом фокуса (активности). Событие доступно для обработки только в JavaScript: GUI API
- Gestures - жесты, настройка возможна только в свойствах страницы (Page). Жест может начаться на самой странице, графическом элементе или в окне. жест будет автоматически передан родительской странице - сработают команды, настроенные для страницы. Исключение: элементы Level, Joystic, List и Static List, которые обрабатывают событие Move, запрещающее срабатывании жестов
- скачать пример использования жестов >>
События, доступные для объектов разного типа:
Page
- Press
- Release
- Gestures:
- Swipe Left
- Swipe Right
- Swipe Up
- Swipe Down
- Pinch In
- Pinch Out
- Double Tap
Popup
Button
- Press
- Release
- Hold
- End of Hold
Level
Multistate Button
- Press
- Release
- Hold
- End of Hold
Multistate Level
List
Up/Down Button
- Press
- Release
- Hold
- End of Hold
Trigger Button
- Press
- Release
- Hold
- End of Hold
Edit Box
Virtual key
Joystick
Static List
Linear Trend
Pie Chart
Bar Chart
Принцип работы событий интерфейса
На странице или попапе, которые не пересвистываются (не входят в состав Static List и List), кнопки ведут себя следующим образом:
- короткое нажатие на элемент генерирует события Press > Release
- длинное нажатие на элемент генерирует события Press > Hold > End Of Hold
- перемещение ползунка Level, Joystic генерирует события Press > Move > Release
- При отпускании любого элемента генерируется событие Lost Focus
Графические элементы в списке List и Static List отличаются тем, что работа их событий может прерваться перелистыванием списка. Перелистывание может начаться на попапе и графическом элементе, что останавливает выполнение команд:
- начало перелистывания списка отключает событие Release, поэтому, при коротком нажатии со сдвигом, у кнопки сработает только событие Press > перелистывание
- при начале перелистывания списка (смещении курсора/пальца), сразу перестает работать Hold и генерируется End Of Hold: Press > Hold > перелистывание > End Of Hold
- При отпускании любого элемента генерируется событие Lost Focus
Советы по реализации сценариев интерфейса:
- Если кнопка работает на обычной странице, команды нужно привязывать к событию Press, если в списке - к Release
- Если кнопка должна выполнять разные команды по короткому и длинному нажатию, привяжите "короткую" команду к Release, а "длинную" к End Of Hold
- Если нужно отправить импульс (сначала 1, потом 0) по короткому нажатию, есть два способа:
- на Press привязать отправку 1, на Release отправку 0. Это позволит регулировать длину импульса временем удержания кнопки. Но, нельзя использовать этот способ в списках, т.к. смещение списка отменит событие Release
- на Release привяжите обе команды: 1 и 0, настройте между ними задержку (Delay). Импульс будет иметь фиксированную длину и будет правильно работать в списках
Macros Editor
В этом окне настраивают команды, которые нужно выполнить по нажатию на тот или иной графический элемент.
Список событий интерфейса и жестов, на которые реагирует iRidium
Набор команд, которые можно выполнить по событию интерфейса, может быть любым, поэтому опишем только сами команды и способы создания макросов - последовательностей из нескольких команд.
Выберите графический элемент и откройте Macros Editor в окне Object Properties > Programming. В зависимости от типа элемента, будет доступен разный набор событий.
Строки макроса выполняются последовательно, сверху вниз:
Команды в Macros Editor:
| Flip (команды переключения страниц)
|
| Show Page (Имя страницы)
|
Открыть страницу (единовременно может быть открыта только 1 страница). В параметрах команды указывается имя страницы, которую нужно открыть
|
| Prev Page
|
Показать предыдущую открытую страницу проекта
|
| Show Popup (Имя попапа)
|
Показать попап (одновременно может быть показано множество попапов). В параметрах команды указывается имя попапа, который нужно открыть. Также можно изменить координаты Top и Left расположения попапа, установив параметр Use:
|
| Hide Popup (Имя попапа)
|
Скрыть попап. Параметр – имя скрываемого попапа
|
| Toggle Popup (Имя попапа)
|
Переключить попап (показать, если скрыт, скрыть, если показан). В параметрах команды указывается имя попапа, который нужно переключить. Также можно изменить координаты Top и Left расположения попапа, установив параметр Use:
|
| Hide Group (Имя группы)
|
Скрыть все попапы, входящие в Группу попапов (см. далее)
|
| Hide Popups On Page (Имя страницы)
|
Скрыть все попапы на странице (имя страницы)
|
| Hide All Popups
|
Скрыть все попапы, открытые на данный момент в проекте
|
| Sound (управление звуками)
|
| Play Sample
|
Воспроизвести аудио-файл
|
| Stop Sample
|
Остановить воспроизведение аудио-файла
|
| Stop Slot (номер дорожки)
|
Остановит воспроизведение аудио-файла на первой дорожке
|
| Stop All Sounds
|
Остановить воспроизведение всего аудио в проекте
|
| Send To Driver (отправить данные драйверу)
|
| Send Number
|
Отправить десятичное число (формат DEC)
|
| Send Text
|
Отправить строку данных (формат ASCII)
|
| Send Data
|
Отправить бинарные данные (формат BIN)
|
| Send Token
|
Отправить данные, извлеченные из параметров графического элемента (Value, координаты, размеры и т.д. – переменные значения, определяемые свойствами объекта)
|
| Send To Token (отправить данные переменной проекта)
|
| Send Number
|
Записать в токен десятичное число (формат DEC)
|
| Send Text
|
Записать в токен текст (формат ASCII)
|
| Send Token
|
Записать в токен данные, извлеченные из параметров графического элемента (Value, координаты, размеры и т.д. – переменные значения, определяемые свойствами объекта)
|
| Other (остальные команды)
|
| Delay (мс)
|
Установить задержку между командами макроса (настраивается произвольно)
|
| Script Call (имя функции)
|
Обратиться к функции iRidium Script по имени
|
| Show Keyboard (тип клавиатуры)
|
Вызвать виртуальную клавиатуру управляющей панели
|
| Hide Keyboard
|
Скрыть виртуальную клавиатуру управляющей панели
|
| Minimize
|
Свернуть приложение iRidium App на управляющей панели
|
| Execute (команда)
|
Выполнить стандартную команду ОС, например:
|
| Exit
|
Закрыть приложение iRidium App на управляющей панели (только для Windows и Android)
|
Команды управления макросами:
|
удалить выделенный макрос
|
|
переместить выделенный макрос на одну позицию вверх
|
|
переместить выделенный макрос на одну позицию вниз
|
|
клонировать выделенный макрос
|
|
удалить группу макросов
|
|
сохранить группу макросов в локальную галерею макросов
|
Сохранение макросов:
- Создайте последовательность команд, нажмите кнопку "Сохранить"
- Дайте имя новой макрокоманде, нажмите ОК
- Откройте "GALLERY" > "Project Gallery" > "Macros". Вы можете перетащить команду на кнопку или в окно Programming, чтобы привязать к какому-либо событию, помимо Press
Создание связей (Relations):
Кроме макрокоманд, настраиваемых в свойствах отдельных объектов интерфейса (кнопок, страниц, попапов), существуют общие макрокоманды проекта, настройка которых производится в окне All Relations. Здесь создаются связи для передачи данных от одного объекта интерфейса другому:
- открыть окно "Все связи"
например, с помощью значения, полученного с ползунка уровня Item 1, Вы можете изменить координату элемента Item 2. Взаимодействовать могут параметры графических элементов, страниц, попапов, а также каналы и токены (глобальные переменные).
Работа с элементов, вызвавшим Script Call
При использовании Script Call, у вас есть возможность обратиться к свойствам элемента, который использует Script Call функцию.
Пример.
Создаем скриптовую функцию, которая будет брать значение свойства Text элемента, который вызвал функцию, увеличивать значение на единицу и записывать обратно. Запуск функции привяжем к элементу через Script Call
var a=0;
function action(){
a+=1;
this.Text=a; //Обращаемся к свойству Text элемента, который вызвал функцию
};
В результате функция будет менять значение того элемента, который ее вызвал
Скачать пример проекта
Галереи графики и звука
Галереи iRidium - инструмент хранения фоновых изображений, кнопок, уровней, блоков из нескольких элементов или целых проектов, звуков, макрокоманд.
Графические галереи
Графическая галерея редактора (Gallery > Graphics)
- хранилище объектов интерфейса, которые можно использовать при создании проектов. В графической галерее могут храниться:
- простые изображения в виде объектов с 1 состоянием
- кнопки с двумя состояниями
- анимированные кнопки
- уровни с двумя состояниями
- уровни с множеством состояний
- группы графических элементов
- страницы и окна проектов
Галерея проекта (Gallery > Project Gallery)
– содержит только те изображения, которые уже используются в проекте iRidium.
Не содержит сложных объектов, а только отдельные изображения, из которых объекты состоят.
Галереи звука
Галерея звуков редактора (Gallery > Sounds)
- библиотека аудио-файлов для проекта визуализации. Звук можно воспроизвести по событию (нажатие, отпускание элемента). Привязывают звуки методом Drag&Drop. Звук будет отображен во вкладке Programming окна Object Properties:
При нажатии на [...] во вкладке Programming откроется редактор макросов:
- Play Sample - воспроизвести аудио-файл (имя)
- Play System Sample - воспроизвести стандартный системный звук (один из двух)
- Stop Sample - остановить аудио-файл (имя)
- Stop Slot - остановить воспроизведение конкретного слота (от 1 до 32)
- Stop All Sounds - остановить воспроизведение всех звуков
Двойной клик по строке аудио-файла открывает настройки воспроизведения:
- Sound - название аудио-файла;
- Slot - номер слота воспроизведения (необходимо для группировки по потокам). Всего можно создать 32 слота с неограниченным количеством аудио-файлов в каждом. По умолчанию выставляется "Слот 0" (формируется новый канал воспроизведения без слота);
- Volume - громкость воспроизведения аудио-файла;
- Loop - включает (True) или отключает (False) повтор воспроизведения
Поддерживаемые аудио-форматы:
- mp3 (с фиксированным и переменным битрейтом)
- wav со следующими кодеками:
- PСM (глубина звука 8 или 16 бит, частота дискретизации от 8 до 96 кГц)
- IMA ADPCM (глубина звука 8 или 16 бит, частота дискретизации от 8 до 96 кГц)
- MS ADPCM (глубина звука 8 или 16 бит, частота дискретизации от 8 до 96 кГц)
- GSM (частота дискретизации 8 кГц, глубина звука 16 бит)
- MS GSM (частота дискретизации 8 кГц, глубина звука 16 бит)
- mu-Law (частота дискретизации 8 кГц, глубина звука 16 бит)
- A-Law (частота дискретизации 8 кГц, глубина звука 16 бит)
- OGG
Галерея проекта (Gallery > Project Gallery)
– содержит только те звуки, которые уже используются в проекте iRidium.
Работа с изображениями
Фоновые изображения
Используйте команду “Put Image To Page Background” в меню правой кнопки мыши, чтобы сделать изображение фоном страницы или окна. Эта команда не работает для сложных объектов галереи.
Выбрать фон страницы можно и в Object Properties > States, параметр Image
Основные изображения, иконки
Кнопка может одновременно отображать 2 картинки:
- Image - базовое изображение
- Icon - иконка, размещенная поверх Image
Выберите, какую роль будет выполнять картинка при перетаскивании на кнопку (о Chameleon Image читайте далее)
Настройки изображений и иконок во вкладке States:
Изменить изображение и иконку элемента можно в настройках объекта, States:
- Image – основное изображение
- Icon – изображение-иконка (размещается поверх основного)
- Chameleon Image - изображение в формате PNG, которое при наложении на кнопку использует цвета её заливки и рамки, для того чтобы определить цвета внутри изображения
- Icon Align – выравнивание иконки относительно элемента
- Image Aligh – выравнивание основного изображения относительно элемента
Вкладка States обращается к локальной галерее проекта, где хранятся изображения, уже добавленые в проект.
Chameleon Image
Chameleon Image - изображение с не фиксированным цветом. Изменив цвет кнопки и цвет бордюра, вы меняете цвет изображения-хамелеона. При использовании с пользовательскими палитрами хамелеоны позволяют создать множество цветовых схем для одного шаблона, а также выделение, свечение, эффект тени и глубины.
Хамелеон - изображение в формате PNG, состоит из четырех цветовых каналов (альфа, красный, зеленый и синий: ARGB). Цвета обрабатываются следующим образом:
- Alpha - форма элемента
- Red - область, которая будет заполнена цветом заливки элемента
- Green - область, которая будет заполнена цветом бордюра элемента
- Blue - не используется
Чтобы прозрачность была распознана правильно, сохраните PNG файл в RGB цветах (32-bit).
Пример настройки и результат применения цветовой схемы хамелеона:
Динамические изображения
Подробнее: IP камеры и DVR.
Execute: URL схемы
URL схема - указатель на ресурс, который можно вызвать командой iRidium. С помощью URL схемы можно запустить приложение, открыть ссылку в браузере, открыть mail-агент, позвонить по номеру, отправить СМС.
Для различных ОС существуют разные URL схемы, учитывайте тип операционной системы, на которой будет работать проект при выборе исполняемых команд.
Вызовы из iRidium
В iRidium вы можете создать кнопку, которая открывает стороннее приложение или ссылку в браузере. Примеры команд, которые можно выполнить на разных ОС:
Гиперссылки:
Execute(http://iridiummobile.net)
Файлы и приложения на Windows:
Execute(c:\Program Files\iRidium.exe)
Экранная клавиатура на Windows:
Позвонить по номеру, написать СМС:
Execute(tel:+123456789)
Execute(sms:+123456789)
Написать email:
Execute(mailto:test@example.com)
Запустить приложение:
-
Execute(videos://)
-
Execute(music://)
Настройки iOS 8 и iOS 9 (для iOS 10 решения пока нет):
Настройки i3 pro на iOS 9-10:
На iOS и Android URL-схемы не идентичны
запустить приложение нельзя, если его разработчик не заложил такую возможность!
Вызовы из JavaScript
Создайте JavaScript файл в редакторе скриптов iRidium Studio, чтобы выполнять команды по нажатию на кнопку или событию в системе.
IR.Execute("http://iridiummobile.net");
Подробная информация о работе с JavaScript представлена в Руководстве.
Вызов iRidium из других приложений
URL схемы запуска i3 pro можно вызывать из браузера или почтового клиента, аналогично гиперссылкам на сетевые ресурсы. Используйте команды:
- команда вызова прилоежния (открыть или развернуть). Работает в браузере iOS/Android устройства, где установлен i3 pro. Ее можно выполнить как гиперссылку в браузере, почтовом клиенте или другом приложении
-
i3pro://script?data1&data2
- команда вызова приложения и запуском скрипта
- строка с данными, которая будет передана в скрипт, в параметр query. IR.AddListener(IR.EVENT_RECIEVE_SCHEME,0,function(query, source) {}); - слушатель, который нужно создать в проекте iRidium для получения данных из URL схемы
Пример:
URL схема в стороннем приложении, браузере:
i3pro://script?Page1
Обработчик URL схемы в IRidium:
IR.AddListener(IR.EVENT_RECIEVE_SCHEME,0,function(query, source)
{
if (query == "Page1")
IR.ShowPage("Page 1");
});
Эффекты визуализации
iRidium поддерживает анимацию нажатия на элементы, покадровую анимацию элементов, анимацию при октрытии страниц и специальные библиотеки iRidium Script.
Анимация при открытии попапов
В свойствах попапа Object Properties > General укажите эффекты анимации, с которым попап будет открываться и закрываться:
- Lifetime (мс) – время жизни попапа. По завершению, попап автоматически закроется
- Effects – установка эффектов появления и скрытия попапа. Допускается создание произвольных комбинаций эффектов.
- Fade - "выцветание" - попап меняет степень прозрачности
- Rotate - "кручение" - попап движется, вращаясь вокруг центральной оси
- Slide - "появление" - попап выдвигается из-за края экрана или "из-за себя"
- Scale - "расширение" - попап увеличивает или уменьшает свои координаты Х и Y от нуля до заданных
- TV Scan - "панорама" - попап появляется через изменение координаты Y от нуля до заданной
Настройки эффектов:
- Duration (мс) - время выполнения эффекта
- Delay (мс) - задержка перед началом выполнения эффекта
- Tween - направление, в котором движется попап при появлении или исчезании
Эффект нажатия
Для создания визуального эффекта при нажатии на элемент, используйте разные изображения для активного и неактивного состояния элемента:
Состояние элемента меняется при нажатии, если в его настройках выбран "Feedback: Momentary".
Состояние элемента меняется при получении обратной связи при выборе "Feedback: Channel".
«Быстрые эффекты»
Инструмент для автоматического создания эффекта анимации на основе первого (неактивного) состояния кнопки.
Добавьте в проект изображение и нажмите кнопку «Быстрый эффект» на панели инструментов. В параметрах модифицированного состояния укажите:
- Сдвиг изображения относительно изначального
- Прозрачность нового состояния (альфа-канал элемента)
- Цвет и размер текста на новом состоянии
Покадровая анимация
Элемент, цикл анимации на котором прокручивается все время:
- Создайте элемент с типом Multistate Button и состояниями, содержащими кадры анимации
- Анимация должна воспроизводиться циклически Repeat: True
- Тип обратной связи Feedback: On, обеспечит последовательное циклическое воспроизведение кадров анимации
Элемент, цикл анимации которого воспроизводится при получении ненулевого значения (логической единицы):
- Создайте элемент с типом Multistate Button и состояниями, содержащими кадры анимации
- Анимация должна воспроизводиться циклически Repeat: True
- Выберите тип обратной связи Feedback: Blink
Элемент, цикл анимации которого воспроизводится при нажатии пользователя:
- Создайте элемент с типом Multistate Button и состояниями, содержащими кадры анимации
- Анимация должна воспроизводиться циклически Repeat: True
- Выберите тип обратной связи Feedback: Momentary
Оптимизация проекта
Используйте опцию Delete Unused Files - быстрое удаление, чтобы убрать из проекта картинки, которые были в него добавлены, но фактически не используются.
Такие картинки увеличивают время загрузки и общий объем проекта, частая причина их появления - масштабирование элементов, при котором создаются копии изображений в новом размере.
Проверяйте, очищен ли проект от неиспользуемых элементов перед загрузкой на панель:
Объединение проектов
Чтобы научиться быстро объединять свой проект с готовым Script модулем (имеющим свою графическую и драйверную часть), или другим проектом, воспользуйтесь видео-инструкцией: