Suite d'outils Saabiste disponible sur Github
Le développement de la plateforme saabiste.net a nécessité de repousser certaines limites de la documentation officielle et des logiciels propriétaires legacy (TIS2000, GlobalTIS, EPC, Tech2). Pour offrir un diagnostic en temps réel dans le navigateur, une base de données de calibrations unifiée et un catalogue EPC interactif, il a fallu concevoir des outils sur mesure.
Plutôt que de garder ces briques isolées dans mes serveurs, l'ensemble du code source est ouvert à la communauté Saab internationale. L'objectif est double : pérenniser l'outillage de diagnostic face à l'obsolescence logicielle et permettre à d'autres développeurs ou passionnés de s'en inspirer.
Vue d'ensemble des 5 dépôts
j2534-websocket-agentCWindows / MinGWPont WebSocket RFC 6455 ↔ DLL J2534 PassThru pour applications Web.
j2534_snifferCWindows / MinGWSniffer passif de bus CAN (HS/LS) avec décodage GMLAN/ISO-TP.
SCE_NEWJava 6GlobalTISExtracteur de calibrations SPS GlobalTIS 2011 (Transbase port 5024).
SCE_OLDJava 6TIS2000Extracteur de calibrations SPS TIS2000 2008 (Transbase port 3025).
umf-to-pngPython 3Multi-plateformeDécompileur d'images
.UMFEPC & extracteur de Hotspots vectoriels.
Zoom technique sur chaque outil
1. j2534-websocket-agent — Le pont Web ↔ Diagnostic Physique
Le problème : Les navigateurs web modernes ne peuvent pas charger directement des DLLs C natifs Windows (comme
smj2534.dllpour Scanmatik).La solution : Un agent C léger sans dépendances externes qui ouvre un serveur WebSocket local (
ws://127.0.0.1:9005). Il scanne le registre Windows, énumère les sondes J2534 connectées et transmet les ordres de diagnostic (GMLAN, ISO-TP, réveil LS-CAN Single-Wire) depuis l'interface web vers le véhicule avec une latence minimale.
2. j2534_sniffer — Analyseur de trafic CAN / GMLAN
Le problème : Comprendre le comportement d'un module (CIM, BCM, ICM) ou analyser les échanges du Tech2 nécessite d'intercepter les trames réseau sans perturber le bus.
La solution : Un sniffer passif C capable d'écouter le Dual-Bus (HS-CAN à 500 kbps et LS-CAN à 33.3 kbps). Il décode à la volée les trames ISO-TP multi-paquets, identifie la provenance des calculateurs Saab 9440 et formate les logs de manière compatible avec les sorties Tech2.
3. Saab Calibration Extractors
Le problème : Les fichiers de mise à jour micrologiciel (SPS) des calculateurs Saab sont verrouillés dans des bases de données SQL propriétaires Transbase distribuées avec TIS2000 et GlobalTIS.
La solution : Deux extracteurs Java se connectant directement aux ports réseau Transbase (
3025pour TIS2000,5024pour GlobalTIS). Ils décompressent les flux GZIP binaires et génèrent des scripts d'importation SQLite unifiés, permettant d'isoler l'historique complet des versions logicielles et correctifs SAV par numéro de pièce (HWID).
4. umf-to-png — Extracteur de catalogue pièces EPC
Le problème : Le catalogue d'origine Saab (EPC) stocke ses planches d'éclatés dans un format propriétaire
.UMFmêlant flux raster TIFF et métadonnées EMF vectorielles.La solution : Un script Python décompilant les images binaire UMF vers du PNG et analysant l'en-tête vectoriel (
rclFrame) pour calculer les coordonnées exactes des zones cliquables (Hotspots). Le résultat produit à la fois le mapping JSON et le script d'insertion SQL pour les bases EPC.
Philosophie de développement
Chaque projet suit les principes suivants :
Licence MIT : Réutilisation et modification libres sans contrainte.
Développement assisté par IA : Conçus en pair-programming direct avec les modèles d'IA Antigravity (Google DeepMind).
Zéro dépendance lourde : Les outils en C et Java visent la légèreté et la compatibilité avec les anciens environnements Windows d'atelier (Windows XP/Windows 7).
Et vous ?
Êtes-vous développeur ou curieux du reverse-engineering de ces outils, ou consultez-vous principalement saabiste.net pour la documentation technique (WIS) et le catalogue de pièces (EPC) déjà intégrés ?
N'hésitez pas à laisser un mot dans l'espace commentaires pour partager l'usage que vous en faites ou ce que vous aimeriez voir évoluer !
Pour voir le code : https://github.com/oamne
Commentaires
Soyez le premier à commenter.