From 081d7e3dcb2f426109963681d34216163e777f38 Mon Sep 17 00:00:00 2001 From: Kusal Ekanayake Date: Mon, 15 May 2017 14:52:57 +1200 Subject: [PATCH] Fixed the parsing of bytes being off by one byte in the stream parser fr the race status packet. #story[924] #pair[kre39,zyt10] --- src/main/java/seng302/App.java | 4 +++- src/main/java/seng302/models/Yacht.java | 8 ++++---- src/main/java/seng302/models/parsers/StreamParser.java | 8 ++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/seng302/App.java b/src/main/java/seng302/App.java index 1a400afd..60f22080 100644 --- a/src/main/java/seng302/App.java +++ b/src/main/java/seng302/App.java @@ -62,7 +62,9 @@ public class App extends Application } //Change the StreamReceiver in this else block to change the default data source. else{ - sr = new StreamReceiver("localhost", 4949, "RaceStream"); + sr = new StreamReceiver("livedata.americascup.com", 4941, "RaceStream"); + +// sr = new StreamReceiver("localhost", 4949, "RaceStream"); } sr.start(); diff --git a/src/main/java/seng302/models/Yacht.java b/src/main/java/seng302/models/Yacht.java index 68970268..31871684 100644 --- a/src/main/java/seng302/models/Yacht.java +++ b/src/main/java/seng302/models/Yacht.java @@ -114,10 +114,10 @@ public class Yacht { this.penaltiesServed = penaltiesServed; } - public Long getEstimateTimeAtNextMark() { -// DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); -// return format.format(estimateTimeAtNextMark); - return estimateTimeAtNextMark; + public String getEstimateTimeAtNextMark() { + DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + return format.format(estimateTimeAtNextMark); +// return estimateTimeAtNextMark; } public void setEstimateTimeAtNextMark(Long estimateTimeAtNextMark) { diff --git a/src/main/java/seng302/models/parsers/StreamParser.java b/src/main/java/seng302/models/parsers/StreamParser.java index deea3184..ab15722b 100644 --- a/src/main/java/seng302/models/parsers/StreamParser.java +++ b/src/main/java/seng302/models/parsers/StreamParser.java @@ -236,11 +236,11 @@ public class StreamParser extends Thread{ Yacht boat = boats.get((int)(long) boatStatusSourceID); boat.setBoatStatus((int)payload[28 + (i * 20)]); boat.setLegNumber((int)payload[29 + (i * 20)]); - boat.setPenaltiesAwarded((int)payload[29 + (i * 20)]); - boat.setPenaltiesServed((int)payload[30 + (i * 20)]); - Long estTimeAtNextMark = bytesToLong(Arrays.copyOfRange(payload,31 + (i * 20),37+ (i * 20))); + boat.setPenaltiesAwarded((int)payload[30 + (i * 20)]); + boat.setPenaltiesServed((int)payload[31 + (i * 20)]); + Long estTimeAtNextMark = bytesToLong(Arrays.copyOfRange(payload,32 + (i * 20),38+ (i * 20))); boat.setEstimateTimeAtNextMark(estTimeAtNextMark); - Long estTimeAtFinish = bytesToLong(Arrays.copyOfRange(payload,37 + (i * 20),43+ (i * 20))); + Long estTimeAtFinish = bytesToLong(Arrays.copyOfRange(payload,38 + (i * 20),44+ (i * 20))); boat.setEstimateTimeAtFinish(estTimeAtFinish); boatsPos.put(estTimeAtFinish, boat); // String boatStatus = "SourceID: " + boatStatusSourceID;