Systems API

Материал из iRidium Mobile Wiki
Перейти к: навигация, поиск

< Назад

Позволяет использовать возможности ОС панели, работать с таймерами, управлять приложением и его событиями. Обновлено: 27 Июля, 2014
Сообщить об ошибке


Содержание

Открыть системное меню

Описание:
Функция позволяет открыть системное меню с предварительным вводом инженерного пароля. Выполнив команду, вы получите окно для ввода пароля, и после его ввода откроется системное меню.

Синтаксис:

IR.ShowSystemMenu();


Пример:
На странице Page 1, по нажатию на кнопку Item 1, откроем системное меню.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){

      IR.ShowSystemMenu();
});


Особенности:
Без ввода инженерного пароля, получить доступ к системному меню через скрипт нельзя.

Загрузить:
Пример открытия системного меню >>

↑ К оглавлению

Получить HWID панели

Описание:
Переменная, позволяет получить HWID панели на которой запущено приложение.

Синтаксис:

IR.HWID;

На выходе:
Строка символов, определяющих HWID панели.

Пример:
На странице Page 1, по нажатию на кнопку Item 1 напечатаем в консоль отладки HWID панели.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){

  IR.Log(IR.HWID);
});

Особенности:
Что бы получить конкретный символ из IR.HWID, используйте, функцию charAt(номер_символа). Нумерация символов начинается с нуля.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){

  IR.Log(IR.HWID.charAt(0));
});

↑ К оглавлению

Закрыть приложение

Описание:
Функция позволяет закрыть приложение. Доступно только на Andorid и Windows.

Синтаксис:

IR.Exit();

Пример:
На странице Page 1, по нажатию на кнопку Item 1 закроем приложение.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){
  
    IR.Exit();
});

Особенности:
На iOS закрыть приложение при помощи скриптов нельзя. Если приложение у вас закрывалось раньше, то это было аварийное завершение приложения с потерей данных.

↑ К оглавлению

Показать клавиатуру

Описание:
Функция позволяет показать клавиатуру. Доступно только на Andorid и iOS.
Синтаксис:

IR.ShowKeyboard(type);


Входные параметры

  • type - номер клавиатуры, 1 - алфавит, 2 - числа


Пример:
На странице Page 1, по нажатию на кнопку Item 1 покажем числовую клавиатуру.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){

  IR.ShowKeyboard(2);
});


Особенности:

  • На iOS для скрытия клавиатуры можно использовать, команду IR.ShowKeyboard(0), на Android это не сработает.
  • Для открытия клавиатуры, все другие клавиатуры должны быть скрыты. Если клавиатура уже открыта, например числовая, то команда открыть клавиатуру с алфавитом будет не удачной.
  • Для открытия клавиатуры на Windows, используйте команду IR.Execute("osk").

↑ К оглавлению

Выполнить макросы элемента

Описание:
Функция выполняет макросы, настроенные в Object Properties / Programming из события элемента.

Вызов:
Для вызова функции нужен доступ к элементу (страница, попап или графический элемент).

Синтаксис:

Item.StartAction(Событие);

Входные параметры

  • Событие - событие, макросы которого, требуется выполнить.



Пример:
После запуска приложения, выполним макросы из события PRESS элемента Item 1 со страницы Page 1

IR.AddListener(IR.EVENT_START, 0, function(){

  IR.GetItem("Page 1").GetItem("Item 1").StartActions(IR.EVENT_ITEM_PRESS);
});

Использование:

  • Контейнер макросов
  • Вызов действий кнопки с одной страницы на другой, для сценариев или быстрых клавиш.



Особенности:

  • Визуализация активации события, например нажатия на элемент, макросы которого выполняют, не происходит. Действия элемента выполнятся, но сам он, ни как не будет визуально участвовать в процессе.
  • При выполнении учитываются, только макросы настроенные в редакторе. События объявленные через скрипт выполнены не будут.
  • Область исследована не до конца, возможно некоторые события не распознаются.
  • Если вы столкнулись с задачей, которая решается этой функцией и познали некоторые не документированные тонкости ее использования - напишите нам.

↑ К оглавлению

Запустить другое приложение

Описание:
Функция позволяет запустить любое другое приложение, файл или сайт на панели, где запущен i2 Control.

Синтаксис:

IR.Execute(путь);

Входные параметры

  • путь - путь к приложению, синтаксис пути, зависит от операционной системы на которой запущен i2 Control.


Пример:
После запуска приложения, откроем сайт

IR.AddListener(IR.EVENT_START, 0, function(){
 
 IR.Execute("http://iridiummobile.net"); // Пример ссылки
});

Другие примеры:

IR.AddListener(IR.EVENT_START, 0, function(){
 // OS Windows 
 IR.Execute("http://iridiummobile.net"); // Пример ссылки
 IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент
 IR.Execute("cmd"); // Запустить командную строку
 IR.Execute("calc"); // Запустить калькулятор
 IR.Execute("c:\\Program Files\\iRidium\\iRidium.exe"); // Запуск программы


 // iOS - iPhone
 IR.Execute("http://iridiummobile.net"); // Пример ссылки
 IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент
 IR.Execute("tel:+1234567890"); // Позвонить по телефону
 IR.Execute("sms:+1234567890"); // Отправить смс
 IR.Execute("music:"); // Открыть приложение для прослушивания музыки
 IR.Execute("videos:"); // Открыть приложение для просмотра видео
 IR.Execute("ibooks://"); // Открыть приложение для чтения электронных книг
 IR.Execute("fb://feed"); // Открыть приложение Facebook
 IR.Execute("twitter://"); // Открыть приложение для Twitter

 // iOS - iPad
 IR.Execute("http://iridiummobile.net"); // Пример ссылки
 IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент
 IR.Execute("music:"); // Открыть приложение для прослушивания музыки
 IR.Execute("videos:"); // Открыть приложение для просмотра видео
 IR.Execute("ibooks://"); // Открыть приложение для чтения электронных книг
 IR.Execute("fb://feed"); // Открыть приложение Facebook
 IR.Execute("twitter://"); // Открыть приложение для Twitter

 // OS Android
 IR.Execute("http://iridiummobile.net"); // Пример ссылки
 IR.Execute("mailto:contact@iridiummobile.ru"); // Написать письмо через почтовый клиент
 IR.Execute("tel:+1234567890"); // Позвонить по телефону
 IR.Execute("sms:+1234567890"); // Отправить смс
 IR.Execute("file:///tmp/android.txt"); // Открыть файл
});

Особенности:

  • Для запуска приложений на Windows, каждый обратный слеш, должен быть заменен на двойной обратный слеш.
IR.Execute("c:\\Program Files\\iRidium\\iRidium.exe")

↑ К оглавлению

Узнать информацию о памяти и кэше

Описание:
Переменная, возвращает информацию о памяти и кэше.

Синтаксис:

IR.GetSystemInfo("GC_MEMORY_INFO");


Пример:
По нажатию на кнопку Item 1 на странице Page 1, напечатаем всю информацию о памяти и кэше в консоль.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){

  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").UsedMemory);
  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").TotalMemory);
  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").ChunkHeaps);
  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").ChunkCache);
  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").MemoryHeaps);
  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").MemoryBusyBlocks);
  IR.Log(IR.GetSystemInfo("GC_MEMORY_INFO").MemoryFreeBlocks);
});

↑ К оглавлению

Вывести информацию в консоль

Описание:
Используется для вывода информации в консоль отладки в процессе работы приложения-клиента i2 Control. Консоль отладки доступа только для Windows.

Синтаксис:

IR.Log(text);


Входные параметры:

  • text - любые данные: строки, числа, объекты, массивы. Обрати внимание, что после того как данные переданы, как параметр, они конвертируются в строку.


Пример 1:
В момент запуска приложения выведем в консоль отладки предложение.

IR.AddListener(IR.EVENT_START, 0, function(){

    IR.Log("Hello iRidium!"); 
});

Пример 2:
В момент запуска приложения выведем в консоль отладки результат сложения двух чисел.

IR.AddListener(IR.EVENT_START, 0, function(){
    // создадим переменную a;
    var a = 8;
    // создадим переменную b;
    var b = 16;
    // создадим переменную c и выполним сложение значений переменных a и b;
    var c = a + b;
    // выведем в консоль отладки результат сложения, сохраненный в переменной c;
    IR.Log(c);
    // в консоли отобразится значение 24;

    // точно такое же значение можно вывести в консоль отладки без сохранения суммы,
    // выполнив сложение прямо в параметрах функции
    IR.Log(a + b);
    // в консоли отобразится значение 24;
    
    // или даже без использования переменных
    IR.Log(8 + 16);
    // в консоли отобразится значение 24;

    // вывод данных в консоль отладки может быть более инфмормативным, так как
    // можно комбинировать вывод значений переменных и вывод строк, например
    // перед выводом значения суммы a + b напишем объяснение, что это "Сумма", но
    // вычисление суммы обрамим в скобки (a + b), это не обходимо для отделения разные типов
    // данных - строк и чисел, если этого не сделать будет произведена конвертация в строку     
    // и конкатенация, после чего выведено "Сумма: 816". 
    IR.Log("Сумма: " + (a + b));
    // в консоли отобразится "Сумма: 24";
});

↑ К оглавлению

Раскодировать ссылку

Описание:
Функция, используется преобразования ссылки содержащей закодированные символы. Например: %23

Синтаксис:

IR.UrlDecode("ссылка");


Входные параметры:

  • ссылка - строка ссылка, содержащая закодированные символы.


Пример:
После запуска приложения, раскодируем ссылку и выведем в консоль отладки.

IR.AddListener(IR.EVENT_START, 0, function(){

  var link = IR.UrlDecode("http://192.168.1.128:1400/getaa?s=1&u%3as97881%3fs");

  IR.Log(link); // выведем в консоль отладку раскодированную ссылку
});


Особенности:

  • Если ссылка не содержит закодированных символов, на выходе будет ссылка, та же что и на вхоже
  • Можно использовать функцию несколько раз, для устранения нескольких уровней кодирования.

↑ К оглавлению

Удалить таймер

Описание:
Функция используется для удаления таймеров SetTimeout и SetInterval.


Синтаксис:

IR.ClearInterval(id);


Входные параметры:

  • id - идентификатор таймера IR.SetTimeout или IR.SetInterval. Получить идентификатор можно, только при создании таймера.


Пример:
При запуске приложения, создадим таймер и сохраним его идентификатор в переменную id. По нажатию на кнопку Item 1 на страница Page 1 удалим таймер.

IR.AddListener(IR.EVENT_START, 0, function(){

    var id = IR.SetInterval(100, function(){

         // любые действия
    });
});

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){

     IR.ClearInterval(id); 
});

↑ К оглавлению

Повторение действий с промежутком

Описание:
Таймер, используется для повторения действий много раз, через промежуток времени.


Синтаксис:
IR.SetInterval(время, функция);

Входные параметры

  • время - промежуток времени, мс
  • функция - имя функции


Пример:
После запуска приложения, будем повторять каждые 400 мс функцию message, которая печатает в консоль отладки сообщение.

IR.AddListener(IR.EVENT_START, 0, function(){

  IR.SetInterval(400, message); 

  function message(){ 

     IR.Log("Hello");   
  }
});

Отложенный запуск

Описание:
Таймер, используется для запуска функции один раз, после истечения указанного количества времени.


Синтаксис:

IR.SetTimeout(время, функция);


Входные параметры:

  • время (число) - количество времени (мс)
  • функция (объект) - имя функции


Пример:
При запуске приложения, создадим таймер отложенного запуска, который запустит функцию test спустя 400 мс.

IR.AddListener(IR.EVENT_START, 0, function(){

  IR.SetTimeout(400, test);

  function test(){

      // любые действия
  }
});

↑ К оглавлению

Подписаться на событие

Описание:
Функция, позволяет подписаться на событие и выполнить набор действий при его возникновении.


Синтаксис:

IR.AddListener(событие, объект, функция);


Входные параметры:

  • событие (постоянная) - имя события из списка событий.
  • объект (объект) - идентификатор для доступа к объекту, это может быть:

как графический элемент, так и драйвер,

  • функция (объект) - имя функции, содержащей набор действий


Пример 1:
Подпишемся на событие нажатия на кнопку Item 1 на странице Page 1 и напечатаем в консоль отладки о том, что была нажата эта кнопка.

IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), function(){ 

  IR.Log("Кнопка Item 1 была нажата"); 
});


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

IR.AddListener(IR.EVENT_START, 0, function(){ 

  IR.Log("Приложение было запущено"); 
});


↑ К оглавлению

Отписаться от события

Описание:
Функция, позволяет отключить подписку на событие.


Синтаксис:

IR.RemoveListener(событие, объект, функция);


Входные параметры:

  • событие (постоянная) - имя события из списка событий.
  • объект (объект) - идентификатор для доступа к объекту, это может быть:

как графический элемент, так и драйвер,

  • функция (объект) - имя функции или ссылка на функцию, которая была использована при подписке на событие.


Пример 1:
Отключим подписку на событие нажатия на кнопку Item 1 на странице Page 1. Функция press является именованной функцией и должна быть определена в коде.

// Определяем функцию 
function press(){

     // действия
} 

// Подписываемся
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), press);

// Отключаем подписку
IR.RemoveListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), press);


Пример 2:
Отключим подписку на событие нажатия на кнопку Item 1 на странице Page 1. Функция является не именованной и при подписке на событие, ссылка на нее, была сохранена в переменную link_press.

// Создаем переменную для хранения ссылки на функцию
var link_press;

// Подписываемся и сохраняем ссылку на функцию в переменную 
IR.AddListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"),
link_press = function(){

      // Действия
});

// Отключаем подписку
IR.RemoveListener(IR.EVENT_ITEM_PRESS, IR.GetItem("Page 1").GetItem("Item 1"), link_press);


Приложение было запущено

Имя:
IR.EVENT_START

Описание:
Событие, обозначает, что приложение было запущено.

Синтаксис подписки:

IR.AddListener(IR.EVENT_START, 0, Имя_Функции)


Синтаксис отписки:

IR.RemoveListener(IR.EVENT_START, 0, Имя_Функции)


Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.

Пример 1:
После запуска приложения, напишем в консоль отладки сообщение.

IR.AddListener(IR.EVENT_START, 0, ShowMessage);

function ShowMessage(){

   IR.Log("Приложение было запущено"); 
}


Пример 2:
Сделаем тоже самое, только с неименованной функцией.

IR.AddListener(IR.EVENT_START, 0, function(){

   IR.Log("Приложение было запущено"); 
});

↑ К оглавлению

Приложение работает

Имя:
IR.EVENT_WORK

Описание:
Событие, обозначает, что приложение работает. Соответственно, это событие, в отличии от любого другого, срабатывает не один раз, а много раз.

EVENT WORK.png

Синтаксис подписки:

IR.AddListener(IR.EVENT_WORK, 0, Имя_Функции)


Синтаксис отписки:

IR.RemoveListener(IR.EVENT_WORK, 0, Имя_Функции)


Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.

Пример 1:
Подпишемся на событие и пока приложение работает, будем печатать в лог сообщение.

IR.AddListener(IR.EVENT_WORK, 0, ShowMessage);

function ShowMessage(){

   IR.Log("Приложение работает"); 
}


Пример 2:
Сделаем тоже самое, только с неименованной функцией.

IR.AddListener(IR.EVENT_WORK, 0, function(){

   IR.Log("Приложение работает");
});

↑ К оглавлению

Приложение будет закрыто

Имя:
IR.EVENT_EXIT

Описание:
Событие, обозначает, что приложение будет закрыто. Активируется в момент получения команды на закрытие приложения.

Синтаксис подписки:

IR.AddListener(IR.EVENT_EXIT, 0, Имя_Функции)


Синтаксис отписки:

IR.RemoveListener(IR.EVENT_EXIT, 0, Имя_Функции)


Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.

Пример 1:
При выходе из приложения, запишем в глобальную переменную с именем Test сообщение.

IR.AddListener(IR.EVENT_EXIT, 0, SaveMessage);

function SaveMessage(){

   IR.SetVariable("Global.Test", "Приложение закрыто успешно");
}


Пример 2:
Сделаем тоже самое, только с неименованной функцией.

IR.AddListener(IR.EVENT_EXIT, 0, function(){

   IR.SetVariable("Global.Test", "Приложение закрыто успешно");
});

↑ К оглавлению

Приложение сменило ориентацию

Имя:
IR.EVENT_ORIENTATION

Описание:
Событие, обозначает, что приложение сменило ориентацию. Событие может быть вызвано поворотом панели, или горячей клавишей F5 на Windows.

Синтаксис подписки:

IR.AddListener(IR.EVENT_ORIENTATION, 0, Имя_Функции)


Синтаксис отписки:

IR.RemoveListener(IR.EVENT_ORIENTATION, 0, Имя_Функции)


Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.

Получаемые аргументы

  • orientation - номер новой ориентации приложения;


Диапазон значений

  • 1 - Вертикальная, кнопка Home внизу, константа: IR.ORIENTATION_PORTRAIT
  • 2 - Вертикальная, кнопка Home вверху, константа: IR.ORIENTATION_PORTRAIT_UPSIDE_DOWN
  • 3 - Горизонтальная, кнопка Home справа, константа: IR.ORIENTATION_LANDSCAPE_LEFT
  • 4 - Горизонтальная, кнопка Home слева, константа: IR.ORIENTATION_LANDSCAPE_RIGHT


Пример 1:
После смены ориентации приложения, напишем к консоль отладки сообщение с номером ориентации.

IR.AddListener(IR.EVENT_ORIENTATION, 0, Message);

function Message(orientation){

   IR.Log("Карамба! Кто-то повернул iPad, номер ориентации: " + orientation);
}


Пример 2:
Сделаем тоже самое, только с неименованной функцией.

IR.AddListener(IR.EVENT_ORIENTATION, 0, function(orientation){

   IR.Log("Карамба! Кто-то повернул iPad, номер текущей ориентации: " + orientation);
});


Особенности:
После запуска приложения, узнать текущую ориентацию устройства нельзя, до тех пор пока приложение не сменит ориентацию первый раз.

Загрузить:
Пример работы с событием >>

↑ К оглавлению

Клавиатура была показана

Имя:
IR.EVENT_KEYBOARD_SHOW

Описание:
Событие, активируется при показе встроенной в ОС панели клавиатуры.

Синтаксис подписки:

IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, Имя_Функции)


Синтаксис отписки:

IR.RemoveListener(IR.EVENT_KEYBOARD_SHOW, 0, Имя_Функции)


Внимание! Очень важно, что бы Имя_Функции при подписке и отписке было одинаковое.

Пример 1:
При показе клавиатуры, напишем в консоль отладки сообщение.

IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, ShowMessage);

function ShowMessage(){

   IR.Log("Клавиатура была показана!"); 
}


Пример 2:
Сделаем тоже самое, только с неименованной функцией.

IR.AddListener(IR.EVENT_KEYBOARD_SHOW, 0, function(){

   IR.Log("Клавиатура была показана!"); 
});

↑ К оглавлению

Приложение уходит в фон: EVENT_APP_ENTER_BACKGROUND

Это событие срабатывает когда приложение iRidium уходит в фон

   
   IR.AddListener(IR.EVENT_APP_ENTER_BACKGROUND, 0, function()
   {
       IR.Log("APP_ENTER_BACKGROUND");
       app_in_background = true;
   });

↑ К оглавлению

Приложение выходит из фона: EVENT_APP_ENTER_FOREGROUND

Это событие срабатывает, когда приложение iRidium выходит из фона

   
 IR.AddListener(IR.EVENT_APP_ENTER_FOREGROUND, 0, function()
   {
       IR.Log("APP_ENTER_FOREGROUND");
       app_in_background = false;
   }); 

↑ К оглавлению

Приложение завершает работу: EVENT_APP_WILL_TERMINATE

Это событие срабатывает перед тем, как приложение iRidium, будет завершено

   
   IR.AddListener(IR.EVENT_APP_WILL_TERMINATE, 0, function()
   {
       IR.Log("APP_WILL_TERMINATE");
   });

↑ К оглавлению

Получение локального уведомления: EVENT_RECIEVE_NOTIFY

Эта событие срабатывает, когда приложение iRidium получает локальное уведомление

Синтаксис: IR.AddListener(IR.EVENT_RECIEVE_NOTIFY, 0, function(text, id)

  • text - текст уведомления
  • id - идентификатор уведомления (любой текст)
 
   IR.AddListener(IR.EVENT_RECIEVE_NOTIFY, 0, function(text, id)
   {
      if(app_in_background == true)
      {
          IR.Log("SCRIPT_EVENT_RECIEVE_NOTIFY");
          IR.Log(text + " " + id);
          if(id == "D1")
            IR.ShowPopup("Popup 1"); // если получено уведомление с идентификатором D1, показать Popup 1
          else if(id == "D2")
            IR.ShowPopup("Popup 2"); // если получено уведомление с идентификатором D2, показать Popup 2
          else if(id == "D3")
            IR.ShowPopup("Popup 3"); // если получено уведомление с идентификатором D3, показать Popup 3
      }
}); 

↑ К оглавлению

Создать эффект

Описание:
Функция, позволяет создать эффект во время работы приложения и использовать его в группе эффектов для скрытия или показа всплывающего окна.

Применение:

  • Необходимо показывать / скрывать одно и тоже всплывающее окно c разными группами эффектами в одном проекте.
  • Дополнение групп эффектов созданных в редакторе.


Синтаксис:

var Имя_Переменной = IR.CreateEffect(Эффект);


Входные параметры:

  • Эффект (число) - имя эффекта доступное в iRidium. Ниже представлены имена эффектов:


Эффекты:

  • IR.EFFECT_FADE - плавное появление / исчезновение;
  • IR.EFFECT_ROTATE - вращение вокруг своей оси, цент поворота середина всплывающего окна;
  • IR.EFFECT_SCALE - увеличение / уменьшение;
  • IR.EFFECT_SLIDE - движение в / из стороны;
  • IR.EFFECT_TVSCAN - сжатие по горизонтали;


Свойства Эффектов:

  • Group (число) - Номер группы эффектов, в которой будет находиться эффект. Рекомендуется использовать номера групп эффектов начиная с 1000, это убережет вас от пересечения с группами эффектов, которые создает редактор. В случае если требуется дополнить группы эффектов созданные в редакторе на эффекты созданные динамически, то используйте это осознанно.
  • Delay (число, мс)- задержка перед выполнением эффекта;
  • Duration (число, мс) - продолжительность эффекта;
  • Tween (число) - формула вычисления, см. список формул вычислений


Пример 1:
В момент запуска приложения создадим эффект Fade, зададим для него параметры, поместим в группу эффектов и покажем всплывающее окно с этой группой.

IR.AddListener(IR.EVENT_START, 0, function(){
   
   // Создаем, сохраняем в переменную
   var Fade = IR.CreateEffect(IR.EFFECT_FADE);

   // Номер группы
   Fade.Group = 1000;

   // Задержка
   Fade.Delay = 0;

   // Продолжительность
   Fade.Duration = 400;

   // Формула вычисления
   Fade.Tween = 0;

   // Показ всплывающего окна
   IR.ShowPopup("Popup 1", 1000)
});

↑ К оглавлению

Уточнить значение

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

IR TWEEN.png


Синтаксис:

var Имя_Переменной = IR.Tween(Вычисление, Номер, Начало, Конец, Уточнение); 


Входные параметры:

  • Вычисление (число) - имя формулы для вычисления, см список формулы вычислений
  • Номер (число) - номер значения, которое требуется узнать.
  • Начало (число) - первое значение для вычисления
  • Конец (число) - последнее значение для вычисления
  • Уточнение (число) - определяет степень уточнение отрезка, чем больше это число, тем точнее значение можно узнать.


Применение

  • Уточнение диапазона
  • Анимация графических элементов


Пример 1:
При запуске приложения, напечатаем в консоль отладки значение 10-ого элемента из диапазона от 0 до 100, уточненного до 255 точек.

IR.AddListener(IR.EVENT_START, 0, function(){    
 
    var value = IR.Tween("TWEEN_LINEAR", 10, 0, 100, 255); 
    IR.Log(value);
});


Пример 2:
Во время работы приложения, будем изменять прозрачность элемента от 0 до 255, за 500 мс.

// Объявляем переменную timer для наращивания времени
// Объявляем переменную Tween для хранения значения математической функции
var timer = 0;
var Tween = 0;
// Создаем слушателя на событие Work и передаем текущее время
IR.AddListener(IR.EVENT_WORK, 0, function(time){   
         
   // Наращиваем время
   timer += time;

   // Сохраняем значение математической функции
   Tween = IR.Tween("TWEEN_LINEAR", timer, 0, 255, 500); 
   
   // Записываем в свойство Opacity графического элемента
   // значение математической функции
   IR.GetPage("Page 1").GetItem("Item 1").GetState(0).Opacity = Tween;
});

↑ К оглавлению

Формулы вычислений

Описание:
Формула определяет то, как будет вычисляться промежуточное значение на выбранном отрезке значений. Каждая формула имеет свой номер, который следует передать в функцию IR.Tween первым параметром.

TypeOfTween.png

Имена формул и их номера:

  • TWEEN_LINEAR: 0,
  • TWEEN_SINE_IN: 1,
  • TWEEN_SINE_OUT: 2,
  • TWEEN_SINE_IN_OUT: 3,
  • TWEEN_QUINT_IN: 4,
  • TWEEN_QUINT_OUT: 5,
  • TWEEN_QUINT_IN_OUT: 6,
  • TWEEN_QUART_IN: 7,
  • TWEEN_QUART_OUT: 8,
  • TWEEN_QUART_IN_OUT: 9,
  • TWEEN_QUAD_IN : 10,
  • TWEEN_QUAD_OUT: 11,
  • TWEEN_QUAD_IN_OUT: 12,
  • TWEEN_EXPO_IN: 13,
  • TWEEN_EXPO_OUT: 14,
  • TWEEN_EXPO_IN_OUT: 15,
  • TWEEN_ELASTIC_IN: 16,
  • TWEEN_ELASTIC_OUT: 17,
  • TWEEN_ELASTIC_IN_OUT:18,
  • TWEEN_CUBIC_IN: 19,
  • TWEEN_CUBIC_OUT: 20,
  • TWEEN_CUBIC_IN_OUT: 21,
  • TWEEN_CIRC_IN: 22,
  • TWEEN_CIRC_OUT: 23,
  • TWEEN_CIRC_IN_OUT: 24,
  • TWEEN_BOUNCE_IN: 25,
  • TWEEN_BOUNCE_OUT: 26,
  • TWEEN_BOUNCE_IN_OUT: 27,
  • TWEEN_BACK_IN: 28,
  • TWEEN_BACK_OUT: 29,
  • TWEEN_BACK_IN_OUT: 30


Примечание:
Для более удобного использования, без запоминания номеров, используйте скрипт, позволяющий использовать вместо номеров, имена формул. Скрипт следует добавить в проект и не изменять.
Загрузить скрипт:
https://s3.amazonaws.com/iridium2_downloads/Script_Drivers/IR_Tweens.js

↑ К оглавлению

Копирование данных в буфер (IR.CopyToClipboard(text))

Описание:
Функция позволяет копировать строки в буфер устройства.

Синтаксис:

IR.CopyToClipboard(text);

Входные параметры:

  • text - данные, которые могут быть конвертированы в строку.

Пример:

IR.AddListener(IR.EVENT_START, 0, function(){
// Создадим переменную HWID 
var HWID = IR.HWID;
// Копируем HWID панели на которой запущено приложение 
IR.CopyToClipboard(IR.GetVariable("System.Device.Name") + " HWID:" + HWID);
});

↑ К оглавлению

Обновление проекта по команде (IR.DownLoadProject)

Описание:
Функция позволяет изменить имя загружаемого по HTTP проекта и использовать режим мультипроектности

Синтаксис:

IR.DownLoadProject(
{
      type:parsed_url.scheme,
      host:parsed_url.authority,
      path:parsed_url.path + '?' + parsed_url.query,
      multiproject: Value,
      name: Text
});

Входные параметры:

  • type - тип протокола, https/http
  • host - адрес
  • path - путь к файлу проекта, в начале пути к файлу проекта приписывается "/"
  • multiproject - режим мультипроектности, 1-включен 0-отключен
  • name - новое имя проекта


Пример:

//Функция возвращает ассоциативный массив, возвращающий любые имеющиеся компоненты URL.
function parse_url(url) 
{
    var pattern = RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?");
    var matches =  url.match(pattern);
    return {
        scheme: matches[2],
        authority: matches[4],
        path: matches[5],
        query: matches[7],
        fragment: matches[9]
    };
}
// Скачиваем проект и меняем имя проекта на "TestNew"
function HTTPUpdate(url)
{   
IR.Log(url);                                                                    
   var parsed_url = parse_url(url);
   var downloader = IR.DownLoadProject(
                     {                
                type:parsed_url.scheme,
                host:parsed_url.authority,
                path:parsed_url.path + '?' + parsed_url.query,
                multiproject: 1,
                name: "TestNew"
                     }); 
                  }
// Вызываем функцию для загрузки проекта, параметр которой является ссылка на загружаемый проект
function Update_new()                
{
         HTTPUpdate('https://drive.google.com/uc?export=view&id=0B2nsHBulOZWTR2tUaW85Vlo1Yzg');
        // Выведем в лог количество проектов на панели
         var count = IR.GetDesignsCount();
         IR.Log("Count Projects = " + count); 
} 


Особенности:

  • Имя задается в свойстве name, файловая система в момент загрузки проекта получает новое имя и создает файл с новым именем и в этот файл записывает данные.

Примечание:

  • Загружаемый проект получает имя, заданное через параметр name.


Загрузить:
Пример работы с функцией >>

↑ К оглавлению

Отправить локальное уведомление на iOS устройствах (IR.SendNotification)

IR.SendNotification - эта функция используется для отправки локального уведомления (Local notification) на iOS устройствах.

Синтаксис: IR.SendNotification(text, delay, sound_id, badge_increment_num, id);

  • text - текст уведомления
  • delay (default=0) - задержка появления уведомления (в секундах)
  • sound_id (default=0) - идентификатор звука, с которым будет вызвано уведомления
  • badge_increment_num (default=0) - на сколько увеличить число на иконке уведомления на иконке приложения
  • id (default=None) - уникальный идентификатор уведомления

Пример:

	// Идентификаторы звуков
      SOUND_ID = {
		  None : 0, // без звука
		  Default : 1, // стандартный звук уведомления на iOS
		  Ringing : 2, // стандартный рингтон
		};
      // Создание необходимых переменных
      string = "Crestron " + name + " value = " + value;
      id = "" + name;
      delay = 0; // seconds
      sound_id = SOUND_ID.Default;
	// badge - числовая иконка на иконке приложения (numeric icon on application icon)
     badge_increment_num = 1;     
      IR.SendNotification(string, delay, sound_id, badge_increment_num, id);
   });

↑ К оглавлению

Очистить список уведомлений на iOS устройствах (IR.ClearNotification)

IR.ClearNotification - эта функция используется для очистки списка уведомлений на iOS устройствах.

Пример:

//при нажатии на кнопку на странице Page 1 с именем "clr_notty" очистить список уведомлений на iOS устройстве
   clr_notty = IR.GetPage("Page 1").GetItem("clr_notty");
   IR.AddListener(IR.EVENT_ITEM_PRESS, clr_notty, function() {
      IR.ClearNotification();
   });  

↑ К оглавлению

Вычислить HASH и CRC

IR.CalculateCRC - метод, используется для подсчета CRC суммы.
IR.CalculateHash - метод, используется для подсчета Hash суммы.

Пример:


var crc8 = IR.CalculateCRC(IR.CRC_8,  "Test"));
var crc16 = IR.CalculateCRC(IR.CRC_16, "Test"));
var crc32 = IR.CalculateCRC(IR.CRC_32, "Test"));

var hashMD5 = IR.CalculateHash(IR.HASH_MD5, "Test"));
var hashSHA1 = IR.CalculateHash(IR.HASH_SHA1, "Test"));
var hashSHA256 = IR.CalculateHash(IR.HASH_SHA256, "Test"));
var hashSHA384 = IR.CalculateHash(IR.HASH_SHA384, "Test"));
var hashSHA512 = IR.CalculateHash(IR.HASH_SHA512, "Test"));

↑ К оглавлению