由于公司是做自動售賣機系統(tǒng)的,所以最近在做Java的過程中接觸到了后臺與機臺端的一系列的通訊,想記錄下自己的一點心得和想法,拋磚引玉,有相關(guān)技術(shù)的牛人還請多多指教。
首先我先介紹一下DTU這個概念,DTU是專門用于將串口數(shù)據(jù)轉(zhuǎn)換為IP數(shù)據(jù)或?qū)P數(shù)據(jù)轉(zhuǎn)換為串口數(shù)據(jù)通過無線通信網(wǎng)絡(luò)進行傳送的無線終端設(shè)備,可能這個概念有點籠統(tǒng),我理解的是將機器端的指令通過DTU轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)發(fā)送給服務(wù)器端,相應(yīng)的后臺發(fā)送相應(yīng)信息,DTU負責(zé)接收轉(zhuǎn)化并傳輸?shù)綑C臺端進行處理。
介紹了DTU的概念之后,接下來來說一下我們后臺與機器端的通訊的相關(guān)流程。
舉個例子來說,后臺想要發(fā)送一個指令給機臺端讓機臺端出貨。
1.首先,后臺與機臺端開發(fā)人員商定好一個通訊規(guī)則并且按照DTU協(xié)議封裝,然后后臺發(fā)送消息將其遞交給TCP服務(wù)。
2.將消息發(fā)送到TCP服務(wù)后,TCP封裝數(shù)據(jù)。
3.TCP服務(wù)將封裝好的數(shù)據(jù)推送給DTU。
4.DTU再根據(jù)DTU協(xié)議來解析數(shù)據(jù)。
5.設(shè)備接收到指令,找到相對應(yīng)的指令,然后執(zhí)行相應(yīng)的操作。
在設(shè)備收到相應(yīng)消息之后這整個流程并沒有結(jié)束,機臺端還要向后臺發(fā)送一個反饋,反饋是否出貨成功的指令。具體流程如下:
1.設(shè)備返回響應(yīng)結(jié)果給DTU。
2.DTU根據(jù)相應(yīng)協(xié)議封裝數(shù)據(jù)信息。
3.DTU將封裝好的數(shù)據(jù)信息發(fā)送到TCP服務(wù)。
4.TCP服務(wù)收到反饋信息后,然后根據(jù)協(xié)議解析相應(yīng)數(shù)據(jù)。
5.最后將解析后的數(shù)據(jù)發(fā)送給后臺。
可以參照下圖進行理解。
后臺與機臺端的通訊流程大致就是這樣,畢竟初學(xué)者,可能有一些地方理解的不到位,望大家海涵。
一切安好,便是晴天。
Tank