← Retour à la doc

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 :

  1. Le simulateur expose des données brutes (position, vitesse, RPM, lap time…) via une API ou une zone de mémoire partagée.
  2. 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.
  3. 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

SimMéthode
iRacingBibliothèque pyirsdk, accès direct à la mémoire partagée du jeu.
Assetto CorsaShared 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.