roCecInterface
Este objeto proporciona acceso al canal HDMI® CEC.
Creación de objetos: el objeto roCecInterface se puede crear sin parámetros si la interfaz está en HDMI-1:
CreateObject("roCecInterface")Si el usuario desea usar CEC en otros puertos HDMI, debe especificar el nombre del puerto durante la creación del objeto, donde los valores posibles para puerto son hdmi-1, hdmi-2, hdmi-3, hdmi-4, hdmi-in:
CreateObject("roCecInterface", port as String)Cuando sea posible, se deben usar las APIs de JavaScript en lugar de BrightScript-Javascript Objects. La API de JavaScript equivalente a este objeto es ceccec.
IfCecInterface
SendRawMessage(packet As roByteArray) As Void
Envía un mensaje en el bus CEC. Los datos de la trama deben proporcionarse como un roByteArray, con la dirección de destino en los 4 bits bajos del primer octeto.
El software del sistema reemplaza automáticamente los 4 bits altos del primer octeto con la dirección de origen. También copia automáticamente la dirección física del reproductor en los siguientes mensajes antes de la transmisión: ActiveSource, InactiveSource, SystemAudioModeRequest.
El envío de los comandos CEC para Standby y Wake se reflejará en la detección HDMI después de un retraso. Recomendamos esperar al menos cinco segundos antes de solicitar el estado output_powered de GetHdmiOutputStatus().
A partir de BrightSign OS 8.2.55, la implementación de CEC para los productos de la serie AU 5 responderá a estos mensajes con los datos correctos, sin involucrar el script:
- CEC_MSG_GET_CEC_VERSION
- CEC_MSG_ABORT
- CEC_MSG_GIVE_DEVICE_POWER_STATUS
- CEC_MSG_GIVE_OSD_NAME
- CEC_MSG_GIVE_DEVICE_VENDOR_ID
- CEC_MSG_GIVE_FEATURES
- CEC_MSG_GIVE_PHYSICAL_ADDR
- CEC_MSG_USER_CONTROL_PRESSED
- CEC_MSG_USER_CONTROL_RELEASED
- CEC_MSG_REPORT_PHYSICAL_ADDR
Use el método UseInitiatorAddressFromPacket() para evitar que el software del sistema reemplace los bits de origen.
UseInitiatorAddressFromPacket(enable As Boolean) As Boolean
Elimina la dirección de origen incluida en los mensajes CEC por el software del sistema si se pasa verdadero. Este método le permite transmitir bytes sin modificar a través de CEC.
GetLogicalAddress() As Integer
Devuelve la dirección lógica actual. Este método devolverá la dirección no registrada (0x0f) para indicar que la dirección lógica no se ha negociado. En este caso, aún se pueden enviar mensajes, pero los receptores se comportarán de manera diferente y es posible que no procesen todos los mensajes.
EnableCecDebug(filename As String) As Void
Habilita la depuración de CEC. Este método escribirá un registro de todos los paquetes CEC en el archivo especificado.
GetPhysicalAddress() As roByteArray
Devuelve la dirección física de CEC, que a veces es necesaria al procesar mensajes CEC.
PortName ()
Opcional. Puede ser:
- default: la salida predeterminada de la plataforma, normalmente HDMI-1
- HDMI-X: X es un número de 1 hasta el número de salidas HDMI en la plataforma
- eARC: en el AU335 (el valor predeterminado)
ifUserData
SetUserData(user_data As Object)
Establece los datos de usuario que se devolverán cuando se generen eventos.
GetUserData() As Object
Devuelve los datos de usuario que se establecieron previamente mediante SetUserData(). Devolverá Invalid si no se ha establecido ningún dato.
ifMessagePort
SetPort(port As roMessagePort)
Publica mensajes del tipo roCecRxFrameEvent y roCecTxCompleteEvent en el puerto de mensajes adjunto.
Ejemplo
Consulte el ejemplo de roCecInterface en GitHub de BrightScript.