|  |  | 
 |  |  |  | 
 |  |  |     public static void createLen4PUg(byte[] bytes) throws Exception { | 
 |  |  |         int len = bytes.length - 4; | 
 |  |  |         byte[] bs = ByteUtil.int2BCD_LE(len) ; | 
 |  |  |         byte[] bs = ByteUtil.short2Bytes_LE((short)len) ; | 
 |  |  |         if(bs != null && bs.length == 1){ | 
 |  |  |             bytes[1] = 0 ; | 
 |  |  |             bytes[2] = bs[0] ; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static byte[] createCrcTail4Ug(byte[] bsNoTail) throws Exception { | 
 |  |  |         short crc = new CRC16().CRC(bsNoTail, 0, bsNoTail.length -1) ; | 
 |  |  |         int crc = new CRC16().CRC16_table(bsNoTail, 0, bsNoTail.length -1) ; | 
 |  |  |         byte[] crcBs = new byte[4] ; | 
 |  |  |         ByteUtil.int2Bytes_BE(crcBs, crc, 0); | 
 |  |  |         byte[] bytes = new byte[ProtocolConstantV206V1.UG_lenTail] ; | 
 |  |  |         ByteUtil.short2Bytes_BE(bytes, crc, 0); | 
 |  |  |         bytes[0] = crcBs[2] ; | 
 |  |  |         bytes[1] = crcBs[3] ; | 
 |  |  |         bytes[2] = ProtocolConstantV206V1.P_Tail_Byte ; | 
 |  |  |         return bytes ; | 
 |  |  |     } |