- Справочник
- iRidium Server API
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("Virtual 1", 1); // set 1 to Virtual Channel
server.Set("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 как постоянный идентификатор панели!) |
| Name | DESKTOP-1 | type: string имя устройства, на котором была подключена панель к серверу. |
| Model | Windows 6.2 build 9200 sp 0.0 | type: string модель устройства, на котором была подключена панель к серверу. |
| Producer | Microsoft Windows 8 x64 | type: string операционная система устройства, на котором была подключена панель к серверу. |
| Version | 0.0.3 | type: string версия операционной системы устройства, на котором была подключена панель к серверу. |
| Group | 2 | type: number группа клиента, который подключается к серверу. |
| Channel | 1 | type: number переменные, которыми можно управлять. |
| Tags | 1 | type: number переменные, от которых можно получить обратную связь |
Пример
IR.AddListener(IR.EVENT_AUTHORIZE, IR.GetServer(), function (ID, ObjectId, Login, ProjectName, HWID, in_oFullInfo)
{
var time = IR.GetVariable("System.Time.24");
IR.Log("Client Authorized: " + time + ", " + ID + " " + ObjectId + " " + Login + " " + ProjectName + " " + HWID)
IR.Log(JSON.Stringify(in_oFullInfo))
});
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);
});
IR.EVENT_SCHEDULE_EVENT_CHANGE
событие начала или окончания любого события из расписания.
Событие доступно только на сервере.
Синтаксис
IR.AddListener(IR.EVENT_SCHEDULE_EVENT_CHANGE, 0, function(scheduleName, eventName, status){}, [pointer]);
| на входе | значение | описание |
|---|---|---|
| function() | function(){} | type: function не именованная функция или обращение к функции |
| pointer | - | type: object указатель на объект, который обслуживает функцию (опционально) |
| на выходе | ||
|---|---|---|
| scheduleName | 'Schedule 1' | type: string имя расписания |
| eventName | 'Event N' | type: string имя события |
| status | 1 | type: number состояние события: 1 - IR.SCHEDULE_EVENT_STATE_START - началось, 2 - IR.SCHEDULE_EVENT_STATE_RUN - работает, 3 - IR.SCHEDULE_EVENT_STATE_FINISH - завершилось |
Пример
IR.AddListener(IR.EVENT_SCHEDULE_EVENT_CHANGE, 0, function(scheduleName, eventName, status)
{
if (eventName == "Light" && status == IR.SCHEDULE_EVENT_STATE_START)
{
IR.Log("Light on");
}
if (eventName == "Light" && status == IR.SCHEDULE_EVENT_STATE_FINISH)
{
IR.Log("Light off");
}
if (eventName == "Heating" && status == IR.SCHEDULE_EVENT_STATE_START)
{
IR.Log("Heater on");
}
if (eventName == "Heating" && status == IR.SCHEDULE_EVENT_STATE_FINISH)
{
IR.Log("Heater off");
}
});