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
包含了当前推送器的配置信息