|
|
|
|
@ -1,8 +1,10 @@
|
|
|
|
|
package seng302.Networking;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.nio.ByteBuffer;
|
|
|
|
|
import java.nio.ByteOrder;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.zip.CRC32;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Created by hba56 on 21/04/17.
|
|
|
|
|
@ -11,7 +13,7 @@ public class BinaryMesageEncoder {
|
|
|
|
|
private byte[] fullMessage;
|
|
|
|
|
private byte[] header;
|
|
|
|
|
private byte[] message;
|
|
|
|
|
private byte[] crc;
|
|
|
|
|
//private byte[] crc;
|
|
|
|
|
|
|
|
|
|
private byte headerSync1 = (byte)0x47;
|
|
|
|
|
private byte headerSync2 = (byte)0x83;
|
|
|
|
|
@ -46,8 +48,15 @@ public class BinaryMesageEncoder {
|
|
|
|
|
tempMessageByteBuffer.put(this.header);
|
|
|
|
|
tempMessageByteBuffer.put(this.message);
|
|
|
|
|
|
|
|
|
|
//todo fix crc, currently just some int
|
|
|
|
|
tempMessageByteBuffer.put(intToBytes(1));
|
|
|
|
|
CRC32 crc = new CRC32();
|
|
|
|
|
crc.reset();
|
|
|
|
|
byte[] messageAndHeader = new byte[this.header.length + this.message.length];
|
|
|
|
|
System.arraycopy(this.header, 0, messageAndHeader, 0, this.header.length);
|
|
|
|
|
System.arraycopy(this.message, 0, messageAndHeader, this.header.length, this.message.length);
|
|
|
|
|
crc.update(messageAndHeader);
|
|
|
|
|
//System.out.println(Arrays.toString(messageAndHeader));
|
|
|
|
|
|
|
|
|
|
tempMessageByteBuffer.put(intToBytes((int) crc.getValue()));
|
|
|
|
|
this.fullMessage = tempMessageByteBuffer.array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|