3 import java
.nio
.ByteBuffer
;
5 /** 8-bit Cyclic Redundancy Check */
9 System
.loadLibrary("a");
13 static final native void clinit();
15 final native void init(byte poly
, boolean reversed
);
18 * construct a new {@link crc8} object
20 * @param poly polynomial that is CRC's divisor
22 public crc8(byte poly
) {
27 * construct a new {@link crc8} object
29 * @param poly polynomial that is CRC's divisor
30 * @param reversed is reversed?
32 public crc8(byte poly
, boolean reversed
) {
37 * get table for 8-bit Cyclic Redundancy Check
39 * @return filter coefficient [0,1]
41 public final native byte[] table();
44 * generate for 8-bit Cyclic Redundancy Check
46 * @param poly polynomial that is CRC's divisor
47 * @param reversed is reversed?
48 * @return {@link crc8}
50 public final native crc8
gen(byte poly
, boolean reversed
);
53 * calculate for 8-bit Cyclic Redundancy Check
55 * @param block block to be processed
56 * @param value initial value
57 * @return output value
59 public final native byte eval(byte[] block
, byte value
);
62 * calculate for 8-bit Cyclic Redundancy Check
64 * @param block block to be processed
65 * @return output value
67 public byte eval(byte[] block
) {
68 return eval(block
, (byte) 0);
72 * pack a block and its CRC-8 value
74 * @param block block to be processed
75 * @param value initial value
76 * @return packed block
78 public final native byte[] pack(byte[] block
, byte value
);
81 * pack a block and its CRC-8 value
83 * @param block block to be processed
84 * @return packed block
86 public byte[] pack(byte[] block
) {
87 return pack(block
, (byte) 0);