Provided by: manpages-ro_4.27.0-1_all bug

NUME

       lirc - dispozitive lirc (Linux Infrared remote control)

DESCRIERE

       Dispozitivele   de  caractere  /dev/lirc*  oferă  o  interfață  bidirecțională  de  nivel  scăzut  pentru
       telecomenzile cu infraroșu (IR).  Majoritatea acestor dispozitive  pot  primi,  iar  unele  pot  trimite.
       Atunci  când  primește  sau trimite date, controlorul funcționează în două moduri diferite, în funcție de
       hardware-ul subiacent.

       Unele echipamente hardware (de obicei, plăci TV) decodifică semnalul IR intern și furnizează apăsările de
       buton decodificate ca valori ale codului de scan. Controlorii pentru acest tip de  hardware  funcționează
       în  modul  LIRC_MODE_SCANCODE.  De  obicei, un astfel de hardware nu acceptă trimiterea de semnale IR. În
       plus, un astfel de hardware poate decodifica doar un  set  limitat  de  protocoale  IR,  de  obicei  doar
       protocolul telecomenzii specifice care este inclusă, de exemplu, cu o placă TV.

       Alte  echipamente  hardware furnizează un flux de durate ale impulsurilor/spațiilor. Astfel de controlori
       funcționează în modul LIRC_MODE_MODE2. Acest tip de hardware poate fi utilizat cu (aproape) orice tip  de
       telecomandă.  Acest  tip  de  hardware  poate  fi  utilizat  și  în modul LIRC_MODE_SCANCODE, caz în care
       decodoarele IR ale nucleului vor decoda IR.  Aceste decodoare pot fi scrise în BPF  extins  (a  se  vedea
       bpf(2)) și atașate la dispozitivul lirc.  Uneori, acest tip de hardware acceptă și trimiterea de date IR.

       Ioctl-ul  LIRC_GET_FEATURES (a se vedea mai jos) permite, printre altele, să se verifice dacă primirea și
       trimiterea sunt acceptate și în ce moduri.

   Citirea intrării cu modul LIRC_MODE_MODE2
       În modul LIRC_MODE_MODE2, datele returnate de read(2) furnizează valori pe 32  de  biți  reprezentând  un
       spațiu  sau o durată de impuls. Timpul duratei (microsecunde) este codificat în cei 24 de biți inferiori.
       Impulsul (cunoscut și sub denumirea de flash) indică o durată de  detectare  a  luminii  infraroșii,  iar
       spațiul  (cunoscut  și  sub  denumirea  de  spațiu) indică o durată fără infraroșu. Dacă durata spațiului
       depășește timpul de inactivitate, este livrat un pachet special de timp de inactivitate,  care  marchează
       sfârșitul unui mesaj. Cei 8 biți superiori indică tipul de pachet:

       LIRC_MODE2_SPACE
           Valoarea reflectă o durată a spațiului (microsecunde).

       LIRC_MODE2_PULSE
           Valoarea reflectă durata unui impuls (microsecunde).

       LIRC_MODE2_FREQUENCY
           Valoarea reflectă o frecvență (Hz); consultați ioctl-ul LIRC_SET_MEASURE_CARRIER_MODE.

       LIRC_MODE2_TIMEOUT
           Valoarea  reflectă  o  durată  a  spațiului  (microsecunde).  Pachetul reflectă un timp de așteptare;
           consultați ioctl-ul LIRC_SET_REC_TIMEOUT_REPORTS.

       LIRC_MODE2_OVERFLOW
           Receptorul IR s-a confruntat cu o depășire de capacitate și, prin urmare, datele lipsesc (de la Linux
           5.18).

   Citirea intrării în modul LIRC_MODE_SCANCODE
       În modul LIRC_MODE_SCANCODE, datele returnate  de  read(2)  reflectă  apăsările  de  buton  decodate,  în
       structura  lirc_scancode.  Codul de scanare este stocat în câmpul scancode, iar protocolul IR este stocat
       în rc_proto.  Acest câmp are una dintre valorile din structura enum rc_proto.

   Scrierea ieșirii în modul LIRC_MODE_PULSE
       Datele scrise în dispozitivul de caractere folosind write(2)  sunt  o  secvență  de  impulsuri/spații  de
       valori  întregi.  Impulsurile  și spațiile sunt marcate doar implicit prin poziția lor. Datele trebuie să
       înceapă și să se încheie cu un impuls, deci trebuie să includă întotdeauna un număr impar de  eșantioane.
       Funcția  write(2)  se  blochează  până când datele au fost transmise de hardware. Dacă sunt furnizate mai
       multe date decât poate trimite hardware-ul, apelul write(2) eșuează cu eroarea EINVAL.

   Scrierea ieșirii în modul LIRC_MODE_SCANCODE
       Datele scrise în dispozitivele de caractere trebuie să fie o singură structură  lirc_scancode.  Câmpurile
       scancode și rc_proto trebuie completate, toate celelalte câmpuri trebuie să fie 0. Codificatoarele IR ale
       nucleului vor converti scan-codul în impulsuri și spații.  Protocolul sau codul de scanare nu este valid,
       sau dispozitivul lirc nu poate transmite.

COMENZI IOCTL

       #include <linux/lirc.h>    /* Dar consultați secțiunea ERORI */

       int ioctl(int fd, int cmd, int *val);

       Următoarele  operații  ioctl(2)  sunt  furnizate  de  dispozitivul  de  caractere lirc pentru a sonda sau
       modifica parametrii hardware specifici lirc.

   Comenzi acceptate întotdeauna
       Dispozitivele /dev/lirc* acceptă întotdeauna următoarele comenzi:

       LIRC_GET_FEATURES (void)
           Returnează o mască de biți de caracteristici combinate; consultați CARACTERISTICI.

       Dacă un dispozitiv returnează un cod de eroare pentru LIRC_GET_FEATURES, se poate presupune că acesta  nu
       este un dispozitiv lirc.

   Comenzi opționale
       Unele  dispozitive  lirc  acceptă  comenzile  enumerate mai jos. Cu excepția cazului în care se specifică
       altfel, acestea eșuează cu eroarea ENOTTY dacă operația nu este acceptată  sau  cu  eroarea  EINVAL  dacă
       operația  a  eșuat  sau au fost furnizate argumente nevalide. Dacă un controlor nu anunță suportul pentru
       anumite caracteristici, invocarea ioctl-urilor corespunzătoare va eșua cu eroarea ENOTTY.

       LIRC_GET_REC_MODE (void)
              Dacă dispozitivul lirc nu are receptor,  această  operație  eșuează  cu  eroarea  ENOTTY.  În  caz
              contrar, se returnează modul de recepție, care va fi unul dintre:

              LIRC_MODE_MODE2
                     Controlorul returnează o secvență de durate ale impulsurilor/spațiilor.

              LIRC_MODE_SCANCODE
                     Controlorul   returnează   valorile   structurii   lirc_scancode,  fiecare  dintre  acestea
                     reprezentând o apăsare de buton decodificată.

       LIRC_SET_REC_MODE (int)
              Stabilește modul  de  recepție.  val  este  fie  LIRC_MODE_SCANCODE,  fie  LIRC_MODE_MODE2.   Dacă
              dispozitivul lirc nu are receptor, această operație eșuează cu eroarea ENOTTY.

       LIRC_GET_SEND_MODE (void)
              Returnează  modul  de  trimitere. Este acceptat modul LIRC_MODE_PULSE sau LIRC_MODE_SCANCODE. Dacă
              dispozitivul lirc nu poate trimite, această operație eșuează cu eroarea ENOTTY.

       LIRC_SET_SEND_MODE (int)
              Stabilește modul  de  trimitere.  val  este  fie  LIRC_MODE_SCANCODE,  fie  LIRC_MODE_PULSE.  Dacă
              dispozitivul lirc nu poate trimite, această operație eșuează cu eroarea ENOTTY.

       LIRC_SET_SEND_CARRIER (int)
              Stabilește frecvența de modulație. Argumentul este frecvența (Hz).

       LIRC_SET_SEND_DUTY_CYCLE (int)
              Stabilește  ciclul  de  funcționare  al  purtătoarei. val este un număr în intervalul [0,100] care
              descrie lățimea impulsului ca procent din  ciclul  total.  În  prezent,  nu  este  definită  nicio
              semnificație specială pentru 0 sau 100, dar valorile sunt rezervate pentru utilizare viitoare.

       LIRC_GET_MIN_TIMEOUT(void)
       LIRC_GET_MAX_TIMEOUT(void)
              Unele  dispozitive  au  temporizatoare  interne  care  pot  fi  utilizate pentru a detecta absența
              activității IR pentru o perioadă lungă de timp. Acest lucru poate ajuta lircd(8) să  detecteze  că
              un  semnal  IR  s-a  terminat  și  poate accelera procesul de decodare. Aceste operații returnează
              valori întregi cu timpul de așteptare minim/maxim care  poate  fi  definit  (microsecunde).  Unele
              dispozitive  au  un  timp  fix  de așteptare. Pentru astfel de controlori, LIRC_GET_MIN_TIMEOUT și
              LIRC_GET_MAX_TIMEOUT vor eșua cu eroarea ENOTTY.

       LIRC_SET_REC_TIMEOUT (int)
              Stabilește valoarea întreagă  pentru  timpul  de  inactivitate  IR  (microsecunde).  Pentru  a  fi
              acceptată,   valoarea   trebuie   să   fie   în   limitele  definite  de  LIRC_GET_MIN_TIMEOUT  și
              LIRC_GET_MAX_TIMEOUT. O valoare de 0 (dacă este acceptată de hardware) dezactivează toți timpii de
              așteptare hardware, iar datele trebuie raportate cât mai curând posibil. Dacă valoarea  exactă  nu
              poate  fi  definită,  atunci  trebuie definită următoarea valoare posibilă mai mare decât valoarea
              dată.

       LIRC_GET_REC_TIMEOUT (void)
              Returnează timpul de inactivitate curent (microsecunde). Disponibilă de la Linux 4.18.

       LIRC_SET_REC_TIMEOUT_REPORTS (int)
              Activează (val este  1)  sau  dezactivează  (val  este  0)  pachetele  de  timp  de  așteptare  în
              LIRC_MODE_MODE2. Comportamentul acestei operații a variat în funcție de versiunile nucleului:

              •  Începând  cu  Linux  5.17:  pachetele de timp de așteptare sunt întotdeauna activate, iar acest
                 ioctl este un no-op.

              •  Începând cu Linux 4.16: pachetele de timp de expirare sunt activate în mod implicit. De fiecare
                 dată când dispozitivul lirc este deschis,  operația  LIRC_SET_REC_TIMEOUT  poate  fi  utilizată
                 pentru  a  dezactiva  (și,  dacă se dorește, pentru a reactiva ulterior) timpul de așteptare pe
                 descriptorul de fișier.

              •  În Linux 4.15 și versiunile anterioare: pachetele de timp de așteptare sunt dezactivate în  mod
                 implicit,  iar  activarea lor (prin LIRC_SET_REC_TIMEOUT) pe orice descriptor de fișier asociat
                 cu dispozitivul lirc are ca efect activarea timpilor de așteptare pentru  toate  descriptoarele
                 de fișier care se referă la acel dispozitiv (până când timpii de așteptare sunt dezactivați din
                 nou).

       LIRC_SET_REC_CARRIER (int)
              Stabilește   limita   superioară   a   frecvenței   purtătoare   de  recepție  (Hz).  A  se  vedea
              LIRC_SET_REC_CARRIER_RANGE.

       LIRC_SET_REC_CARRIER_RANGE (int)
              Stabilește limita inferioară a frecvenței purtătoare de recepție (Hz). Pentru ca  acest  lucru  să
              aibă efect, stabiliți mai întâi limita inferioară utilizând ioctl-ul LIRC_SET_REC_CARRIER_RANGE și
              apoi limita superioară utilizând ioctl-ul LIRC_SET_REC_CARRIER.

       LIRC_SET_MEASURE_CARRIER_MODE (int)
              Activează  (val  este 1) sau dezactivează (val este 0) modul de măsurare. Dacă este activat, de la
              următoarea apăsare de tastă, controlorul va trimite pachete LIRC_MODE2_FREQUENCY. În mod implicit,
              acesta ar trebui să fie dezactivat.

       LIRC_GET_REC_RESOLUTION (void)
              Returnează rezoluția controlorului (microsecunde).

       LIRC_SET_TRANSMITTER_MASK (int)
              Activează setul de transmițătoare specificate în val, care conține o mască de biți în care fiecare
              transmițător activat este un 1.  Primul  transmițător  este  codificat  de  bitul  cel  mai  puțin
              semnificativ și așa mai departe. Atunci când este dată o mască de biți nevalidă, de exemplu un bit
              este  activat  chiar  dacă  dispozitivul  nu  are  atât  de multe transmițătoare, această operație
              returnează numărul de transmițătoare disponibile și nu face nimic în caz contrar.

       LIRC_SET_WIDEBAND_RECEIVER (int)
              Unele dispozitive sunt echipate cu un receptor special de bandă largă  care  este  destinat  a  fi
              utilizat  pentru a învăța ieșirea unei telecomenzi existente. Acest ioctl poate fi utilizat pentru
              a activa (val egal cu 1) sau dezactiva (val egal cu 0) această  funcționalitate.  Acest  lucru  ar
              putea  fi util pentru dispozitivele care, altfel, au receptoare cu bandă îngustă care le împiedică
              să fie utilizate cu anumite telecomenzi. De asemenea, receptoarele  cu  bandă  largă  pot  fi  mai
              precise. Pe de altă parte, dezavantajul lor este, de obicei, gama redusă de recepție.

              Notă: receptorul de bandă largă poate fi activat implicit dacă activați rapoartele purtătoarei. În
              acest  caz, acesta va fi dezactivat de îndată ce dezactivați rapoartele purtătoarei. Încercarea de
              a dezactiva un receptor de bandă largă în timp ce rapoartele purtătoarei sunt active  nu  va  avea
              niciun efect.

CARACTERISTICI

       ioctl-ul  LIRC_GET_FEATURES  returnează  o  mască  de  biți  care descrie caracteristicile controlorului.
       Următorii biți pot fi returnați în mască:

       LIRC_CAN_REC_MODE2
              Controlorul este capabil să recepționeze utilizând LIRC_MODE_MODE2.

       LIRC_CAN_REC_SCANCODE
              Controlorul este capabil să recepționeze folosind LIRC_MODE_SCANCODE.

       LIRC_CAN_SET_SEND_CARRIER
              Controlorul acceptă schimbarea frecvenței de modulare utilizând LIRC_SET_SEND_CARRIER.

       LIRC_CAN_SET_SEND_DUTY_CYCLE
              Controlorul acceptă modificarea ciclului de funcționare utilizând LIRC_SET_SEND_DUTY_CYCLE.

       LIRC_CAN_SET_TRANSMITTER_MASK
              Controlorul    acceptă    schimbarea    emițătorului    (emițătoarelor)     activ(e)     utilizând
              LIRC_SET_TRANSMITTER_MASK.

       LIRC_CAN_SET_REC_CARRIER
              Controlorul  acceptă  stabilirea frecvenței purtătoare de recepție utilizând LIRC_SET_REC_CARRIER.
              Orice dispozitiv lirc de la fuzionarea controlorilor în Linux  2.6.36  trebuie  să  aibă  activată
              funcția LIRC_CAN_SET_REC_CARRIER_RANGE dacă este activată funcția LIRC_CAN_SET_REC_CARRIER.

       LIRC_CAN_SET_REC_CARRIER_RANGE
              Controlorul  acceptă LIRC_SET_REC_CARRIER_RANGE. Limita inferioară a purtătoarei trebuie mai întâi
              stabilită  utilizând  ioctl-ul  LIRC_SET_REC_CARRIER_RANGE,  înainte   de   a   utiliza   ioctl-ul
              LIRC_SET_REC_CARRIER pentru a stabili limita superioară.

       LIRC_CAN_GET_REC_RESOLUTION
              Controlorul acceptă LIRC_GET_REC_RESOLUTION.

       LIRC_CAN_SET_REC_TIMEOUT
              Controlorul acceptă LIRC_SET_REC_TIMEOUT.

       LIRC_CAN_MEASURE_CARRIER
              Controlorul acceptă măsurarea frecvenței de modulație utilizând LIRC_SET_MEASURE_CARRIER_MODE.

       LIRC_CAN_USE_WIDEBAND_RECEIVER
              Controlorul acceptă modul de învățare utilizând LIRC_SET_WIDEBAND_RECEIVER.

       LIRC_CAN_SEND_PULSE
              Controlorul acceptă trimiterea folosind LIRC_MODE_PULSE sau LIRC_MODE_SCANCODE

ERORI

       Utilizarea  acestor  dispozitive  necesită  fișierul de antet al sursei nucleului lirc.h. Acest fișier nu
       este disponibil înainte de Linux 4.6.  Utilizatorii de nuclee mai vechi ar putea folosi  fișierul  inclus
       în http://www.lirc.org.

CONSULTAȚI ȘI

       ir-ctl(1), lircd(8), bpf(2)

       https://www.kernel.org/doc/html/latest/userspace-api/media/rc/lirc-dev.html

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                            lirc(4)