公共基础

简介

公共基础库存放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存储

获取接口

```

  1. char key1[] = "rw.sys.version";
  2. char value1[32] = {0};
  3. int ret = UtilsGetValue(key1, value1, 32);
  4. 设置接口
  5. char key14[] = "key_14";
  6. ret = UtilsSetValue(key14, defValue); ``` - 文件操作

```

  1. // open && write
  2. char fileName[] = "testfile";
  3. int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
  4. printf("file handle = %d\n", fd);
  5. int ret = UtilsFileWrite(fd, def, strlen(def));
  6. printf("write ret = %d\n", ret);
  7. // stat
  8. int fileLen = 0;
  9. ret = UtilsFileStat(fileName, &fileLen);
  10. printf("file size = %d\n", fileLen);
  11. // seek
  12. int fd1 = UtilsFileOpen(fileName, O_RDWR_FS, 0);
  13. ret = UtilsFileSeek(fd1, 5, SEEK_SET_FS);
  14. printf("lseek ret = %d\n", ret);
  15. char buf[32] = {0};
  16. int readLen = UtilsFileRead(fd1, buf, 32);
  17. ret = UtilsFileClose(fd1);
  18. printf("read len = %d : buf = %s\n", readLen, buf);
  19. // delete
  20. ret = UtilsFileDelete(fileName);
  21. printf("delete ret = %d\n", ret); ```

涉及仓

iothardware_frameworks_wifiiot_lite

iothardware_hals_wifiiot_lite

iothardware_interfaces_kits_wifiiot_lite

utils_native_lite