# 公共基础 ## 简介 公共基础库存放OpenHarmony通用的基础组件。这些基础组件可被OpenHarmony各业务子系统及上层应用所使用。 公共基础库在不同平台上提供的能力: - LiteOS-M内核(Hi3861平台):KV存储、文件操作、定时器、IoT外设控制 - LiteOS-A内核(Hi3516、Hi3518平台):KV存储、定时器、ACE JS API ## 目录 ``` utils/native/lite/ # 公共基础库根目录 ├── file # 文件接口实现 ├── hals # HAL目录 │ └── file # 文件操作硬件抽象层头文件 ├── include # 公共基础库对外接口文件 ├── js # ACE JS API目录 │ └── builtin │ ├── common │ ├── deviceinfokit # 设备信息Kit │ ├── filekit # 文件Kit │ └── kvstorekit # KV存储Kit ├── kal # KAL目录 │ └── timer # Timer的KAL实现 ├── kv_store # KV存储实现 │ ├── innerkits # KV存储内部接口 │ └── src # KV存储源文件 └── timer_task # Timer实现 base/iot_hardware #IoT外设控制 ├── frameworks │ └── wifiiot_lite #IoT外设控制模块实现 ├── hals │ └── wifiiot_lite #HAL适配层接口 └── interfaces └── kits #IoT外设控制模块接口 vendor/hisi/hi3861/hi3861_adapter/hals/iot_hardware #IoT外设控制HAL层 └── 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