Перейти к основному содержимому
Подсказка

Создание собственного драйвера

Данный пример демонстрирует процесс создания драйвера в iRidium Studio на базе драйвера AV & Custom Systems (HTTP).

документация обновлена 01.01.2024

Скачать:

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

Получение данных с ресурса

  1. Запустите браузер и перейдите на сайт разработчика (в нашем примере это сайт, предоставляющий информацию о погоде в вашем и других городах: https://openweathermap.org). Выберите API запрос, который будете выполнять для получения данных. На примере рассмотрим запрос на получение данных о текущей погоде в городе "London".

CreateDriver1.png

Формат запроса данных с ресурса будет выглядеть следующим образом:

http://api.openweathermap.org/data/2.5/weather?q=**{city name}** &units=metric&appid=**{API key}** ,

  • {city name} - город,

  • {API key} - API ключ для аутентификации.

  • Более подробная информация описана на официальном сайте openweathermap.

  1. Запустите Wireshark. В Wireshark выберите свое устройство захвата (сетевую карту):

CreateDriver3.png

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

CreateDriver2.png

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

CreateDriver4.png

Работа в iRidium Studio

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

CreateDriver5.png

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

CreateDriver6.jpg

  • Более подробная информация в описании драйвера AV & Custom Systems.
  1. Для выполнения запроса к ресурсу используйте 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);
});
  1. Для поддержания актуальности данных, можно производить автоматический опрос ресурса через некоторый интервал времени. Сделать это можно с помощью метода 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 отражают статус подключения только в момент выполнения запроса и получения ответа.