Commit Graph
69 Commits
Author SHA1 Message Date
Jessica McAuslin cf0adb8511 Fixed JavaDoc, spelling errors, and redundant classes
- Removed some default templates (eg: created by X)
- Wrote JavaDoc for classes that had none
- Made JavaDoc more clear for classes
- Linked JavaDoc to other classes
- Minor spelling errors fixed
- BoatInRace and BoatInRaceTest commented out (to be removed)

#story[1003]
2017-06-28 20:37:01 +12:00
Jessica McAuslin 2bbcb10458 Removed unused classes and imports
- Removed references to Constants class from other classes and tests
- ArrowController, Constants, Regatta removed
- Removed imports from various classes no longer used

#story[1003]
2017-06-26 22:29:30 +12:00
Fan-Wu Yang 512169010c Fixed Annotations and bound windarrow
- Wind arrow for the bermuda race is bound between 215 and 235 degrees
- annotations will not correctly highlight what they are showing
#story[877] #story[882]
2017-05-25 14:45:13 +12:00
Fan-Wu Yang b9b03305b0 Fixed Annotations and bound windarrow
- Wind arrow for the bermuda race is bound between 215 and 235 degrees
- annotations will not correctly highlight what they are showing
#story[877] story[882]
2017-05-25 14:34:29 +12:00
Joseph Gardner e5ae2543f8 removed unneeded print statement and fixed incorrect comment (minor (2 lines)) 2017-05-25 14:30:12 +12:00
fjc40 1bd9fdd931 Merge remote-tracking branch 'origin/sprint4_master' into story36_boundary_fix_attempt_2
# Conflicts:
#	mock/src/main/java/seng302/Model/Race.java
Resolved.

Also reverted the change to the prestart and preparatory time, as they had gotten flipped around (prestart is > 3min to start, preparatory is < 1 min to start).
2017-05-25 14:04:06 +12:00
cbt24 b58c3b98ed Integrated changes from story33-estimateTime branch
- Used refactored bearing methods
- Sent accurate current time to visualiser

#story[875]
2017-05-25 12:53:40 +12:00
fjc40 8273cd5167 Merge branch 'sprint4_master' into story36_boundary_fix_attempt_2 2017-05-25 12:49:18 +12:00
Fan-Wu Yang a3ccd75f4c Merge remote-tracking branch 'origin/sprint4_master' into Story877
# Conflicts:
#	mock/src/main/java/seng302/DataInput/BoatXMLReader.java
#	mock/src/main/java/seng302/DataInput/XMLReader.java
#	mock/src/main/java/seng302/Model/Boat.java
#	mock/src/main/java/seng302/Model/CompoundMark.java
#	mock/src/main/java/seng302/Model/Leg.java
#	mock/src/main/java/seng302/Model/Mark.java
#	mock/src/main/java/seng302/Model/Marker.java
#	mock/src/main/java/seng302/Model/Race.java
#	mock/src/test/java/seng302/Model/LegTest.java
#	visualiser/src/main/java/seng302/Controllers/RaceController.java
#	visualiser/src/main/java/seng302/Mock/StreamedRace.java
#	visualiser/src/main/java/seng302/Model/ResizableRaceCanvas.java
#	visualiser/src/main/resources/scenes/race.fxml
2017-05-24 22:57:31 +12:00
fjc40 824a5ed3a2 Merge branch 'boat_boundarty_fix' into story36
# Conflicts:
#	mock/src/main/java/seng302/Model/Race.java
Resolved.
2017-05-23 18:35:39 +12:00
Fan-Wu Yang 671d62aeb1 Added Important and Partial Annotations and other refactors and documentation.
- Important, Partial, Hidden, Visible are all radiobuttons
- Fixed bug where the Visualiser would end the race before the last boat had finished
- Refactored the visualiser and the mock to use the race finished status message
- Added and Changed many Javadocs
#story[877]
2017-05-22 03:51:14 +12:00
fjc40 c011ccb11b Did some minor refactoring of Mock module...
Added comments/documentation to most classes.
Cleaned up heaps of repeated code, dead code, redundant stuff, etc...

Mock.App:
Now actually exits the program if catastrophic errors occur, rather than silently doing nothing.

Mock.Constants:
Added race prestart and preparatory times.
Removed TEST_VELOCITIES.

Mock.PolarParser:
Now uses Bearing class.

Mock.Angle:
Now implements the Comparable interface.
Also supports .equals.

Mock.Azimuth and Bearing:
Can convert between them easily.

Mock.Boat:
Now uses Bearing, and has some helper functions like setVMG, calculateMetersTravelled(time), moveforwards(distance, time).

Mock.Marker:
Removed. This wasn't really used, and was redundant.

Mock.GPSCoordinate:
Moved a lot of helper GPS related functions into the GPSCoordinate class, instead of being scattered around the codebase.

Mock.Polars:
Polars now uses Bearing.

Mock.VMG:
Now uses Bearing.

Mock.Race:
Added a RaceStatusEnum member.
Added a RaceTypeEnum member.
Now uses Bearing/Azimuth.
Moved the message creation/sending into their own functions.
The RaceStatus updates correctly through out the race (Prestart, Warning, Preparatory, Started, Finished).

Network.RaceStatusEnum:
Added race status enum.

Network.RaceTypeEnum:
Added.
2017-05-19 16:12:47 +12:00
fjc40 60458f0f7a Merge commit '7990ac9d2ee8c71d50606813e21a0674f442464f' into story31.2_alternateTack.
This commit (7990ac9d2e) was the commit from master that story49 was merged into.
Everything appears to be working.

# Conflicts:
#	mock/src/main/java/seng302/App.java
#	mock/src/main/java/seng302/Constants.java
#	mock/src/main/java/seng302/DataInput/RaceXMLReader.java
#	mock/src/main/java/seng302/DataInput/RegattaXMLReader.java
#	mock/src/main/java/seng302/Model/Boat.java
#	mock/src/main/java/seng302/Model/Event.java
#	mock/src/main/java/seng302/Model/Race.java
#	mock/src/test/java/seng302/Data/BoatDataTest.java
#	mock/src/test/java/seng302/Data/RaceDataTest.java
#	mock/src/test/java/seng302/Model/BoatTest.java
#	mock/src/test/java/seng302/Model/RaceXMLTest.java
#	visualiser/src/main/java/seng302/Controllers/StartController.java
#	visualiser/src/main/java/seng302/RaceXMLReader.java
Manually resolved conflicts. :(
2017-05-18 13:44:02 +12:00
Fan-Wu Yang c0bc2b2c1e Merged Mock49 and fixed bugs
- Error where mock would not read in the files when running from the jar.
- Error where the AC35 stream now no longer sends us packets with information that is set for 0 for boat location.
#story[881] #pair[fwy13, esa46]
2017-05-15 15:53:49 +12:00
Fan-Wu Yang b065b8d9c7 Merged Mock49 and fixed bugs
- Error where mock would not read in the files when running from the jar.
- Error where the AC35 stream now no longer sends us packets with information that is set for 0 for boat location.
#story[881] #pair[fwy13, esa46
2017-05-15 15:49:38 +12:00
fjc40 f4d5df9df2 Mock.Polars:
Fixed a bug where calculateVMG was placing velocity into the VMG object, instead of speed.
Maybe fixed a bug when a bearingLowerBound which is greater than bearingUpperBound is provided.
Added another test case.

Mock.Constants:
Added knots to millimeters per second conversion factor.

Mock.Boat:
Added calculateDIstanceToNextMarker function, which returns the distance, in nautical miles, to the next mark.

Mock.Race:
Added wind direction as a race property.
Added wind speed as a race property.
The race status messages sent by Race now use Race's wind speed and direction.

#story[873]
2017-05-14 22:34:05 +12:00
Fan-Wu Yang 294627074d Commented out throws in the BinaryMessageDecoder for messages we ignore as they were not errors and instead were causing the program to stop if they're received
- commented out throw from default, chatter text, yachactioncode, yachteventcode, displaytextmessage states
#story[881]
2017-05-14 16:13:37 +12:00
Joseph Gardner e1ba2ae5b6 Now reads course wind direction from the live stream, so the wind arrow now changes when the wind changes. #story[882] 2017-05-08 17:23:55 +12:00
fjc40 b247244665 Did some large tidy ups, refactoring, and documenting.
Network:
Moved the Network message classes from the Utils package to the Messages package.
Renamed BoatLocationMessage to BoatLocation and BoatStatusMessage to BoatStatus to be consistent with other message classes.
Renamed the BoatStatus enumeration to BoatStatusEnum as it conflicted with BoatStatus (the message).
Moved the BoatStatusEnum and MessageType enumerations from the Utils package to the Messages/Enums package.
Changed the BoatStatusEnum and MessageType enumerations to use map look ups in the enum.fromByte(b) method - this means that there's less copy and pasted values, and the fromByte function doesn't need to be modified if new enumerations are added.
Added a sequenceNumber member to the Heartbeat class.
Added an InvalidMessageException in the package Networking/Exceptions. This is thrown when a message is read, but it is invalid in some way.
Refactored/tidied up the Networking/BinaryMessageEncoder and Decoder classes. The decoder throws InvalidMessageExceptions instead of returning null.

Visualiser:
VisualiserInput now wraps a DataInputStream around the socket. This provides the stream.readFully(buffer) function, which is a blocking read, removing the need for busy wait loops. Replaced the getBytes() function with getNextMessage() and getNextMessageBytes(). These read the next message from the socket, and return it as a message object and a byte array, respectively.
Changed the current heartbeat timeout to 10 seconds. Added some work-in-progress code to attempt to reconnect when connection is lost. It currently doesn't work. I think Fan-Wu was doing a proper implementation, however.
VisualiserInput also has a queue of received events. Currently not really used, but could be useful in the future. Events get added as they are read.
Changed VisualiserInputs main loop to use instanceOf instead of switch+case. Feedback wanted - are there any downsides to using this instanceOf method?

#story[778,782]
2017-05-08 03:29:33 +12:00
fjc40 83ce9b99d2 Mockoutput's main loop now pops messages off the message queue, rather than iterating over it like an array, and clearing it (this could have threading issues where the iteration starts (with e.g., 5 messages), as it is sending the messages another one is added, and then it ends up clearing the sent messages, and the unsent message.
Made a few quick fixes (to be tidied a bit later) to Mock.Race class. It now has this.startTime, instead of the AnimationTimers having their own starTime value. RaceStatus messages are now sent properly (still need a refactor though), so they actually send the race star time - this means that the visualizer using the mock data source displays the correct time instead of (midnight, jan 1, 1970).

Removed one of the constructors from RaceStatus - it allowed for constructing and sending essentially invalid RaceStatus messages, and simply wasn't needed.

Added a temporary title ("RaceVision - Team 7") to the visualiser - may be worth changing when we decide on a team name.

Fixed a bug with the order of operations in visualiser.StartController.countdownTimer(). Calling begin race before hiding panes caused them to never be hidden.

Mock.Event. Changed the scaleFactor to 5x for the time being - to easier testing of things like pre-race timers, countdowns, etc...

#story[778,782]
2017-05-07 15:52:34 +12:00
cbt24 f27dbc29b0 Added self-documenting RaceStatus boolean getters
- Deprecated RaceStatus.getRaceStatus

#story[782]
2017-05-06 19:06:37 +12:00
Fan-Wu Yang 037c09b059 Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into splitIntoTwoModules 2017-05-04 13:42:28 +12:00
Fan-Wu Yang bb57685faf Added Test for AC35UnitConverter
- Added tests to make sure it was working properly
#story[782]
2017-05-04 13:40:43 +12:00
hba56 62ecd40967 fixed all java doc errors
#story[782]
2017-05-04 13:40:37 +12:00
Erika Savell cfa6ba1c3f 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]
2017-05-04 12:25:50 +12:00
Erika Savell 23dfc6a6bf Fixed annotation toggles displaying behind course
#story[782]
2017-05-04 10:34:25 +12:00
Erika Savell eb58581e83 Fixed velocity issues with mock data
-Was accidentally sending scaled velocity

#story[778]
2017-05-04 10:16:10 +12:00
Erika Savell b9901a252a Moved speed conversion to BoatMessage class
#story[778]
2017-05-03 21:01:30 +12:00
Erika Savell d2e08fa8e1 Added boat velocity to information provided by mock
#story[778]
2017-05-03 20:36:43 +12:00
Erika Savell 049f0f7331 Changed main loop so boats are looped through with a different starting boat
-This was necessary because one boat (the last one to be processed) would lag and jump, as sometimes there was not enough time for all location messages to be sent before the next lot were added.
- The solution was to add a boatOffset, which means while the boats are still  processed with3 coming after 2 coming after 1 etc, the loop starts with boat 0, then the next run through it wiull start with boat 1 and so on.

-This eliminated the lag (or at least spread it evenly across all the boats)

#story[778]
2017-05-02 19:50:12 +12:00
Erika Savell 42ad1f78fc Added heading to boatlocation messages
#story[778]
2017-05-02 19:21:43 +12:00
Fan-Wu Yang 5444b872bd Fixed GPs Coordinates as well as got Boats to display
- Fixed GPS conversion number being wrong (extra 1)
- Fixed Boats displaying as the boat = null (cough Joseph) was stopping it from working as well as track is broken.
#story[782]
2017-05-01 20:13:16 +12:00
Fan-Wu Yang 560af8c21d Added more data types to Visualiser Input that can be take from InputStream
-Added AverageWind
-Added CourseWinds
-Added MarkRounding
-Added RaceStartStatus
#story[782]
2017-05-01 19:21:43 +12:00
hba56 8bbea28cab refactored the boat message to not use boats
#story[778]
2017-05-01 17:35:30 +12:00
Joseph Gardner 9eefbbd7fa Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules 2017-05-01 16:51:48 +12:00
Joseph Gardner 8117e11ff2 Merge branch 'NetworkedVisualiser' into splitIntoTwoModules
# Conflicts:
#	visualiser/src/main/java/seng302/VisualiserInput.java
2017-05-01 16:51:03 +12:00
Joseph Gardner 41a94495aa Changed the XML reader to take an InputStream rather than InputSource- this has changed everything that used an InputSource to use an InputStream. Made the XML Readers actually read after they received a new InputStream. Changed it so the table updates when the boats in the race change. #pair[jjg64, cbt24] #story[782] 2017-05-01 16:42:47 +12:00
hba56 7cb4b2228d Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules 2017-05-01 16:08:28 +12:00
hba56 a271952e0c fixed boat parser for the mock
#story[778]
2017-05-01 16:08:23 +12:00
cbt24 b1db9ee5be Merge remote-tracking branch 'remotes/origin/splitIntoTwoModules' into NetworkedVisualiser
# Conflicts:
#	visualiser/src/main/java/seng302/VisualiserInput.java
2017-05-01 15:55:19 +12:00
Erika Savell 69fca43534 Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into splitIntoTwoModules 2017-05-01 15:49:26 +12:00
Erika Savell 9acd519d7b Removed the rest of the shared model classes needed by mock
#story[778]
2017-05-01 15:49:07 +12:00
hba56 cdcbb07dc6 removed unused conversion 2017-05-01 15:24:46 +12:00
hba56 40a7ca808f added .trim to remove the unwanted bytes at the end of xml
#pair[hba56, fw13, jjg64]
#story[782]
2017-05-01 15:21:42 +12:00
cbt24 ccbe467090 Synchronised GUI with VisualiserInput thread.
- Made StreamedCourse extend Observable
- Initialised StartController after data pulled from network
- Moved VisualiserInput to visualiser module
- Deleted Networking subpackage from visualiser module

#story[782]
2017-05-01 15:21:12 +12:00
Erika Savell d34dfc537e Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into splitIntoTwoModules 2017-05-01 15:17:50 +12:00
Fan-Wu Yang 444a4432c6 Fixed stream from messing up
- Stream was getting code before all of it came therefore a while loop was added t owait for the code
#story[782] #pair[hba56, fwy13]
2017-05-01 15:07:59 +12:00
Erika Savell 3f748bfdb6 Removed BoatInRace from shared model, refactored
#story[778]
2017-05-01 15:06:56 +12:00
Erika Savell c972dd7caf Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into splitIntoTwoModules 2017-04-30 21:20:04 +12:00
Erika Savell 067beed1e3 Attempted to write test for calls to MockOutput
-Struggling because we use animation timers to run the race, and these don't seem to work from a JUnit context

#story[778]
2017-04-30 20:55:40 +12:00