公共基础

简介

公共基础库存放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实现
  18. base/iot_hardware #IoT外设控制
  19. ├── frameworks
  20. └── wifiiot_lite #IoT外设控制模块实现
  21. ├── hals
  22. └── wifiiot_lite #HAL适配层接口
  23. └── interfaces
  24. └── kits #IoT外设控制模块接口
  25. vendor/hisi/hi3861/hi3861_adapter/hals/iot_hardware #IoT外设控制HAL层
  26. └── 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