npm 包 bacnet-stack 使用教程

阅读时长 6 分钟读完

在前端开发中,我们常常需要操作传感器、控制设备等物联网设备,而 BACnet(建筑自动化控制网络)是一种常见的通信协议,可以用于连接和控制温度传感器、照明控制器、空调系统等设备。为了更轻松地操作 BACnet 设备,我们可以使用 npm 包 bacnet-stack,本文将详细介绍其用法和使用示例。

什么是 bacnet-stack

bacnet-stack 是一个基于 Node.js 的 BACnet 协议栈实现,支持 BACnet/IP、BACnet/MSTP 和 BACnet/Ethernet 等多种通信方式,能够与许多 BACnet 设备进行通信和交互,提供了方便的 API 接口和操作方法。

安装和配置

首先,我们需要在项目中安装 bacnet-stack:

接着,在代码中引入 bacnet-stack:

创建 bacnet 对象:

在创建 bacnet 对象时,需要指定一些参数:

  • adpuTimeout(可选):ADPU 超时时间,单位毫秒,默认为 6000
  • maxSegments(可选):最大数据分段数,默认为 5
  • interface(可选):网络接口名称或 IP 地址,默认为 '0.0.0.0'
  • port(可选):端口号,默认为 47808

基本操作

发送 Who-Is 请求

向网络中的所有设备发送 Who-Is 请求(查询设备对象标识符):

发送 Read 请求

读取指定设备的某个对象属性的值:

-- -------------------- ---- -------
----- ------------- - -
  -------- ---------------
  ----- -----
--
----- -------- - -
  ----- -------------------------------------
  --------- ---
--
----- ---------- - --------------------------------------

---------------------------------- --------- ----------- ------- ------ -- -
  -------------------
---

发送 Write 请求

向指定设备的某个对象属性写入值:

-- -------------------- ---- -------
----- ------------- - -
  -------- ---------------
  ----- -----
--
----- -------- - -
  ----- --------------------------------------
  --------- ---
--
----- ---------- - --------------------------------------
----- ----- - ---

----------------------------------- --------- ----------- ------ ------- -- -
  -------------------
---

发送 Subscribe-COV 请求

订阅指定设备的某个对象属性的变化:

-- -------------------- ---- -------
----- ------------- - -
  -------- ---------------
  ----- -----
--
----- -------- - -
  ----- -------------------------------------
  --------- ---
--
----- ---------- - --------------------------------------
----- ------------------- - --
----- -------- - -- -- ----

---------------------------------- --------- ----------- -------------------- --------- ------- -- -
  -------------------
---

监听事件

监听来自 Bacnet 设备的事件:

示例代码

以下是读取指定设备的温度传感器数值并打印出来的示例代码:

-- -------------------- ---- -------
----- ------ - ------------------------

----- ------------- - -
  -------- ---------------
  ----- -----
--
----- -------- - -
  ----- -------------------------------------
  --------- ---
--
----- ---------- - --------------------------------------

----- ------ - --- --------
  ------------ -----
  ------------ --
  ---------- ----------
  ----- -----
---

---------------- -------- -- -
  ------------------ ------- ------------
---

---------------------------------- --------- ----------- ------- ------ -- -
  -- ------- -
    -------------------- ------- --------- -------------------
    -------
  -

  ------------------------- ------------
---

总结

上述内容介绍了 npm 包 bacnet-stack 的基本用法和示例代码,我们可以借助其快速实现 BACnet 设备的操作和交互。当然,在实际应用中,还需根据具体情况进行配置和调整,以实现最佳效果。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/bacnet-stack