Man page - lirc(4)

Packages contains this manual

Available languages:

en fr ru ro

Manual

lirc

NOM
DESCRIPTION
Lecture de l’entrĂ©e avec le mode LIRC_MODE_MODE2
Lecture de l’entrĂ©e avec le mode LIRC_MODE_SCANCODE
Écriture de la sortie avec le mode LIRC_MODE_PULSE
Écriture de la sortie avec le mode LIRC_MODE_SCANCODE
COMMANDES IOCTL
Commandes toujours prises en charge
Commandes facultatives
FONCTIONNALITÉS
BOGUES
VOIR AUSSI
TRADUCTION

NOM

lirc — pĂ©riphĂ©riques lirc

DESCRIPTION

Les pĂ©riphĂ©riques caractĂšres /dev/lirc* fournissent une interface bidirectionnelle de bas niveau pour les tĂ©lĂ©commandes infrarouges (IR). La plupart de ces pĂ©riphĂ©riques peuvent recevoir et certains peuvent Ă©mettre. Lors de la rĂ©ception ou de l’émission de donnĂ©es, le pilote fonctionne dans deux modes diffĂ©rents selon le matĂ©riel sous-jacent.

Certains matĂ©riels (typiquement les cartes TV) dĂ©codent le signal infrarouge en interne et fournissent des dĂ©codages d’appui de bouton sous forme de code d’analyse d’évĂšnement du clavier (scancode). Les pilotes de cette sorte de matĂ©riel fonctionnent dans le mode LIRC_MODE_SCANCODE . De tels matĂ©riels habituellement ne gĂšrent pas l’émission de signaux infrarouges. De plus, de tels matĂ©riels ne peuvent dĂ©coder seulement qu’un nombre limitĂ© de protocoles, habituellement seulement le protocole de la tĂ©lĂ©commande particuliĂšre fournie avec, par exemple, une carte TV.

D’autres matĂ©riels fournissent un flux d’impulsions/intervalles. De tels pilotes fonctionnent dans le mode LIRC_MODE_MODE2 . De tels matĂ©riels peuvent ĂȘtre utilisĂ©s (presque) avec n’importe quelle sorte de tĂ©lĂ©commande. Ce genre de matĂ©riel peut ĂȘtre aussi utilisĂ© dans le mode LIRC_MODE_SCANCODE , auquel cas les dĂ©codeurs IR du noyau dĂ©coderont les signaux infrarouges. Ces dĂ©codeurs peuvent ĂȘtre Ă©crits en BPF Ă©tendu (consulter bpf (2)) et attachĂ©s au pĂ©riphĂ©rique lirc . Quelquefois ce genre de matĂ©riel gĂšre l’émission de donnĂ©es par IR.

L’ioctl LIRC_GET_FEATURES (voir ci-aprĂšs) permet de savoir si l’émission et la rĂ©ception sont prises en charge, et, entre autres caractĂ©ristiques, dans quels modes.

Lecture de l’entrĂ©e avec le mode LIRC_MODE_MODE2

Dans le mode LIRC_MODE_MODE2 , les donnĂ©es renvoyĂ©es par read (2) fournissent des valeurs en 32 bits reprĂ©sentant une durĂ©e d’intervalle ou d’impulsion. La durĂ©e (en microsecondes) est encodĂ©e dans les 24 bits de plus faible poids. L’impulsion (pulse aussi appelĂ©e flash) indique une durĂ©e de lumiĂšre infrarouge dĂ©tectĂ©e et l’intervalle (space aussi appelĂ© gap) indique une durĂ©e sans infrarouges. Si la durĂ©e de l’intervalle excĂšde la temporisation (timeout) d’inactivitĂ©, un paquet spĂ©cial de temporisation est Ă©mis qui marque la fin du message. Les 8 bits de poids le plus fort indiquent le type de paquet :
LIRC_MODE2_SPACE

La valeur indique une durĂ©e d’intervalle (microsecondes)

LIRC_MODE2_PULSE

La valeur indique une durĂ©e d’impulsion (microsecondes)

LIRC_MODE2_FREQUENCY

La valeur indique une frĂ©quence (Hz); consulter l’ioctl LIRC_SET_MEASURE_CARRIER_MODE .

LIRC_MODE2_TIMEOUT

La valeur indique une durĂ©e d’intervalle (microsecondes). Le paquet indique une temporisation ; consulter l’ioctl LIRC_SET_REC_TIMEOUT_REPORTS .

LIRC_MODE2_OVERFLOW

Le rĂ©cepteur IR est victime d’un dĂ©bordement, et en consĂ©quence des donnĂ©es manquent (depuis Linux 5.18).

Lecture de l’entrĂ©e avec le mode LIRC_MODE_SCANCODE

Dans le mode LIRC_MODE_SCANCODE , les donnĂ©es renvoyĂ©es par read (2) reflĂštent les dĂ©codages d’appui sur les boutons dans la structure lirc_scancode . Le scancode est stockĂ© dans le champ scancode , et le protocole IR est stockĂ© dans rc_proto . Ce champ a une des valeurs de enum rc_proto .

Écriture de la sortie avec le mode LIRC_MODE_PULSE

Les donnĂ©es Ă©crites sur le pĂ©riphĂ©rique caractĂšre en utilisant write (2) sont une sĂ©quence d’impulsions/intervalles de valeurs entiĂšres. Les impulsions et les intervalles sont marquĂ©s implicitement par leur position. Les donnĂ©es doivent dĂ©buter et se terminer par une impulsion, par consĂ©quent elles doivent toujours inclurent un nombre impair d’échantillons. La fonction write (2) bloque jusqu’à ce que les donnĂ©es aient Ă©tĂ© transmises par l’appareil. Si plus de donnĂ©es sont fournies que ce que l’appareil peut envoyer, l’appel write (2) Ă©choue avec l’erreur EINVAL .

Écriture de la sortie avec le mode LIRC_MODE_SCANCODE

Les donnĂ©es Ă©crites sur le pĂ©riphĂ©rique caractĂšre doivent ĂȘtre en une seule structure lirc_scancode . Les champs scancode et rc_proto doivent renseigner, tous les autres champs doivent ĂȘtre ĂȘtre 0. Les encodeurs IR du noyau convertiront le scancode en impulsions et intervalles. Le protocole ou le scancode est non valable, ou le pĂ©riphĂ©rique lirc ne peut pas transmettre.

COMMANDES IOCTL

#include <linux/lirc.h> /* Mais voir BOGUES */
int ioctl(int fd, int cmd, int *val);

Les opĂ©rations d’ ioctl (2) suivantes sont fournies par le pĂ©riphĂ©rique caractĂšre lirc pour examiner ou modifier les rĂ©glages lirc du matĂ©riel.

Commandes toujours prises en charge

Les périphériques /dev/lirc* gÚrent toujours la commande suivante :
LIRC_GET_FEATURES
( void )

Renvoi d’un masque de bits des bits combinĂ©s de fonctionnalitĂ©s ; consulter FONCTIONNALITÉS.

Si un pĂ©riphĂ©rique renvoie un code d’erreur pour LIRC_GET_FEATURES , il est normal de prĂ©sumer que ce n’est pas un pĂ©riphĂ©rique lirc .

Commandes facultatives

Quelques pĂ©riphĂ©riques lirc prennent en charge les commandes listĂ©es ci-aprĂšs. À moins d’ĂȘtre dĂ©clarĂ©es autrement, elles Ă©chouent avec l’erreur ENOTTY si l’opĂ©ration n’est pas gĂ©rĂ©e, ou avec l’erreur EINVAL si l’opĂ©ration Ă©choue ou si des arguments non valables sont fournis. Si le pilote n’annonce pas que certaines fonctionnalitĂ©s ne sont pas gĂ©rĂ©es, l’invocation des ioctls correspondants Ă©chouera avec l’erreur ENOTTY .
LIRC_GET_REC_MODE
( void )

Si le pĂ©riphĂ©rique lirc n’a pas de rĂ©cepteur, cette opĂ©ration Ă©chouera avec l’erreur ENOTTY . Sinon le mode de rĂ©ception sera renvoyĂ© et sera un des suivants :
LIRC_MODE_MODE2

le pilote renvoie une sĂ©quence de durĂ©es d’impulsion/intervalles ;

LIRC_MODE_SCANCODE

le pilote renvoie les valeurs de la structure lirc_scancode , chacune d’elles reprĂ©sentant le dĂ©codage d’appui d’un bouton.

LIRC_SET_REC_MODE ( int )

RĂ©glage du mode de rĂ©ception. val est soit LIRC_MODE_SCANCODE ou LIRC_MODE_MODE2 . Si le pĂ©riphĂ©rique lirc n’a pas de rĂ©cepteur, cette opĂ©ration Ă©choue avec l’erreur ENOTTY.

LIRC_GET_SEND_MODE ( void )

Renvoi du mode d’émission. LIRC_MODE_PULSE ou LIRC_MODE_SCANCODE sont gĂ©rĂ©es. Si le pĂ©riphĂ©rique lirc ne peut pas Ă©mettre, cette opĂ©ration Ă©choue avec l’erreur ENOTTY.

LIRC_SET_SEND_MODE ( int )

RĂ©glage du mode d’émission. val est soit LIRC_MODE_SCANCODE ou LIRC_MODE_PULSE . Si le pĂ©riphĂ©rique lirc ne peut pas Ă©mettre, cette opĂ©ration Ă©choue avec l’erreur ENOTTY.

LIRC_SET_SEND_CARRIER ( int )

RĂ©glage de la frĂ©quence de modulation. L’argument est la frĂ©quence (Hz).

LIRC_SET_SEND_DUTY_CYCLE ( int )

RĂ©glage du cycle opĂ©ratoire de la porteuse. val est un nombre dans l’intervalle [0,100] qui dĂ©crit la largeur d’impulsion comme un pourcentage du cycle total. Actuellement, aucune signification spĂ©ciale n’est donnĂ©e Ă  0 ou 100, mais ces valeurs sont rĂ©servĂ©es pour une utilisation future.

LIRC_GET_MIN_TIMEOUT( void )
LIRC_GET_MAX_TIMEOUT(
void )

Certains pĂ©riphĂ©riques ont des minuteurs internes qui peuvent ĂȘtre utilisĂ©s pour dĂ©tecter lorsqu’il n’y a pas eu d’activitĂ© IR depuis un long moment. Cela peut aider lircd (8) dans la dĂ©tection qu’un signal IR a cessĂ©, et peut accĂ©lĂ©rer le processus de dĂ©codage. Ces opĂ©rations renvoient des valeurs entiĂšres avec une temporisation minimale ou maximale pouvant ĂȘtre dĂ©finie (microsecondes). Certains pĂ©riphĂ©riques ont une temporisation fixe. Pour de tels pilotes, LIRC_GET_MIN_TIMEOUT et LIRC_GET_MAX_TIMEOUT Ă©choueront avec l’erreur ENOTTY .

LIRC_SET_REC_TIMEOUT ( int )

RĂ©glage de la valeur entiĂšre pour la temporisation d’inactivitĂ© IR (microsecondes). Pour ĂȘtre acceptĂ©e la valeur doit ĂȘtre entre des limites dĂ©finies par LIRC_GET_MIN_TIMEOUT et LIRC_GET_MAX_TIMEOUT . Une valeur de 0 (si acceptĂ©e par le matĂ©riel) dĂ©sactive toutes les temporisations de matĂ©riel et les donnĂ©es devraient ĂȘtre annoncĂ©es le plus tĂŽt possible. Si la valeur exacte ne peut ĂȘtre rĂ©glĂ©e, alors la valeur supĂ©rieure possible la plus proche de la valeur donnĂ©e devrait ĂȘtre dĂ©finie.

LIRC_GET_REC_TIMEOUT ( void )

Renvoi de la temporisation actuelle (microsecondes). Depuis Linux 4.18.

LIRC_SET_REC_TIMEOUT_REPORTS ( int )

Activation ( val est 1) ou désactivation ( val est 0) des paquets de temporisation dans LIRC_MODE_MODE2 . Le comportement de cette opération a varié selon les versions du noyau :

-

Depuis Linux 5.17 : les paquets de temporisation sont toujours activés et cet ioctl ne produit aucun effet.

-

Depuis Linux 4.16 : les paquets de temporisation sont activĂ©s par dĂ©faut. Chaque fois que le pĂ©riphĂ©rique lirc est ouvert, l’opĂ©ration LIRC_SET_REC_TIMEOUT peut ĂȘtre utilisĂ©e pour dĂ©sactiver (et, si dĂ©sirĂ©, rĂ©activer ultĂ©rieurement) la temporisation sur le descripteur de fichier.

-

Dans Linux 4.15 et prĂ©cĂ©dents : les paquets de temporisation sont dĂ©sactivĂ©s par dĂ©faut et leur activation (Ă  l’aide de LIRC_SET_REC_TIMEOUT ) sur n’importe quel descripteur de fichier associĂ© avec le pĂ©riphĂ©rique lirc a pour effet d’activer les temporisations pour tous les descripteurs de fichier rĂ©fĂ©rant Ă  ce pĂ©riphĂ©rique (jusqu’à ce que les temporisations soient dĂ©sactivĂ©s de nouveau).

LIRC_SET_REC_CARRIER ( int )

Réglage de la limite supérieure de la fréquence de la porteuse de réception (Hz). Consulter LIRC_SET_REC_CARRIER_RANGE .

LIRC_SET_REC_CARRIER_RANGE ( int )

RĂ©glage de la limite infĂ©rieure de la frĂ©quence de la porteuse de rĂ©ception (Hz). Pour que ces rĂ©glages soient effectifs, il faut rĂ©gler la limite infĂ©rieure en utilisant l’ioctl LIRC_SET_REC_CARRIER_RANGE , puis la limite supĂ©rieure en utilisant l’ioctl LIRC_SET_REC_CARRIER .

LIRC_SET_MEASURE_CARRIER_MODE ( int )

Activation ( val vaut 1) ou dĂ©sactivation ( val vaut 0) du mode de mesure. Si activĂ©, lors du prochain appui de touche, le pilote enverra des paquets LIRC_MODE2_FREQUENCY . Par dĂ©faut, cela devrait ĂȘtre dĂ©sactivĂ©.

LIRC_GET_REC_RESOLUTION ( void )

Renvoi de la résolution du pilote (microsecondes).

LIRC_SET_TRANSMITTER_MASK ( int )

Activation de l’ensemble des Ă©metteurs indiquĂ©s dans val , qui contient un masque de bits ou chaque Ă©metteur activĂ© est un 1. Le premier Ă©metteur est encodĂ© par le bit de poids le plus faible, etc. Quand un masque de bits non valable est fourni, par exemple un bit est dĂ©fini bien que le pĂ©riphĂ©rique n’ait pas autant d’émetteurs, cette opĂ©ration renvoie le nombre d’émetteurs disponibles et ne fait rien d’autre autrement.

LIRC_SET_WIDEBAND_RECEIVER ( int )

Certains pĂ©riphĂ©riques sont Ă©quipĂ©s d’un rĂ©cepteur large bande qui est prĂ©vu pour dĂ©couvrir la sortie d’une tĂ©lĂ©commande existante. Cet ioctl peut ĂȘtre utilisĂ© pour activer ( val vaut 1) ou dĂ©sactiver ( val vaut 0) cette fonctionnalitĂ©. Cela peut ĂȘtre utile pour des pĂ©riphĂ©riques qui autrement ont des rĂ©cepteurs Ă  bande Ă©troite pour empĂȘcher une utilisation avec certaines tĂ©lĂ©commandes. Les rĂ©cepteurs Ă  large bande peuvent ĂȘtre aussi plus prĂ©cis. D’un autre cĂŽtĂ©, leur dĂ©savantage est en gĂ©nĂ©ral une rĂ©duction de la bande de rĂ©ception.

Remarque : le rĂ©cepteur large bande peut ĂȘtre implicitement activĂ© si les annonces de porteuse sont activĂ©es. Dans ce cas, il sera dĂ©sactivĂ© aussitĂŽt que les annonces de porteuse seront dĂ©sactivĂ©es. Essayer de dĂ©activer un rĂ©cepteur large bande alors que les annonces de porteuse sont activĂ©es est sans effet.

FONCTIONNALITÉS

L’ioctl LIRC_GET_FEATURES renvoie un masque de bits dĂ©crivant les fonctionnalitĂ©s du pilote. Les bits suivants peuvent ĂȘtre renvoyĂ©s dans le masque :
LIRC_CAN_REC_MODE2

Le pilote peut recevoir en utilisant LIRC_MODE_MODE2 .

LIRC_CAN_REC_SCANCODE

Le pilote peut recevoir en utilisant LIRC_MODE_SCANCODE .

LIRC_CAN_SET_SEND_CARRIER

Le pilote gÚre la modification de la fréquence de modulation en utilisant LIRC_SET_SEND_CARRIER .

LIRC_CAN_SET_SEND_DUTY_CYCLE

Le pilote gÚre la modification du cycle opératoire en utilisant LIRC_SET_SEND_DUTY_CYCLE .

LIRC_CAN_SET_TRANSMITTER_MASK

Le pilot gÚre les émetteurs actifs en utilisant LIRC_SET_TRANSMITTER_MASK .

LIRC_CAN_SET_REC_CARRIER

Le pilote gĂšre le rĂ©glage de la frĂ©quence de la porteuse en utilisant LIRC_SET_REC_CARRIER . N’importe quel pĂ©riphĂ©rique lirc depuis que les pilotes ont Ă©tĂ© intĂ©grĂ©s dans Linux 2.6.36 peut avoir LIRC_CAN_SET_REC_CARRIER_RANGE dĂ©clarĂ© si la fonctionnalitĂ© LIRC_CAN_SET_REC_CARRIER est activĂ©e.

LIRC_CAN_SET_REC_CARRIER_RANGE

Le pilote gĂšre LIRC_SET_REC_CARRIER_RANGE . La limite basse de la porteuse doit ĂȘtre d’abord dĂ©finie en utilisant l’ioctl LIRC_SET_REC_CARRIER_RANGE , avant d’utiliser l’ioctl LIRC_SET_REC_CARRIER pour dĂ©finir la limite supĂ©rieure.

LIRC_CAN_GET_REC_RESOLUTION

Le pilote gĂšre LIRC_GET_REC_RESOLUTION .

LIRC_CAN_SET_REC_TIMEOUT

Le pilote gĂšre LIRC_SET_REC_TIMEOUT .

LIRC_CAN_MEASURE_CARRIER

Le pilote gÚre la mesure de la fréquence de modulation en utilisant LIRC_SET_MEASURE_CARRIER_MODE .

LIRC_CAN_USE_WIDEBAND_RECEIVER

Le pilote gùre le mode d’apprentissage en utilisant LIRC_SET_WIDEBAND_RECEIVER .

LIRC_CAN_SEND_PULSE

Le pilote gĂšre l’émission en utilisant LIRC_MODE_PULSE ou LIRC_MODE_SCANCODE

BOGUES

L’utilisation de ces pĂ©riphĂ©riques nĂ©cessite le fichier source d’en-tĂȘte du noyau lirc.h . Ce fichier n’était pas disponible avant Linux 4.6. Les utilisateurs de noyaux plus anciens peuvent utiliser le fichier disponible dans http://www.lirc.org .

VOIR AUSSI

ir-ctl (1), lircd (8), bpf (2)
https://www.kernel.org/doc/html/latest/userspace-api/media/rc/lirc-dev.html

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .