This page presents the design of the application in the form of UML diagrams.
|net.studioblueplanet.tomtomtwatch||The heart of the application. Contains the main processing|
|net.studioblueplanet.usb||Contains the USB interface to the watch as well as a simulated interface|
|net.studioblueplanet.ttbin||Parsing of ttbin files and writing of GPX files|
|net.studioblueplanet.generics||Some generic functions like Toolbox to be used in all parts of the application|
|net.studioblueplanet.logger||Contains the debug logger|
|net.studioblueplanet.settings||Contains the application settings to be defined by means of tomtomwatch.properties|
TomTomWatch starts the Application. By means of DependencyInjector the main dependencies are injected. It injects the TomTomView in the application, generting the application layout. TomTomView uses the CommunicationProcess to communicate to the Watch. TomTomView and CommunicationProcess are decoupled via a queue of ThreadCommands. TomTomView posts the commands, CommunicationProcess executes the commands.
A WatchInterface implementation is injected in the CommunicationProcess. Depending on the tomtomwatch.properties it is UsbInterface for communication to the watch or UsbTestInterface for simulation. The CommunicationProcess implements the ProgressListener interface for reporting progress by the WatchInterface (sometimes downloading or uploading can take some time). The UsbInterface uses usb4java (javax.usb) as USB implementation.