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

Was this helpful?

  1. 开发引导
  2. 应用开发
  3. 深入理解应用

应用本质

Previous深入理解应用Next从零构造

Last updated 5 years ago

Was this helpful?

应用本质

本章我们介绍 FreeIOE 应用在编程上的本质,有助于更好的理解和开发 FreeIOE 应用。

本质上 FreeIOE 应用是一个独立的 ,且 FreeIOE 对此模块提出了以下的要求:

  1. 需要具备 new 函数,来实例化模块对象

  2. 实例化后的模块对象需要具备以下功能函数:

    1. start

    2. run

    3. close

模块实例化函数

FreeIOE 会使用下述方法来实例化应用模块:

local obj = m:new(app_name, sys_api, conf_obj)

FreeIOE 框架加载应用的入口文件 app.lua, 来获取应用模块(m)。 之后 FreeIOE 框架会使用上述的 new 的方法来实例化应用对象

应用对象功能函数

start 函数

此函数就是 FreeIOE 启动应用时会调用的函数,方便应用在启动时进行一些初始化工作。

注意:

我们不建议在此函数进行过于复杂(耗时)的逻辑。FreeIOE 如果无法尽快获取应用启动的结果,会导致用户在远程操作时因为等待超时而无法知道应用的具体情况。

function app:start()
end

close 函数

当 FreeIOE 去停止应用时,会调用此函数来让应用完成逻辑停止和资源释放等操作。

如同 start 函数一样,停止函数也应该是尽量的快速完成其工作。过于长时间的等待,也可能导致用户失去等待的耐心。

function app:close(reason)
end

run 函数

此函数是一个可选函数,是框架提供的一个默认的定时运行的函数入口。原型如下:

function app:run(tms)
    -- Your code here

    return 1000 --- FreeIOE will call run after 1000 ms.
end
Lua 模块