WattFlow sequentiediagrammen
Dit document bevat alleen de hoofdflows in sequentievorm. Het is bedoeld als snelle visuele aanvulling op de brede architectuurdocumentatie, zonder alle lange uitleg ertussen.
1. Scan en trainer verbinden
Dit is de flow die in Instellingen gebeurt wanneer iemand op Scan devices drukt en WattFlow daarna
de trainer automatisch probeert te kiezen.
Wat hierbij belangrijk is
- De trainer moet echt FTMS hebben. Alleen "lijkt op een trainer" is niet genoeg.
- De Settings-flow auto-connect momenteel alleen de trainer, niet automatisch alle andere sensoren.
- De keuze is RSSI-gedreven: de beste zichtbare trainer wint als er niet al een expliciete voorkeur is.
2. Extra sensoren koppelen
Powermeter, cadans en hartslag volgen een vergelijkbare maar strengere flow, omdat WattFlow trainers, speed-only sensoren en echte externe meters uit elkaar moet houden.
Belangrijkste regels
- Een trainer mag niet als externe powermeter of als losse cadence source gebruikt worden.
- Een wheel-only CSC sensor wordt afgewezen als cadence source.
- HR via trainer is fallback; een directe HR-sensor wint voor RR- en HRV-data.
3. Workout starten en live sturen
Zodra een workout is gekozen, verschuift de regie naar WorkoutSessionEngine. Die engine
start de workout, leest live waarden en stuurt de trainer opnieuw per stap of tick.
| Variant | Wat er verandert in de flow |
|---|---|
| FTP-modus | Workoutpercentages worden direct doelwatts op basis van huidige FTP. |
| Level-modus | De engine rekent met een virtuele FTP en een niveau-factor; live UI toont nadrukkelijk het niveau. |
| PowerMatch aan | De engine corrigeert trainer-targets op basis van externe powermeterfeedback, maar de trainer blijft FTMS-targets ontvangen. |
| FreeRide | In plaats van target watts verstuurt WattFlow een resistance level. |
4. Workout afronden en opslaan
Bij het einde van een workout wordt niet alleen de UI bijgewerkt. De app bouwt een volledige activiteit op, maakt exportbestanden en bereidt daarna optioneel syncs voor.
5. Strava upload
Upload gebeurt pas na de samenvatting, wanneer de gebruiker opslaat met Strava-upload aan.
6. Strava import
Historie kan ook andersom werken: WattFlow haalt recente Strava-activiteiten op en bouwt ze lokaal opnieuw op.
7. Apple Health sync
Apple Health heeft eigenlijk twee aparte flows: toestemming/inkomend profiel, en uitgaande workout/FTP-sync.
8. Trainerkalibratie
De trainer spin-down is de meest "fysieke" flow in de app: de gebruiker moet echt optrekken en uitrollen, terwijl WattFlow de voortgang bewaakt via FTMS-speed.
Bijbehorende bronbestanden
| Flow | Belangrijkste code |
|---|---|
| Scannen en verbinden | WattFlow/Views/SettingsTabView.swift, WattFlow/Services/BluetoothManager.swift |
| Workout starten en live sturen | WattFlow/AppModel.swift, WattFlow/Services/WorkoutSessionEngine.swift, WattFlow/Services/BluetoothManager.swift |
| Strava | WattFlow/AppModel.swift, WattFlow/Services/StravaConnectService.swift |
| Apple Health | WattFlow/AppModel.swift, WattFlow/Services/AppleHealthService.swift |
Deze diagrams zijn een operationele vereenvoudiging van de codeflow op 24 maart 2026. Voor alle randgevallen en routingdetails blijft de hoofdgids leidend.