Commit Graph
58 Commits
Author SHA1 Message Date
fjc40 0c790c1721 Mock.Polars:
Was accidentally using testng in the PolarsTest. Changed it to junit.

#story[873]
2017-05-17 13:48:05 +12:00
fjc40 be9f19eae5 Mock.Polars:
Finished PolarsTest test cases.

Fixed a number of javadoc errors across the codebase.

#story[873]
2017-05-17 13:33:34 +12:00
fjc40 656212d06d Mock.Race:
Fixed an issue in updatePositions(...) where unconstrained bounds could be passed into the calculateVMG function (e.g., lower = -182391, upper = 188221), but they need to be in the interval [0, 360).

Mock.Polars:
Added more test cases. Still working on getting the assertions correct.
Refactored and bugfixed the calculateVMG(...) function. There were a few bugs (and ugly "fixes") because we didn't bother enforcing a strict interval on the lower and upper bound angles.
Also added a few more comments to explain the function better.

#story[873]
2017-05-15 18:39: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
hba56 d4be901b1a Merge remote-tracking branch 'origin/story31.2' into story31.2 2017-05-14 15:16:18 +12:00
fjc40 2dc17a688f Mock.Polars:
Fixed a bug where duplicate estimates could be added to the Polar table (this happened when the angle was 0, so the "negative" angle became 360, which is equivalent).
Now has a list of angle values for each wind speed, rather than checking if Pair<WindSpeed, WindAngle> exists in the map.
calculateVMG now uses linear interpolation between two adjacent angles (e.g., if data file contains angles 0, 30, 45, etc.. it can interpolate and find an optimal VMG angle between those, for example, 17 degrees).
Added a third test for when we provide a wind speed which is lower than any wind speed values in the Polars table. Still need to actually calculate correct VMG values by hand.

#story[873]
2017-05-14 01:12:36 +12:00
fjc40 6f9249e238 Mock.PolarParser. Fixed a bug where it would only parse the first half of each row.
Mock.Polars. addEstimate also builds up a unique list of angles from the data file, instead of dynamically generating that when calculating a VMG.
addEstimate also adds estimates with negative angles (e.g., 45deg+windSpeed+boatSpeed, and -45deg+windSpeed+boatSpeed).
calculateVMG now accepts an upper and lower bounds to the allowed VMG bearing it returns - this way you can get VMGs only within a certain angle interval (e.g., [16, 99] degrees).
Also fixed some bugs in calculateVMG where it wasn't actually using the angles and such correctly.
Improved the test case slightly, but still need to calculate correct values by hand.

#story[873]
2017-05-13 17:10:06 +12:00
hba56 dd1308808a updated the race class to set heading based on the vmg not just the end of a leg
-race class now stores the boundary
-updatePositions now checks if the boat is with the course
-update positions now sets heading and speed based on the vmg
-updated azimuth to now accept a start and finish gps rather that finding it itself
-added a calculatebearingtodestination method that finds the azimuth to the dest from the boat
-updated boat tests to use the new azimuth method
 #story[873]
2017-05-12 12:49:02 +12:00
Joseph Gardner 04fdeaf2e2 Optimised boundary checking #story[873] 2017-05-12 11:58:31 +12:00
Joseph Gardner 602bc0686e Changed public functions in the RaceXMLReader to make a new list every time and reassign the list to avoid duplicates in a list. #story[873] 2017-05-11 14:55:50 +12:00
Joseph Gardner 8c0c03dcf2 Fixed tests that were reading the file again making them fail. #story[873] 2017-05-11 14:49:17 +12:00
Joseph Gardner a13899b6a7 Implemented and tested to check if a point is inside or outside of a boundary using a ray tracing algorithm. The function is public static for a GPSCoordinate and takes a list of GPSCoordinates and the comparing coordinate. #story[873] 2017-05-11 14:40:24 +12:00
fjc40 693da8a82a Removed some unneccessary code and comments from PolarParser.parse(...).
Fixed a bug where the polar parser would attempt to insert (wind speed, windspeed, windangle) instead of (windspeed, windangle, boatspeed).
Removed some unused constructors from RaceXMLReader, and fixed a bug where it wouldn't actually use the polar table correctly.
Boat's constructor now expects a Polars table.
Added some comments to the Polars class, and specified the HashMap's template parameters
Added PolarsTest - which needs to be implemented properly when the VMG calculations have been added.

#story[900]
2017-05-10 17:21:18 +12:00
hba56 4f8d6b14d4 updated app class to read the polar csv and pass it off to its parser
#story[900]
2017-05-10 15:46:01 +12:00
hba56 245914a69e added the polars csv
#story[900]
2017-05-10 15:26:43 +12:00
fjc40 aeee8ca748 Added polar data file.
Added PolarParse class - currently commented out as it depends on polar table class.

#story[900]
2017-05-10 15:11:51 +12:00
hba56 a4480f3ccf removed the get best heading method as it was incorrect and not related to this story
#story[900]
2017-05-10 14:25:06 +12:00
hba56 5b010cad49 added the polar class for storing polars
#story[900]
2017-05-10 13:45:09 +12:00
David Wu 545ef7aa7f Fix lobby not entering race when race status is "started".
-Race was previously stuck in lobby screen when race status was not 2.

#Story[782]
2017-05-04 13:36:39 +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
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
David Wu 4811b7f4ea Merge remote-tracking branch 'origin/splitIntoTwoModules' into splitIntoTwoModules
# Conflicts:
#	mock/src/test/java/seng302/Model/RaceTest.java
2017-05-01 16:39:26 +12:00
David Wu 0bfc9a5a39 Added test for race dnf in Race class.
-Unable to test animation timer.

#story[778]
2017-05-01 16:37:55 +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
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 3f748bfdb6 Removed BoatInRace from shared model, refactored
#story[778]
2017-05-01 15:06:56 +12:00
Erika Savell 7e569b59b7 Commenting out tests just to get CI working, will investigate on different branch
#story[778]
2017-04-30 21:26:57 +12:00
Erika Savell 2320675b7e Fixing build
#story[778]
2017-04-30 21:23:52 +12:00
Erika Savell 0126d29524 Fixing some of the SharedModel/seng302 import conflicts
-Am really not liking the SharedModel structure, think reverting back to original structure is worth discussing

story[778]
2017-04-30 21:21:09 +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 b1bbef814b Switching to use networking modules
#story[778]
2017-04-28 12:43:14 +12:00
fjc40 d29c0a9439 Mock now serializes and sends Boat.xml, Race.xml, Regatta.xml, Heartbeat, BoatLocation messages.
#story[778]
2017-04-28 01:30:03 +12:00
fjc40 90f8bec415 Moved several classes from seng302.model to its own module - sharedModel (this is supposed to contain any shared data model code between mock and visualiser). Specifically, Regatta, Boat, BoatInRace, Constants, GPSCoordinate, Leg, Marker.
Updated RaceVisionByteEncoder.raceStatus to accept a Racestatus object rather than a bunch of parameters.
Added getters to RaceStatus class.
Updated some tests.
Removed Network tests from Mock, as they were duplicated.
2017-04-28 01:27:45 +12:00
Erika Savell 1e3b816ff5 Added tests for BoatData and RaceData
#story[778]
2017-04-25 17:59:06 +12:00
Erika Savell 83dfe1a60c Renamed some directories, optimized imports, general code clean up
#story[778]
2017-04-25 17:41:10 +12:00
Erika Savell 073102d1a3 Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into isolatingMock 2017-04-25 17:19:28 +12:00
Erika Savell 19224ba840 Refactored RegattaData
#story[778]
2017-04-25 16:56:11 +12:00
Erika Savell 3542827c29 Refactored RaceData class
#story[778]
2017-04-25 15:20:49 +12:00
Erika Savell 03f63b2c61 Added boat data xml tests
#story[778]
2017-04-25 14:42:14 +12:00
Joseph Gardner 26380f2677 Merge branch 'story30_XMLs' into splitIntoTwoModules 2017-04-25 14:01:09 +12:00
Erika Savell 6a35c40f77 Commented out test causing CI issues
#story[778]
2017-04-25 13:04:30 +12:00
Erika Savell a9f98b48b2 Merge branch 'splitIntoTwoModules' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into isolatingMock 2017-04-25 13:00:21 +12:00
hba56 e9578fc63b refactored networking code from networkingTest
#story[778, 782]
2017-04-25 12:38:13 +12:00
David Wu d14446a12e Added extra constructor in Race.
-Constructor is used for junit testing for Race class.

#story[778]
2017-04-25 12:24:39 +12:00
David Wu 0fd4de7ec7 Fixed previously broken tests due to refactoring app.
-ConstantVelocityRace doesn't exist anymore so tests had to be change to compensate for this.
-Boat in race had to be change due to the addition of the sourceID for each boat.

#story[778]
2017-04-25 12:00:44 +12:00
zwu18 c5df90d276 Created RegattaDataSource and regattaTest.xml.
-Event regattaData will now get data from the XML instead of having static data.

#story[778]
2017-04-23 19:59:07 +12:00
Erika Savell 3ff2a07680 Temporarily ignored some tests in mock
#story[778]
2017-04-21 17:08:28 +12:00
Erika Savell c365d5a344 Merge branch 'isolatingMock' of https://eng-git.canterbury.ac.nz/seng302-2017/team-7 into isolatingMock 2017-04-21 17:01:23 +12:00