公共基础
简介
公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。
公共基础库在不同平台上提供的能力:
- LiteOS-M平台:KV存储、文件操作、定时器、IoT外设控制
- LiteOS-A平台:KV存储、定时器、ACE JS API
目录
1. utils/native/lite/ # 公共基础库根目录
2. ├── file # 文件接口实现
3. ├── hals # HAL目录
4. │ └── file # 文件操作硬件抽象层头文件
5. ├── include # 公共基础库对外接口文件
6. ├── js # ACE JS API目录
7. │ └── builtin
8. │ ├── common
9. │ ├── deviceinfokit # 设备信息Kit
10. │ ├── filekit # 文件Kit
11. │ └── kvstorekit # KV存储Kit
12. ├── kal # KAL目录
13. │ └── timer # Timer的KAL实现
14. ├── kv_store # KV存储实现
15. │ ├── innerkits # KV存储内部接口
16. │ └── src # KV存储源文件
17. └── timer_task # Timer实现
19. base/iot_hardware #IoT外设控制
20. ├── frameworks
21. │ └── wifiiot_lite #IoT外设控制模块实现
22. ├── hals
23. │ └── wifiiot_lite #HAL适配层接口
24. └── interfaces
25. └── kits #IoT外设控制模块接口
27. vendor/hisi/hi3861/hi3861_adapter/hals/iot_hardware #IoT外设控制HAL层
28. └── wifiiot_lite #HAL适配层接口实现
约束
公共基础库使用C语言开发。
表 1 公共基础库功能及约束
| 组件 | 平台支持 | 说明 | 约束 |
|---|---|---|---|
| KV存储 | LiteOS-M平台、LiteOS-A平台 | 为应用程序提供KV存储机制。 | - |
| 文件操作 | LiteOS-M平台 | 提供统一的文件操作接口,屏蔽对底层不同芯片组件的差异。 | - |
| 定时器 | LiteOS-M平台、LiteOS-A平台 | 提供统一的定时器操作接口,屏蔽对底层不同芯片组件的差异。 | - |
| IoT外设控制 | LiteOS-M平台 | IoT外设控制模块提供对外围设备的操作能力。 |
使用
- KV存储
获取接口
```
- char key1[] = "rw.sys.version";
- char value1[32] = {0};
- int ret = UtilsGetValue(key1, value1, 32);
- 设置接口
- char key14[] = "key_14";
- ret = UtilsSetValue(key14, defValue); ``` - 文件操作
```
- // open && write
- char fileName[] = "testfile";
- int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
- printf("file handle = %d\n", fd);
- int ret = UtilsFileWrite(fd, def, strlen(def));
- printf("write ret = %d\n", ret);
- // stat
- int fileLen = 0;
- ret = UtilsFileStat(fileName, &fileLen);
- printf("file size = %d\n", fileLen);
- // seek
- int fd1 = UtilsFileOpen(fileName, O_RDWR_FS, 0);
- ret = UtilsFileSeek(fd1, 5, SEEK_SET_FS);
- printf("lseek ret = %d\n", ret);
- char buf[32] = {0};
- int readLen = UtilsFileRead(fd1, buf, 32);
- ret = UtilsFileClose(fd1);
- printf("read len = %d : buf = %s\n", readLen, buf);
- // delete
- ret = UtilsFileDelete(fileName);
- printf("delete ret = %d\n", ret); ```
涉及仓
iothardware_frameworks_wifiiot_lite
iothardware_hals_wifiiot_lite
iothardware_interfaces_kits_wifiiot_lite
utils_native_lite
