前言
站在用戶的角度思考問題,與客戶深入溝通,找到南岔網(wǎng)站設(shè)計與南岔網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋南岔地區(qū)。本文主要給大家介紹的是關(guān)于obix協(xié)議在java中的配置和使用,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
什么是 oBIX?
簡單來講,obix是一種 XML 通訊協(xié)議,使用Http Request/Post方式進(jìn)行數(shù)據(jù)通訊。所有數(shù)據(jù)通過可讀字符進(jìn)行傳送,一個oBIX對象可以有唯一的一個URL識別。
oBIX的實現(xiàn)原理
首先數(shù)據(jù)儲存在Niagara的服務(wù)平臺上,我們需要做的是從Niagara獲取數(shù)據(jù),并且儲存在InfluxDB中。下面是實現(xiàn)的流程方法。
我們都需要定義哪些類以及變量?
類/接口 名 | 用途 |
---|---|
Calculator | |
DiscoverEngine | 搜索工具 |
FactorInfo | 定義所采集元素的信息 |
FactorNameDecoderInterface | 元素名稱解碼接口 |
FactorNameDecoderObixUrlImpl | |
NewValueInterface | |
NewValueInterfaceImpl | |
ObixClientMgr | |
ObixClient | |
ObixFetcher | 循環(huán)抓取obix傳輸?shù)臄?shù)據(jù) |
1、遍歷各個點
2、先遍歷各個設(shè)備,將相同的typeid的設(shè)備存入同一個hashmap中
3、開始執(zhí)行主程序,先從數(shù)據(jù)庫中查詢出項目名稱
4、開始搜索!
public class ObixFetcher implements JobInterface{ //這個是接口的抽象方法 public void cycleOnce() { //從數(shù)據(jù)庫中取出項目信息 Listps = dao.selectByExample(new ProjectExample()); //遍歷項目信息,如果項目信息的關(guān)鍵信息不為null for(Project p : ps){ if(p.getObixBaseAddress() != null && p.getObixUsername() != null && p.getObixPassword() != null){ //開啟探索工具 (應(yīng)該還是一個內(nèi)部類),將關(guān)鍵項目信息傳入探索工具, DiscoverEngine de = new DiscoverEngine(p.getObixBaseAddress(), p.getObixUsername(), p.getObixPassword()); //從build數(shù)據(jù)庫中將數(shù)據(jù)取出,存入bulidNameToId(同樣還是構(gòu)造方法) //從device數(shù)據(jù)庫中將數(shù)據(jù)取出,存入deviceNumberToId(同樣還是構(gòu)造方法) de.setNewValueInterface(new NewValueInterfaceImpl(p.getId(), deviceService, deviceDao, deviceTypeDao, buildDao)); //return回來一個FactorInfo de.setFactorNameDecoderInterface(new FactorNameDecoderObixUrlImpl()); de.run(); } } } }