Comment ça marche
Le flux télémétrie de bout en bout : du simulateur à la R-Box, en passant par l'engine Python et l'UI desktop.
SimLogix lit votre simulateur, calcule la télémétrie, et la distribue à tous vos périphériques. Voici comment, étape par étape.
Le flux complet
Simulateur → Engine Python → WebSocket local → UI Tauri
↓
Pilote périphériques → R-Box / dashboards / LEDs / button boxes
Trois couches :
- Le simulateur expose des données brutes (position, vitesse, RPM, lap time…) via une API ou une zone de mémoire partagée.
- L’engine Python lit ces données, calcule ce qui n’est pas exposé directement (delta au meilleur tour, sectors), et expose le résultat sous forme de trames structurées.
- L’UI Tauri + React consomme ces trames pour les afficher à l’écran ; en parallèle, l’engine pousse les trames vers les périphériques branchés (R-Box en USB-C, autres dashboards en USB ou réseau).
Engine séparé de l’UI
Une décision architecturale clé : l’engine est headless. Il tourne comme un sidecar Python autonome et expose un WebSocket local (ws://127.0.0.1:PORT). L’UI desktop le consomme comme n’importe quel autre client.
Conséquences :
- L’engine est testable seul, sans démarrer toute l’interface.
- L’UI peut être remplacée (une autre techno, une version mobile, un mode CLI) sans toucher la logique métier.
- Les mises à jour se font par bloc : améliorer l’engine sans rebuilder l’UI, et inversement.
Lecture du simulateur
| Sim | Méthode |
|---|---|
| iRacing | Bibliothèque pyirsdk, accès direct à la mémoire partagée du jeu. |
| Assetto Corsa | Shared memory Windows via mmap + ctypes. |
L’engine échantillonne à 10 Hz (un cycle toutes les 100 ms). Cette fréquence est largement suffisante pour un affichage Pit Lane Timer — l’œil humain ne lit pas un delta plus vite que ça — et garde la consommation CPU négligeable.
Communication avec la R-Box
La R-Box est branchée en USB-C et apparaît comme un port série virtuel (CDC natif, sans driver). L’engine envoie des trames JSON à 10 Hz :
{
"lap_time": 83.41,
"delta": -0.13,
"speed": 187.3,
"gear": 4,
"lap": 5
}
Le firmware C++ qui tourne sur l’ESP32-S3 de la R-Box parse la trame et met à jour l’écran OLED. Latence mesurée end-to-end (jeu → écran R-Box) : sous 100 ms.
Mode défaut et navigation
Trois modes d’affichage sont disponibles sur la R-Box :
- Delta (défaut) — écart au meilleur tour signé.
- Lap Time — chrono du tour en cours.
- Speed — vitesse instantanée et rapport de boîte.
Navigation : bouton haut / bas pour changer de mode, bouton milieu pour valider. Le firmware se souvient du dernier mode utilisé.
Et pour les autres périphériques ?
L’app SimLogix énumère les périphériques HID branchés au démarrage et propose un driver pour chacun (R-Box natif, dashboards LCD compatibles, LED bars RPM, button boxes). Les mappings et profils sont stockés en SQLite, par jeu et par voiture si pertinent.