| | 4 | === Data input === |
| | 5 | Data input consists of raw sensor data: |
| | 6 | * Accelerometer |
| | 7 | * Orientation |
| | 8 | * GPS |
| | 9 | The data update frequency is also the highest for the accelerometer data. |
| | 10 | |
| | 11 | 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. |
| | 12 | === High frequency sensor data flow === |
| | 13 | 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. |
| | 14 | === Message Bus === |
| | 15 | 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. |
| | 16 | |
| | 17 | |