精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenHarmony L1(3.0)串口功能開發

系統 OpenHarmony
本文介紹了在OpenHarmony 3.0 LTS系統上重串口功能實現到應用開發的整套流程。簡單的API接口開發,可直接依賴系統模塊。難點主要在輕量級系統開發,讀者可參考開源鴻蒙中輕量級系統服務管理部件中的相關介紹進行開發。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

前言

OpenHarmony 3.0 LTS是面向全場景的開源分布式操作系統,能夠在物聯網上使用。可以支持三種系統類型,標準系統、輕量系統和小型系統。本文提供了在OpenHarmony 3.0 LTS實現串口調試功能的開發方案。

1、編寫代碼生成對應動態庫文件

串口功能開發包括串口初始化、數據讀寫、修改數據開發格式等。具體代碼不便展示。編寫gn文件生成對應動態庫文件。

shared_library("serial_service_api") { sources = [ "service/serial_service.cpp" ] include_dirs = ["include","service", ]

2、提供API接口

(1)依賴router模塊開發

如果串口權限不受限制,可以直接在router模塊增加串口相關功能,節省開發時間。
foundation\ace\ace_engine_lite\frameworks\src\core\modules\router_module.cpp。

void InitRouterModule(JSIValue exports)
{
JSI::SetModuleAPI(exports, "replace", RouterModule::Replace);
JSI::SetModuleAPI(exports, "init", RouterModule::Init);
JSI::SetModuleAPI(exports, "format", RouterModule::Format);
JSI::SetModuleAPI(exports, "write", RouterModule::Write);
JSI::SetModuleAPI(exports, "read", RouterModule::ReadFormat);
JSI::SetModuleAPI(exports, "disable", RouterModule::Disable);
JSI::SetModuleAPI(exports, "on", RouterModule::OnRead);
COMMUNICATION::SerialService::GetInstance()->SerialRead(RouterModule::ReadingCallback);

串口初始化及進制轉換相關代碼可直接調用庫函數。串口讀回調的相關代碼如下:

void RouterModule::ReadingCallback(const char* buffer, int length)
{
if(!JSI::ValueIsUndefined(ReadCallback) && gSerialFlag){
if(length < 0){
SERIAL_LOGI("JS ReadingCallback == 0");
JSIValue evt = JSI::CreateString("error");
JSI::CallFunction(ReadCallback, JSI::CreateUndefined(), &evt, 1);
return;
} else if(length >= 0){
SERIAL_LOGI("JS ReadingCallback == 1");
JSIValue evt = JSI::CreateString(buffer);
JSI::CallFunction(ReadCallback, JSI::CreateUndefined(), &evt, 1);
}
}
}
JSIValue RouterModule::OnRead(const JSIValue thisVal, const JSIValue *args, uint8_t argsSize)
{
if(!JSI::ValueIsUndefined(ReadCallback)){
JSI::ReleaseValue(ReadCallback);
return JSI::CreateBoolean(false);
}
if (JSI::ValueIsUndefined(args[0])) {
return JSI::CreateBoolean(false);
}
ReadCallback = JSI::GetNamedProperty(args[0], "ReadingCallback");
if(JSI::ValueIsUndefined(ReadCallback)){
SERIAL_LOGI("Read Callbk is not got it");
}
}

在route模塊增加相關依賴。
foundation\ace\ace_engine_lite\frameworks\BUILD.gn。

"http://device/hals/communication/serial_port:serial_service_api",
]

(2)輕量級服務開發

串口權限受限時,需要啟用輕量級服務,應用可以通過服務,跨進程操作串口。具體配置如下:

foundation\ace\ace_engine_lite\frameworks\module_manager\ohos_module_config.hextern void InitSerialPortModule(JSIValue exports);const Module OHOS_MODULES[] = {{"serialport", InitSerialPortModule},}

配置服務自啟動:

vendor/ingenic/halley5/rootfs-overlay/etc/init.d/S99WmsStart:sleep 1 && /bin/wifi_server &#! /bin/sh
sleep 1 && /bin/wms_server &
sleep 1 && /bin/wifi_server &
sleep 1 && /bin/util_server &
sleep 1 && /bin/serial_port_service &

配置服務:

FeaturePolicy serialServiceFeature[] = {
{
NULL,
{
{
.type = RANGE,
.uidMin=0,
.uidMax=__INT_MAX__,
}
},
},
};
static PolicySetting g_presetPolicies[] = {
{"serialportservice", serialServiceFeature, 1},
};

代碼實現服務初始化,具體實現可參考wifi_lite相關代碼。在Invoke中去調用串口相關功能。
**\serial_port\serial_port_lite\service\samgr_serial_port_service.cpp。

struct SamgrSerialPortService {
INHERIT_SERVICE;
INHERIT_IUNKNOWNENTRY(DefaultFeatureApi);
Identity identity;
};
static const char *GetName(Service *service)
{
//(void)service;
return SERIAL_PORT_SERVICE_NAME;
}
static int32 Invoke(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, IpcIo *reply)
{
SerialPortService::RequestHandle(funcId, origin, req, reply);
return EC_SUCCESS;
}
//創建服務對象:
static SamgrSerialPortService SerialPortSvc = {
.GetName = GetName,
.Initialize = Initialize,
.MessageHandle = MessageHandle,
.GetTaskConfig = GetTaskConfig,
SERVER_IPROXY_IMPL_BEGIN,
.Invoke = Invoke,
IPROXY_END,
};
//向SAMGR注冊服務及接口:
static void Init()
{
SERIAL_LOGI("serial RegisterService Init, ver = %u", SerialPortSvc.ver);
bool ret = SAMGR_GetInstance()->RegisterService((Service *)&SerialPortSvc);
if (!ret) {
SERIAL_LOGI("RegisterService error");
return;
}
ret = SAMGR_GetInstance()->RegisterDefaultFeatureApi(SERIAL_PORT_SERVICE_NAME, GET_IUNKNOWN(SerialPortSvc));
if (!ret) {
SERIAL_LOGI("RegisterDefaultFeatureApi error");
return;
}
SERIAL_LOGI("serial RegisterService out, ver = %u", SerialPortSvc.ver);
}
SYSEX_SERVICE_INIT(Init);

3、開發應用

(1)簽名配置

使用 DevEco Studio 3.0.0.800 軟件進行應用開發,真機設備運行和調試OpenHarmony應用前,需要對應用進行簽名才能正常運行。主要分為四個步驟:生成密鑰和證書請求文件,生成應用證書文件,生成應用profile文件,配置應用簽名信息。

#創作者激勵#OpenHarmony L1(3.0)串口功能開發-開源基礎軟件社區

(2)調試命令

adb push entry-release-lite-signed.hap /userdata
adb shell
alias ls=‘ls --color=never’ //解決ls亂碼
bm uninstall -n com.ingenic.curtain
bm install -p entry-release-lite-signed.hap

總結

本文介紹了在OpenHarmony 3.0 LTS系統上重串口功能實現到應用開發的整套流程。簡單的API接口開發,可直接依賴系統模塊。難點主要在輕量級系統開發,讀者可參考開源鴻蒙中輕量級系統服務管理部件中的相關介紹進行開發。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-03-28 15:40:34

harmony鴻蒙操作系統

2022-02-17 17:52:00

openharmon項目開發鴻蒙

2021-10-20 19:14:30

緩存CacheCPU

2012-03-07 14:37:03

JavaJavaMail

2025-02-06 09:40:00

2023-05-26 16:01:32

驅動開發鴻蒙

2023-05-30 14:58:05

智能開發鴻蒙

2012-10-09 10:57:57

光纖iODN寬帶

2023-05-12 14:52:11

鴻蒙操作系統

2023-05-17 15:07:42

智能開發鴻蒙

2023-05-15 15:27:20

鴻蒙智能開發套件

2022-03-21 15:42:36

智能家居物聯網MQTT

2023-01-31 09:12:16

CPU芯片緩存

2022-02-21 15:38:57

Openharmon操作系統鴻蒙

2012-11-05 10:36:40

IBMdw

2023-10-10 15:33:55

機器學習相似性度量

2022-01-06 16:16:21

鴻蒙HarmonyOS應用

2022-01-07 21:12:46

鴻蒙HarmonyOS應用

2022-01-21 21:22:24

OpenHarmon操作系統鴻蒙

2022-08-26 14:58:43

區塊鏈比特幣架構
點贊
收藏

51CTO技術棧公眾號

中文字幕在线视频免费| www.黄色网| 成人免费视频| 精品一区二区三区免费毛片爱| 久久视频精品在线| 中文字幕一区二区人妻电影丶| 黑人巨大精品| 亚洲欧美色一区| 久久免费视频1| 国产精品无码天天爽视频| 亚洲激情在线| 久久九九热免费视频| 91视频啊啊啊| 日韩欧美中文在线观看| 色婷婷综合视频在线观看| 潘金莲一级淫片aaaaa免费看| 成人午夜免费福利| 青青草精品视频| 性欧美xxxx交| 91狠狠综合久久久| 九九视频精品全部免费播放| 日韩欧美一区在线| 天天干天天综合| 草草视频在线观看| 亚洲免费在线播放| 亚欧精品在线| 黄色网址在线播放| 91污在线观看| 国产精品精品软件视频| 国产片高清在线观看| 乱码第一页成人| 国产综合在线看| 91日韩中文字幕| 日韩精品久久| 亚洲少妇中文在线| 国产精品探花一区二区在线观看| 国产精品va视频| 欧美日韩久久不卡| www日韩视频| 中文字幕人成乱码在线观看 | 欧洲一级精品| 亚洲一二三四久久| 女人床在线观看| 亚洲卡一卡二| 樱花草国产18久久久久| 日本三级中文字幕在线观看| 久久久久久久久免费视频| 国产精品午夜在线| 神马影院一区二区三区| 福利在线播放| 中文字幕国产一区| 亚洲欧洲另类精品久久综合| 成人不用播放器| 欧美韩国日本一区| 亚洲欧洲久久| 草莓福利社区在线| 亚洲综合图片区| 成人小视频在线观看免费| 中文字幕有码在线视频| 亚洲精品美国一| 国产在线视频综合| www在线观看黄色| 欧美日韩国产影院| 欧美日韩第二页| 另类图片综合电影| 欧美三级中文字幕| 五月天中文字幕在线| 国产不卡精品在线| 欧美www视频| 麻豆精品国产传媒av| 日韩精品导航| 一本久久综合亚洲鲁鲁| 天天操夜夜操av| 国内激情久久| 日本久久久a级免费| 中文字幕在线观看免费| 国产一区二区三区免费在线观看| 9a蜜桃久久久久久免费| 熟妇高潮一区二区高潮| 久久精品无码一区二区三区| 在线观看国产一区| 伦理在线一区| 色噜噜狠狠色综合欧洲selulu| 中文字幕第88页| 亚洲一区二区三区在线免费| 亚洲国产婷婷香蕉久久久久久 | 国产77777| 久久精品亚洲精品国产欧美kt∨| 欧美aaa在线观看| 国产99在线观看| 欧美日韩国产片| 国产一级免费片| 不卡视频在线| 久久久亚洲国产天美传媒修理工| 老熟妇一区二区三区| 国产精品主播直播| 青青成人在线| 永久免费网站在线| 色综合久久久久久久久| 91网址在线观看精品| 亚洲第一二三区| 欧美成人免费在线视频| 国产精品久久久久久久久久久久久久久久久 | 国产精品丝袜在线播放| 伊人青青综合网站| 亚洲一区 视频| 激情综合色综合久久综合| 久久久久久九九九九| gogo在线高清视频| 欧洲另类一二三四区| 亚洲天堂美女视频| 亚洲国产精品综合久久久| 欧美激情一级欧美精品| a片在线免费观看| 99热国产精品| 亚洲五码在线观看视频| 日韩一区二区三区免费视频| 欧美精品一区二区三区久久久| 又嫩又硬又黄又爽的视频| 亚洲色诱最新| 不卡的av一区| а√中文在线8| 欧美日韩黄视频| 扒开jk护士狂揉免费| 一区在线视频| 51国产成人精品午夜福中文下载 | 68精品久久久久久欧美| www.黄色国产| 136国产福利精品导航| 欧在线一二三四区| 亚洲国产最新| 亚州精品天堂中文字幕| 亚洲爱情岛论坛永久| 中文字幕在线观看一区| 尤蜜粉嫩av国产一区二区三区| 婷婷成人综合| 青草青草久热精品视频在线网站| av毛片在线免费观看| 国产自产高清不卡| 午夜欧美性电影| 台湾佬成人网| 亚洲乱码一区av黑人高潮| 亚洲免费激情视频| av激情综合网| 天天夜碰日日摸日日澡性色av| 亚洲精品午夜| 久久久久久久久久久成人| 亚洲av无码专区在线| 亚洲国产婷婷综合在线精品| 国产ts在线观看| 欧美日韩一区二区国产| 波多野结衣精品久久| 国产乱码在线| 亚洲精品v天堂中文字幕| 日本学生初尝黑人巨免费视频| 国产99精品国产| 美女扒开大腿让男人桶| 激情亚洲另类图片区小说区| 国内精品小视频在线观看| 成人免费一级视频| 精品毛片网大全| 中文字幕在线1| 免费观看日韩电影| 黄色a级在线观看| 亚洲va欧美va人人爽成人影院| 色综合五月天导航| 深夜福利视频网站| 色综合一个色综合| 国产激情av在线| 国产一区二区三区久久久| 日本丰满大乳奶| 久久aimee| 国产高清在线不卡| 黄色网址在线免费| 亚洲高清免费观看高清完整版| 毛片在线免费视频| 国产精品免费av| 最新中文字幕日本| 久久成人精品| 91制片厂免费观看| 日韩欧美影院| 成人精品视频久久久久| 第一福利在线视频| 中文字幕国产亚洲| 亚洲精华国产精华精华液网站| 精品成人久久av| 国精产品视频一二二区| 成人不卡免费av| 色一情一乱一伦一区二区三区日本| 外国成人激情视频| 蜜桃视频成人| 视频精品一区| 国产精品精品久久久| 亚洲欧美成人影院| 中文字幕一区二区精品| 日本高清视频网站| 欧美剧情片在线观看| 国产 欧美 日韩 在线| 亚洲欧洲成人自拍| 加勒比一区二区| 国产成人免费高清| 超碰超碰在线观看| 国产日韩一区二区三区在线| 亚洲第一综合网站| 香蕉视频一区二区三区| 91成人免费观看| 日韩网站中文字幕| 97在线精品视频| 国产色在线观看| 在线精品视频视频中文字幕| 神马午夜在线观看| 欧美一区二区三区成人| 中国女人一级一次看片| 欧美性生交大片免费| 国产精彩视频在线| 亚洲人午夜精品天堂一二香蕉| 成人片黄网站色大片免费毛片| 国产不卡在线一区| 亚洲精品中文字幕乱码无线| 日本不卡视频在线观看| 国产精品视频一区二区三区四区五区| 亚洲精品成人| 亚洲一区二区三区乱码| 日韩aaa久久蜜桃av| 国产伦精品一区二区三区照片 | 日韩欧美高清视频| 国产在线视频卡一卡二| 亚洲免费观看高清| 永久免费看片视频教学| 国产欧美一区在线| 中国毛片在线观看| 91视频观看免费| 你懂得在线视频| 成人福利视频在线看| 色综合久久久无码中文字幕波多| 精品亚洲aⅴ乱码一区二区三区| 狠狠热免费视频| 日韩1区2区日韩1区2区| 免费看国产黄色片| 日韩av一区二区三区四区| 蜜臀久久99精品久久久酒店新书| 国产亚洲激情| 国产在线精品91| 亚洲一区日韩在线| 人妻少妇被粗大爽9797pw| 亚洲欧美清纯在线制服| 免费黄色福利视频| 久久精品毛片| 中文字幕第80页| 免费精品视频在线| 精品综合久久久久| 国产麻豆精品在线| 免费黄视频在线观看| 国产成人精品三级| 国产女人18毛片水真多18| 99这里都是精品| 尤物视频最新网址| 亚洲欧洲日韩一区二区三区| 欧美做爰啪啪xxxⅹ性| 亚洲欧美aⅴ...| 精品无码黑人又粗又大又长| 五月天亚洲婷婷| 69亚洲精品久久久蜜桃小说| 在线精品亚洲一区二区不卡| 亚洲专区在线播放| 日韩精品一区在线观看| 天堂中文在线看| 国产一级揄自揄精品视频| 日本免费在线观看| 欧美多人爱爱视频网站| 亚洲最新无码中文字幕久久| 国产精品高潮粉嫩av| 国产精品欧美一区二区三区不卡 | 800av在线播放| 久久九九影视网| 性生交大片免费全黄| 亚洲影院免费观看| 麻豆精品久久久久久久99蜜桃| 欧美性一二三区| 性一交一乱一透一a级| 日韩av在线免费| 性开放的欧美大片| 久久久久久久久久亚洲| 全球最大av网站久久| 97超碰人人看人人| 国产精品美女久久久久久不卡| 欧美 另类 交| 国产农村妇女精品一二区| 最新国产黄色网址| 26uuu欧美日本| av成人免费网站| 欧美性xxxx在线播放| 99国产精品一区二区三区| 日韩成人在线视频观看| 成人直播在线| 日本精品久久中文字幕佐佐木| 国产精品一区三区在线观看| 免费国产在线精品一区二区三区| 999国产精品永久免费视频app| 国产美女在线一区| 精品中文字幕一区二区小辣椒| 污污免费在线观看| 中文字幕日韩精品一区 | 日韩国产欧美在线观看| 在线成人精品视频| 中文字幕的久久| 999这里只有精品| 欧美一区二区在线视频| 国产视频网站在线| 992tv在线成人免费观看| 日本一区二区三区视频在线看| 日韩欧美三级一区二区| 亚洲深夜激情| 欧美激情一区二区三区p站| 亚洲天堂免费看| 在线观看视频二区| 一区二区欧美日韩视频| 永久免费毛片在线播放| 国产精品高清一区二区三区| 91高清一区| 午夜免费福利视频在线观看| 国产日产欧美精品一区二区三区| 久久不卡免费视频| 精品国产一区二区三区不卡 | 红桃成人av在线播放| 国产欧美日韩网站| 成人小视频免费在线观看| 中国一级片在线观看| 7777精品伊人久久久大香线蕉 | 在线免费一区三区| 嫩草精品影院| 青青青国产精品一区二区| 日本韩国欧美超级黄在线观看| 欧美大黑帍在线播放| 国产精品一区不卡| 久草免费在线观看视频| 日韩亚洲欧美综合| 成人毛片av在线| 亚洲va电影大全| 午夜精品偷拍| 精品国产免费久久久久久婷婷| 有码一区二区三区| 精品国产av鲁一鲁一区| 欧美福利在线观看| 国产精品欧美大片| 无码精品a∨在线观看中文| 99精品国产热久久91蜜凸| 欧美一二三区视频| 亚洲精品日韩在线| 欧美精品资源| 一区不卡视频| 国产福利91精品| 国产一级二级三级| 日韩精品中文字幕有码专区| 黑人精品一区| 一个色的综合| 成人综合在线网站| 在线天堂中文字幕| 在线观看视频99| 欧洲大片精品免费永久看nba| 精品国偷自产一区二区三区| 91小视频在线| 性色av一区二区三区四区| 久久亚洲春色中文字幕| 北条麻妃一区二区三区在线观看 | 免费不卡在线观看| 日韩在线视频网址| 亚洲国产精品字幕| 影音成人av| 欧美 亚洲 视频| 久久亚洲欧美国产精品乐播| 中文字幕av网站| 欧美区二区三区| 国产欧美日韩精品一区二区免费 | xxxx欧美18另类的高清| 91午夜精品| 国产一级不卡毛片| 亚洲色图欧洲色图婷婷| 成人免费观看在线视频| 国产精品igao视频| 自拍偷拍欧美| 短视频在线观看| 在线成人小视频| 国产白浆在线免费观看| 日韩av在线一区二区三区| 国产精品中文有码| 精品人妻一区二区三区免费看 | 韩国日本不卡在线| 亚洲va久久久噜噜噜久久| 在线免费观看av的网站| 亚洲综合在线视频| 国产日韩精品在线看| av日韩中文字幕| 日本欧美加勒比视频| 日韩字幕在线观看| 久久久国产一区二区三区| 综合国产视频| 久久久久久久人妻无码中文字幕爆| 欧美性xxxxxxxx| 香蕉伊大人中文在线观看|