bacnet,java
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
java bacnet是什麼,讓我們一起了解一下?
BACnet協議是樓宇自動化中的一種常用協議,BACnet通信協議中定義了幾種不同的數據鏈接層和物理層,在Java應用中,通過BACnet協議的智能建築進行遠程控制。
那麼基於Java及BACnet協議的智能建築遠程控制,如何實現遠程移動設備與BACnet設備的通訊?
這裏我們採用間接連接的方法,即以互聯網為中介,移動設備與BACnet設備分別與一台連在互聯網上的服務器相連接。
服務器監聽到遠程設備對其的指令後進行省份驗證以及相關分析,然後把命令BACnet設備執行相應的指令,得到執行結果後再回傳給遠程設備。
而在MIDP中這些接口被實現,使得MIDP可以通過http協議來請求互聯網的服務,但是基於靈活性以及本文所討論內容的特殊性,我們還是放棄方便的http協議,直接使用底層的socket連接。這樣做的好處有兩點:
1、便於自定義與BACnet設備配套的數據結構。
2、可以在客户端(即移動端)對所發送的設備進行加密,增強安全性。
Java如何對接bacnet?
引入jar包:
<!--bacnet4j--> <dependency> <groupId>bacnet4j</groupId> <artifactId>bacnet4j</artifactId> <version>5.0.2</version> </dependency> <!-- https://mvnrepository.com/artifact/ai.serotonin.oss/sero-warp --> <dependency> <groupId>ai.serotonin.oss</groupId> <artifactId>sero-warp</artifactId> <version>1.0.0</version> </dependency> <!-- https://mvnrepository.com/artifact/ai.serotonin.oss/sero-scheduler --> <dependency> <groupId>ai.serotonin.oss</groupId> <artifactId>sero-scheduler</artifactId> <version>1.1.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mockito/mockito-core --> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.7.22</version> <scope>test</scope> </dependency>