Integracja RaceChrono BLE
Streamuj telemetrię w czasie rzeczywistym do RaceChrono przez protokół DIY BLE
Dashboard ApexDuck obsługuje streaming telemetrii w czasie rzeczywistym do aplikacji RaceChrono przez Bluetooth Low Energy (BLE). Implementacja wykorzystuje protokół RaceChrono DIY BLE do przesyłania 16 parametrów pojazdu jako wirtualnych pakietów CAN-Bus PID.
Po włączeniu, dashboard rozgłasza się jako urządzenie BLE i akceptuje jedno połączenie RaceChrono. Wszystkie 16 kanałów jest zawsze streamowanych — nie ma możliwości włączania/wyłączania poszczególnych kanałów. Jedynym przełącznikiem jest globalne włączenie/wyłączenie streamingu BLE.
Komunikacja dwukierunkowa
Połączenie BLE między ApexDuck a RaceChrono działa w obu kierunkach, tworząc pełną pętlę telemetrii i pomiaru czasów w ramach jednego połączenia.
ApexDuck → RaceChrono
Dane silnika na żywo są streamowane z ApexDuck do RaceChrono, dzięki czemu parametry takie jak obroty, bieg, prędkość, temperatura płynu chłodzącego i oleju, doładowanie, AFR, ciśnienie oleju czy napięcie akumulatora mogą być wyświetlane bezpośrednio na nakładce wideo RaceChrono — idealne do materiałów z kamery pokładowej.
RaceChrono → ApexDuck
Dane pomiaru czasu są streamowane z powrotem z RaceChrono do ApexDuck, dzięki czemu czasy okrążeń oraz delta do okrążenia referencyjnego pojawiają się na wyświetlaczu ApexDuck w czasie rzeczywistym podczas jazdy.
Z RaceChrono odbierane są następujące dane:
| Parametr | Nazwa kanału |
|---|---|
| Aktualny czas okrążenia | RACECHRONO_LAP_TIME |
| Poprzedni czas okrążenia | RACECHRONO_PREVIOUS_LAP_TIME |
| Najlepszy czas okrążenia | RACECHRONO_BEST_LAP_TIME |
| Delta | RACECHRONO_DELTA_LAP_TIME |
| Numer okrążenia | RACECHRONO_LAP_NUMBER |
| Liczba satelitów | RACECHRONO_SATELLITES |
| Prędkość GPS [km/h] | RACECHRONO_SPEED |
Instrukcja konfiguracji
1. Włącz streaming BLE
Włącz streaming BLE za pomocą strony konfiguracyjnej.
2. Połącz RaceChrono
Otwórz RaceChrono na telefonie/tablecie, przejdź do Settings → DIY CAN-Bus devices → Add new device, wybierz RaceChrono DIY BLE jako typ urządzenia, skanuj urządzenia BLE — dashboard pojawi się jako ApexDuck_XXXX (gdzie XXXX to ostatnie 4 cyfry hex adresu MAC urządzenia, wyświetlane na Device Config Page). Sparuj i połącz.
3. Skonfiguruj kanały w RaceChrono
Dla każdego kanału, który chcesz logować, dodaj nowy "CAN-Bus channel" w RaceChrono z wirtualnym PID (wartość hex) i równaniem z tabeli kanałów poniżej.
Kanały
Wszystkie 16 kanałów jest streamowanych jednocześnie po podłączeniu klienta.
| Kanał | Wirtualny PID | Jednostka | Równanie RaceChrono |
|---|---|---|---|
| RPM | 0x40000000 | rpm | A + B * 256 |
| GEAR | 0x40000001 | — | if(A > 127, A - 256, A) |
| SPEED | 0x40000002 | km/h | (A + B * 256) * 0.1 / 3.6 |
| CLT | 0x40000003 | °C | (A + B * 256) * 0.1 |
| IAT | 0x40000004 | °C | (A + B * 256) * 0.1 |
| AFR | 0x40000005 | λ×14.7 | (A + B * 256) * 0.001 |
| LAMBDA | 0x40000006 | λ | (A + B * 256) * 0.0001 |
| OIL_TEMP | 0x40000007 | °C | (A + B * 256) * 0.1 |
| GEARBOX_TEMP | 0x40000008 | °C | (A + B * 256) * 0.1 |
| BOOST | 0x40000009 | bar | if((A + B * 256) > 32767, (A + B * 256) - 65536, A + B * 256) * 0.1 |
| MAP | 0x4000000A | bar | (A + B * 256) * 0.1 |
| TPS | 0x4000000B | % | (A + B * 256) * 0.1 |
| EGT | 0x4000000C | °C | A + B * 256 |
| BATT | 0x4000000D | V | (A + B * 256) * 0.01 |
| OIL_PRESSURE | 0x4000000E | bar | (A + B * 256) * 0.1 |
| FUEL_PRESSURE | 0x4000000F | bar | (A + B * 256) * 0.1 |
Encoding: Wszystkie wartości to little-endian uint16. A to 1. bajt, B to 2. bajt (po usunięciu PID przez RaceChrono). Pełna wartość uint16 = A + B × 256.
Units: Przy użyciu wbudowanych typów kanałów RaceChrono (np. "Speed (km/h)"), aplikacja oczekuje wartości w bazowych jednostkach SI (m/s dla prędkości). Równanie prędkości zawiera ÷ 3.6 do konwersji km/h → m/s. Dla kanałów temperaturowych RaceChrono akceptuje °C bezpośrednio. Użyj typu "Custom", jeśli nie chcesz konwersji jednostek.
Kanały rozwiązywane dynamicznie
RPM, GEAR i SPEED respektują konfigurację runtime — jeśli skonfigurujesz RPM z CAN, stream BLE również użyje wartości RPM z CAN.
Rozwiązywanie źródła danych
Pozostałe kanały używają danych EMU, gdy EMU Serial jest głównym źródłem danych. W przeciwnym razie używane są dane CAN jako źródło zapasowe.
Połączenie i rozgłaszanie
- Maksymalna liczba jednoczesnych połączeń: 1
- Po rozłączeniu, rozgłaszanie wznawia się w ciągu 1000 ms
- Nazwa urządzenia: ApexDuck_XXXX (XXXX = ostatnie 4 hex MAC)
- Interwał rozgłaszania: 100–150 ms
- Service UUID: 0x1FF8 (RaceChrono DIY)
- Bazowy interwał powiadomień: 20 ms (50 Hz)