Saltar al contenido principal

! Crear un objeto de teclado de hardware independiente (key.connect_keyboard)

Esta función solo está disponible a partir de las versiones posteriores a 20260805

Declaración

objeto_teclado_hardware, mensaje_error = key.connect_keyboard([atributos_configuración])

Parámetros

  • Atributos de configuración Tipo tabla, parámetro opcional; sirve para establecer los siguientes atributos habituales del dispositivo. Los valores del bloque de código son los valores predeterminados cuando se omiten:
{
VendorID = 0x5858,
ProductID = 0x0001,
Product = "XXTouch Keyboard",
Manufacturer = "XXTouch",
Transport = "USB",
}

También se pueden establecer VersionNumber, SerialNumber y LocationID. No se garantiza que los demás atributos surtan efecto.

Valores devueltos

  • Objeto de teclado de hardware Objeto de teclado de hardware; se devuelve cuando la creación tiene éxito y se devuelve nil cuando falla.
  • Mensaje de error Tipo texto; devuelve el mensaje de error cuando la creación falla.

Cuando la creación falla, los dos valores devueltos juntos son nil, error.

Descripción

Crea un objeto de teclado de hardware independiente; el estado de las teclas y el ciclo de vida de la conexión de cada objeto son independientes. Durante la espera de conexión se cede implícitamente; antes de que la función devuelva el control, otros hilos pueden tener la oportunidad de ejecutarse.

  • Transport solo afecta a la forma en que iOS o la app objetivo identifica el teclado. Establecerlo en "Bluetooth" o "BluetoothLowEnergy" no crea una conexión Bluetooth, ni emite anuncios ni empareja el dispositivo, ni hace que el teclado aparezca en la lista Bluetooth de otros dispositivos
  • Se pueden mantener pulsadas como máximo 6 teclas normales a la vez; las teclas modificadoras no cuentan. Si se supera el límite, el sistema objetivo no puede identificar las teclas concretas; suelta primero algunas teclas
  • La app objetivo puede no distinguir el origen de la entrada de varios objetos de teclado de hardware
  • Esta función solo crea un objeto independiente y no cambia las interfaces existentes key.*; para que las interfaces existentes utilicen el teclado de hardware, llama a key.connect_global_keyboard
  • Si el envío falla, no reintenta automáticamente con otro método de entrada

Ejemplo

local keyboard, err = key.connect_keyboard({
Product = "XXTouch Keyboard",
})
assert(keyboard, err)

assert(keyboard:press("a"))
assert(keyboard:down("LEFTSHIFT"))
assert(keyboard:press("b"))
assert(keyboard:up("LEFTSHIFT"))
assert(keyboard:send_text("Hello"))

keyboard:disconnect()