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内存数据操作库 | 实用工具 | 是 | 是 | 是 | 是 | 是 | 是 |