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

Was this helpful?

  1. 接口文档
  2. 应用接口
  3. 应用基础类模块

应用基础类

Previous应用基础类模块NextMQTT应用基础类

Last updated 5 years ago

Was this helpful?

应用基础类模块

API_VER: 5

本模块封装了应用的一些基础的共用的逻辑实现。帮助用户避免在一些基础操作上花费时间。

应用基础类提供了:

  • 使用 构造了面向对象基础类,具备可继承的特性。

  • 实现了 FreeIOE 应用应必备的接口函数

  • 在实现了的接口函数的回调,例如 initialize 函数会尝试回调 on_init函数

  • 封装了应用配置可视化 JSON 文件的解读,并将其实中的缺省值作为默认值传递给应用

  • 注册了系统的回调函数,并映射至应用自身的成员函数上

  • 提供数据计算的入口

成员函数

gen_sn

使用网关内唯一的关键字(key)生成哈希字符串,并叠加上网关序列号,来生成全局唯一设备序列号。序列号格式如为: <gateway_sn>.<hashed_key_string>

function app:gen_sn(key)
    -- Implementation
end

create_calc

创建数据计算模块,返回一个app.utils.calc 模块对象,并赋值到成员变量 self._calc。 封装模块会正确处理这个对象的初始化以及销毁工作。注意本函数只能在on_init回调里面使用,才能保证正常工作。

function app:create_calc()
    -- Implementation
end

get_calc

获取已经生成的数据计算模块对象。

function app:get_calc()
    return self._calc
end

成员对象

  • _sys

    自 FreeIOE 构造应用势力传入的接口对象

  • _name

    自 FreeIOE 构造应用势力传入的应用示例名称

  • _conf

    自 FreeIOE 构造应用势力传入的应用配置数据对象

  • _api

    FreeIOE 系统数据接口,由 sys:data_api 生成而来

  • _log

    FreeIOE 系统日志接口,由 sys:logger 生成而来

  • _calc

    FreeIOE 系统提供的计算帮助对象,需要在 on_init 中使用 create_calc 初始化后,此成员才会被赋值

如何使用

使用此封装模块后,只需按需在实现回调函数即可。本模块会检测这些回调函数,并完成对应的初始化工作,如向FreeIOE系统注册必要钩子函数。

应用运行相关回调函数

  • on_init

    应用构造回调函数,当你需要在应用构造做一些处理,则实现这个函数。

  • on_start

    应用启动回调,实现您应用自身逻辑的函数

  • on_close

    应用停止/推出函数回调

  • on_run

    周期运行回调函数

监听设备数据相关回调函数

如需处理设备数据(其他应用获取的设备数据),如实现数据上送、数据计算等,则需在基于本模块派生的应用模块里面实现以下函数

  • on_add_device

    如果需要关注其他应用注册的设备模型,那么可以实现次函数。基础类在接受模型注册消息时会调用此函数。

    function app:on_add_device(src_app, sn, props)
  • on_mod_device

    如果需要关注其他应用注册的设备模型,那么可以实现次函数。基础类在接受模型注册消息时会调用此函数

    function app:on_mod_device(src_app, sn, props)
  • on_del_device

    如果需要关注其他应用注册的设备模型,那么可以实现次函数。基础类在接受模型注册消息时会调用此函数

    function app:on_del_device(src_app, sn)
  • on_input

    接收设备模型的数据发布

    function app:on_input(src_app, sn, input, prop, value, timestamp, quality)
  • on_input_em

    接收设备模型发布的紧急数据(如无需特别处理,可不实现此函数,此紧急数据还会继续调用on_input)

    function app:on_input_em(src_app, sn, input, prop, value, timestamp, quality)
  • on_comm

    如果应用关注其他应用产生的设备交互报文数据,那么请实现此函数

    function app:on_comm(src_app, device_sn, dir, timestamp, ...)
  • on_stat -- 设备统计数据

    如果应用关注其他应用产生的设备统计数据,那么请实现此函数

    function app:on_stat(src_app, device_sn, stat, prop, value timestamp)
  • on_event

    如果应用关注其他应用或系统产生的事件,那么请实现此函数

    function app:on_event(src_app, device_sn, event_level, event_data, event_timestamp)

设备输出、指令相关回调函数

  • on_output

    设备数据下置请求函数,如支持下置数据到设备。注册设备模型包含有下置数据的信息,然后在此函数实现设备数据下置。

    function app:on_output(src_app, sn, output, prop, value, timestamp)
  • on_command

    如果应用创建的设备模型具备指令集,需要实现此函数来完成设备指令动作

    function app:on_command(src_app, sn, command, params)

应用控制交互回调函数

  • on_ctrl

    应用之间可以进行一些非设备模型依赖的数据交换,行为控制。实现此函数可接收来自其他应用的请求,参考: app.api.send_ctrl

    function app:on_ctrl(src_app, command, param)

设备输出、指令以及应用控制交互结果回调函数

  • on_output_result

    如果应用请求了其他应用创建的设备模型中的数据下置,该数据下置被其他应用执行后,FreeIOE 会将结果传递给此函数

    function app:on_output_result(src_app, priv, result, err)
  • on_command_result

    如果应用请求了其他应用创建的设备模型中的指令,该指令被其他应用执行后,FreeIOE 会将结果传递给此函数

    function app:on_command_result(src_app, priv, result, err)
  • on_ctrl_result

    如果对其他应用发出了数据交换、行为控制,在对方执行完成后,FreeIOE 会回调此函数通知执行结果

    function app:on_ctrl_result(src_app, priv, result, err)
middleclass