簡介
本文檔為幫助開發(fā)者快速將設(shè)備接入到數(shù)字管家,完成FA、服務端和設(shè)備的通信,實現(xiàn)數(shù)字管家對設(shè)備的命令控制、日程管理,以及設(shè)備對數(shù)字管家的主動告警。
快速上手
1. 前提參考:
鴻蒙開發(fā)文檔:[docs.qq.com/doc/DUmN4VVhBd3NxdExK
]
- IoT平臺:完成IoT平臺新設(shè)備配置;
- 設(shè)備端:完成設(shè)備端的開發(fā)并定義好profile設(shè)備模型;
- 服務端:搭建并配置好了服務端;
- 數(shù)據(jù)庫:device_type表中添加好相關(guān)產(chǎn)品數(shù)據(jù);
2. 編寫設(shè)備控制頁面
- 在slice目錄下新建 xxxxSlice.java文件,通過 addActionRoute() 方法為此AbilitySlice配置一條路由規(guī)則,并且在在應用配置文件(config.json)中注冊,
- 在resources->base->layout下新建對應xml布局文件,在上述兩個文件中編寫相應界面代碼。
3. 頁面邏輯與數(shù)據(jù)處理
- slice頁面獲取deviceId:在onStart中通過調(diào)用intent.getStringParam("deviceId") ,獲取設(shè)備標識用于對設(shè)備進行控制或者獲取設(shè)備信息。
- slice頁面獲取狀態(tài):對于可以主動控制的設(shè)備,調(diào)用intent.getBooleanParam(KEY_IS_SET_COMMAND, false) ,用于判斷當前狀態(tài)下是需要執(zhí)行命令,還是通過 [EventBus]將命令數(shù)據(jù)傳出用于日程對設(shè)備的編排之中。
- 編寫設(shè)備控制命令的獲取和解析方法:在CommandUtil中根據(jù)具體設(shè)備profile定義,來新增獲取命令和解析命令的方法,以供設(shè)備調(diào)用sendCommand來發(fā)送命令和在日程中來解析命令。
- 配置設(shè)備相關(guān)信息:在DeviceData類的initData方法中,根據(jù)設(shè)備productId添加設(shè)備圖片資源ID、跳轉(zhuǎn)的action參數(shù)和日程解析方法,配置完成后設(shè)備列表頁、日程頁面等都能通過該配置進行圖片加載、路由跳轉(zhuǎn)和日程解析。
- 以上代碼邏輯處理和實現(xiàn)可參考LampAbilitySlice.java。
4. 接口對接
? 項目使用的網(wǎng)絡(luò)請求組件為RetrofitCache,項目中服務端api定義于ApiRx2,通過OKHttpUtilsRx2來實現(xiàn)異步調(diào)用。
- 若使用自己部署的服務端,須做如下修改: (1) 將OKHttpUtilsRx2類中SERVER_URL變量修改為自己的服務端api地址; (2) 將DeviceStateListener類中RABBITMQ_HOST變量修改為自己的服務端地址;
- 初始化設(shè)備狀態(tài):通過調(diào)用getDeviceInfo接口,傳入deviceId和userId來獲取,其中UserId在登錄時會儲存于Preferences輕量級數(shù)據(jù)存儲之中。
- 設(shè)備控制命令:通過調(diào)用sendCommand接口,傳入deviceId和命令json字符串來對指定設(shè)備進行控制。
如何驗證
1. 寫入NFC數(shù)據(jù)
根據(jù)設(shè)備定義好的設(shè)備profile模型,使用應用調(diào)測組助手將tlv格式數(shù)據(jù)寫入NFC NFC數(shù)據(jù)寫入章節(jié)。
2. 對設(shè)備進行碰一碰配網(wǎng)
將手機靠近NFC標簽,可正常拉起數(shù)字管家,并開始無感配網(wǎng)。
3. 驗證設(shè)備跳轉(zhuǎn)入口
- 在線設(shè)備貼近設(shè)備NFC標簽碰一碰,可正常跳轉(zhuǎn)至應用;
- 在首頁設(shè)備Tab和新增日程頁面的設(shè)備圖標能正確顯示設(shè)備狀態(tài),在線設(shè)備點擊圖標后可跳轉(zhuǎn)設(shè)備頁;
4. 驗證功能
- 新增日程:在輸入成員、設(shè)備執(zhí)行動作、執(zhí)行時間等后,日程頁面可看見新增的日程以及需執(zhí)行的動作,在到達指定時間后所有設(shè)備能夠執(zhí)行預設(shè)動作,并且相關(guān)成員手機會收到系統(tǒng)通知。
- 設(shè)備單點控制:進入設(shè)備控制頁面,執(zhí)行控制操作設(shè)備能有相應動作執(zhí)行。
- 主動告警:驗證設(shè)備端能否通過AMQP通知到數(shù)字管家,例如智能垃圾桶檢測到垃圾桶已滿會通過服務端通知到相關(guān)用戶,并且能觸發(fā)鈴聲提醒和系統(tǒng)通知彈框。
審核編輯 黃宇
-
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42856 -
HarmonyOS
+關(guān)注
關(guān)注
79文章
1975瀏覽量
30194
發(fā)布評論請先 登錄
相關(guān)推薦
評論