Материал из for iRidium developers
Перейти к: навигация, поиск
Other languages:
English • ‎русский

iRidium Server API

Уникальные функции, методы, свойства, которые можно использовать в серверном проекте iRidium (*.sirpz)

Методы

Объект IR - глобальный объект, содержащий в себе все функции и константы API iRidium. Методы объекта IR для сервера позволяют обратиться к свойствам сервера в проекте iRidium Server.

IR.GetServer

Метод работает только в серверном проекте (*.sirpz), используется для работы с внутренним пространством переменных сервера. Позволяет получить доступ к iRidium Server, как к драйверу и обратиться к любой переменной по ее полному имени. Возвращает объект, к которому применимы методы, поддерживаемые IR.GetDevice.

Синтаксис

IR.GetServer()

на входе значение описание

-

на выходе
Object [object DevicePrototype] type: Object
ссылка на драйвер


Пример

var server = IR.GetServer();  // [object DevicePrototype]
 
server.Set("Server.Channels.Virtual 1", 1);    // set 1 to Virtual Channel
server.Set("Server.Channels.KNX.Address 1", 1);    // set 1 to the Address of KNX driver
 
IR.AddListener(IR.EVENT_TAG_CHANGE , IR.GetServer(), function(name,value)
{
   if (name == "KNX.Address 1")	IR.Log("KNX Address Changed");
   if (name == "Virtual 1")	IR.Log("Virtual Tag Changed");
});

работает только в серверном проекте
к объекту, полученному с помощью метода, можно применить те же методы, что к другим драйверам (см. методы, применимые к IR.GetDevice)


События


Событие - процесс, проброшенный в скрипты и имеющий идентификатор для отслеживания.

Слушатель - это функция, которая выполняется в случае срабатывания указанного ей события

Добавьте слушатель с помощью метода IR.AddListener

IR.AddListener(event, input, action);
  • event - идентификатор события, за которым следит слушатель
  • input - входной параметр, необходимый для создания слушателя. Если параметра нет, укажите 0
  • action - не именованная функция или ссылка на объявленную функцию, внутри которой выполняются действия
  • pointer - указатель на контекст вызова слушателя (не обязательный). Обратиться к контексту можно с помощью оператора this. Контекст может меняться во время работы программы


Пример:

// functions inside of listener
IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Driver"), function (name, value)
{
    IR.Log("changes: "+name+" > "+value); // changes: Feedback 1 > 100
});


IR.EVENT_ACCEPT

идентификатор события, которое срабатывает при любой попытке подключения к серверу. Вернет сетевые параметры устройства, которое сделало попытку подключения к серверу. После подключения начнется процесс авторизации устройства на сервере. По завершению авторизации, сработает событие IR.EVENT_AUTHORIZE, которое означает, что авторизация успешно пройдена. Сочетание данных о панели, полученных в событиях ACCEPT и AUTHORIZE дает полную информацию о панели. Связать эти два события можно, опираясь на ID - идентификатор соединения.

Синтаксис

IR.AddListener(IR.EVENT_ACCEPT, IR.GetServer(), function (ID, LocalIP, LocalPort, HostIP, HostPort) {});

на входе значение описание
driver IR.GetServer() type: object
ссылка на драйвер iRidium Server
на выходе
ID 1 type: string
порядковый номер панели управления в списке подключенных к серверу
LocalIP 192.168.0.100 type: string
локальный IP адрес панели управления
LocalPort 30464 type: string
порт на панели управления, открытый для получения данных от сервера
HostIP 192.168.0.100 type: string
IP-адрес удаленной системы, из которой панель подключилась к серверу
HostPort 30464 type: string
порт удаленной системы, открытый для получения данных от сервера


Пример

IR.AddListener(IR.EVENT_ACCEPT, IR.GetServer(), function (ID, LocalIP, LocalPort, HostIP, HostPort)
{
    var time = IR.GetVariable("System.Time.24");
    IR.Log("Accept Client: "+time+", "+ID+", "+LocalIP+", "+LocalPort+", "+HostIP+", "+HostPort);
});





IR.EVENT_AUTHORIZE

*в разработке*
идентификатор события, которое срабатывает при успешном подключении панели управления к серверу. Событие срабатывает после IR.EVENT_ACCEPT и возвращает подробную информацию о подключенном устройстве: идентификатор соединения, HWID панели управления, логин пользователя, идентификатор объекта автоматизации и имя проекта визуализации, запущенного на панели. Сочетание данных о панели, полученных в событиях ACCEPT и AUTHORIZE дает полную информацию о панели. Связать эти два события можно, опираясь на ID - идентификатор соединения.

Синтаксис

IR.AddListener(IR.EVENT_AUTHORIZE, IR.GetServer(), function (ID, ObjectId, Login, ProjectName, HWID) {});

на входе значение описание
driver IR.GetServer() type: object
ссылка на драйвер iRidium Server
на выходе
ID 1 type: string
порядковый номер панели управления в списке подключенных к серверу
ObjectId 7071 type: number
идентификатор объекта автоматизации в iRidium Cloud, из которого на панель управления загружен проект
Login user@my.mail type: string
логин пользователя, авторизованного на панели управления
ProjectName Project Home type: string
имя проекта визуализации, запущенного на панели управления
HWID 69538...a7acf type: string
уникальный идентификатор панели управления (иногда он может меняться, не используйте HWID как постоянный идентификатор панели!)


Пример

IR.AddListener(IR.EVENT_AUTHORIZE, IR.GetServer(), function (ID, ObjectId, Login, ProjectName, HWID)
{
    var time = IR.GetVariable("System.Time.24");
    IR.Log("Client Authorized: "+time+", "+ID+" "+ObjectId+" "+Login+" "+ProjectName+" "+HWID)
});





IR.EVENT_RELEASE

идентификатор события, которое срабатывает при отключении панели i3 pro от сервера, и возвращает информацию об этой панели

Синтаксис

IR.AddListener(IR.EVENT_RELEASE, IR.GetServer(), function (ID, LocalIP, LocalPort, HostIP, HostPort) {});

на входе значение описание
driver IR.GetServer() type: object
ссылка на драйвер iRidium Server
на выходе
ID 1 type: string
порядковый номер панели управления в списке подключенных к серверу
LocalIP 192.168.0.100 type: string
локальный IP адрес панели управления
LocalPort 30464 type: string
порт на панели управления, открытый для получения данных от сервера
HostIP 192.168.0.100 type: string
IP-адрес удаленной системы, из которой панель подключалась к серверу
HostPort 30464 type: string
порт удаленной системы, открытый для получения данных от сервера


Пример

IR.AddListener(IR.EVENT_RELEASE, IR.GetServer(), function (ID, LocalIP, LocalPort, HostIP, HostPort)
{
    var time = IR.GetVariable("System.Time.24");
    IR.Log("Release Client: "+time+", "+ID+", "+LocalIP+", "+LocalPort+", "+HostIP+", "+HostPort);
});