跳转至

API索引表

作者:秦鹏

LuatOS 核心库索引

LuatOS 共有 74 个核心库,如下是详细介绍:

1 核心库的分类

1.1 外设驱动(14)

外设驱动有 14 个核心库, adc,can,gpio,ht1621,i2c,i2s,ioqueue, lora2,onewire,pwm,spi,tp,uart,

   yhm27xx(充电管理);

其中,

(1)adc,can,gpio,i2c, i2s,pwm, spi, uart 这 8 个核心库是针对 8 个常规外设的操作方法;

(2)ht1621 是对 HT16xx 系列的断码屏的操作方法, 也就是说,不仅仅只是驱动 HT1621, 也能驱动 HT16xx 系列的所有断码屏;

(3)ioqueue 是针对 GPIO 的高速输入的识别,以及高速输出的模式设置; 不小于 1 微妙的电平翻转频率都可以支持;

(4)lora2 是对 semetech 系列的 lora 芯片和相关模组的驱动;

(5)onewire 是单总线的核心库,可以驱动 DS18B20 等单总线的传感器或者其他外设;

(6)tp 是指触摸屏芯片的驱动, 支持的触摸屏芯片种类,在 tp.init 方法中设置;

(7)yhm27xx 是指对yhm27xx 系列芯片的驱动, 从而具备充电管理功能, 也推荐使用 eChg 扩展库进行充电的管理;

1.2 通信组件(14)

通信组件有 14 个核心库:  airlink,ble,ftp,http,httpsrv,libgnss,modbus,mqtt,netdrv,socket,sms,

   websocket,wlan,ymodem;

(1)ble,ftp,http,mqtt,sms,socket,websocket 提供了对这 7 个通信技术的核心库实现;

(2)airlink: 是 LuatOS 针对和外部主控灵活交换数据,接受外部主控的指令的核心库,

    airlink 相比 AT 指令,通信的效率高很多,编程也更加方便, airlink 的详细介绍参见:

    [airlink详细介绍](https://docs.openluat.com/protocols/airlink/)

(3)httpsrv: HTTP server 的实现核心库,使得设备能够提供外部设备通过 HTTP 访问自己的能力;

(4)libgnss: 提供了对 GNSS 的 NMEA 协议的解析实现, 以及对 GNSS 常用逻辑的实现,

      也推荐使用 egnss 扩展库开发 GNSS 相关的业务逻辑,更加便捷。

(5)modbus: 实现 modbus 通信逻辑的核心库,支持 modbus RTU, modbus TCP,支持主机和从机。

(6)netdrv: 对不同的通信网络设备的管理的核心库,实际编程的时候,推荐使用 enetif 扩展库;

(7)wlan: WIFI 相关的操作核心库; 实际编程的时候,推荐使用 enetif 扩展库;

(8)ymodem 是实现 ymodem 协议的核心库。

1.3 存储相关(7)

存储相关有 7 个核心库:fskv,lf(little_flash),fatfs,io,sfud,otp,fs;

其中,

(1)io 核心库是RTOS系统原生的对文件系统的操作的封装,有 exists,fileSize,readFile,writeFile,fill,mkfs,

    mkdir,rmdir,Isdir,Ismount 这些方法。

(2)fs 核心库是IO核心库的补充, 提供了 fsstat 和 fsize 两个方法,对文件系统进行数据的统计。

(3)fskv 是一个微型数据库,采用键值对的形式,管理数据, 合宙LuatOS是采用一个固定64K字节的区域管理这些数据。

(4)lf 是外部flash 的驱动库, 支持nor flash 和 nand flash,

    使用 lf 核心库驱动外部flash成功之后,LuatOS 会自动挂载 little fs 文件系统,不需要调用其他的任何方法;

(5)sfud 也是外部flash 的驱动库,只支持 nor flash, 不支持 nand flash。

    使用 sfud 核心库驱动外部 flash 成功之后,LuatOS 会自动挂载 little fs 文件系统,不需要调用其他的任何方法。;

(6)fatfs 是外部 SD 和 TF 卡的驱动,通过 fatfs 挂载外部SD 和 TF 卡之后,LuatOS 会自动挂载 FAT 文件系统,

    不需要调用其他的任何方法。

(7)otp 是操作 flash 的 OTP 区域的核心库, 用来写入一次性并且不允许修改的数据。

    需要注意的是,如果是运行在蜂窝(2G,4G,5G)模组的话,OTP 的操作必须在飞行模式下执行。

1.4 多媒体(9)

多媒体相关的有 9 个核心库: audio,camera,cc,codec,eink,gtfont,lcd,lvgl,u8g2;

(1)audio 实现了音频管理的多个功能;

(2)camera 实现了摄像头拍照,录像,预览,扫码等功能;

(3)cc 实现了 2G 和 4G 的语音通话管理的功能;

(4)codec 实现了对 mp3, AMR_NB, AMR_WB,wav,G711 不同格式的编解码的库;

(5)gtfont: 实现了矢量字库的核心库, 需要配合高通半导体公司的字库芯片;

(6)lcd: LCD 操作的核心库;

(7)lvgl: 对 LVGL 实现的核心库;

(8)u8g2: 实现 U8G2 的核心库;

(9)eink: 对墨水瓶实现的核心库。

1.5 系统内核(14)

系统内核有 15 个核心库: sys,hmeta,mobile,fota,errDump,iperf,log,mcu,os,pins,pm,rtos,rtc,wdt;

(1)sys 核心库是 LuatOS 的运行框架库,这个库当前是不需要 require 的;

    并且当前 sys 库已经合并了之前的 sysplus 库。

(2)hmeta:  获取硬件信息的库;

(3)mobile: 蜂窝通信相关的核心库;

(4)fota:  远程升级的核心库;

(5)errDump: 远程诊断上报的核心库; 用户可以选择上报异常诊断信息到合宙服务器,也可以选择上报自己的服务器。

    上报合宙服务器之后,可以登录 iot.openluat.com 点击 调试信息菜单,进行查看。

(6)iperf: 对设备的吞吐量进行统计。

     一旦打开吞吐量统计,系统会向上传发送 IPERF_REPORT 类型的消息,并传入字节数,持续时长,带宽 这三个参数。

(7)log: 管理打印日志的核心库;

(8)mcu: MCU 的相关操作的实现库,所谓 MCU, 是指跟通信无关的一些操作的实现。

(9)os: 原生 RTOS 的方法的封装,侧重于时间和文件路径相关的实现。

(10)pins: 对模组 pin 脚复用的管理方法;

(11)pm: 电源,功耗模式的相关操作;

(12)rtos: RTOS 相关的操作方法,比 OS 的库更加丰富。

(13)rtc: 时钟相关的库;

(14)wdt: 看门狗相关的库。

1.6 实用工具(11)

实用工具有 10 个核心库: bit64,fastlz,fft,miniz,airtalk,iconv,json,pack,protobuf,string,zbuff;

(1)bit64: 在 32 位固件提供 64 位数的操作库;

(2)fastlz: 压缩库,消耗内存比 miniz 小,但是压缩比比如 miniz;

(3)fft:  快速傅里叶变换库。

(4)miniz: 压缩库,消耗内存大,但是压缩比更好;

(5)airtalk:双工对讲核心库,支持一对一对讲,已经群组对讲,需要搭配 airtalk 对讲后台使用;

(6)iconv: 字符编码转换工具, 提供 UTF8, UNICODE,GB2312 之间的互相转换;

(7)json: json 文本的编解码库;

(8)pack: 按照既定格式打包和解包的库,适合用在报文协议组合和解包的场景;

(9)protobuf: google 提出的一种编码格式,常用于报文协议的组包;

(10)string: 对 Lua string 操作库的扩充;

(11)zbuff: LuatOS 独创的 buffer 管理库, 使得 LuatOS 用户能够使用 C 的习惯操作内存。

1.7 加密解密(5)

加密卡有 5 个核心库: crypto,gmssl,rsa,xxtea,iotauth。

2 核心库索引表

序号 核心库名称 简介 类别 780EPM支持 780EHM支持 780EHV支持 780EGH支持 8000支持 8101 支持
1 adc 模数转换 外设驱动
2 airlink 多网融合协议 通信组件
3 airtalk 对讲核心库 通信组件
4 audio 模数转换 外设驱动
5 bit64 模数转换 外设驱动
6 ble 蓝牙功能 通信组件
7 camera 模数转换 外设驱动
8 can can操作库 外设驱动
9 cc VoLTE通话功能 通信组件
10 codec 多媒体-编解码 多媒体
11 crypto 加解密和hash函数 加密解密
12 eink 墨水屏操作库 多媒体
13 errDump 错误上报 系统内核
14 fastlz FastLZ压缩 实用工具
15 fatfs SD卡的接口 存储相关
16 fft 快速傅里叶变换 实用工具
17 fota 底层固件升级 系统内核
18 fs 文件系统操作 存储相关
19 fskv kv数据库,掉电不丢数据 存储相关
20 ftp ftp 客户端 通信组件
21 gmssl 国密算法(SM2/SM3/SM4) 加密解密
22 gpio GPIO操作 外设驱动
23 gtfont 高通字库芯片 外设驱动
24 hmeta 硬件元数据 系统内核
25 ht1621 断码屏 外设驱动
26 http http 客户端 通信组件
27 httpsrv http服务端 通信组件
28 i2c I2C操作 外设驱动
29 i2s 数字音频 外设驱动
30 iconv iconv操作 实用工具
31 io io操作(扩展) 存储相关
32 ioqueue io序列操作 外设驱动
33 iotauth IoT鉴权库, 用于生成各种云平台的参数 加密解密
34 iperf 吞吐量测试 系统内核
35 json json生成和解析库 实用工具
36 lcd lcd驱动模块 多媒体
37 libgnss NMEA数据处理 通信组件
38 little_flash NAND flash操作 存储相关
39 log 日志库 系统内核
40 lora2 lora2驱动模块(支持多挂) 外设驱动
41 lvgl LVGL图像库 多媒体
42 mcu 封装mcu一些特殊操作 系统内核
43 miniz 简易zlib压缩 实用工具
44 mobile 蜂窝网络 系统内核
45 modbus modbus RTU和TCP 通信组件
46 mqtt mqtt客户端 通信组件
47 netdrv 网络设备管理 通信组件
48 onewire 单总线协议驱动 外设驱动
49 os os操作 系统内核
50 otp OTP操作库 存储相关
51 pack 打包和解包格式串 实用工具
52 pins 管脚复用 外设驱动
53 pm 电源管理 系统内核
54 protobuf ProtoBuffs编解码 实用工具
55 pwm PWM模块 外设驱动
56 rsa RSA加密解密 加密解密
57 rtc 实时时钟 系统内核
58 rtos RTOS底层操作库 系统内核
59 sfud 开源sfud软件包,复杂SPI操作 存储相关
60 sms 短信 通信组件
61 socket 网络接口 通信组件
62 spi spi操作库 外设驱动
63 string 字符串操作函数 实用工具
64 sys sys库 系统内核
65 tp 触摸库 外设驱动
66 u8g2 u8g2 外设驱动
67 uart 串口操作库 外设驱动
68 wdt watchdog操作库
69 websocket websocket客户端 通信组件
70 wlan 局域网操作 通信组件
71 xxtea xxtea加密解密 加密解密
72 yhm27xx yhm27xx充电芯片 外设驱动
73 ymodem ymodem协议 通信组件
74 zbuff c内存数据操作库 实用工具