From 23dfc6a6bfe43cb77cbe2ff91316c3216b50930f Mon Sep 17 00:00:00 2001 From: Erika Savell Date: Thu, 4 May 2017 10:34:25 +1200 Subject: [PATCH 1/4] Fixed annotation toggles displaying behind course #story[782] --- .../java/seng302/Networking/Utils/BoatLocationMessage.java | 2 -- .../src/main/java/seng302/Controllers/RaceController.java | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java b/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java index 4f236747..cfedde63 100644 --- a/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java +++ b/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java @@ -190,8 +190,6 @@ public class BoatLocationMessage extends AC35Data int coordinateInt = (int) ((coordinate / 180.0) * 2147483648.0); return coordinateInt; - - } /** diff --git a/visualiser/src/main/java/seng302/Controllers/RaceController.java b/visualiser/src/main/java/seng302/Controllers/RaceController.java index b893b3ad..e1195dab 100644 --- a/visualiser/src/main/java/seng302/Controllers/RaceController.java +++ b/visualiser/src/main/java/seng302/Controllers/RaceController.java @@ -6,8 +6,10 @@ import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.ObservableList; import javafx.fxml.FXML; +import javafx.scene.Node; import javafx.scene.control.*; import javafx.scene.layout.GridPane; +import org.w3c.dom.NodeList; import org.xml.sax.SAXException; import seng302.Mock.StreamedRace; import seng302.Model.*; @@ -129,7 +131,7 @@ public class RaceController extends Controller { raceMap.drawRaceMap(); raceMap.setVisible(true); - canvasBase.getChildren().add(raceMap); + canvasBase.getChildren().add(0, raceMap); race.setVisible(true); //Initialize save annotation array, fps listener, and annotation listeners From e43353c3221ee8b58dd9dbbfa59bda4d5174f5a7 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Thu, 4 May 2017 12:10:13 +1200 Subject: [PATCH 2/4] Boat table and positions now update. #story[782] --- visualiser/src/main/java/seng302/Mock/StreamedRace.java | 8 ++++++++ visualiser/src/main/java/seng302/Model/Race.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/visualiser/src/main/java/seng302/Mock/StreamedRace.java b/visualiser/src/main/java/seng302/Mock/StreamedRace.java index 90f79355..d0eb7d59 100644 --- a/visualiser/src/main/java/seng302/Mock/StreamedRace.java +++ b/visualiser/src/main/java/seng302/Mock/StreamedRace.java @@ -58,6 +58,14 @@ public class StreamedRace extends Race { int legNumber = boatStatusMessage.getLegNumber(); + if (legNumber == 0) { + boat.setCurrentLeg(new Leg("Prestart", -1)); + } + + if (legNumber >= 1 && legNumber < legs.size()) { + boat.setCurrentLeg(legs.get(legNumber)); + } + if (boatStatus == BoatStatus.DNF) { boat.setDnf(true); } else if (boatStatus == BoatStatus.FINISHED || legNumber > raceData.getLegs().size()) { diff --git a/visualiser/src/main/java/seng302/Model/Race.java b/visualiser/src/main/java/seng302/Model/Race.java index 6cdd435b..edc40181 100644 --- a/visualiser/src/main/java/seng302/Model/Race.java +++ b/visualiser/src/main/java/seng302/Model/Race.java @@ -247,7 +247,7 @@ public abstract class Race implements Runnable { for(Boat boat: startingBoats) { if(boat != null) { boat.setPosition(Integer.toString(startingBoats.indexOf(boat) + 1)); - if (boat.getCurrentLeg().getName().equals("DNF") || boat.getCurrentLeg().getLegNumber() == 0) + if (boat.isDnf() || !boat.isStarted() || boat.getCurrentLeg().getLegNumber() < 0) boat.setPosition("-"); } } From 94ad164a457759eda7d0e0af0e4ea78b37182af7 Mon Sep 17 00:00:00 2001 From: Joseph Gardner Date: Thu, 4 May 2017 12:11:36 +1200 Subject: [PATCH 3/4] Boat table and positions now update. #story[782] --- visualiser/src/main/java/seng302/Mock/StreamedRace.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/visualiser/src/main/java/seng302/Mock/StreamedRace.java b/visualiser/src/main/java/seng302/Mock/StreamedRace.java index d0eb7d59..27839f76 100644 --- a/visualiser/src/main/java/seng302/Mock/StreamedRace.java +++ b/visualiser/src/main/java/seng302/Mock/StreamedRace.java @@ -58,10 +58,6 @@ public class StreamedRace extends Race { int legNumber = boatStatusMessage.getLegNumber(); - if (legNumber == 0) { - boat.setCurrentLeg(new Leg("Prestart", -1)); - } - if (legNumber >= 1 && legNumber < legs.size()) { boat.setCurrentLeg(legs.get(legNumber)); } From cfa6ba1c3f4ea16c4bb0446059806a35bf388718 Mon Sep 17 00:00:00 2001 From: Erika Savell Date: Thu, 4 May 2017 12:25:50 +1200 Subject: [PATCH 4/4] Fixed speed notbeing displayed from AC35 live data - Turns out the AC35 stream gives the speed in the SOG (speed over ground) section, not the boat speed section #story[782] --- .../Networking/MessageDecoders/BoatLocationDecoder.java | 3 +++ .../java/seng302/Networking/Utils/BoatLocationMessage.java | 2 +- visualiser/src/main/java/seng302/Mock/StreamedRace.java | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/network/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java index 91c8088c..e2352640 100644 --- a/network/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java +++ b/network/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java @@ -61,6 +61,9 @@ public class BoatLocationDecoder { currentSet = Arrays.copyOfRange(encodedBoatLocation,52, 54); rudderAngle = Arrays.copyOfRange(encodedBoatLocation,54, 56); +// System.out.println(bytesToInt(sourceID)); +// System.out.println(bytesToInt(boatSpeed)); + message = new BoatLocationMessage(messageVersionNumber, bytesToLong(time), bytesToInt(sourceID), bytesToInt(seqNum), deviceType, bytesToInt(latitude), diff --git a/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java b/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java index cfedde63..2a60a528 100644 --- a/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java +++ b/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java @@ -166,7 +166,7 @@ public class BoatLocationMessage extends AC35Data this.roll = 0; this.boatSpeed = convertBoatSpeedDoubleToInt(boatSpeed); this.boatCOG = 0; - this.boatSOG = 0; + this.boatSOG = convertBoatSpeedDoubleToInt(boatSpeed); this.apparentWindSpeed = 0; this.apparentWindAngle = 0; this.trueWindSpeed = 0; diff --git a/visualiser/src/main/java/seng302/Mock/StreamedRace.java b/visualiser/src/main/java/seng302/Mock/StreamedRace.java index 90f79355..eeef8443 100644 --- a/visualiser/src/main/java/seng302/Mock/StreamedRace.java +++ b/visualiser/src/main/java/seng302/Mock/StreamedRace.java @@ -84,7 +84,7 @@ public class StreamedRace extends Race { double lon = boatLocationMessage.getLongitudeDouble(); boat.setCurrentPosition(new GPSCoordinate(lat, lon)); boat.setHeading(boatLocationMessage.getHeadingDegrees()); - boat.setVelocity(boatLocationMessage.getBoatSpeed() * MMPS_TO_KN); + boat.setVelocity(boatLocationMessage.getBoatSOG() * MMPS_TO_KN); } }