DVS-Server推送振动曲线数据

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
            })
        }