Documentation Index

Fetch the complete documentation index at: https://support.tulip.co/llms.txt

Use this file to discover all available pages before exploring further.

SDK開発

Prev Next

チューリップ・エッジ・ドライバーの開発と反復を開始する方法を学ぶ

はじめに

  1. 学習内容
    1. 最初のエッジドライバープロジェクトの開発方法
      1. プロジェクトのビルド
      2. マニフェストファイルとインデックスファイルの更新
  2. 必要なもの(前提条件)
    1. SDK Createのすべての手順に従う

はじめに

create-edge-driverツールで新しいEdge Driverを作成したら、独自のドライバコードの実装を開始します!

manifest.jsonの更新

まず、ドライバが実装するイベントと関数を定義する必要があります。デバイスイベントは、Tulip Appsのロジックのトリガーとして使用できます。例えば、以下のようなアプリのトリガーを設定できます:

「センサーが測定イベントを発生したら、温度データを'Shop Floor Temperature'変数に格納する。

ドライバはまた、アプリ内のトリガに応答して実行されるデバイス関数を実装することもできます。例えば

「このボタンをクリックしたら、デバイスの'Toggle Light'関数を呼び出します。

この例では、ドライバは関数を持ちませんが、センサーが計測したときに "data "というイベントを発生させます。src/manifest.jsonファイルのfunctionsセクションを、空のままにするか、完全に削除して更新します:

json... "functions":[次にeventsセクションを更新し、"data "イベントの形を定義します。このイベントは、"temperature "と "humidity "という2つのfloatプロパティを持つオブジェクトになります:json... 「イベント":イベント": [ { "name":"data", "schema":name": "data", "schema": { "type":「object", "properties":{ "temperature":プロパティ": { "温度": { "タイプ":"float" }, "humidity":"type": { "float" }:"float" }。 } } } ],...

index.tsの更新

次に、Edge Driver SDKを使用してシリアルポートを見つけて接続し、受信したシリアルデータを読み込んでJSONメッセージを解析し、fireEvent()を使用して "data "イベントを発生させるドライバのコードを記述します。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();});``これは非常に単純な例で、ドライバ起動時に一度だけUSBデバイスのプロダクトIDを使用して自動的にデバイスの検索を試みます。Edge Driver SDKは、新しいデバイスがシステムによって検出されたときに起動するドライバの登録もサポートしています。

ドライバのビルド

ドライバコードとmanifest.jsonを更新したら、ドライバを再度ビルドします。

これにより、コンパイルおよびバンドルされた JavaScript ファイルと、検証済みのマニフェストのコピーが dist ディレクトリ内に生成されます。SDK{height="" width=""}.