Thomas Allison - 100927288
Harry Hughes - 100927137
Venkatesh Kannan - 100929257
Abitha Mahabakkalage - 100913232
Default Package
Driver.java - the main class to run the robot. Instatiates motors and sensors, calibrates the distance sensor, constructs the behaviours and runs the arbitrator.
Battery
BatteryBehavior.java - behaviour to shut down the robot when the battery is running low.
Countdown
Countdown.java - a TimerTask that represents a timer for the Bomb. Informs the user of how much time is left, changes background music, and sets a retreat flag.
Drivearound
MoveForward.java - behaviour to make the robot drive forwards.
TurnLeft.java - behaviour to make the robot turn left.
TurnRight.java - behaviour to make the robot turn right.
Music
Music.java - an enum to represent the choice of music files to play.
MusicPlayer.java - the code to play music samples in the background while the robot does its' task.
Qr
AndroidSensor.java - class to represent the Android phone this robot is connected to.
ConnectionThread.java - Connects the robot to the phone and waits for a QR code to be read in.
TestQRSensor.java - Simple test class used to test the Android phone/QR-reading functionality.
Tasks
ButtonPress.java - behaviour to make the robot press its' touch sensor against the bomb.
DefusalComplete.java - behaviour to shut down the robot if it successfully defuses the bomb.
Flipper.java - behaviour to make the robot flip the bomb over.
Retreat.java - behaviour to make the robot run away from the bomb if its' timer runs out.
WireCut.java - behaviour to make the robot cut a red wire on the bomb. Not implemented, lacking hardware due to Covid-19 lockdown.
Utils
Bomb.java - class to represent the bomb itself.
EscapeButtonBehaviour.java - behaviour to shut the robot down if the escape button is pressed.
MotorContainer.java - class to allow access to the motors and provide methods to drive the robot around.