Bluetooth cadanssensordata uitlezen op iOS
De sensor stuurt ruwe bits, geen cadansgetal.
- Beantwoordt
- Waarom is het zo lastig om data van een Bluetooth cadanssensor uit te lezen?
- Onderwerpen
- AI · apple · bike · creating · data · design · gran fondo · health · heart · minimal · programming · running · sensors · sport · watch
- Volledig artikel op willem.com
- https://willem.com/nl/2024-05-11_het-ontwikkelen-van-een-native-ios-app/
Samenvatting
Een Bluetooth cadanssensor stuurt geen kant en klaar cadansgetal. Hij meldt zich als snelheidssensor en cadanssensor tegelijk, stuurt ruwe pakketten met flags, en geeft alleen een cumulatieve omwentelingsteller met een timestamp, waaruit je zelf het toerental moet berekenen.
Volledige tekst
Een sensor koppelen kost veel stappen: scannen naar apparaten, verbinden, de characteristics van het apparaat ontdekken, abonneren op de juiste characteristic en daarna ruwe bits decoderen, waarbij elke fabrikant data op zijn eigen manier codeert. Een cadanssensor gebruikt het gecombineerde Cycling Speed and Cadence profiel, dus hij identificeert zich altijd als snelheidssensor en cadanssensor en je ontdekt zijn echte mogelijkheden pas tijdens het verbinden. De inhoud van een pakket hangt af van wat de sensor detecteerde, dus je interpreteert elk pakket bit voor bit aan de hand van flags. De voorbeeldcode van ChatGPT werkte niet met mijn sensor. Met de Bluetooth debug-app Bluefy zag ik wat de sensor werkelijk uitzond, en een stuk Java-code op het officiële Bluetooth blog legde de decodering uit. Ik paste dat aan voor verschillende sensorprofielen, vertaalde het naar Swift, en had een werkend prototype.