---
title: roCecInterface
slug: develop/es/rocecinterface
docTags: 
createdAt: 2025-03-11T07:07:18.731Z
---

Este objeto proporciona acceso al canal HDMI® CEC.

Creación de objetos: el objeto *roCecInterface&#x20;*&#x73;e puede crear sin parámetros si la interfaz está en HDMI-1:

```text
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`:

```text
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 [cec](docId:8qlYHeZ1oKLPMKP_hS3Au).

## 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()`.

:::hint{type="info"}
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
:::

:::hint{type="success"}
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](https://github.com/brightsign/dev-cookbook/tree/main/examples/cec-interface/brightscript) de BrightScript.

