Commit Graph
71 Commits
Author SHA1 Message Date
fjc40 ff262a6227 Added Knots <-> MMperSec conversions to AC35UnitConverter.
Removed redundant/unused conversions.
Documented all of the conversions, and renamed them to pack/unpackX, to match the API spec.
Updated/added some tests in AC35UnitConverterTest.
RaceStatus now contains a Bearing instead of a packed int bearing.
RaceStatus now contains wind speed in knots, instead of MMperSec packed.
This means that only RaceStatus decoder/encoder need to care about the bits-over-wire packed values.
issue #35 #36
#story[1095]
2017-08-06 14:57:51 +12:00
fjc40 b1922fc3fc Added RaceStatusEncoder.
Refactored RaceStatusDecoder to be more consistent with other decoders - it now has a getMessage() function.
Added BoatStatus encoder and decoder - the RaceStatus encoder and decoder uses this for BoatStatuses. The BoatStatus encoder doesn't implement the MessageEncoder interface as BoatStatus is not a proper message type (doesn't inherit from AC35Data).
Added remaining cases to EncoderFactory, but commented them out.
BoatStatus now uses BoatStatusEnum instead of a byte.
Added some comments to RaceStatus, and it uses enums instead of bytes.
MockOutput logs a warning if a RaceStatus cannot be encoded.
Added a BoatStatusDecoderTest.
Updated RaceStatusDecoder to use new encoders/decoders.
issue #35 #36
#story[1095]
2017-08-06 13:38:27 +12:00
fjc40 e464ee298e javadoc fixes for some warnings. 2017-08-06 01:08:47 +12:00
fjc40 b486f99dbe Added XMLMessageEncoder.
Refactored XMLMessageDecoder to be consistent with other decoders - only needs to expose the XMLMessage.
Refactored BoatLocationDecoder to be consistent with other decoders - only needs to expose the BoatLocation.
Updated XMLMessageDecoderTest to use new encoder/decoder. Also tests all three message types.
Removed XMLMessageEncoderTest as it was redundant.
Updated BinaryMessageDecoderTest.xmlMessageTest() to use updated XMLMessage encoder/decoder.
issue #35 #36
#story[1095]
2017-08-06 01:01:05 +12:00
fjc40 8ef906472b Renamed Heartbeat to HeartBeat.
Added HeartBeatDecoder.
Added HeartBeatEncoder.
BinaryMessageDecoder now uses HeartBeatDecoder.
MockOutput now logs a warning if a heartBeat cannot be encoded.
Added HeartBeatDecoderTest.
issue #35 #36
#story[1095]
2017-08-05 23:27:28 +12:00
fjc40 c3ed30019c Added BoatLocationEncoder.
Updated BoatLocationDecoder test to use new encoder.
Updated MockOutput to use new encoder. It logs a warning if encoding fails.

#story[1095]
2017-08-05 22:11:54 +12:00
fjc40 31ce9fff94 Added BoatActonEncoder.
Updated ControllerClient to use RaceVisionByteEncoder.encode(message). It also logs a warning if the encoding fails. Also removed pointless and out of place encode/decode of the action enum.
Added a BoatActionDecoderTest which tests encoding/decoding a BoatAction Message.
issue #35 #36
#story[1095]
2017-08-05 21:53:54 +12:00
fjc40 16686678a7 Added an InvalidMessageTypeException - thrown whenever we encounter a MessageType that isn't recognised or isn't supported.
Added EncoderFactory. This creates specific MessageEncoders. Supports JoinAcceptance and RequestToJoin.
Added MessageEncoder interface.
Added JoinAcceptanceEncoder.
Added encode(AC35Data) function to RaceVisionByteEncoder.
Added RequestToJonEncoder.
Updated RequestToJoin and JoinAcceptance decode/encode tests to use the above.

issue #35 #36
#story[1095]
2017-08-05 21:31:47 +12:00
fjc40 7ea5b31fa1 RequestToJoinEnum contains an int instead of a byte.
Added requestToJoin and joinAcceptance encoding functions to RaceVisionByteEncoder.
Implemented JoinAcceptanceDecoder.
Implemented RequestToJoinDecoder.
Added tests for encoding/decoding RequestToJoin and JoinAcceptance messages.

issue #35
#story[1095]
2017-08-05 20:42:25 +12:00
Connor Taylor-Brown 554f8a2a0f Added WindCommand and multiple command execution to RaceLogic
- Dispatch commands with CompositeCommand
- Single WindCommand handles upwind and downwind logic
- Changed key bindings as Mac lacks PgUp PgDn
- ControllerServer is observable, RaceLogic updates CompositeCommand as observer
2017-08-04 23:08:07 +12:00
fjc40 2e325d5177 Added WindGeneratorTest. 2017-08-03 13:21:53 +12:00
hba56 b7af4e19cf new method to check if a boat is between gates as well as updated the gps values to fit better with real life values
#story[1101]
2017-08-02 18:09:12 +12:00
hba56 c633de21f5 added new methods to the mock boats to let them check which side a mark is on to them
#story[1101]
2017-08-02 16:33:03 +12:00
zwu18 8bb66bc5e4 Commented out test failure. Test was failing due to refactor.
#story[1087]
2017-07-26 22:06:42 +12:00
zwu18 88604df66d Merge branch 'cbt-multi-controller' into css
# Conflicts:
#	racevisionGame/src/main/java/mock/app/App.java
#	racevisionGame/src/main/java/visualiser/Controllers/ConnectionController.java
#	racevisionGame/src/main/java/visualiser/app/App.java
#	racevisionGame/src/main/java/visualiser/model/RaceConnection.java
#	racevisionGame/src/main/resources/visualiser/scenes/connect.fxml
2017-07-26 20:54:07 +12:00
zwu18 9c9b98f882 Added functionality to host game and join a game in lobby. Host name and game name are not implemented yet.
#story[1087]
2017-07-26 20:42:36 +12:00
hba56 1ebbb8d4c7 merged in the changes from the master branch so that latter mergers can run smoothly
#story[1087]
2017-07-24 12:05:00 +12:00
fjc40 5cddaaed8e mock.app.App now tells mock.app.Event that the xml file strings are XMLFileType.Contents.
Made network.MessageEncoders.RaceVisionByteEncoder methods static (they were effectively static already).

shared.dataInput.XMLReader#readXMLFileToString(..) now throws an XMLReaderException if the file cannot be found.

visualiser.Controllers.StartController assumed XML messages were resource paths instead of file contents - fixed.

Testing:
networking tests now work again.
2017-07-20 01:01:29 +12:00
fjc40 4bcfc01ceb shared.dataInput:
Added shared.enums.XMLFileType, which is used to specify if a string contains a file path or file contents.
Updated the XML readers to use it.

Testing:
Moved the networking tests and resources into racevisionGame module.
Moved the remaining tests from visualiser into racevisionGame, and added a few empty tests to implement later.
2017-07-19 23:18:52 +12:00
fjc40 10e80bca05 Moved mock.app.App#readFile(...) to shared.dataInput.XMLReader#readXMLFileToString(...).
Did the bare minimum to get the mock.model, mock.dataInput, shared.model tests working - many of them need to be tidied/refactored/moved as they don't take into account most of the refactorings.
2017-07-19 22:30:21 +12:00
fjc40 d0c6b5f716 Moved mock.model and mock.dataInput tests into the racevisionGame.tests.mock package. 2017-07-19 19:25:16 +12:00