国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

OpenHarmony L1(3.0)串口功能開發(fā)

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

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

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

前言

OpenHarmony 3.0 LTS是面向全場景的開源分布式操作系統(tǒng),能夠在物聯(lián)網(wǎng)上使用。可以支持三種系統(tǒng)類型,標準系統(tǒng)、輕量系統(tǒng)和小型系統(tǒng)。本文提供了在OpenHarmony 3.0 LTS實現(xiàn)串口調(diào)試功能的開發(fā)方案。

1、編寫代碼生成對應(yīng)動態(tài)庫文件

串口功能開發(fā)包括串口初始化、數(shù)據(jù)讀寫、修改數(shù)據(jù)開發(fā)格式等。具體代碼不便展示。編寫gn文件生成對應(yīng)動態(tài)庫文件。

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

2、提供API接口

(1)依賴router模塊開發(fā)

如果串口權(quán)限不受限制,可以直接在router模塊增加串口相關(guān)功能,節(jié)省開發(fā)時間。
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);

串口初始化及進制轉(zhuǎn)換相關(guān)代碼可直接調(diào)用庫函數(shù)。串口讀回調(diào)的相關(guān)代碼如下:

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模塊增加相關(guān)依賴。
foundation\ace\ace_engine_lite\frameworks\BUILD.gn。

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

(2)輕量級服務(wù)開發(fā)

串口權(quán)限受限時,需要啟用輕量級服務(wù),應(yīng)用可以通過服務(wù),跨進程操作串口。具體配置如下:

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

配置服務(wù)自啟動:

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 &

配置服務(wù):

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

代碼實現(xiàn)服務(wù)初始化,具體實現(xiàn)可參考wifi_lite相關(guān)代碼。在Invoke中去調(diào)用串口相關(guān)功能。
**\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;
}
//創(chuàng)建服務(wù)對象:
static SamgrSerialPortService SerialPortSvc = {
.GetName = GetName,
.Initialize = Initialize,
.MessageHandle = MessageHandle,
.GetTaskConfig = GetTaskConfig,
SERVER_IPROXY_IMPL_BEGIN,
.Invoke = Invoke,
IPROXY_END,
};
//向SAMGR注冊服務(wù)及接口:
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、開發(fā)應(yīng)用

(1)簽名配置

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

#創(chuàng)作者激勵#OpenHarmony L1(3.0)串口功能開發(fā)-開源基礎(chǔ)軟件社區(qū)

(2)調(diào)試命令

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

總結(jié)

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

??想了解更多關(guān)于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎(chǔ)軟件社區(qū)??

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

責任編輯:jianghua 來源: 51CTO 開源基礎(chǔ)軟件社區(qū)
相關(guān)推薦

2022-03-28 15:40:34

harmony鴻蒙操作系統(tǒng)

2022-02-17 17:52:00

openharmon項目開發(fā)鴻蒙

2021-10-20 19:14:30

緩存CacheCPU

2025-02-06 09:40:00

2012-03-07 14:37:03

JavaJavaMail

2023-05-26 16:01:32

驅(qū)動開發(fā)鴻蒙

2023-05-30 14:58:05

智能開發(fā)鴻蒙

2012-10-09 10:57:57

光纖iODN寬帶

2023-05-12 14:52:11

鴻蒙操作系統(tǒng)

2023-05-17 15:07:42

智能開發(fā)鴻蒙

2022-03-21 15:42:36

智能家居物聯(lián)網(wǎng)MQTT

2023-01-31 09:12:16

CPU芯片緩存

2023-05-15 15:27:20

鴻蒙智能開發(fā)套件

2022-02-21 15:38:57

Openharmon操作系統(tǒng)鴻蒙

2012-11-05 10:36:40

IBMdw

2023-10-10 15:33:55

機器學習相似性度量

2022-01-06 16:16:21

鴻蒙HarmonyOS應(yīng)用

2022-01-07 21:12:46

鴻蒙HarmonyOS應(yīng)用

2022-08-26 14:58:43

區(qū)塊鏈比特幣架構(gòu)

2022-01-21 21:22:24

OpenHarmon操作系統(tǒng)鴻蒙
點贊
收藏

51CTO技術(shù)棧公眾號

日韩精品水蜜桃| 1234区中文字幕在线观看| 国产精品久久久久久久久久ktv| 国产精品久久久久国产a级| 国产成人精品av在线| 欧美大片免费观看| 九九久久99| 成人在线观看a| av在线首页| 9l视频自拍蝌蚪9l视频成人| 欧美日韩亚洲三区| 久久激情五月激情| 日韩精品视频无播放器在线看| 91影院未满十八岁禁止入内| 一区二区三区日韩视频| 999久久久国产精品| 97在线视频精品| 国产亚洲高清一区| 亚洲激情女人| 色综合激情久久| 国产精品成人一区二区| 成人网免费视频| 日韩久久精品| 91精品91久久久中77777| 国产成人精品a视频一区www| 蜜臀久久精品| 久久精品亚洲精品国产欧美kt∨ | 精品国产福利| 日韩欧美xxxx| 国产亚洲成精品久久| 日韩欧美www| 欧美最猛性xxxx| 99久久免费观看| 高清视频在线观看三级| 亚洲黄色大片| 亚洲色图一区二区| 4438成人网| 亚洲一区二区毛片| 91精品国产黑色紧身裤美女| 久久99精品久久久久久久久久| xxxx在线视频| ...xxx性欧美| 亚洲欧洲三级| 97色婷婷成人综合在线观看| 樱桃国产成人精品视频| 99在线国产| 625成人欧美午夜电影| 国产精品久久久久永久免费观看 | 国产专区一区二区三区| 欧美成人三区| 26uuu久久天堂性欧美| 国产精品久久久久久久久久三级| 日本三级视频在线观看| 91热门视频在线观看| 国产在线精品播放| 色戒汤唯在线| 日韩欧美黄色动漫| 男女猛烈激情xx00免费视频| 五月天久久777| 亚洲天堂av电影| 国产69精品久久久久孕妇| 久久久精品网| 55夜色66夜色国产精品视频| 成人免费看片| 亚洲精品成人精品456| 亚洲三区在线观看| 国产传媒欧美日韩成人精品大片| 日韩成人在线视频网站| 翔田千里一区| 久久久久久久久久久久久久久99| 99re视频| 国产成人黄色| 久久国产精品久久国产精品| 不卡的av影片| 欧美三级视频在线| 日本黄大片一区二区三区| 国产成人亚洲综合a∨婷婷图片 | 亚洲石原莉奈一区二区在线观看| 麻豆传媒在线视频| 国产精品无人区| 大伊香蕉精品视频在线| 男人的天堂亚洲在线| 91精品久久久久久综合乱菊 | 欧美日韩天天操| 牲欧美videos精品| 日韩va亚洲va欧洲va国产| 瑟瑟视频在线| 欧美伊人久久大香线蕉综合69| 天堂在线视频中文网| 国产精品久久久久久久久晋中 | 91超碰国产在线| 欧美性猛交xxxxx免费看| 成人影院在线视频| 欧美xfplay| porn视频在线观看| 欧洲生活片亚洲生活在线观看| 在线播放日本| 欧美另类久久久品| 成人女同在线观看| 欧美成人中文字幕| 国产精品亚洲d| 日韩欧美综合一区| 伊人222成人综合网| 日韩欧美国产午夜精品| 国产白丝在线观看| 亚洲精品一区二区三区影院| 欧美第一视频| 亚洲在线视频一区| 福利视频午夜| 久久奇米777| 三级视频中文字幕| 136国产福利精品导航| 欧美精品七区| 日韩国产一区二| 91在线高清视频| 欧洲杯什么时候开赛| 精品国产一区二区三区久久久蜜月| 岛国在线视频免费看| 欧美日韩精品一区二区三区| 免费黄色片在线观看| 亚洲精品日产精品乱码不卡| 国产视频一区二区视频| 国产成人精品影院| 中国黄色录像片| 蜜桃视频一区二区| 国产欧美欧洲| 亚洲精品影视| 欧美日韩一区二区三| 夜间精品视频| 在线观看一区二区三区三州 | 老司机午夜免费精品视频| 日韩精品欧美专区| 福利电影一区二区| 四虎免费av| 国产精品久久久一区麻豆最新章节| 日韩a在线观看| 亚洲一二三在线| 日韩aaa久久蜜桃av| 欧美极品少妇与黑人| 在线日韩网站| 亚洲xxxx做受欧美| 日韩在线理论| 欧美国产精品va在线观看| 日韩一区二区三区在线看| 精品网站在线看| 成人一级黄色片| 精品在线网站观看| 99香蕉国产精品偷在线观看 | 亚洲另类图片色| 日本午夜人人精品| 中文字幕一区二区中文字幕| 性色av一区二区| 日韩美女在线看免费观看| 91精品国产91久久综合| 日本久久成人网| 97在线视频免费观看| 午夜一区二区三区不卡视频| 中文视频一区视频二区视频三区 | 男同互操gay射视频在线看| 丁香激情综合五月| 婷婷免费在线观看| 日韩高清免费在线| 久久精品视频va| 久久久久一区二区| 黑人巨大精品欧美一区二区奶水| av在线网页| 国产福利在线看| 一区二区在线视频| 日韩av密桃| 红桃一区二区三区| 黄色成人在线免费| 亚洲女同志freevdieo| 国产精品99久久久久久白浆小说 | 亚洲性图自拍| 久久这里有精品视频| 日韩欧美午夜| 日韩在线三区| 欧美午夜影院一区| 岛国在线大片| 欧美一级大片在线免费观看| 一区二区影院| 99在线免费观看视频| 美日韩一区二区| 中文天堂在线观看| 国产精品精品国产| 欧美高清视频一二三区 | 国产911在线观看| 成av人电影在线观看| 1024在线播放| 欧美一级片免费在线| 丁香婷婷综合激情五月色| 日本五码在线| 国产香蕉精品视频一区二区三区| 国产成人高清| 杨幂毛片午夜性生毛片| 精品国产一区二区国模嫣然| 亚州av乱码久久精品蜜桃| 欧美日韩亚洲综合一区二区三区激情在线 | 国模精品一区二区三区色天香| 国产成人三级视频|