前端设备 SDK
前端设备 SDK
概述
平台提供基本的前端设备 SDK, 可以在 Linux 等平台上使用。
SDK 由 C 语言实现,并提供 Lua 脚本开发环境
需要时用户可以使用 Lua 语言进行二次开发
Node.lua 核心特性
Lua 语言运行库
- 小巧易用, 占用资源低
- 和 C 语言结合紧密, 极易扩展
- 内置协程
libuv 异步框架
- 基于 epoll/IOCP 等的事件循环
- 流 API
- 异步文件和文件系统 API
- 异步 TCP/UDP/DNS 网络接口
- 进程以及进程间通信
- 多线程及线程池
- 其他如信号处理,高精度时钟等
Node.lua core 核心库
- Lua 标准库 -
string, math, table, io, coroutine, utf8, package, debug
- 类 Node.js 核心 API -
core, os
- 内置 JSON 模块 -
json
- 文件, 文件系统,路径 -
fs, path
- TCP/UDP 网络通信,DNS -
net, dgram, dns, tls
- 线程和线程池 -
thread
- 进程管理 -
process, child_process
- HTTP 协议,URL 解析,
http, https, url, queryString
- 定时器 -
timer
- 流 (Stream) API -
stream
- 工具类: MD5, SHA1 等 -
util, zlib
常用扩展模块
Node.lua 内置了常用的扩展模块用于支持物联网设备/网关的开发
app 模块
- 应用程序管理
app/conf
参数配置app/rpc
进程间通信
express 模块
- 提供类 express.js 接口,
- 方便开发 HTTP 协议 WEB 服务
mbedtls 模块
- 加密算法
- 数字证书
modbus 模块
- Modbus 协议
mqtt 模块
- 支持 MQTT 协议 3.1
onvif 模块
- ONVIF 摄像机协议
rtmp 模块
- RTMP 流媒体直播协议
sqlite 模块
- 嵌入式数据库
ssdp 模块
- 简单服务发现协议
wot 模块
- Web of Things 物联网协议
常用内置应用
lnode - Node.lua 运行环境
- 本地可执行文件
- Lua 脚本运行环境
- 单一文件可执行程序,依赖少
- 编译一次,可重复使用
lpm - Node.lua 命令行工具
提供便利的开发和运行管理命令行工具
参数配置
- 配置文件统一保存在
/path/to/lnode/conf
目录下 - 文件内容为 JSON 格式
应用程序管理
- 应用程序统一安装在
/path/to/lnode/app
目录下 - 可以在前台或后台运行应用程序
- 可以监控后台运行的应用程序的状态
- 可以自动重启崩溃的后台程序
固件管理
- 从服务器读取最新固件信息
- 从服务器下载固件文件
- 安装并更新固件
lci - 设备配置工具
实现网关设备的管理和配置等接口
-
www
WEB 配置界面 -
data
配置脚本或数据文件 -
device.lua
GPIO 等设备模块 -
dhcp.lua
DHCP 管理模块 -
mac.lua
MAC 地址管理模块 -
reset.lua
恢复出厂设置模块 -
http.lua
WEB 服务器模块 -
test.lua
自检测试模块 -
网络管理
wotc - 物联网平台客户端
实现网关根设备的注册和远程管理
-
Web of Things 物联网平台客户端
-
client.lua
云服务客户端- device 设备信息
- firmwre 设备固件
- config 配置参数
- bluetooth 蓝牙模块
- media 音视频流媒体服务
- connectivity 网络连接
-
device.lua
访问 GPIO 等本机物理设备 -
log.lua
设备错误日志管理 -
shell.lua
允许外网客户端远程执行本地 shell 命令 -
tunnel.lua
隧道管理,允许外网客户端访问本地服务
gateway - 物联网关
实现子设备的连接和管理
- 边缘网关
- 支持 Modbus 设备
- 支持 ONVIF 摄像机
- 支持蓝牙外设
camera 子模块
用来连接和管理 Onvif 网络摄像机
rtmp.lua
RTMP 视频流推送协议rtsp.lua
RTSP 视频流拉取协议camera.lua
网络摄像机管理
modbus 子模块
用来连接和管理 Modbus 子设备
modbus.lua
Modbus 从机管理
bluetooth 子模块
用来连接和管理 Bluetooth 从机
uart.lua
和蓝牙模组串口通信接口gap.lua
蓝牙广播和连接gatt.lua
蓝牙特征值读写bluetooth.lua
蓝牙从机管理