Contrôle avancé des lecteurs VP320/VP330 via RS-232 et TCP/IP

Modifié le  Lun, 17 Août à 10:53 H

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).

  • 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 : 0x80 pour tous les lecteurs, 0x81 pour le lecteur 001).

1

Commande

Code de la commande (ex : 0x02 pour les commandes de lecture).

2+

Paramètres

Valeurs spécifiques à la commande (ex : numéro de dossier, niveau de volume).

  • Représentation d’un octet : 8 bits (ex : 10000000b en binaire = 0x80 en 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 : 0x81 pour le lecteur 001).

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 (car 0x41 = plage 512-639, et 0x7C = 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

PLAYING / STOP / PAUSE / ERROR

2

Paramètre

0x02

Nom du fichier en cours

Nom du fichier (ex : bird.mp4)

2

Paramètre

0x03

Nom + emplacement du fichier

001/bird.mp4

2

Paramètre

0x04

Média utilisé

USB / SD / Mémoire interne

2

Paramètre

0x06

Nom du dossier en cours

001 à 999

2

Paramètre

0x09

Temps restant

hh:mm:ss (ex : 00:05:14)

2

Paramètre

0x0A

Temps total du fichier

hh:mm:ss (ex : 01:42:27)

2

Paramètre

0x0B

Valeur du volume

0 à 100 (ex : 16)

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 : eng0x65 0x6E 0x67).

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.

eng;ara;nld + CR/LF

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].mp4 enverra la trame série définie dans serial.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 0xXXX = numéro du lecteur (ex : 0x81 pour 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 0x00

    • 0x81 : 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 0x0C

    • 0x82 : Lecteur 002.

    • 0x02 : Commandes de lecture/veille.

    • 0x0C : STANDBY.

3. Demander le statut du lecteur 001

  • Trame envoyée : 0x81 0x04 0x01

  • Réponse attendue : PLAYING + CR/LF (si le lecteur lit un fichier).

4. Régler le volume à 75 sur le lecteur 001

  • Trame : 0x81 0x03 0x4B

    • 0x4B = 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 0x80 pour tous les lecteurs ou l’ID spécifique.

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

Dites-nous comment nous pouvons améliorer cet article !

Sélectionner au moins l'une des raisons
La vérification CAPTCHA est requise.

Commentaires envoyés

Nous apprécions vos efforts et nous allons corriger l'article