From 4dd173261c0823e0cb243a7bdc7403dea9d7289f Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Fri, 21 Apr 2017 12:24:21 +1200 Subject: [PATCH] Added functions to the RaceVisionByteEncoder - Encodes Race Status - Encodes displayTextMessage - Encodes raceStartStatus - Encodes yachtEventCode #story[778] --- .../{Model => Networking}/RaceMessage.java | 0 .../RaceVisionByteEncoder.java | 43 +++++++++++++++++++ 2 files changed, 43 insertions(+) rename src/main/java/seng302/{Model => Networking}/RaceMessage.java (100%) rename src/main/java/seng302/{Model => Networking}/RaceVisionByteEncoder.java (80%) diff --git a/src/main/java/seng302/Model/RaceMessage.java b/src/main/java/seng302/Networking/RaceMessage.java similarity index 100% rename from src/main/java/seng302/Model/RaceMessage.java rename to src/main/java/seng302/Networking/RaceMessage.java diff --git a/src/main/java/seng302/Model/RaceVisionByteEncoder.java b/src/main/java/seng302/Networking/RaceVisionByteEncoder.java similarity index 80% rename from src/main/java/seng302/Model/RaceVisionByteEncoder.java rename to src/main/java/seng302/Networking/RaceVisionByteEncoder.java index 4f71bed6..b30f878d 100644 --- a/src/main/java/seng302/Model/RaceVisionByteEncoder.java +++ b/src/main/java/seng302/Networking/RaceVisionByteEncoder.java @@ -1,7 +1,10 @@ package seng302.Model; +import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; +import java.nio.charset.Charset; import java.util.ArrayList; +import java.util.Arrays; /** * Created by fwy13 on 19/04/17. @@ -117,6 +120,46 @@ public class RaceVisionByteEncoder { return result.array(); } + public byte[] yachtEventCode(long time, short acknowledgeNumber, int raceID, int destSourceID, int incidentID, + int eventID){ + int messageVersion = 0b10; + byte[] encodeTime = convert(time, 6); + short ackNum = acknowledgeNumber; + int raceUID = raceID;//TODO chekc if this is an into for a 4 char string. + int destSource = destSourceID; + int incident = incidentID; + byte[] event = convert(eventID, 1); + + ByteBuffer result = ByteBuffer.allocate(22); + result.put(convert(messageVersion, 1)); + result.put(encodeTime); + result.putShort(ackNum); + result.putInt(raceUID); + result.putInt(destSource); + result.putInt(incident); + result.put(event); + return result.array(); + } +/* + public byte[] chatterText(int messageType, String message){ + int messageVersion = 0b1; + byte[] type = convert(messageType, 1); + byte[] length = convert(message.length(), 1); + byte[] messageBytes = message.getBytes(Charset.forName("UTF-8")); + + //byte[] text = + return; + }*/ +/* + public byte[] convert(String s, int size){ + byte[] m = s.getBytes(Charset.forName("UTF-8")); + int length = m.length; + if (length > 255){ + length = 255; + } + byte[] result = Arrays.copyOfRange(m, 0, length + 1); + } +*/ public byte[] convert(int n, int size){ byte[] result; if (size > 4){