Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Updated as per DOCS-1318

This object supports receiving arbitrary Infrared remote control codes using the NEC and RC5 protocols. The JavaScript equivalent is BSIRReceiver.

Object Creation: The roIRReceiver object is created with an associative array.

Code Block
CreateObject("roIRReceiver", config As roAssociativeArray)

The associative array can contain the following parameters:

  • source: A string value indicating the source of the input.

    • "IR-in": The 3.5mm IR input/output connector (available on 4Kx42 and XDx32 models)

    • "GPIO": Pin 1 of the GPIO connector

    • "Iguana": The Iguanaworks IR transceiver. This source can support both NEC and RC5 encodings simultaneously.

    • “tvcontroller” : This virtual IR driver is only available on BrightSign built-in products. It reads the IR messages from UART and drives the roIRReceiver object like other IR receivers. See the Examples section.

  • encodings: An array indicating the required encodings.

    • "NEC"

    • "RC5" (supported on the Iguanaworks IR transceiver only)

NEC codes are expressed in 24 bits:

  • Bits 0-7: Button code

  • Bits 8-23: Manufacturer code

If the manufacturer code is zero, then the code is considered to be intended for the Roku SoundBridge remote control.

The roIRReceiver object can generate the following events:

  • roIRDownEvent: Generates when a button is pressed.

  • roIRRepeatEvent: Generates when a button repeats.

  • roIRUpEvent (Iguanaworks IR transceiver only): Generates when a button is released

Panel
borderColor#3D3D3D
bgColor#F4F4F4
titleColor#3D3D3D
borderWidth0
titleBGColor#3D3D3D
borderStylesolid

ON THIS PAGE

Table of Contents
indent20px


ifUserData

SetUserData(user_data As Object)

Sets the user data that will be returned when events are raised.

GetUserData() As Object

Returns the user data that has previously been set via SetUserData(). It will return Invalid if no data has been set.

ifMessagePort

SetPort(port As roMessagePort)

Specifies the port that will receive events generated by the roIRReceiver instance.

Example

To connect your

Examples

Connecting a USB-C port to an IR receiver

The LS424 is the only platform where IR input is supported on the Type C connector. Also, a special cable is required: either an adapter (3.5mm plug to 3.5mm socket crossover), or custom all-in-one cable (LiteOn PN 306300009327).

Code Block
'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
Panel
borderColor#3D3D3D
bgColor#F4F4F4
titleColor#3D3D3D
borderWidth0
titleBGColor#3D3D3D
borderStylesolid

ON THIS PAGE

Table of Contents
indent20px
Note that LS424 is the only platform where IR input is supported on the Type C connector. Also, a special cable is required: either an adapter (3.5mm plug to 3.5mm socket crossover), or custom all-in-one cable (LiteOn PN 306300009327).

Creating a tvcontoller IR Receiver

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