成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HarmonyOS Connect設備開發之擁抱JS通信接口

系統 OpenHarmony
針對向設備發送消息(NAN通道建立完成)目前提供了JAVA、JS接口。模板使用的是JAVA接口,開發者可在NetworkDeviceDataHandler中調用本模板。

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

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

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

一、 NAN消息接口簡介

回到??設備控制原子化服務指導???,可知,針對向設備發送消息(NAN通道建立完成)目前提供了JAVA、JS接口。模板使用的是JAVA接口,開發者可在NetworkDeviceDataHandler中調用本模板。如下:

private void sendMessage(String message, HashMap<String, Object> tmpMap) {
CommonInfo commonInfo = new CommonInfo();
commonInfo.setSessionId(sessionId);
HiLog.error(LABEL_LOG, "sessionId " + sessionId);
NetConfigApi.getInstance().sendMessage(commonInfo, message, (code, controlMessage, str) -> {
if (code == 0) {
HiLog.info(LABEL_LOG, "Message sent successfully" + message);
dataMap.putAll(tmpMap);
mainHandler.postTask(() -> onDeviceDataChange(dataMap));
} else {
HiLog.error(LABEL_LOG, "Failed to send the message. Code =" +
code + " control message = " + controlMessage);
}
});
}

JAVA實現的功能需要于js頁面之間互傳數據,定義一系列規則,這比較繁瑣,如果添加一條指令傳輸,就得添加一個約定規則。JS就比較靈活,提供的JS接口如下:

JS接口:NetConfig.sendMessage(commonInfo, message, callbackFunc)

依賴:需要import模板工程里的fa-netconfig.js進行調用。

說明:

commonInfo里需要填入本次配網通路的sessionId, 由配網原子化服務獲取。

message為發送給設備的字符串消息。

callbackFunc為消息發送成功與否的回調。

示例:

let commonInfo = {
sessionId: getApp(this).ConfigParams.deviceInfo.sessionId
}
getApp(this).NetConfig.sendMessage(commonInfo, "111111", (result) => {
// sendMessage 回調
})

二、 sendMessage()函數實現

我們在jscontrol.js文件中,添加sendMessage()函數,參考上述說明和示例,編寫如下:

//需引入 import {getApp} from '../../common.js';  
sendMessage()
{
var message = this.app_msg;
let commonInfo = {
sessionId: getApp(this).ConfigParams.deviceInfo.sessionId
};
getApp(this).NetConfig.sendMessage(commonInfo, message,(result)=>{

if(result.code ==0)
{
prompt.showToast({
message:'發送成功'
})
}
else{
prompt.showToast({
message:'發送失敗'
})
}
});
},

三、綁定消息按鈕

上一個帖子【自定義ui】中,我們自定義了一個switch。

<div id="wrapper">
<div id="div1">
<div id="div2">
<image id="image1" src="common/img/FAN.png"></image>
</div>
<text id="text1">{{title}}</text>
<switch id="sw_power" showtext="true" checked="false" @change="Smart_fanCtr"></switch>
</div>
</div>

用于控制風扇開關,這意味著點擊按鈕就需要發送消息,接下來我們綁定數據按鈕:

在jscontrol.js中,編寫按鈕綁定的函數 Smart_fanCtr(e) ,如下:

export default {
data: {
title: "Smart Fan",
app_msg:'turn off fan',
},
//根據開關狀態確定發送消息
Smart_fanCtr(e) {
if(e.checked)
{
this.app_msg='turn on fan';
prompt.showToast({
message:"打開風扇"
})
}else
{
this.app_msg='turn off fan';
prompt.showToast({
message:"關閉風扇"
})
}
this.sendMessage(); //發送消息
},
}

到此,我們綁定了按鈕和消息下發函數,當發送成功后,會彈出提示“發送成功”,反之“發送失敗”。打開風扇會發送消息“turn on fan”,關閉風扇會發送“turn off fan”,設備側將匹配該消息控制GPIO輸出狀態。

小結

北向開發已經完成。簡單總結就是配網、控制ui、發送消息。接下來將重心轉移到南向設備開發。

北向完整工程見附件一??【Smart_fan.zip】??。

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

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

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

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-05-19 15:40:37

配網開發設備開發

2022-05-19 15:47:24

碰一碰連接設備開發鴻蒙

2022-05-17 10:33:58

設備開發鴻蒙操作系統

2022-05-18 16:17:31

設備開發鴻蒙

2021-07-08 09:42:04

鴻蒙HarmonyOS應用

2022-08-15 22:20:46

應用開發華為IoT平臺

2021-08-18 16:20:17

HarmonyOS鴻蒙

2021-09-18 09:57:20

鴻蒙HarmonyOS應用

2022-08-15 22:09:37

設備開發開發筆記

2021-08-24 14:57:27

鴻蒙HarmonyOS應用

2011-08-18 10:59:57

iPhone開發消息通信NSNotificat

2020-11-05 10:05:25

App

2010-10-22 14:43:09

移動開發

2013-07-23 10:00:09

移動設備漫畫轉型

2009-05-11 10:48:24

敏捷開發Agile架構

2016-11-01 19:10:33

vue.js前端前端框架

2022-09-07 15:35:49

設備開發鴻蒙

2022-02-21 15:38:57

Openharmon操作系統鴻蒙

2015-02-02 14:44:19

微軟云計算移動開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a免费视频| 99精品电影 | 国产福利小视频 | av大片 | 欧美激情五月 | 一区二区三区四区五区在线视频 | 日韩欧美专区 | 麻豆视频国产在线观看 | 日本黄色免费大片 | 精品久久国产 | 伊人春色在线 | 黄色国产在线播放 | 亚洲成av人影片在线观看 | 一区影视| 69性欧美高清影院 | 97超碰在线免费 | 91麻豆精品国产91久久久久久 | 国产人久久人人人人爽 | 亚洲国产精品va在线看黑人 | 国产精品久久久久久久午夜片 | 91黄在线观看 | 欧美激情一区二区三级高清视频 | 华丽的挑战在线观看 | 亚洲高清成人在线 | 伊人网站在线 | 欧美成人第一页 | 九一视频在线播放 | 久久成人精品视频 | 精品福利视频一区二区三区 | 亚洲欧美中文字幕在线观看 | 黄色网毛片 | 99re66在线观看精品热 | 精产国产伦理一二三区 | 日韩精品视频在线 | 狠狠爱综合 | 亚洲精品乱码久久久久久久久 | 久久中文字幕一区 | 国产精品毛片 | 欧美日韩久久 | 中文字幕电影在线观看 | 色婷婷一区 |