Skip to content

项目简介

简介

driver-box 是一款支持泛化协议接入的边缘网关框架, 以插件化的形式融合了 Modbus、Bacnet、HTTP、MQTT 等主流协议,同时也支持基于TCP的各类私有化协议对接。

我们期望 driver-box 能够为相关人士提供更加高效、舒适的设备接入体验。

通过对各类设备的通信协议和数据交互形式进行抽象,定义了一套标准流程以涵盖各类通信协议的共性逻辑,并结合动态解析脚本(Lua)填补其中的差异化部分。

以此解决设备接入过程中存在的驱动工程数量爆炸;接入标准难以规范化等问题。

特性

免费开源
采用商业友好的 Apache-2.0 开源协议,使其成为 IoT 生态圈的极佳选择。

架构
以 Golang 为主要开发语言,可编译出适配 amd64、arm64、armv7、x86 等系统架构的可执行程序。 存储空间和运行内存控制在十几MB,满足低规格网关的运行需求。

采用高度统一的配置化方式对接各类通讯设备。理想情况下只需编写一个 JSON 文件便可完成设备接入,亦可结合 lua 脚本实现复杂设备的数据加工。

通过精心的架构设计,三方用户可无限扩展边缘网关的设备通讯能力和应用服务能力。

API
driver-box 没有提供配套的 UI 界面,但开放了大量实用 RestAPI。用户可以自由设计网关 UI,定制出极致用户体验的边缘产品。

应用场景
driver-box 适用于多种场景,包括智能家居、智慧楼宇、智慧工厂、智慧门店。它促进了设备数据的采集与场景融合,实现了万物皆可连、万物皆可互联、万物皆可智联。

名词解释

插件(Plugin)

在 driver-box 中,「插件」这个词专指:通讯插件,例如:Http插件、Modbus插件、Bacnet插件。

插件是 driver-box 提供了一项开放性能力,如若内置的插件不满足需求,用户可参考《通讯插件开发》实现一款自定义插件并集成至 driver-box。

Export

Export,一时找不到合适的中文名词来表示这个单词在 driver-box 中的用途。

它也是 driver-box 提供的一项开放性能力,用于处理 driver-box 向上层传递的设备数据和事件。

以此,我们可以实现类似场景联动、边缘计算、数据上云等一系列高级能力。而这些能力的组织与融合,便形成了完整的边缘引擎产品。

《Export 开发》

资产库

资产库是 driver-box 框架提供的一种资源管理能力。通过持续沉淀和复用资产库中的已有资源,逐渐提升项目工程实施效率。

资产库存储于res/library/目录。

  • Directorydriver-box
    • Directoryres
      • Directorylibrary
        • index.json 资产库索引文件,便于快速定位资源
        • Directorydriver/ 设备层驱动库
        • Directorymirror_tpl/ 镜像模块库
        • Directorymodel/ 物模型库
        • Directoryprotocol/ 通信协议层驱动库

虚拟设备

虚拟设备是 driver-box 框架提供的一种设备通讯方式模拟能力。 使用户可在无需对接真实设备的情况下,进行本地设备配置和调试。

开启虚拟设备模式,只需将 connections 中的 virtual 配置项设置为 true

现以支持以下几种通讯插件:

Event

Event 是 driver-box 框架提供的一种事件通知能力。