SDK 开发

Prev Next

了解如何开始开发和迭代 Tulip Edge 驱动程序

简介

  1. 学习内容
    1. 如何开发第一个边缘驱动程序项目
      1. 构建项目
      2. 更新清单和索引文件
  2. 您需要具备的条件(先决条件)
    1. 完成SDK 创建中的所有步骤

开始

使用create-edge-driver工具创建新的 Edge 驱动程序后,就可以开始实施自己的驱动程序代码了!

更新 manifest.json

首先,我们需要定义驱动程序实现的事件和功能。设备事件可用作 Tulip Apps 中逻辑的触发器。例如,您可以设置一个应用程序触发器,如

"当我的传感器触发测量事件时,将温度数据存储到'车间温度'变量中"。

驱动程序还可以实现设备功能,以响应应用程序中的触发器。例如

"当我点击这个按钮时,调用设备上的'切换灯光'函数"。

在本例中,我们的驱动程序没有任何函数,但会在传感器进行测量时触发一个名为 "data "的事件。更新 src/manifest.json 文件中的 functions 部分,要么留空,要么完全删除:

json... "功能":[],...Then update the events section to define the shape of the "data" event.该事件将是一个包含两个浮动属性 "温度 "和 "湿度 "的对象:json... "事件":[ { "name":"data", "schema":{ "type":"object", "properties":{ "温度":{ "type":"float" }, "humidity":{ "type":"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 后,再次构建驱动程序:npm run build

这将生成经过编译和捆绑的 JavaScript 文件,并在 dist 目录中生成经过验证的清单副本。SDK{height="" width="""}