TomTomWatch Design

Introduction

This page presents the design of the application in the form of UML diagrams.

Context

 

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

 

Application core

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.

Packages

net.studioblueplanet.tomtomwatch

net.studioblueplanet.ttbin

net.studioblueplanet.usb

Generics