Logo Logo ru
  • iRidi Pro
    Основные компоненты
    • Приложение i3 Pro
    • iRidi Pro Server
    • iRidi Studio
    • iRidium studio v. 1.3.8 (устаревшая версия)
    Java Script в iRidi
    • Руководство
    • Справочник
    • Примеры
    • JS драйвера
    другие
    • Личный Кабинет
    • iRidium Cloud
    • iRidium Transfer
    • Push-уведомления
    • Лучшая практика
    Лицензирование
    • Лицензирование и передача проекта
    • Оффлайн-лицензирование
    • Активация iRidi Pro Server
  • Продукты
    i3 lite
    • Приложение i3 lite
    • Регистрация и лицензирование
    • Сервер
    • Модули
    KNX Home Server
    • Приложение i3 KNX
    • KNX Home Server
    BUS77 HOME SERVER
    • Приложения Bus77 Home и Bus77 Lite
    • Bus77 Home Server
    Решения
    • BYOD - решение для гостиниц
    • Портал жителя - решение для МКД
    iRidi SCADA
    • iRidi SCADA
  • Bus77
    НАСТРОЙКА BUS77
    • Основы Bus77
    • Приложения Bus77 Home и Bus77 Lite
    • Работа с драйвером Bus77 в iRidi Studio
    • Настройка шины Bus77 в iRidi Studio
    ПРОТОКОЛ BUS77
    • Характеристики CAN (Bus77)
    • Описание протокола
    • Исходники на GitHub
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
  • Поддерживаемое оборудование
    Драйверы
    • Список драйверов
    • ProAV драйвера
    • AV & Custom Systems
    • JS драйвера
    • Сторонние драйвера и фриланс
    Протоколы и интерфейсы
    • Голосовое управление
    • 1-Wire
    • BACnet IP
    • Bus77
    • KNX
    • KNX IP BAOS
    • Weinzierl kBerry
    • Microsoft Exchange
    • Modbus
    • MQTT
    • NFC
    • ODBC
    • Onvif
    • SIP
    • SNMP
    • Wake On Lan
    • Z-Wave
    • ZigBee
    Производители
    • AMX
    • AVCiT
    • Beckhoff ADS
    • Biamp Tesira
    • Bluesound
    • Casambi
    • BSS Harman
    • Clipsal
    • ControlArt 7Port
    • Crestron
    • DigiBird
    • Domintell
    • Duotecno
    • EIDE
    • EPSNET
    • Global Cache
    • HDL Buspro
    • Helvar
    • IEAST
    • INELS BUS
    • INELS Wireless
    • Intesis
    • Kleger
    • Kramer VIA
    • Kramer 3000
    • Larnitech
    • Legrand Netatmo
    • LG TV
    • Lutron
    • Lutron Homeworks QS
    • MyHome
    • Nest
    • Novastar
    • Panasоnic PTZ
    • Philips Dynalite
    • PJLink
    • Satel
    • SamsungTV
    • Sonos
    • Somfy
    • SpinetiX
    • Televic Conference
    • TIS
    • Tion
    • URRI
    • Velbus
    • Velocio
    • Vinteo
    • WyreStorm
    • WiiM
    • Xicato
    • Yamaha
    • ZONT
    • Z-Wave.me
    Протестированное оборудование
    • Панель HDL S57
    • Панель HDL S10
    • SIP-домофон
    • Akuvox
    • Arlight
    • Divus
    • QBic TD-1050 PRO
    • QBic TD-1060 Slim
    • QBic TD-1070
    • Sigur
    • Uni-Ubi
    • Velocio
  • Оборудование iRidi

    Серверы
    • HS Сервер
    • ProAV Control Processor Basic
    • ProAV Control Processor Advanced
    • Спецификация контроллеров UMC
    • Настройка контроллера UMC C2
    • Настройка контроллера UMC C3
    • Настройка контроллера HDL IntelliCenter 2 (UMC C4)
    Модули расширения
    • I-PX-RS1
    • I-PX-RS4
    • I-PX-IR3
    KNX
    • KNX Home Server
    • KNX IP Interface
    Панели управления
    • iRidium Panel 7
    • Touch Panel P3
    • Touch Panel P6
    • Touch Panel P8
    • Touch Panel P10
    • Tabletop Touch Panel 10
    • AV Remote Control
    ОБОРУДОВАНИЕ BUS77
    • Каталог Bus77 Pro
    • Каталог Bus77 Lite
    • Differences
Сайт iRidium mobile
Содержание
    Инструменты‌
    • Сведения о странице
    • Постоянная ссылка
    • Версия для печати
    • Спецстраницы
    • Связанные правки
    • Ссылки сюда
    Login / Create Account
    Материал из for iRidium developers
    Перейти к: навигация, поиск
    Эта страница является переводом страницы JS Samples. Перевод выполнен на 100%.

    Other languages:
    English • ‎русский
    Раздел находится в разработке

    Содержание

    • 1 Примеры использования iRidium API
    • 2 Драйверы (DDK, Drivers API)
      • 2.1 Custom TCP сервер в клиенте iRidium
    • 3 Интерфейс (GUI API)
      • 3.1 Анимация элементов с помощью IR.Tween
      • 3.2 Управление шрифтом
    • 4 Уведомления (Push API)

    Примеры использования iRidium API

    Примеры использования методов и функций iRidium API
    « Руководство « Справочник

    Примеры использования JavaScript API iRidium с описаниями.

    Обновлено: 06.2.2019
    Язык предок: JavaScript
    Версия языка: 1.5
    Спецификация: ECMAScript Edition 3
    The JS version that we use is not the latest one and it does not support new constructions, but its functions are enough for panel projects in 99% of all cases. To satisfy the remaining one per cent converters of the https://babeljs.io type can be used and of course experience and developer's skills help.
    Report an error


    Драйверы (DDK, Drivers API)

    Примеры создания и изменения настроек драйверов с помощью iRidium API


    Custom TCP сервер в клиенте iRidium

    Custom Server на базе драйвера AV & Custom Systems может принимать подключения клиентов на базе AV & Custom Systems и сторонних приложений, обрабатывать данные, которые присылает клиент и передавать ему команды.

    Помните, что сервер, запущенный в приложении i3 pro, работает только пока приложение запущено, он не может хранить базу данных, в отличие от специализированного решения iRidium Server.

    Применение "сервера в клиенте" очень ограничено и может использоваться только для синхронизации некоторых данных между панелями управления, когда установка iRidium Server по каким-то причинам невозможна.

    // TCP server on port 5678
    function start_tcp_server(server_name)
    {
       // name, port, max connections
       var name = server_name;
       var port = 5678;
       var max_clients = 10;
       var tcp_device = IR.CreateDevice(IR.DEVICE_CUSTOM_SERVER_TCP, name, "", port, max_clients);
     
       // start server
       tcp_device.Connect();    
     
       // inform when the server online
       IR.AddListener(IR.EVENT_ONLINE, tcp_device, function(text)
       {
          IR.Log("Server is ONLINE");
       });
     
       // register connected client
       IR.AddListener(IR.EVENT_ACCEPT, tcp_device, function(id)
       {  
          IR.Log(tcp_device + " ACCEPT CLIENT "+id);
       });
     
       // process received data
       IR.AddListener(IR.EVENT_RECEIVE_TEXT, tcp_device, function(text)
       {
          //IR.Log("INPUT DATA: "+text);
          var strings = text.split('\r\n');
          var string;
          while(string = strings.shift())
          {
             var parts = string.split(":");  // parse the string with ":" devider
             switch(parts[0])
             {
                case "LOG":    // if the first substring of received data = "LOG"
                IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Text = IR.GetVariable("System.Time.24")+" "+parts[1];
                IR.Log(IR.GetVariable("System.Time.24")+" "+parts[1]);
                break;
                case "ERROR":  // if the first substring = "ERROR"
                IR.GetItem("Page 1").GetItem("Item 2").GetState(0).Text = IR.GetVariable("System.Time.24")+" "+parts[1];
                IR.Log(IR.GetVariable("System.Time.24")+" "+parts[1]);
                break;
                case "DATABASE":  // if the first substring = "DATABASE"
                IR.Log(parts[1]);
                break;
             }
          }
       });
    }
     
    // start the server when project starts
    start_tcp_server("Custom Server TCP");
    скачать:
    • пример cервера
    • пример клиента, подключенного к серверу


    Интерфейс (GUI API)

    Примеры управления свойствами страниц, окон и графических элементов с помощью iRidium API


    Анимация элементов с помощью IR.Tween

    Твинер уточняет значение переменной на указанном отрезке, вычисленное по какой-либо формуле. Позволяет создать анимацию с движением объекта на определенном отрезке по указанной кривой.

    Применим твинер для того, чтобы показанный на странице попап плавно "выезжал" из-за края экрана. Будем использовать линейный твинер, чтобы попап двигался прямо.

    function ShowTop() 
    {
       TopTween("Popup 1", 820, 34, 250);  // popup, X, Y, moving range from Top
    }
     
    ////////////////////////////////////////////////////////////////////////////////
    // Creating Effects
    ////////////////////////////////////////////////////////////////////////////////
    var timer = 0;
    var speed = 20;    // showing speed
     
    function TopTween(popup, X, Y, range)
    {
       IR.ShowPopup(popup);
       IR.GetItem(popup).X = X;
       var Tm = IR.SetInterval(1, function()
       {          
          timer++;
          var Tween = IR.Tween("TWEEN_LINEAR", timer, 0, range, speed); 
          IR.GetItem(popup).Y = Y+Tween; 
          if (timer > speed) IR.ClearInterval(Tm); timer = 0;
       });
    }

    скачать:

    пример использования твинеров


    Управление шрифтом

    Установить на элемент шрифт или изменить размер шрифта можно только через свойство состояния .FontId.

    FontId - идентификатор шрифта, хранит указатель на шрифт и его размер. Изменить отдельно размер шрифта - нельзя.

    Создадим новый шрифт и привяжем его к состоянию элемента через FontId. Важно использовать для создания новых шрифтов идентификаторы, которых еще нет в проекте (редактор также создает свои, системные шрифты, используя идентификаторы, начинающиеся с 1). Для получения свободного идентификатора надо использовать метод IR.FreeFontID;

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

    var Font=IR.FreeFontID; //Get free font ID
    IR.CreateFont(Font, "tahoma.ttf", IR.GetItem("Страница 1").GetState(0).FontSize+10);//Create new font with new size and id
    IR.GetItem("Страница 1").GetState(0).FontId=Font;//Set new font to the state
    скачать:
    • пример создания и изменения шрифта


    Уведомления (Push API)

    Отправка Push уведомления на панель управления. Уведомление отправляет сервер (других возможностей в v1.0.10 нет).


    1 Создайте группы панелей управления

    По умолчанию, ни одна панель управления не будет получать Push уведомления до тех пор, пока вы не поместите ее в Группу панелей, которые могут получать Push.

    Группы настраивают на сайте, см. инструкцию.

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


    2 Настройте скрипт отправки уведомлений с сервера

    В проекте для сервера создайте новый файл скрипта. Добавьте в него условие отправки уведомления и команду отправки Push. Условием отправки Push может быть изменение любой переменной сервера - связанной с драйвером, или виртуальной.

    Пример: отправим уведомление, когда канал "Address 1" драйвера "KNX" примет значение 1. Уведомление получит группа панелей с ID = 1.

    function sendPush (text, group) 
    {
       IR.SendPush(text, "", group);  
       // text - message that will be displayed in notification
       // group - group of Panels seted up in Cloud Object properties on iRidium Mobile web site
    }
     
    IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("KNX"), function(name, value)
    {
       if (name == "Address 1" && value == 1) 
       {
          sendPush("Leakage in the kitchen! The water supply is turned off", 1); 
       } 
    });

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

    Источник — «https://dev.iridi.com/index.php?title=JS_Samples/ru&oldid=70798»
    Категория:
    • Инструкции
    О нас
    Компания
    Команда
    История
    Философия
    Награды
    Партнерство
    Наши партнеры
    Партнерские программы
    Подать заявку на партнерство
    Продукты
    iRidium pro
    iRidium lite
    iRidium gate
    iRidium server
    Загрузки
    iRidium pro
    iRidium lite
    Другие версии
    Маркетинговые материалы
    Поддержка
    Онлайн курсы/Видео
    Рекомендуемое оборудование
    Другие версии
    iRidium pro
    Документация
    FAQ
    Форум
    iRidium lite
    Документация
    Форум
    Проекты
    Типовые проекты
    Умные здания
    Умные дома
    Специальные решения
    Найти дилера
    Новости
    Youtube
    Twitter
    VK
    Logo
    contact@iridi.com
    +7 (499) 322-73-29

    Политика конфиденциальности