---
title: roUsbHidEmulator
slug: develop/es/rousbhidemulator
docTags: 
createdAt: 2025-03-26T17:59:47.392Z
---

Este objeto le permite emular dispositivos USB HID, pero actualmente el único tipo de dispositivo compatible es un teclado USB. 

Al operar en un XT1145 o XT2145 con la versión 9.0.157 de BOS o posterior, se debe agregar este código para poder usar este objeto:

```none
'updated code needed for new firmware
dc=CreateObject("roDeviceCustomization")
dc.ConfigureAsUsbGadget(1)
```

Los reproductores BrightSign con USB-C (excepto LS3 y LS4) pueden usar este objeto.

:::hint{type="danger"}
Los códigos de teclado USB son diferentes de los códigos de teclado PS/2, ASCII y BrightSign. 
:::

## ifUsbHidEmulator 

**Enable() As Boolean&#xA0;**

Habilita el dispositivo HID. Este método devuelve `verdadero` si se ejecuta correctamente. Si ocurre un error, use `GetFailureReason()` para obtener el motivo del error.

**KeyDown(a As Integer) As Boolean&#xA0;**

Envía un evento de pulsación de tecla para el código de tecla USB especificado. Este método devuelve `verdadero` si se ejecuta correctamente. Si ocurre un error, use `GetFailureReason()` para obtener el motivo del error.

:::hint{type="info"}
Los teclados USB solo admiten rollover de 6 teclas; por lo tanto, solo seis teclas pueden estar presionadas al mismo tiempo.
:::

**KeyUp(a As Integer) As Boolean&#xA0;**

Envía un evento de liberación de tecla para el código de tecla USB especificado. Este método devuelve `verdadero` si se ejecuta correctamente y devuelve `fallos` si ocurre un error (por ejemplo, si la tecla especificada no estaba ya presionada). Si ocurre un error, use `GetFailureReason()` para obtener el motivo del error.

**KeyPress(a As Integer) As Boolean&#xA0;**

Equivalente a `Tecla presionada(código de tecla)` seguido de `KeyUp(código de tecla)`. Este método le permite evitar dejar teclas atascadas.

**Clear() As Boolean&#xA0;**

Borra todas las pulsaciones de teclas y modificadores activos.

**GetModifierState() como objeto**

Devuelve una matriz asociativa con el estado actual de todos los modificadores (es decir, shift, alt, ctrl). 

**SetModifierState(a As Object) As Boolean&#xA0;**

Establece el estado actual de los modificadores según lo especificado por una matriz asociativa. Solo los modificadores que aparecen en la lista provocarán un cambio de estado. Los modificadores persistirán hasta que se cambien o se llame a `Clear()`.

**Ejemplo**

```none
hidkey.SetModifierState({ LeftShift : true });
```

**GetLedState() As Object**

Devuelve una matriz asociativa con el estado actual de todos los estados LED del teclado. 

:::hint{type="info"}
El host puede enviar un cambio de estado LED si se presiona una tecla de bloqueo (es decir, Number Lock, Capital Lock, Scrolling Lock), generando el objeto [roUsbHidLedEmulatorEvent](docId\:pf714ul8q6CQdo5IeQeoN). El método `GetLedState()` puede usarse para obtener el estado LED actual sin usar un evento.
:::

## ifUserData

**SetUserData(user\_data As Object)&#xA0;**

Establece los datos de usuario que se devolverán cuando se generen eventos.

**GetUserData() As Object&#xA0;**

Devuelve los datos de usuario que se establecieron previamente mediante `SetUserData()`. Devolverá `Inválido` si no se han establecido datos.

## ifMessagePort

**SetPort(port as roMessagePort)**

Publica mensajes del tipo roUsbHidEmulatorLedEvent en el puerto de mensajes adjunto.

## ifFailureReason 

**GetFailureReason() como cadena&#x20;**

Devuelve información adicional si un método falla. 

 

