roIRReceiver
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 BSIRReceiverBSIRReceiver.
Creación de objetos: El objeto roIRReceiver se crea con un arreglo asociativo.
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
- "Type-C": Entrada de cable a través de USB para reproductores LS
- "GPIO": Pin 1 del conector GPIO
- "Iguana": El transceptor IR Iguanaworks. 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
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
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).
'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 SubCrear un receptor IR tvcontoller
configIR = CreateObject("roAssociativeArray")
'tvcontroller IR type
configIR.source = "tvcontroller"
configIR.encodings = CreateObject("roArray", 0, false)
IRRecep = CreateObject("roIRReceiver", configIR)