Commit Graph
56 Commits
Author SHA1 Message Date
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
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
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
Erika Savell bbd282bd9b Set race to send out status messages (including boat location details)
- Untested, so not sure of accuracy yet

#story[778]
2017-04-30 20:18:04 +12:00
Fan-Wu Yang c3717b7fc5 Added Classes to help Visualiser
- Added Get Boat GPS Coordinate
- Added Get Heading as Degrees
- Added Get True Wind Angle as Degrees
#story[782]
2017-04-29 18:26:02 +12:00
Connor Taylor-Brown 68a8f64fd3 Generate StreamedCourse from VisualiserInput
#story[782]
2017-04-28 20:29:03 +12:00
Erika Savell e2f3abffc6 WIP adding race status messages
#story[778]
2017-04-28 18:11:28 +12:00
Fan-Wu Yang 8569d3f2dc Added a few decoders and unit converters
- Units can be converted from int to degrees as a double
- XML message now keeps the most recent XML file
#story[782]
2017-04-28 17:00:04 +12:00
hba56 5a972c855e Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules 2017-04-28 14:32:32 +12:00
hba56 5bbdd6e00d updated the visualiserinput to be a thread
#story[782]
2017-04-28 14:32:25 +12:00
Fan-Wu Yang eab41315c5 Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into splitIntoTwoModules 2017-04-28 13:44:19 +12:00
Fan-Wu Yang 760f1ed5a9 Added CRC
- CRC checking now works
#story[782]
2017-04-28 13:44:14 +12:00
hba56 db4792452f added run statement to mock thread
#story[782]
2017-04-28 13:34:50 +12:00
Erika Savell 214e26ad90 Switched port back to 4942
#story[778]
2017-04-28 13:30:19 +12:00
Erika Savell ce47818c94 Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into splitIntoTwoModules 2017-04-28 13:27:27 +12:00
Erika Savell 9c24b0840e Changed MockInput to thread
#story[778}
2017-04-28 13:18:07 +12:00