FreeIOE开发文档
  • Introduction
  • 基础介绍
    • FreeIOE是什么
    • 名词解释
  • 开发引导
    • 开发入门
    • 环境搭建
      • 使用网关产品
      • 使用虚拟网关
      • 使用VSCode插件开发
      • 其他应用开发方式
    • 应用开发
      • 应用是什么
      • 快速构建应用
        • 数据采集
        • 数据上云
        • 边缘计算
        • 设备通讯
      • 深入理解应用
        • 应用本质
        • 从零构造
        • 应用配置可视化
      • 注意事项
      • 应用示例
    • 发布应用
      • 申请账户
      • 新建应用
      • 克隆应用
      • 应用打包
      • 应用上传
  • 接口文档
    • 应用接口
      • 应用基础类模块
        • 应用基础类
        • MQTT应用基础类
      • 系统接口
      • 基础接口
      • 设备对象
      • 统计接口
      • 日志接口
      • 事件类型和等级
      • 云配置接口
      • 云配置帮助接口
      • 数据通讯模块
        • 端口模块
        • 帮助模块
        • 端口超时封装
      • 工具类模块
        • 数据订阅计算
        • 数据拼接
        • 数据流缓存
    • 系统服务接口
      • 配置服务
      • 软件分发服务
      • 扩展管理服务
      • 应用管理服务
      • 缓存服务
    • 其它资料 & 文档
      • Lua语言学习
      • 二进制数据操作
      • 文件操作
      • 模块列表
      • IOE模块
      • 串口操作模块
      • 累计量计算模块
      • 工具模块
        • helper模块
        • leds模块
        • gpios模块
        • sysinfo模块
        • 周期计时模块
Powered by GitBook
On this page
  • 数据订阅计算工具模块
  • initialize
  • add
  • remove
  • start
  • stop

Was this helpful?

  1. 接口文档
  2. 应用接口
  3. 工具类模块

数据订阅计算

数据订阅计算工具模块

API_VER: 5

本模块封装了数据订阅计算所需的基础代码和逻辑,帮助用户快速开发数据交叉计算应用

  1. 确保进行计算时,数据点的数据是就绪的

  2. 确保当数据变化时,才进行计算

  3. 支持周期性回调

initialize

模块实例构造函数

函数原型

function calc:initialize(sys, api, logger)

参数

  • sys

    系统接口

  • api

    应用接口

  • logger

    日志接口

示例代码

local app_calc = require 'app.utils.calc'

local calc = app_calc:new(self._sys, self._api, self._logger)

add

增加交叉计算单元

函数原型

function calc:add(name, inputs, trigger_cb, cycle_time)

参数

  • name

    单元名称

  • inputs

    设备数据输入项列表。

  • trigger_cb

    当设备数据输入项全部就绪或有变更时回调此函数,参数为数据当前值,顺序为inputs数组的顺序

  • cycle_time

    周期回调时间(如不指定,则不进行周期回调),单位是秒

示例代码

local inputs = {
    {sn='device_sn', input='Va', prop='value', default=0},
    {sn='device_sn', input='Vb', prop='value', default=0}
}

calc:add('example_calc_unit', inputs, function(Va, Vb)
    --- Your code here
end)

remove

删除交叉计算单元

函数原型

function calc:remove(name)

删除计算单元。

参数

  • name

    单元名称

示例代码

calc:remove('example_calc_unit')

start

添加计算单元后,应该调用此方法,让模块背后的逻辑启动运行。

函数原型

function calc:start(handler)

启动计算单元,handler是应用调用api:set_handler时使用的对象。

stop

停止计算单元后,所有添加的计算单元将不再被执行。

函数原型

function calc:stop()

停止计算单元。

Previous工具类模块Next数据拼接

Last updated 5 years ago

Was this helpful?