Эта страница является
переводом страницы
Server API. Перевод выполнен на 100%.
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");
}
});