Le lecteur MicroPlayer mkIII peut communiquer avec d’autres appareils. Il peut recevoir des ordres par son entrée Rx ou transmettre des informations par sa sortie Tx. Le lecteur répond à la norme RS232.
TABLE DES MATIÈRES
Valeur par défaut : 19200 Bauds - 8 bits - Pas de parité - 1 bit de start - 1 bit de stop
Le baud rate est modifiable par le fichier config.txt
Protocole de réception
Avec le protocole d’entrée, le lecteur peut recevoir des ordres pour lancer la lecture d’un dossier ou régler le volume. Par ailleurs, dans le cadre d’utilisation de plusieurs lecteurs sur la même liaison, le lecteur répond à son propre numéro (défini dans le fichier «config.txt», voir le chapitre 5) ou à une commande générale.
Le protocole de réception est construit à partir d’une trame de 3 octets.
Octet 1 (statut) + Octet 2 (commande) + Octet 3 (donnée)

Rappel :
- un octet est constitué de 8 bits : b7 b6 b5 b4 b3 b2 b1 b0
- une représentation binaire d’un octet est notée : 10000000b ou en hexadécimal : 80h
Octet 1 : Statut - 1xxxxxxxb
L’octet de statut est une information de synchronisation de trame. Son bit 8 (b7) est toujours à 1. Tous les autres octets (commandes ou données) ont leur bit 8 à 0.
b7 = 1 : désigne un octet de statut.
b6 - b0 : identification du lecteur à adresser de 001 à 127 (0000001b - 1111111b)
L’adresse du lecteur est 001 par défaut. Vous pouvez la modifier dans le fichier config.txt.
Plusieurs lecteurs peuvent avoir le même numéro d’identification pour créer des groupes.
L’identification 000 est l’adresse «globale», tous les lecteurs sont concernés par la commande (commande unique pour tous les lecteurs).
Exemple d’adresse ID :
- 80h = Code global pour tous les lecteurs
- 81h = Lecteur N°001
- 9Eh = Lecteur N°030
- FFh = Lecteur N°127
Octet 2 (Commande) 0xxxxxxxb + Octet 3 (Donnée) 0xxxxxxxb
L’octet 2 est une commande et l’octet 3 est une donnée qui vient compléter l’octet de commande. Un octet de commande est toujours suivi d’un octet de données. Une trame complète est donc constituée de 3 octets.
b7 = 0 : désigne un octet de commande ou de donnée.
b6, b5, b4 : sélection de banque pour la commande de saut de répertoire
b3, b2, b1, b0 : code commande envoyée au lecteur.
Liste des commandes :
- 00h : Non utilisé
- x1h (01h à 71h) : Saut vers un dossier
- 02h : Commande de transport
- 03h : Réglage de volume
00h - 00000000b : non utilisé
01h à 71h - 0xxx0001b : saut vers un dossier
Le dossier est désigné par le numéro de banque et l’octet de données qui suit.
xxx est le numéro de banque. Pour adresser 1000 dossiers (de 000 à 999), il est nécessaire de diviser ce chiffre en plusieurs plages (banques) de 128 valeurs :
- 0xxx0001b : xxx = numéro de banque en fonction du numéro de dossier
- 01h - 00000001b : Banque 0 -> de 000 à 127
- 11h - 00010001b : Banque 1 -> de 128 à 255
- 21h - 00100001b : Banque 2 -> de 256 à 383
- 31h - 00110001b : Banque 3 -> de 384 à 511
- 41h - 01000001b : Banque 4 -> de 512 à 639
- 51h - 01010001b : Banque 5 -> de 640 à 767
- 61h - 01100001b : Banque 6 -> de 768 à 895
- 71h - 01110001b : Banque 7 -> de 896 à 999 (les valeurs binaires au-delà de 999 sont ignorées).
Méthode de calcul :
1) banque = valeur dans le tableau ci-dessus en fonction du numéro de dossier
2) valeur = numéro de dossier - (numéro de banque x 128)
Exemple d’une trame lançant le dossier 278 du lecteur numéro 001 :
Numéro de dossier = 278
1) 278 se trouve en banque 2 (de 256 à 383)
2) Valeur = 278 - (2 x 128) = 22
La trame est la suivante : 81 21 16
Octet 1 : 81h - 10000001b : octet statut, lecteur numéro 001
Octet 2 : 21h - 00100001b : banque 2, commande de saut
Octet 3 : 16h - 00010110b : valeur 22
02h - 00000010b : commande de transport.
La fonction est définie par l’octet de données qui suit :
Valeur des données de l’octet 3 :
01h - 00000001b : Lecture
02h - 00000010b : Stop
03h - 00000011b : Morceau suivant dans le répertoire en cours
04h - 00000100b : Morceau précédent dans le répertoire en cours.
Note : Les autres valeurs sont ignorées.
Exemple de la trame complète : 81 02 01
- Octet 1 : 81h - 10000001b : octet statut, lecteur numéro 001
- Octet 2 : 02h - 00000010b : commande de transport
- Octet 3 : 01h - 00000001b : Commande de lecture
03h - 00000011b : réglage du volume.
La valeur est définie par l’octet de données qui suit :
Valeur des données de l’octet 3 comprise entre 0 et 64.
00h - 00000000b : Mute - Le volume est à zéro
20h - 00100000b : Volume à moitié - valeur 32
40h - 01000000b : Volume maximal - valeur 64
Note : Les valeurs supérieures à 64 sont ignorées.
Exemple de la trame complète : 81 03 0E
- Octet 1 : 81h - 10000001b : octet statut, lecteur numéro 001
- Octet 2 : 03h - 00000011b : commande de volume
- Octet 3 : 0Eh - 00001110b : réglage du volume à 14
Protocole de transmission - Monitoring
Le MicroPlayer mkIII peut transmettre plusieurs type de données sur le port RS232.
- Les données personnalisées transmises par les balises [RSxxx]. (voir chapitre 5 «nommage des dossiers et des fichiers»).
- Les données de commande du lecteur retransmisent en mode «Daisy Chain».
- Les données d’état du lecteur transmises en mode «Surveillance» et «Surveillance étendue».
Pour déterminer le type de données transmisent sur le port RS232, 4 modes de monitoring existent.
Le mode de «monitoring» est définit dans le fichier de configuration «config.txt» (voir chapitre 5 sur le fichier de configuration). Les modes Daisy Chain et surveillance se cumulent avec le mode d’envoi d’information par balise.
Mode 0 : Pas de mode surveillance
Seules les données transmises par les balises [RSxxx] sont envoyées sur la sortie Tx.
Mode 1 : «Daisy Chain»
Ce mode signifie que toutes les informations qui rentrent sur la ligne Rx ressortent à l’identique par la ligne Tx. Ce mode permet d’enchaîner plusieurs lecteurs les uns à la suite des autres. En branchant la sortie Tx du premier lecteur sur l’entrée Rx du second lecteur et ainsi de suite, l’information reçue par le premier lecteur sur sa prise Rx est renvoyée aux autres lecteurs en chaîne. Attention, si de nombreux lecteurs sont connectés de cette façon, un léger retard pourra se faire sentir en bout de chaîne.
Mode 2 : «Surveillance»
Dans ce mode, le lecteur envoie des informations sur la sortie Tx suivant les actions qu’il exécute. Ce mode ne permettant pas d’enchaîner les lecteurs. La surveillance permet à un automate, un ordinateur, un organe de sécurité de connaître l’état du lecteur et de faire des tests de fonctionnement. Dans ce mode le lecteur envoie son état à chaque changement.
Le protocole d’émission est construit à partir d’une trame de 3 octets, semblable à celui de la réception.
Octet 1 : Statut
> b7 = 1 : désigne l’octet de statut.
> b6 - b0 : identification du lecteur émetteur de 001 à 127 (0000001b - 1111111b)
L’adresse du lecteur est 001 par défaut soit 81h. Modifiable dans le fichier «config.txt».
Octet 2 (Commande)
Valeur unique : 00h - 00000000b
Octet 3 (Donnée)
00h - 00000000b : Lecteur prêt - Le lecteur signale qu’il est prêt et disponible - Après une mise sous tension et le démarrage complet du lecteur.
01h - 00000001b : Non utilisé
02h - 00000010b : Non utilisé
03h - 00000011b : Signale le début de lecture - Ce code est envoyé lorsque le lecteur entre en mode lecture.
04h - 00000100b : Signale la fin de lecture - Le lecteur signale qu’il a fini de lire le fichier en cours.
Les autre valeurs ne sont pas utilisées.
Exemple d’un cycle pour vérifier le bon fonctionnement du lecteur en faisant jouer un fichier audio.
Préparation : Supposons que le numéro de lecteur est 001.
Créer un dossier «001» dans lequel sera copié le fichier audio (mon fichier.mp3).
Lancer la lecture du dossier «001» (par l’activation du contact sec 1 ou par l’envoie d’une commande RS232). Quand le lecteur passe en lecture, il émet une trame de début de lecture : 81h 00h 03h. A la fin de la lecture du fichier, le lecteur émet une trame signalant la fin de lecture : 81h 00h 04h.
Mode 3 : «Surveillance étendue»
Le mode étendu reprend les mêmes fonctions que le mode surveillance de base mais ajoute une fonction d’envoi permanent de son état.
Une trame est envoyée toutes les 250ms décrivant l’état du lecteur parmi 2 possibilités :
01h - 00000001b : Envoie une trame mentionnant que le lecteur ne lit pas et attend une commande.
02h - 00000010b : Envoie une trame mentionnant que le lecteur lit un fichier.
Ce mode est utilisé dans le cadre d’une gestion de messages de sécurité. Un défaut de trame signale une erreur et permet d’intervenir pour traiter le défaut.
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