roIRReceiver
7 min
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 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 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 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 sub crear un receptor ir tvcontoller configir = createobject("roassociativearray") 'tvcontroller ir type configir source = "tvcontroller" configir encodings = createobject("roarray", 0, false) irrecep = createobject("roirreceiver", configir)