跳到主要内容

NodeSCADA 推送模版

NodeSCADA 模板使用 art-template 引擎。 支持一定的 Javascript 语法

一个模板例子 🌰

一个简单的模板代码

在上面这段代码中,一对尖括号和%组成的符号中包含了一段 Javascript 代码,在这段代码中我们创建了一个 points 变量。其值来自于 getPoints 方法。
然后在下方代码中使用 JSON.stringify 将 points 变量格式化为 JSON 格式字符串

下面是几个示例:

获取所有的数据点

<%
var points = getPoints()
%>{{@points | JSON.stringify}}

获取设备编号为 plc01 的所有数据点

<%
var points = getPoints().filter(point => point.deviceCode === 'plc01')
%>{{@points | JSON.stringify}}

获取所有设备编号以 iot_ 开头的所有数据点

<%
var points = getPoints().filter(point => point.deviceCode.startsWith('iot_'))
%>{{@points | JSON.stringify}}

实际上在 <% %> 代码块中几乎可以使用任意 Javascript 代码,包括变量定义、函数调用、数组操作等。

可用的变量以及方法

getPoints() => PointFormat[]

获取所有的数据点

getPoint(pointCode: string) => PointFormat

根据数据点 ID 获取数据点

getOnlinePoints() => PointFormat[]

获取所有的在线(采集过程无错误)数据点

getOfflinePoints() => PointFormat[]

获取所有的离线(采集过程中因各种原因采集失败)数据点

getConnector(pointCode: string) => ConnectorFormat

根据数据点 ID 获取连接器

getConnectors() => ConnectorFormat[]

获取所有的连接器

_

lodash 工具包,可以在模板中直接使用。如:

var name = _.get(point, 'name')

pusherConfig

包含了当前推送器的配置信息