labbej caae7d8811 Fix formatting and update section headings in README
Updated headings and fixed formatting in README.
2025-12-14 00:18:03 +01:00
2025-12-13 23:08:21 +01:00
2025-12-13 23:08:21 +01:00

Minitel Slideshow Tool

Convertisseur + Serveur Slideshow + Client WebSocket↔Série (tout-en-un)

Interface graphique Tkinter permettant :

  • la conversion dimages en fichiers .vdt optimisés (encodeur intégré, compatible pic2jpeg2vdt)
  • un serveur local WebSocket pour diaporamas (start/stop/reset indépendants)
  • un client WebSocket ↔ port série (Minitel)
  • une liste de serveurs prédéfinis + saisie manuelle
  • un temps daffichage paramétrable

Fonctionnalités principales

Conversion dimages → .vdt

  • Redimensionnement automatique adapté Minitel (320×240 max)
  • Encodage JPEG optimisé ou qualité fixe
  • Génération des blocs VDT (header + chunks)
  • Prévisualisation hex des premiers octets

Serveur Slideshow WebSocket

  • Diffusion continue dun dossier de .vdt
  • Serveur en thread dédié
  • Commandes start/stop sécurisées

Client WebSocket ↔ Port série

  • Pont bidirectionnel avec keep-alive
  • Support de wss:// via SSL permissif
  • Gestion vitesse, parité, databits, stopbits

Interface graphique Tkinter

  • Sélection de serveur prédéfini ou manuel
  • Sélection de dossier images et dossier VDT
  • Logs détaillés
  • Détection automatique des ports série

Installation

1. Cloner le dépôt

git clone https://github.com/labbej27/minitel-slideshow-tool.git
cd minitel-slideshow-tool

2. Installer les dépendances Python

Avec un environnement virtuel (recommandé) :

python3 -m venv venv
# Linux / macOS
source venv/bin/activate
# Windows (PowerShell)
venv\Scripts\Activate.ps1
# Windows (cmd)
venv\Scripts\activate.bat

Installer les dépendances :

pip install -r requirements.txt

Note : Tkinter est déjà inclus dans Python sur Windows et macOS, et sur la plupart des distributions Linux.

Utilisation

1. Lancer loutil

python3 minitel_slideshow_tool.py

2. Convertir des images

  • Choisir un dossier dimages

  • Choisir un dossier de sortie

  • Cliquer Convert Images

3. Lancer un serveur Slideshow

  • Mettre des .vdt dans le dossier sélectionné

  • Définir la durée par image

  • Cliquer Start Slideshow Server

  • Le serveur écoute par défaut sur : ws://0.0.0.0:8765

4. Se connecter à un serveur WebSocket via Minitel

  • Choisir un serveur prédéfini ou entrer une URL

  • Sélectionner le port série

  • Cliquer Connecter & Enjoy


Compilation en exécutable (standalone)

Loutil peut être compilé en exécutable autonome (sans Python requis sur la machine cible) grâce à PyInstaller.

Prérequis

  • Python 3.14 recommandé

  • pip à jour

Système :

Installer PyInstaller :

pip install pyinstaller

Compilation simple

Depuis la racine du projet :

pyinstaller --onefile --windowed minitel_slideshow_tool.py

Options utilisées

--onefile : génère un seul fichier exécutable

--windowed : supprime la console (recommandé pour Tkinter)

Lexécutable sera généré dans :

dist/

Compilation Windows (recommandée)

pyinstaller ^
  --onefile ^
  --windowed ^
  --name "MinitelSlideshowTool" ^
  minitel_slideshow_tool.py

Résultat :

dist/MinitelSlideshowTool.exe

Compilation Linux

pyinstaller \
  --onefile \
  --windowed \
  --name minitel-slideshow-tool \
  minitel_slideshow_tool.py

Lexécutable est spécifique à lOS :

Un .exe Windows doit être compilé sous Windows, idem pour Linux/macOS.

Compilation macOS

pyinstaller \
  --onefile \
  --windowed \
  --name MinitelSlideshowTool \
  minitel_slideshow_tool.py

Sur macOS :

Lapplication peut être bloquée par Gatekeeper

Utiliser clic droit → Ouvrir au premier lancement

Inclusion des dépendances

PyInstaller détecte automatiquement :

  • tkinter

  • Pillow

  • pyserial

  • websockets

Si nécessaire (rare), forcer les imports :

pyinstaller --onefile --windowed \
  --hidden-import=serial \
  --hidden-import=serial.tools.list_ports \
  minitel_slideshow_tool.py

Débogage en cas de problème

  • Compiler avec console pour voir les erreurs :
pyinstaller --onefile minitel_slideshow_tool.py
  • Lancer ensuite depuis un terminal pour lire les logs.

Ports série Permissions

  • Linux Ajouter lutilisateur au groupe dialout :
sudo usermod -a -G dialout $USER

Puis redémarrer la session.

Licence

Projet libre utilisation et modification autorisées.

Ce projet a été développé à des fins personnelles et éducatives, en sinspirant de projets existants de la communauté Minitel.

Crédits / Sources

Ce projet sappuie sur et sinspire des travaux suivants :


S
Description
No description provided
Readme 47 MiB
Languages
Python 100%