[[TOC(DeveloperGuide*)]] = Overview = Talos Rowing (aka. robostroke) is written in Java. [[DiaVisView(robostroke.dia)]] == Data input == Data input consists of raw sensor data: * Accelerometer * Orientation * GPS The data update frequency is also the highest for the accelerometer data. The raw sensor data does not have to be real-time sensor data from the device running the application. It may be a re-play of a recorded rowing session or - when such code will be written - a sensor data feed from a remote device. == High frequency sensor data flow == The red lines show linear or multiplexed flow of high-frequency data from sensor input sources to consumers via various filters/processors. Sensor raw data maybe either be processed in order to calculate higher-level rowing information - such as stroke rate - or displayed in its near-raw form in graphs. == Message Bus == A message bus is used for low frequency asynchronous message communication between the various components. The various data processors (scanners, detectors) may send various events on the bus - such as the STROKE_START, STROKE_END event produced by the Rowing Detector component. = Project components = 3 top-level projects currently exist. * robostroke-common[[BR]] Contains UI agnostic code which can be shared with either Android or Swing UI based applications. * robostroke-android[[BR]] Contains Android specific code and an Android front-end. * robostroke-swing[[BR]] Contains Swing specific code.