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