Files
minitel-slideshow-tool/README.md
T

209 lines
4.2 KiB
Markdown
Raw Normal View History

2025-12-13 00:28:40 +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
- prévisualisation hex optionnelle
---
## 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
```sh
2025-12-13 00:37:25 +01:00
git clone https://github.com/labbej27/minitel-slideshow-tool.git
2025-12-13 00:38:59 +01:00
cd minitel-slideshow-tool
2025-12-13 00:28:40 +01:00
```
### 2. Installer les dépendances Python
Avec un environnement virtuel (recommandé) :
```sh
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 :
```sh
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
## 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
---
2025-12-13 01:05:42 +01:00
# Compilation en exécutable (standalone)
2025-12-13 00:28:40 +01:00
- 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 :
```sh
pip install pyinstaller
```
## Compilation simple
- Depuis la racine du projet :
```sh
pyinstaller --onefile --windowed minitel_slideshow_tool.py
```
## Options utilisées
```sh
--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)
```sh
pyinstaller ^
--onefile ^
--windowed ^
--name "MinitelSlideshowTool" ^
minitel_slideshow_tool.py
```
## Résultat :
- dist/MinitelSlideshowTool.exe
## Compilation Linux
```sh
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
```sh
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 :
```sh
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 :
```sh
pyinstaller --onefile minitel_slideshow_tool.py
```
2025-12-13 00:37:25 +01:00
- Lancer ensuite depuis un terminal pour lire les logs.