Les lecteurs VP320 et VP330 de Waves System offrent un contrôle avancé via les protocoles RS-232 (sériel) et TCP/IP (réseau). Ces protocoles permettent d’envoyer des commandes précises pour gérer la lecture, le volume, les sous-titres, l’alimentation, et même des dispositifs externes comme les écrans (HDMI-CEC) ou les vidéoprojecteurs (PJLINK).
Ce guide détaille toutes les commandes disponibles, la structure des trames, les paramètres de communication, et les bonnes pratiques pour une intégration réussie.
Protocoles de communication : RS-232 vs TCP/IP
1. RS-232 (Sériel)
Type de communication : Bi-directionnelle (le lecteur peut envoyer et recevoir des données).
Connecteur : Port série DB9 (ou autre selon le modèle).
Paramètres par défaut :
Paramètre
Valeur
Débit (bauds)
115200 (modifiable de 1200 à 115200)
Bits de départ
1
Bits de données
8
Bits de parité
Aucun
Bits d’arrêt
1
Handshake
Aucun
Configuration : Modifiable via Paramètres du Système > Port série.
Adresse par défaut : Tous les lecteurs ont l’adresse 0x80 en sortie d’usine.
Remarque : L’adresse peut être modifiée pour cibler un lecteur spécifique (voir section 15.1.5).
2. TCP/IP (Réseau)
Type de communication : Entrante uniquement (le lecteur ne peut que recevoir des commandes, pas en envoyer).
Port par défaut : 65079 (pour les commandes générales).
Exception : Le port 44830 est utilisé pour la synchronisation des lecteurs (voir article 007 - Synchronisation des lecteurs).
Adresse IP : Doit être configurée (statique ou DHCP réservé) pour chaque lecteur.
Communication : Le lecteur répond aux commandes envoyées sur son numéro ID ou à une commande générale (adresse 0x80).
Structure des trames
Format général
Toutes les commandes sont construites sous forme de trames série composées d’au moins 3 octets :
Octet | Rôle | Description |
|---|---|---|
0 | Synchro + ID | Octet de synchronisation et identifiant du lecteur (ex : |
1 | Commande | Code de la commande (ex : |
2+ | Paramètres | Valeurs spécifiques à la commande (ex : numéro de dossier, niveau de volume). |
Représentation d’un octet : 8 bits (ex :
10000000ben binaire =0x80en hexadécimal).Fin de trame : Pour les réponses du lecteur (via RS-232), un CR/LF (
0x0D 0x0A) est ajouté.
Commandes disponibles
? 1. Commandes de contrôle du lecteur
1.1. Saut vers un dossier
Permet de sauter vers un dossier spécifique parmi 1000 possibilités (000-999).
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur (ex : |
1 | Commande | 0x01 | Saut vers un dossier 000-127. |
1 | Commande | 0x11 | Saut vers un dossier 128-255. |
1 | Commande | 0x21 | Saut vers un dossier 256-383. |
1 | Commande | 0x31 | Saut vers un dossier 384-511. |
1 | Commande | 0x41 | Saut vers un dossier 512-639. |
1 | Commande | 0x51 | Saut vers un dossier 640-767. |
1 | Commande | 0x61 | Saut vers un dossier 768-895. |
1 | Commande | 0x71 | Saut vers un dossier 896-999. |
2 | Paramètre | [0x00-0x7F] | Numéro du dossier dans la plage sélectionnée (0-127). |
Exemple :
0x81 0x41 0x7C→ Le lecteur 001 saute vers le dossier 636 (car0x41= plage 512-639, et0x7C= 124 → 512 + 124 = 636).
1.2. Commandes de lecture et de veille
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x02 | Commandes de lecture et de veille. |
2 | Paramètre | 0x01 | PLAY : Lecture depuis le début du fichier. |
2 | Paramètre | 0x02 | STOP : Arrête la lecture. |
2 | Paramètre | 0x03 | Morceau suivant dans le dossier en cours. |
2 | Paramètre | 0x04 | Morceau précédent dans le dossier en cours. |
2 | Paramètre | 0x05 | Pause / Reprise à la position courante. |
2 | Paramètre | 0x06 | Lecture du dossier suivant. |
2 | Paramètre | 0x07 | Lecture du dossier précédent. |
2 | Paramètre | 0x08 | Mise en veille et sortie du mode veille. |
2 | Paramètre | 0x09 | Augmente le volume de +1 pas. |
2 | Paramètre | 0x0A | Diminue le volume de -1 pas. |
2 | Paramètre | 0x0B | Non utilisé. |
2 | Paramètre | 0x0C | STANDBY : Mise en veille du lecteur. |
2 | Paramètre | 0x0D | WAKE UP : Réveil du lecteur. |
2 | Paramètre | 0x0E | Met le lecteur en pause. |
2 | Paramètre | 0x0F | Reprend la lecture après une pause. |
1.3. Réglage du volume
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x03 | Commande de volume. |
2 | Paramètre | [0x00-0x64] | Niveau de volume (0 à 100). |
Exemple : 0x81 0x03 0x3C → Le lecteur 001 règle le volume à 60.
1.4. Demande d’informations
Le lecteur peut renvoyer des informations via RS-232 (réponse en ASCII + CR/LF).
Octet | Rôle | Valeur (Hex) | Description | Réponse |
|---|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. | |
1 | Commande | 0x04 | Demande d’informations. | |
2 | Paramètre | 0x01 | Statut du lecteur |
|
2 | Paramètre | 0x02 | Nom du fichier en cours |
|
2 | Paramètre | 0x03 | Nom + emplacement du fichier |
|
2 | Paramètre | 0x04 | Média utilisé |
|
2 | Paramètre | 0x06 | Nom du dossier en cours |
|
2 | Paramètre | 0x09 | Temps restant |
|
2 | Paramètre | 0x0A | Temps total du fichier |
|
2 | Paramètre | 0x0B | Valeur du volume |
|
Exemple de trame :
Demande :
0x81 0x04 0x01→ Statut du lecteur 001.Réponse :
PLAYING + CR/LF(en ASCII :50 4C 41 59 49 4E 47 0D 0A).
? 2. Commandes de mise à jour de l’horloge
2.1. Mise à jour de l’heure locale
Positionne l’heure dans le fuseau horaire actuel du lecteur.
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x0C | Mise à jour de l’heure locale. |
2 | Heures | [0x00-0x17] | Heures (0-23). |
3 | Minutes | [0x00-0x3B] | Minutes (0-59). |
4 | Secondes | [0x00-0x3B] | Secondes (0-59). |
Exemple : 0x81 0x0C 0x0F 0x2D 0x1E → Le lecteur 001 règle l’heure à 15:45:30.
2.2. Mise à jour de la date locale
Positionne la date dans le fuseau horaire actuel.
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x1C | Mise à jour de la date locale. |
2 | Année | [0x00-0x7F] | Années depuis 2000 (0-127). |
3 | Mois | [0x01-0x0C] | Mois (1-12). |
4 | Jour | [0x01-0x1F] | Jour (1-31). |
2.3. Mise à jour de la date et de l’heure locale
Combinaison des commandes 2.1 et 2.2.
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x2C | Mise à jour de la date et de l’heure. |
2 | Année | [0x00-0x7F] | Années depuis 2000. |
3 | Mois | [0x01-0x0C] | Mois. |
4 | Jour | [0x01-0x1F] | Jour. |
5 | Heures | [0x00-0x17] | Heures (0-23). |
6 | Minutes | [0x00-0x3B] | Minutes (0-59). |
7 | Secondes | [0x00-0x3B] | Secondes (0-59). |
2.4. Mise à jour de la date et de l’heure UTC/GMT (version epoch)
Utilise un timestamp epoch (secondes depuis le 1er janvier 1970).
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x3C | Mise à jour UTC (epoch). |
2-6 | Epoch | [0x00-0x7F] | Timestamp divisé en 5 octets (bits 28-34, 21-27, etc.). |
2.5. Mise à jour de la date et de l’heure UTC/GMT (version complète)
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x4C | Mise à jour UTC/GMT. |
2 | Année | [0x00-0x7F] | Années depuis 2000. |
3 | Mois | [0x01-0x0C] | Mois. |
4 | Jour | [0x01-0x1F] | Jour. |
5 | Heures | [0x00-0x17] | Heures (UTC/GMT). |
6 | Minutes | [0x00-0x3B] | Minutes. |
7 | Secondes | [0x00-0x3B] | Secondes. |
2.6. Activation/Désactivation du NTP
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x5C | Activation/Désactivation du NTP. |
2 | Activation | 0x00 | Désactive le NTP. |
2 | Activation | 0x01 | Active le NTP. |
Remarque : Désactiver le NTP si vous utilisez des commandes manuelles pour l’horloge.
? 3. Commandes de sélection des sous-titres
3.1. Commande générique de sélection des sous-titres
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x0D | Sélection des sous-titres. |
2 | Paramètre | 0x00 | Désactive les sous-titres. |
2 | Paramètre | 0x01 | Active la sélection automatique. |
2 | Paramètre | 0x02 | Sous-titre précédent (sans bouclage). |
2 | Paramètre | 0x03 | Sous-titre suivant (sans bouclage). |
2 | Paramètre | 0x04 | Sous-titre précédent (avec bouclage). |
2 | Paramètre | 0x05 | Sous-titre suivant (avec bouclage). |
3.2. Sélection d’une piste de sous-titres par code de langue (ISO-639)
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x1D | Sélection par code ISO-639. |
2-4 | Code langue | [0x61-0x7A] | 3 octets ASCII (ex : |
Exemple : 0x81 0x1D 0x65 0x6E 0x67 → Sélectionne la piste anglais (eng) pour le lecteur 001.
3.3. Sélection d’une piste de sous-titres par index
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x2D | Sélection par index. |
2 | Index | [0x00-0x7F] | Index de la piste (0-127). |
3.4. Listage des pistes de sous-titres
Octet | Rôle | Valeur (Hex) | Description | Réponse |
|---|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. | |
1 | Commande | 0x04 | Demande d’informations. | |
2 | Sous-commande | 0x41 | Lister les pistes de sous-titres. |
|
Exemple de réponse : eng;ara;nld (pistes disponibles en ISO-639).
? 4. Commandes de contrôle des dispositifs externes
Octet | Rôle | Valeur (Hex) | Description |
|---|---|---|---|
0 | Synchro | 0x80 | ID du lecteur. |
1 | Commande | 0x02 | Commandes de lecture et veille. |
2 | Paramètre | 0x13 | HDMI-CEC STANDBY : Éteint l’écran. |
2 | Paramètre | 0x14 | HDMI-CEC WAKE UP : Allume l’écran (One Touch Play). |
2 | Paramètre | 0x15 | HDMI-CEC veille/allumage selon contexte. |
2 | Paramètre | 0x16 | PJLINK POWER ON : Allume le vidéoprojecteur. |
2 | Paramètre | 0x17 | PJLINK POWER OFF : Éteint le vidéoprojecteur. |
Modes de transmission
1. Mode unitaire (par défaut)
Seules les données personnalisées transmises par les balises
[RSSxxx]et[RSExxx]sont envoyées sur la sortie Tx (RS-232).Exemple : Un fichier nommé
video [RSS001].mp4enverra la trame série définie dansserial.txt(ligne#001).
2. Mode Daisy Chain
Toutes les informations reçues sur Rx sont retransmises à l’identique sur Tx.
Permet de chaîner plusieurs lecteurs :
Brancher la sortie Tx du lecteur 1 sur l’entrée Rx du lecteur 2, etc.
L’information reçue par le premier lecteur est retransmise en chaîne aux autres.
Activation : Via le menu Configuration avancée > Port série.
⚠️ Attention : Un léger retard peut apparaître en bout de chaîne si de nombreux lecteurs sont connectés.
Configuration avancée
1. Modification de l’adresse du lecteur
Par défaut, tous les lecteurs ont l’adresse 0x80 (pour les commandes générales). Pour cibler un lecteur spécifique :
Utiliser une commande de type :
0x8X 0xXX 0xXXoù X = numéro du lecteur (ex :0x81pour le lecteur 001).Exemple :
0x82 0x02 0x01→ Le lecteur 002 exécute la commande PLAY.
2. Paramètres du port série (RS-232)
Débit : Modifiable de 1200 à 115200 bauds (par défaut : 115200).
Menu : Paramètres du Système > Port série.
3. Ports TCP/IP
Port 65079 : Port par défaut pour les commandes générales (contrôle du lecteur).
Port 44830 : Port dédié à la synchronisation des lecteurs (voir article 007).
Exemples pratiques
1. Lancer la lecture du dossier 001 sur le lecteur 001
Trame :
0x81 0x01 0x000x81: Lecteur 001.0x01: Commande de saut vers un dossier (000-127).0x00: Dossier 000 (000 + 0 = 000).
2. Mettre en veille le lecteur 002
Trame :
0x82 0x02 0x0C0x82: Lecteur 002.0x02: Commandes de lecture/veille.0x0C: STANDBY.
3. Demander le statut du lecteur 001
Trame envoyée :
0x81 0x04 0x01Réponse attendue :
PLAYING + CR/LF(si le lecteur lit un fichier).
4. Régler le volume à 75 sur le lecteur 001
Trame :
0x81 0x03 0x4B0x4B= 75 en hexadécimal.
5. Allumer un vidéoprojecteur via PJLINK (lecteur 001)
Trame :
0x81 0x02 0x16
Bonnes pratiques
1. Câblage RS-232
Utiliser des câbles courts (max 15 m) pour éviter les pertes de signal.
Vérifier que les paramètres série (baud rate, bits) sont identiques sur tous les appareils connectés.
2. Réseau TCP/IP
IP fixe recommandée : Éviter le DHCP dynamique pour les installations critiques.
Ports ouverts : Vérifier que le port 65079 (et 44830 pour la synchronisation) n’est pas bloqué par un pare-feu.
3. Tests
Vérifier les réponses : Utiliser un outil comme Termite ou PuTTY pour envoyer des trames et recevoir les réponses.
Commencer par des commandes simples : Ex :
PLAY,STOP, ou demande de statut (0x04).
4. Dépannage
Problème | Cause possible | Solution |
|---|---|---|
Aucune réponse du lecteur | Mauvais câblage RS-232 ou paramètres série incorrects | Vérifier les connexions et le débit (baud rate). |
Commande ignorée | Adresse ID incorrecte ou trame mal formée | Utiliser |
Port TCP/IP bloqué | Pare-feu ou routeur | Ouvrir le port 65079 (ou 44830). |
Retard en Daisy Chain | Trop de lecteurs en série | Limiter à 5-6 lecteurs max ou utiliser TCP/IP. |
Réponse illisible | Format ASCII non respecté | Vérifier que le logiciel de test interprète le CR/LF. |
Pour aller plus loin :
Synchronisation des lecteurs pour un démarrage simultané
Programmation horodatée
Contrôle du lecteur avec les dossiers et les fichiers
Cet article a-t-il été utile ?
C'est super !
Merci pour votre commentaire
Désolé ! Nous n'avons pas pu vous être utile
Merci pour votre commentaire
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article