SDK Develop

Prev Next

Узнайте, как начать разработку и итерацию драйвера Tulip Edge.

Введение

  1. Что вы узнаете
    1. Как разработать свой первый проект краевого драйвера
      1. Создание проекта
      2. Обновление файлов манифеста и индекса
  2. Что вам понадобится (предварительные условия)
    1. Выполнение всех шагов в разделе "Создание SDK

Начало работы

После создания нового Edge-драйвера с помощью инструмента create-edge-driver вы готовы приступить к реализации собственного кода драйвера!

Обновление файла manifest.json

Сначала нам нужно определить события и функции, реализуемые нашим драйвером. События устройства можно использовать в качестве триггеров для логики в Tulip Apps. Например, вы можете настроить триггер приложения следующим образом:

"Когда мой датчик выдает событие измерения, сохраните данные о температуре в переменной 'Температура в цеху'".

Драйверы также могут реализовывать функции устройства, которые могут выполняться в ответ на триггеры в приложении. Например:

"Когда я нажму на эту кнопку, вызовите функцию 'Toggle Light' на моем устройстве".

В этом примере наш драйвер не будет иметь функций, но будет вызывать событие "data", когда наш датчик произведет измерение. Обновите раздел functions в файле src/manifest.json, оставив его пустым или удалив полностью:

json... "functions":``[],...Затем обновите секцию events, чтобы определить форму события "data". Это событие будет представлять собой объект с двумя float-свойствами, "температура" и "влажность":json... "events": [ { "name": "data", "schema": { "type": "object", "properties": { "temperature": { "type": "float" }, "humidity": { "type": "float" } } } } ],...

Обновление index.ts

Теперь мы напишем код драйвера, который использует Edge Driver SDK для поиска и подключения к последовательному порту, считывает входящие последовательные данные, разбирает сообщения JSON и вызывает событие "data" с помощью fireEvent(). Замените код примера в файле src/index.ts этим новым кодом:

``jsedgeDriverSdk.SerialPort.listAvailablePorts().then((ports) => { const esp32port = ports.find((port) => port.product_id === 33128); const serial = new edgeDriverSdk.SerialPort(esp32port.path, { baudRate: 115200, });

serial.onData((data) => { try { const decoder = new TextDecoder(); const stringData = decoder.decode(new Uint8Array(data)); const espData = JSON.parse(stringData.split("ESP: ")[1]); edgeDriverSdk.fireEvent("data", espData); } catch (error) { console.error(error); } });

serial.open();});``Это очень простой пример, который автоматически пытается найти устройство, используя Product ID USB-устройства, один раз при запуске драйвера. Edge Driver SDK также поддерживает регистрацию драйверов для запуска при обнаружении системой новых устройств, что может помочь создать более надежные производственные драйверы.

Сборка драйвера

После обновления кода драйвера и файла manifest.json снова выполните сборку драйвера:npm run build

В результате будет сгенерирован скомпилированный и собранный JavaScript-файл, а также копия проверенного манифеста в каталоге dist.SDK