示例#1
0
  public DPacketParser(
      int pktSingal,
      int pktDataRow,
      int pktDataColumn,
      int[] pktDataColumnType,
      int[] pktDataColumnLength,
      byte[] pktData) {
    this.pktSignal = pktSingal;
    this.pktDataRow = pktDataRow;
    this.pktDataColumn = pktDataColumn;
    this.pktDataColumnType = pktDataColumnType;
    this.pktDataColumnLength = pktDataColumnLength;
    //	System.out.println(ByteHexUtil.bytesToHexString(pktData));
    this.pktData = JzilbHelp.jzlib(pktData);

    this.pktLength = 20 + this.pktDataColumn * 4 * 2 + this.pktData.length + 6; // 报文长度

    // System.out.println(ByteHexUtil.bytesToHexString(this.pktData));
    // this.pktData = pktData;
    ByteArrayOutputStream bis = new ByteArrayOutputStream();

    try {
      bis.write(ByteHexUtil.intToByte(this.pktHead));
      bis.write(ByteHexUtil.intToByte(this.pktLength));
      bis.write(ByteHexUtil.intToByte(this.pktSignal));
      bis.write(ByteHexUtil.intToByte(this.pktDataRow));
      bis.write(ByteHexUtil.intToByte(this.pktDataColumn));
      for (int ii = 0; ii < this.pktDataColumn; ii++) {
        bis.write(ByteHexUtil.intToByte(pktDataColumnType[ii]));
      }
      for (int ii = 0; ii < this.pktDataColumn; ii++) {
        bis.write(ByteHexUtil.intToByte(pktDataColumnLength[ii]));
      }
      bis.write(this.pktData);
      this.pktCheck = packetCheck(bis.toByteArray());

      bis.write(this.pktCheck);
      bis.write(this.pktVersion);
      bis.write(ByteHexUtil.intToByte(this.pktEnd));

      this.pktBuffer = bis.toByteArray();

    } catch (Exception e) {
      e.printStackTrace();
    }
  }