Создание собственного драйвера
Данный пример демонстрирует процесс создания драйвера в iRidium Studio на базе драйвера AV & Custom Systems (HTTP).
документация обновлена 01.01.2024
Скачать:
Для обработки полученных данных и / или управления оборудованием вы можете использовать драйвер AV & Custom Systems (HTTP). Для реализации нам понадобится Iridium Studio установленная на ПК и любой анализатор трафика локальной сети (например WireShark). В примере мы будем получать данные с сайта https://openweathermap.org, разбирать их и отображать значения в панельном проекте. Анализатор трафика (Wireshark) в примере используется только для того, чтобы показать возможность такого разбора в случае, когда мы не знаем формат отправки запросов к ресурсу (оборудованию) и ответов от него.
Получение данных с ресурса
- Запустите браузер и перейдите на сайт разработчика (в нашем примере это сайт, предоставляющий информацию о погоде в вашем и других городах: https://openweathermap.org). Выберите API запрос, который будете выполнять для получения данных. На примере рассмотрим запрос на получение данных о текущей погоде в городе "London".

Формат запроса данных с ресурса будет выглядеть следующим образом:
http://api.openweathermap.org/data/2.5/weather?q=**{city name}** &units=metric&appid=**{API key}** ,
-
{city name}- город, -
{API key}- API ключ для аутентификации. -
Более подробная информация описана на официальном сайте openweathermap.
- Запустите Wireshark. В Wireshark выберите свое устройство захвата (сетевую карту):

- Укажите фильтр по "http":

- Выполните запрос в браузере ( https://clck.ru/WBLfX ), после этого перейдите в Wireshark, он должен захватить ваш трафик. Найдите среди захваченных пакетов нужный запрос и ответ на него. Ответ на запрос возвращается в формате JSON, его мы и будем разбирать и выводить в проект.

Работа в iRidium Studio
- Запустите iRidium Studio и создайте 4 элемента Label, два для подписи значений и два для вывода данных о температуре воздуха и влажности.

- Создайте драйвер проекта AV & Custom Systems (HTTP). В свойствах драйвера укажите значение параметра Host - доменное имя / IP-адрес ресурса, на который будем отправлять запрос (api.openweathermap.org/).

- Более подробная информация в описании драйвера AV & Custom Systems.
- Для выполнения запроса к ресурсу используйте JS методы с помощью встроенного в iRidium Studio инструмента Script Editor. Создайте в Studio новый скрипт и вставьте данный код для получения данных с сайта:
var DEVICE = IR.GetDevice("AV & Custom Systems (HTTP)");
function send()
{
DEVICE.Send(['GET,/data/2.5/weather?q=London&appid=81fb48bd46071175ab394e5f0e54092d']);
}
IR.AddListener(IR.EVENT_START, 0, send);
IR.AddListener(IR.EVENT_RECEIVE_TEXT, DEVICE, function(dataweather)
{
var result = JSON.Parse(dataweather);
IR.GetPage("Page 1").GetItem("Item 1").Text = result.main.temp ;
IR.GetPage("Page 1").GetItem("Item 2").Text = result.main.humidity;
IR.Log(dataweather);
});
- Для поддержания актуальности данных, можно производить автоматический опрос ресурса через некоторый интервал времени. Сделать это можно с помощью метода IR.SetInterval:
IR.AddListener(IR.EVENT_ITEM_SHOW, IR.GetItem("Page 1"), function()
{
var ID = IR.SetInterval(5000, send); //5sec
});
IR.AddListener(IR.EVENT_ITEM_HIDE,IR.GetItem("Page 1"),function()
{
IR.ClearInterval(ID);
});
- Драйвер AV & Custom Systems (HTTP) не держит соединение открытым, токены драйвера Online и Status отражают статус подключения только в момент выполнения запроса и получения ответа.