LuatOS API 手册
作者:秦鹏
一、LuatOS 的核心库与扩展库简介
LuatOS 是基于 Lua 5.3 的嵌入式脚本系统,广泛应用于物联网(IoT)和智能硬件开发。
LuatOS 的功能库包括核心库和扩展库两部分,分别为开发者提供了强大的通信、硬件控制和云平台接入能力,极大地简化了各类设备的开发流程。
LuatOS 核心库是在底层实现的功能库,调用核心库无需代码使用 require 操作;
LuatOS 扩展库是用 Lua 脚本实现的功能库,必须用 requre 调用才能够使用扩展库。
LuatOS 的核心库和扩展库提供的典型能力,涵盖了物联网的各种通信制式,各种通信协议,加解密算法,远程升级固件,定位服务,内存管理,外设的总线管理等功能。
二、LuatOS 技术能力
LuatOS 提供了如下的技术开发能力:
1, 支持 4G,WiFi,蓝牙,以太网,GNSS 的通信的支持;
2, 支持基于 UDP和TCP 的同步阻塞socket和异步sock支持,MQTT,HTTP,FTP,websocket 的全面通信支持;
3, 支持全面的加解密算法;
4, 支持常用的工业外设的总线,包括 UART,485,I2C,SPI,onewire,PWM;
4, 支持文件系统,压缩算法,内存管理,远程升级等等常用的物联网系统的功能。
三、LuatOS 核心库
LuatOS 核心库主要负责系统底层资源的管理、硬件接口的操作以及常用通信协议的实现,一共有 74 个库,分为如下几个类别:
1,外设驱动,14个,分别是: ADC,CAN,GPIO,HT1621,I2C,I2S,ioqueue, lora2,onewire,pwm,SPI,TP,uart,yhm27xx(充电管理);
2,通信组件,14个,分别是: airlink,BLE,FTP,HTTP,httpsrv,libgnss,modbus,mqtt,netdrv,socket,SMS,websocket,WLAN,ymodem;
3,存储相关,7个,分别是: fskv,lf(little_flash),fatfs,IO,sfud,OTP,fs;
4,多媒体, 9个,分别是:audio,camera,cc,codec,gtfont,LCD,LVGL,U8G2,eink;
5,系统内核,15个,分别是: sys,sysplus,hmeta,mobile,fota,errDump,iperf,log,MCU,OS,pins,pm,RTOS,RTC,wdt;
6, 实用工具,10个,分别是:bit64,fastlz,miniz,airtalk,iconv,json,pack,protobuf,string,zbuff;
7,加密库,5个,分别是:crypto,gmssl,rsa,xxtea,iotauth。
核心库是在底层用 C 实现的,会占用固件的flash 空间, 所以任何一个硬件型号的固件,不会支持全部的核心库,只会支持 74 个核心库的一部分,具体的支持情况参见如下链接:
http://docs.openluat.com/osapi/core/
四、LuatOS 扩展库
LuatOS 扩展库是对核心库的补充,用 Lua 实现,所以扩展库是根据用户的代码实现需要,只烧录一部分的功能,不会占用核心固件的存储空间,因此可以认为, 所有的硬件型号都支持所有的扩展库功能。
LuatOS 扩展库一共有 19 个,分为如下几个类别:
1, 通信组件,18 个库;
2, 基础软件,7 个库。
扩展库是用 Lua 脚本实现的,不包含在 core 固件, 所以任何一个硬件型号的固件。
使用任何一个扩展库都需要先 require,再调用。
具体的扩展库的索引,参见如下链接:
http://docs.openluat.com/osapi/ext/
五、总结
LuatOS 基于多任务和消息通信的异步通信框架,提供了非常丰富的针对物联网硬件场景的开发能力。
LuatOS 采用核心库和扩展库的模块化设计,核心库负责底层与硬件平台的高效对接,扩展库则聚焦于特定功能和场景的快速实现。
通过核细胞和扩展库丰富的 API,开发者可以轻松实现设备控制、数据采集、云端通信等复杂功能,大幅提升开发效率和产品稳定性。
LuatOS 的核心库与扩展库共同构建了一个高效、灵活、易于扩展的物联网开发生态系统。