README.md
1# 公共基础子系统开发 —— kv存储(基于BearPi-HM_Nano开发板)
2本示例将演示如何使用kv存储相关的API
3
4## kv_store API分析
5本示例主要使用了以下API完成kv存储相关的验证。
6
7### UtilsGetValue()
8```c
9int UtilsGetValue(const char* key, char* value, unsigned int len);
10```
11**描述:**
12
13从文件系统或cache中获取键 key 对应的值
14
15**参数:**
16
17|名字|描述|
18|:--|:------|
19| key | 键 |
20| value | 指向存储键所对应的值所在的地址 |
21| len | 存放value的存储区大小 |
22
23### UtilsSetValue()
24```c
25int UtilsSetValue(const char* key, const char* value);
26```
27**描述:**
28
29新增或更新存储在文件系统或cache中的键 key 所对应的值
30
31**参数:**
32
33|名字|描述|
34|:--|:------|
35| key | 键 |
36| value | 待新增或更新的值 |
37
38### UtilsDeleteValue()
39```c
40int UtilsDeleteValue(const char* key);
41```
42**描述:**
43
44删除存储在文件系统或cache中的键 key 所对应的值
45
46**参数:**
47
48|名字|描述|
49|:--|:------|
50| key | 键 |
51
52
53## 编译调试
54
55### 修改 BUILD.gn 文件
56
57修改 `device\board\bearpi\bearpi_hm_nano\app` 路径下的 BUILD.gn 文件,指定 `Z2_basic_kv_store` 参与编译。
58
59```r
60 # "D11_iot_cloud_oc_agriculture:cloud_oc_agriculture",
61 # "D12_iot_cloud_oc_gps:cloud_oc_gps",
62
63 # "Z1_basic_flash_ylc:flash_example",
64 "Z2_basic_kv_store:kv_store_example",
65```
66
67### 运行结果
68
69示例代码编译烧录后,按下开发板的RESET按键,通过串口助手可以看到kv操作过程。
70
71```sh
72hiview init success.
73[PARAM][param_service.c:125]ParamServiceTask start
74get value failed!
75===== key: user, value: =====
76===== key: user, value: Zhang San =====
77delete key-value for user success.
78get value failed!
79===== key: user, value: =====
80
81```
82
83