---
title: roIRReceiver
slug: develop/es/roirreceiver
docTags: 
createdAt: 2025-03-11T07:07:18.732Z
---

Este objeto admite la recepción de códigos arbitrarios de control remoto por infrarrojos mediante los protocolos NEC y RC5. El equivalente en JavaScript es [BSIRReceiver](docId\:bx4RNqlJ45s1kBif8TARZ).

Creación de objetos: El objeto *roIRReceiver* se crea con un arreglo asociativo.

```text
CreateObject("roIRReceiver", config As roAssociativeArray)
```

El arreglo asociativo puede contener los siguientes parámetros:

- `fuente`: Un valor de cadena que indica el origen de la entrada.
  - "IR-in": El conector de entrada/salida IR de 3.5 mm&#x20;
  - "Type-C": Entrada de cable a través de USB para reproductores LS
  - "GPIO": Pin 1 del conector GPIO
  - "Iguana": El transceptor IR [Iguanaworks](http://iguanaworks.net/). Esta fuente puede admitir codificaciones NEC y RC5 simultáneamente.
  - “tvcontroller” : Este controlador IR virtual solo está disponible en productos integrados de BrightSign. Lee los mensajes IR desde UART y controla el objeto roIRReceiver como otros receptores IR. Consulte la sección Examples.
- `codificaciones`: Un arreglo que indica las codificaciones requeridas.
  - "NEC"
  - "RC5" (compatible solo con el transceptor IR Iguanaworks)

Los códigos NEC se expresan en 24 bits:

- Bits 0-7: Código del botón
- Bits 8-23: Código del fabricante

:::hint{type="info"}
Si el código del fabricante es cero, entonces el código se considera destinado al control remoto Roku SoundBridge.
:::

El objeto *roIRReceiver* puede generar los siguientes eventos:

- *roIRDownEvent*: Se genera cuando se presiona un botón.
- *roIRRepeatEvent*: Se genera cuando un botón se repite.
- *roIRUpEvent* (solo transceptor IR Iguanaworks): Se genera cuando se libera un botón

## ifUserData

### SetUserData(user\_data As Object)

Establece los datos del usuario que se devolverán cuando se generen eventos.

### GetUserData() As Object

Devuelve los datos del usuario que se establecieron previamente mediante `SetUserData()`. Devolverá `Inválido` si no se ha establecido ningún dato.

## ifMessagePort

### SetPort(port As roMessagePort)

Especifica el puerto que recibirá los eventos generados por la instancia *roIRReceiver*.

## Examples

### Conectar un puerto USB-C a un receptor IR

:::hint{type="info"}
Los reproductores LS Series 4 y 5 (LS424, LS425 y LS445) son los únicos modelos compatibles con entrada IR en el conector Type C. También se requiere un cable especial: ya sea un adaptador (conector macho de 3.5 mm a conector hembra de 3.5 mm cruzado) o un cable personalizado todo en uno (LiteOn PN 306300009327).
:::

```text
'2-3-23 - V1.12 Test IR input, output to system log
 
Sub Main()
scriptlog = CreateObject("roSystemLog")   'display messages in system log
msgPort = CreateObject("roMessagePort")
gpioPort = CreateObject("roGpioControlPort")
gpioPort.SetPort(msgPort)
  
configIR = CreateObject("roAssociativeArray")
'Built-in IR via usb c
configIR.source = "TypeC"
configIR.encodings = CreateObject("roArray", 1, false)
configIR.encodings[0] = "NEC"
IRRecep = CreateObject("roIRReceiver", configIR)
  
if (type(IRRecep) = "roIRReceiver") then
    IRRecep.SetPort(msgPort)
    scriptlog.SendLine(" @@@@ Please press a button on remote control to display IR code... ")
else if IRRecep = invalid then
    scriptlog.SendLine(" @@@@ IR receiver not detected, Please connect IR receiver and reboot player... ")
end if
  
Eventloop(msgport)
 
End Sub
 
 
Sub Eventloop(msgport as object)
    scriptlog = CreateObject("roSystemLog")   'display messages in system log
    while true
        event = wait(0, msgPort)
        scriptlog.SendLine("@@@@ Received event"+ type(event))  
        if (type(event) = "roIRDownEvent") then       
                IrData$ = stri(event)
                scriptlog.SendLine(" @@@@ "+IrData$)
        end If    
    End while
end Sub
```

### Crear un receptor IR tvcontoller

```text
configIR = CreateObject("roAssociativeArray")
'tvcontroller IR type
configIR.source = "tvcontroller"
configIR.encodings = CreateObject("roArray", 0, false)
IRRecep = CreateObject("roIRReceiver", configIR)
```

