基于 webman + GatewayWorker 開(kāi)發(fā)的一個(gè)用于對(duì)接有人物聯(lián)產(chǎn)品的插件應(yīng)用,支持對(duì)接有人 串口服務(wù)器、IO控制器等產(chǎn)品。
備注:
IO控制器 使用 USR-IO424T 進(jìn)行開(kāi)發(fā),支持解析出DI、DO,控制修改DO。
串口服務(wù)器 使用 USR-TCP232-306、USR-W600 進(jìn)行開(kāi)發(fā)。
4G DTU 使用 USR-G776 進(jìn)行開(kāi)發(fā)。
上述未標(biāo)注的設(shè)備型號(hào)由于沒(méi)有設(shè)備未進(jìn)行數(shù)據(jù)交互驗(yàn)證,根據(jù)產(chǎn)品設(shè)計(jì)說(shuō)明書(shū)分析 數(shù)據(jù)交互方面與已有同類型的設(shè)備沒(méi)有區(qū)別
下載源碼放入plugin目錄下,restart重啟webman。
訪問(wèn) http://127.0.0.1:8787/app/usr 會(huì)自動(dòng)進(jìn)入安裝頁(yè)面,按照提示安裝組件,設(shè)置數(shù)據(jù)庫(kù)、Redis配置信息。
安裝配置完成后 關(guān)閉重啟webman
,即可使用。
use plugin\usr\api\Device;
// IO控制器設(shè)置DO
Device::DO(string $code, int $DO, bool $checked);
// 向設(shè)備推送數(shù)據(jù)
Device::send(string $code, string $data);
可以使用WebSocket客戶端實(shí)時(shí)接收設(shè)備發(fā)送數(shù)據(jù),數(shù)據(jù)格式和
WebHooks
完全一致WebSocket 與 WebHooks的區(qū)別:
1、WebSocket 接收的是所有設(shè)備的信息,WebHooks 可設(shè)置一個(gè)地址只接收一個(gè)設(shè)備的信息
2、WebHooks 會(huì)出現(xiàn)延遲,WebSocket 為實(shí)時(shí)轉(zhuǎn)發(fā)
ws = new WebSocket("ws://127.0.0.1:8902/app/<?=config('plugin.usr.usr.websocket_auth')?>");
ws.onopen = function () {
? ? setInterval(() => {
? ? ? ? ws.send('ping');
? ? }, 30000);
};
ws.onmessage = function(e) {
console.log(e.data);
};
{
"event": "DI",
"usr": {
"id": 1,
"name": "USR-IO424T",
"code": "USR63FD6D92D8619",
"model": "USR-IO424T",
"address": 1
},
"data": {
"DI-1": 1,
"DI-2": 1,
"DI-3": 1,
"DI-4": 1,
"DI-5": 0,
"DI-6": 0,
"DI-7": 0,
"DI-8": 0
}
}
整個(gè)數(shù)據(jù)包為
JSON
數(shù)據(jù)
|參數(shù)名|類型|說(shuō)明|
|:---- ? ?|:----- |----- ? |
|event |string | 事件 ? ?|
|usr |array | 設(shè)備信息 ? ?|
|data |array / string | 數(shù)據(jù) ? ?|
USR-IO424T
USR-TCP232-306
USR-W600
USR-G776