diff --git a/src/main/java/seng302/controllers/CanvasController.java b/src/main/java/seng302/controllers/CanvasController.java index 8fc7ed54..21f89ca3 100644 --- a/src/main/java/seng302/controllers/CanvasController.java +++ b/src/main/java/seng302/controllers/CanvasController.java @@ -69,6 +69,7 @@ public class CanvasController { private int frameTimeIndex = 0; private boolean arrayFilled = false; private DecimalFormat decimalFormat2dp = new DecimalFormat("0.00"); + private double lastPacketTime = 0; public AnimationTimer timer; @@ -245,27 +246,27 @@ public class CanvasController { private void move(long id, RaceObject raceObject){ PriorityBlockingQueue movementQueue = StreamParser.boatPositions.get(id); if (movementQueue.size() > 0){ - BoatPositionPacket positionPacket = movementQueue.peek(); - - //this code adds a delay to reading from the movementQueue - //in case things being put into the movement queue are slightly - //out of order - int delayTime = 1000; - int loopTime = delayTime * 10; - long timeDiff = (System.currentTimeMillis()%loopTime - positionPacket.getTimeValid()%loopTime); - if (timeDiff < 0){ - timeDiff = loopTime + timeDiff; - } - if (timeDiff > delayTime) { - try { - positionPacket = movementQueue.take(); - Point2D p2d = latLonToXY(positionPacket.getLat(), positionPacket.getLon()); - double heading = 360.0 / 0xffff * positionPacket.getHeading(); - raceObject.setDestination(p2d.getX(), p2d.getY(), heading, positionPacket.getGroundSpeed(), (int) id); - } catch (InterruptedException e){ - e.printStackTrace(); - } +// BoatPositionPacket positionPacket = movementQueue.peek(); +// +// //this code adds a delay to reading from the movementQueue +// //in case things being put into the movement queue are slightly +// //out of order +// int delayTime = 1000; +// int loopTime = delayTime * 10; +// long timeDiff = (System.currentTimeMillis()%loopTime - positionPacket.getTimeValid()%loopTime); +// if (timeDiff < 0){ +// timeDiff = loopTime + timeDiff; +// } +// if (timeDiff > delayTime) { + try { + BoatPositionPacket positionPacket = movementQueue.take(); + Point2D p2d = latLonToXY(positionPacket.getLat(), positionPacket.getLon()); + double heading = 360.0 / 0xffff * positionPacket.getHeading(); + raceObject.setDestination(p2d.getX(), p2d.getY(), heading, positionPacket.getGroundSpeed(), (int) id); + } catch (InterruptedException e){ + e.printStackTrace(); } +// } } } diff --git a/src/main/java/seng302/models/parsers/StreamParser.java b/src/main/java/seng302/models/parsers/StreamParser.java index deea3184..dce7e172 100644 --- a/src/main/java/seng302/models/parsers/StreamParser.java +++ b/src/main/java/seng302/models/parsers/StreamParser.java @@ -69,21 +69,21 @@ public class StreamParser extends Thread{ StreamPacket packet = StreamReceiver.packetBuffer.peek(); //this code adds a delay to reading from the packetBuffer so //out of order packets have time to order themselves in the queue - int delayTime = 1000; - int loopTime = delayTime * 10; - long transitTime = (System.currentTimeMillis()%loopTime - packet.getTimeStamp()%loopTime); - if (transitTime < 0){ - transitTime = loopTime + transitTime; - } - if (transitTime < delayTime) { - long sleepTime = delayTime - (transitTime); - Thread.sleep(sleepTime); - } +// int delayTime = 1000; +// int loopTime = delayTime * 10; +// long transitTime = (System.currentTimeMillis()%loopTime - packet.getTimeStamp()%loopTime); +// if (transitTime < 0){ +// transitTime = loopTime + transitTime; +// } +// if (transitTime < delayTime) { +// long sleepTime = delayTime - (transitTime); +// Thread.sleep(sleepTime); +// } packet = StreamReceiver.packetBuffer.take(); parsePacket(packet); - Thread.sleep(1); +// Thread.sleep(1); while (StreamReceiver.packetBuffer.peek() == null) { - Thread.sleep(1); +// Thread.sleep(1); } } } catch (Exception e){