精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Openharmony輕量級操作系統的分布式數據管理開發案例

福州市凌睿智捷電子有限公司 ? 2024-08-07 08:23 ? 次閱讀

實驗內容

本例程演示如何在小凌派-RK2206開發板上使用OpenHarmony輕量級操作系統進行KvStore(即分布式數據管理)數據讀寫。

例程:

(1)創建兩個線程,一個負責寫入KvStore存儲,一個負責讀取KvStore存儲;

(2)每1秒進行1次讀寫操作;

程序設計

在本章節中,我們將了解OpenHarmony KvStore存儲接口,如文件如何獲取數據、設置數據、刪除數據和清除緩存。

API分析

頭文件

//utils/native/lite/include/kv_store.h

UtilsGetValue()

intUtilsGetValue(constchar*key,char*value,unsignedintlen);

描述:

從文件系統或緩存中獲取與指定鍵匹配的值。

參數

名字描述
key鍵值
value獲取數據
len數據長度

返回值:

返回值描述
0成功
其它見utils/native/lite/include/ohos_errno.h

UtilsSetValue()

intUtilsSetValue(constchar*key,constchar*value);

描述:

添加或更新與文件系統或緩存中的指定鍵匹配的值。

參數:

名字描述
key鍵值
value寫入數據

返回值:

返回值描述
0成功
其它見utils/native/lite/include/ohos_errno.h

UtilsDeleteValue()

intUtilsDeleteValue(constchar*key);

描述:

從文件系統或緩存中刪除與指定鍵匹配的值。

參數:

名字描述
key鍵值

返回值:

返回值描述
0成功
其它見utils/native/lite/include/ohos_errno.h

ClearKVCache()

int ClearKVCache(void);

描述:

從緩存中清除所有鍵值對。

返回值:

返回值描述
0成功
其它見utils/native/lite/include/ohos_errno.h

軟件設計

主要代碼分析

在kv_store_example函數中通過LOS_TaskCreate函數創建兩個線程:kv_store_write_thread、kv_store_read_thread。

void kv_store_example(){ unsigned int thread_id1; unsigned int thread_id2; TSK_INIT_PARAM_S task1 = {0}; TSK_INIT_PARAM_S task2 = {0}; unsigned int ret = LOS_OK;

task1.pfnTaskEntry = (TSK_ENTRY_FUNC)kv_store_write_thread; task1.uwStackSize = 1024 * 10; task1.pcName = "kv_store_write_thread"; task1.usTaskPrio = 25; ret = LOS_TaskCreate(&thread_id1, &task1); if (ret != LOS_OK) { printf("Falied to create kv_store_write_thread ret:0x%x\n", ret); return; }

task2.pfnTaskEntry = (TSK_ENTRY_FUNC)kv_store_read_thread; task2.uwStackSize = 1024 * 10; task2.pcName = "kv_store_read_thread"; task2.usTaskPrio = 25; ret = LOS_TaskCreate(&thread_id2, &task2); if (ret != LOS_OK) { printf("Falied to create kv_store_read_thread ret:0x%x\n", ret); return; }}

APP_FEATURE_INIT(kv_store_example);

kv_store_write_thread線程負責創建/更新KV存儲,每1秒寫入一段內容,重復以上流程。

void kv_store_write_thread(){ int ret = 0; char defValue[50] = {0}; int current = 0;

while (1) { snprintf(defValue, sizeof(defValue), "test value %d.", current); int ret = UtilsSetValue(key, defValue); if (ret < 0) { printf("[error] %d\r\n", ret); } else { printf("[write] write success\r\n"); }

current++; LOS_Msleep(1000); }}

kv_store_read_thread線程負責讀取KV存儲,每1秒讀取一段內容,重復以上流程。

void kv_store_read_thread(){ int ret = 0; char value1[50] = {0};

while (1) { ret = UtilsGetValue(key, value1, sizeof(value1)); if (ret < 0) { printf("[error] %d\r\n", ret); } else { printf("[read] key: %s value:%s\r\n", key, value1); }

LOS_Msleep(1000); }}

編譯調試

修改 BUILD.gn 文件

修改 vendor/lockzhiner/rk2206/sample 路徑下 BUILD.gn 文件,指定 a10_kv_store 參與編譯。

"./a10_kv_store:kv_store_example",

修改 device/rockchip/rk2206/sdk_liteos路徑下 Makefile 文件,添加 `-lkv_store_example` 參與編譯。

app_LIBS = -lkv_store_example

運行結果

示例代碼編譯燒錄代碼后,按下開發板的RESET按鍵,通過串口助手查看日志。

HalFileInit: Flash Init Successful![write] write success[read] key: key_sample value:test value 0.[write] write success[read] key: key_sample value:test value 1.[write] write success[read] key: key_sample value:test value 2.[write] write success[read]key:key_samplevalue:testvalue3.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6487

    瀏覽量

    122592
  • 開發板
    +關注

    關注

    25

    文章

    4702

    瀏覽量

    95729
  • 分布式數據
    +關注

    關注

    0

    文章

    9

    瀏覽量

    8907
  • OpenHarmony
    +關注

    關注

    25

    文章

    3517

    瀏覽量

    15604
收藏 人收藏

    評論

    相關推薦

    HarmonyOS開發實例:【分布式數據管理

    eTS中分布式數據管理的使用,包括KVManager對象實例的創建和KVStore數據流轉的使用。
    的頭像 發表于 04-11 09:57 ?726次閱讀
    HarmonyOS<b class='flag-5'>開發</b>實例:【<b class='flag-5'>分布式</b><b class='flag-5'>數據管理</b>】

    基于Openharmony輕量級操作系統分布式數據管理開發案

    實驗內容 本例程演示如何在小凌派-RK2206開發板上使用OpenHarmony輕量級操作系統進行KvStore(即分布式
    發表于 08-06 11:56

    創建51輕量級操作系統

    創建51輕量級操作系統
    發表于 09-29 09:58

    HarmonyOS鴻蒙操作系統之什么是“基于微內核的全場景分布式操作系統”?

    分布式:這個要提它對應的一個詞來看,就是集中式;分布式是負責處理系統資源和控制程序運行。它與集中式操作系統的區別在于資源管理、進程通信和
    發表于 09-23 17:06

    OpenHarmony 3.0 LTS 新增特性功能

    認證的基本能力。支持關系型數據庫、分布式數據管理基礎能力。支持方舟JS編譯工具鏈和運行時,支持OpenHarmony JS UI框架應用開發
    發表于 09-30 08:24

    分布式操作系統的相關資料分享

    文章目錄分布式操作系統嵌入操作系統集群操作系統集群系統管理
    發表于 12-22 07:23

    OpenHarmony標準設備應用開發(三)——分布式數據管理

    所示的井字過三關游戲來講解分布式數據管理在應用中的使用。Demo 簡介:Demo 基于 OpenHarmony 系統使用 eTS 語言進行編寫,本 Demo 主要通過設備認證,
    發表于 04-07 18:48

    OpenHarmony3.1分布式技術資料合集

    1、OpenHarmony3.1的分布式硬件管理框架簡介分布式硬件管理框架是為分布式硬件子
    發表于 04-11 11:50

    【學習打卡】OpenHarmony分布式數據管理介紹

    使用它來做出更明智的決策,如果一個系統缺乏適當的數據管理,那就可能會導致數據孤島、數據集之間不一致,甚至數據本身存在錯誤。有效的
    發表于 07-15 15:49

    【學習打卡】OpenHarmony分布式任務調度

    之前我們分享過分布式軟總線和分布式數據管理,今天主要說一下OpenHarmony分布式任務調度,分布式
    發表于 07-18 17:06

    開發樣例】OpenHarmony分布式購物車

    設計OpenHarmony技術特性eTS UI分布式調度分布式數據管理3.支持OpenHarmony版本
    發表于 07-29 14:17

    好書推薦|《OpenHarmony嵌入操作原理與應用》

    OpenHarmony嵌入操作原理與應用》一書以物聯網應用為切入點,以瑞芯微 RK2206芯片為核心控制器,詳細講解了 OpenHarmony(開源鴻蒙)
    發表于 03-25 16:01

    鴻蒙操作系統的前世今生

    分布式數據管理分布式的安全,這三點將HarmonyOS的分布式能力提升到了另一個層次, 此版本可用于大屏、手表和車機。 2020年12月,華為發布面向
    發表于 10-08 19:55

    如何通過分布式數據管理實現多臺設備間的數據同步更新

    OpenHarmony 中如何實現音樂播放,顯示動畫,轉場動畫(頁面間轉場)等功能。本章是 OpenHarmony 標準設備應用開發的第三篇文章,將會在前面兩章的基礎上給大家講解分布式
    的頭像 發表于 02-25 11:47 ?3325次閱讀
    如何通過<b class='flag-5'>分布式</b><b class='flag-5'>數據管理</b>實現多臺設備間的<b class='flag-5'>數據</b>同步更新

    鴻蒙開發接口數據管理:【@ohos.data.distributedData (分布式數據管理)】

    分布式數據管理為應用程序提供不同設備間數據庫的分布式協同能力。通過調用分布式數據各個接口,應用程
    的頭像 發表于 06-07 09:30 ?640次閱讀
    鴻蒙<b class='flag-5'>開發</b>接口<b class='flag-5'>數據管理</b>:【@ohos.data.distributedData (<b class='flag-5'>分布式</b><b class='flag-5'>數據管理</b>)】