js如何解析国网698报文?

新手上路,请多包涵

image.png
如图所示 报文如何用js去解析得到想要的结果

阅读 2k
1 个回答

js读取报文(文件读取或请求),将数据转为arrayBuffer(如Uint8Array), 然后根据国网698协议规范,逐个读取不同字节位置上的数据,赋值给代表其含义的自定义属性。


很抱歉我没有时间写一个简单的例子,但你可以参考我之前写过的解析rtsp报文的代码:

class RTSP {
  constructor(buf) {
    if(!buf instanceof ArrayBuffer){
      throw new TypeError("param buf is not ArrayBuffer")
    }
    const dataView = new DataView(buf.buffer);
    /**
     * 0 Video RTP
     * 1 Video RTCP
     * 2 Audio RTP
     * 3 Audio RTCP
     */
    this.channelId = dataView.getUint8(1)
    /**
     * RTP包的大小
     */
    this.dataLength = dataView.getUint16(2)
    // const one = (dataView.getUint8(2) << 8) + dataView.getUint8(3) 

    // 从第5个字节开始读取RTP包
    this.data = buf.subarray(4, 4 + this.dataLength)

  }
}

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题