[[TOC]] == Data flow diagram == [[DiaVisView(robostroke.dia)]] == Overview == === 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.