The component diagram above shows the Android Subsystem that compromises of eleven components:
MainActivity component is the main component that initiates and integrates all of the interactions with other components to fulfill all of the functional requirements. It is also the starting and the main page in the android application.
- MapInformation component displays the grid view of the maze (by calling the GridView component) to show either the explored status or the obstacle status in string format for each cell in the maze.
GridView component displays the maze by converting it to a 2-D array grid and assigns string to each cell based on the map status selected by the MapInformation component.
GridMap component displays the robot, obstacle, explored, unexplored and imageID on the 2-D array grid. Users are also able to manually assign those options on the grid map. In automatic, mode, the grid map will automatically get the message from the RPI subsystem and update the coordinates on the grid map.
BluetoothActivity is the main bluetooth component that handles the interaction with the RPI subsystem. It enables the user to toggle bluetooth settings, search for bluetooth-enabled devices, and connect to the specified device by invoking BluetoothConnectionService and DeviceListAdapter components.
BluetoothConnectionService component handles the connection between the android subsystem and RPI subsystem by allowing the MessageActivity component to communicate between them. Also, it ensures that the connection is consistent and synchronised.
DeviceListAdapter component displays the device name and address when the BluetoothActivity component requests to identify any bluetooth-enabled devices within a reachable parameter from the android tablet.
CommsFragment component handles the user interaction to write and read messages from the RPI subsystem in real-time.
ControlsFragment components handles the user interaction to control the robot movement, it also has exploration and fastest path button that serves as a command to RPI subsystem and signals the start of the algorithm.
MapTabFragment components handles the interaction between user and the display, such as updating starting point, waypoint, auto mode etc.
ReconfigureFragment components handles reconfigurable button in the android app, that will persists in the local memory even after the app has been closed.