一、設(shè)備數(shù)據(jù)流向(設(shè)備上報(bào))
硬件客戶端通過(guò)dtu或者模組上報(bào)數(shù)據(jù),從mqttBroker經(jīng)過(guò)mq轉(zhuǎn)發(fā)到網(wǎng)關(guān)模塊,網(wǎng)關(guān)模塊對(duì)設(shè)備數(shù)據(jù)匹配解析協(xié)議,進(jìn)行數(shù)據(jù)解碼,解碼后數(shù)據(jù)進(jìn)行約定的數(shù)據(jù)計(jì)算,數(shù)據(jù)計(jì)算后,最新一條數(shù)據(jù)將被redis緩存作為前端實(shí)時(shí)數(shù)據(jù),將需要?dú)v史存儲(chǔ)的數(shù)據(jù)持久化到TDengine
簡(jiǎn)化流程如下:
- emq -> mq ->網(wǎng)關(guān) ->數(shù)據(jù)存儲(chǔ)
- netty-mqtt -> mq -> 網(wǎng)關(guān) -> 數(shù)據(jù)存儲(chǔ)

二、指令下發(fā)流程
通過(guò)前端或小程序下發(fā)指令,是通過(guò)http接口,發(fā)送到后端進(jìn)行數(shù)據(jù)編碼后,再發(fā)送至設(shè)備端執(zhí)行
以mqtt下發(fā)指令為例:
后端提供兩個(gè)接口,一個(gè)接口下發(fā)指令并等待設(shè)備響應(yīng)數(shù)據(jù),一個(gè)接口是直接下發(fā)指令不等待設(shè)備響應(yīng)數(shù)據(jù)

下發(fā)的數(shù)據(jù)會(huì)進(jìn)入隊(duì)列,等待隊(duì)列的消費(fèi)者進(jìn)行消費(fèi),消息端會(huì)首先會(huì)匹配設(shè)備的編碼協(xié)議對(duì)下發(fā)的數(shù)據(jù)進(jìn)行編碼,然后根據(jù)設(shè)備的通訊協(xié)議進(jìn)行下發(fā)到對(duì)應(yīng)的服務(wù)端
