2023年07月30日 00:10
ws://{websocket_server_ip:8082}/dvs/{DeviceId}
功能描述:
上报DVS设备的振动曲线数据,表示光纤上每个监测点的振动值,采用WebSocket协议传输。
调用方向:
DVS-Server--> WebSocket Server -->Application Service UI 浏览器
二进制数据帧格式:
帧头(2字节) | 帧长度(2字节) | 设备ID(2字节) | 数据(无符号16位整型) | 帧尾(2字节) |
---|---|---|---|---|
0x5005 | 0xxxxx | 0x1234 | …… | 0x0a0a |
Application Service UI 浏览器中接收数据:
var wshost = "210.xx.x.x"; //websocket server的地址
var DeviceId = "100001"; //设备ID
var ws = new WebSocket(wshost+'/dvs/'+DeviceId+'/ui');
//解析二级制数据
parseBlob(blob, callback) {
var _this = this
var reader = {
readAs: function(type,blob,cb){
var r = new FileReader();
r.onloadend = function(){
if(typeof(cb) === 'function') {
cb.call(r,r.result);
}
}
try{
r['readAs'+type](blob);
}catch(e){}
}
}
var shortVar;
//去掉帧头帧尾
reader.readAs('ArrayBuffer',blob.slice(6, blob.size-2),function(result){
shortVar = new Int16Array(result);
var list = [], val = [];
for(var i=0; i<shortVar.length; i ++) {
list.push(i)
val.push(shortVar[i])
}
var obj = {
'categoryData': list,
'valueData': val
}
//_this.refreshData(obj)
callback(obj)
});
}
ws.onmessage = function(e) {
_this.parseBlob(e.data, function (v) {
//更新瀑布图,推荐echarts组件。
//https://echarts.apache.org/examples/zh/editor.html?c=bar-large
})
}