Getnet DocsGetnet Docs

Conectando mediante USB (CreateUsb)

Esta guía explica cómo establecer una conexión con un TPV Integrado usando el transporte USB (serie).

¿Qué es la conexión USB?

El modelo de conexión USB establece un enlace físico directo entre el sistema de automatización y el terminal TPV mediante una interfaz serie. Llamas a CreateUsb con los parámetros requeridos para tu plataforma; la función devuelve una instancia de Connector que expone las mismas funciones de operación de dispositivo que los conectores HTTP.

Cuándo usar la conexión USB

Usa una conexión USB cuando:

  • El terminal TPV esté físicamente cerca del sistema de automatización
  • La conectividad de red no esté disponible o esté restringida
  • Se requiera una conexión directa, punto a punto

El USB ofrece un canal simple y determinista, pero es sensible a la desconexión física: si se desconecta el cable, el canal se pierde y debes restablecerlo.

Si usas setupParams (Kotlin) o el comando Setup (.NET) con el terminal, revisa las secciones de comportamiento de reconexión de esta documentación.

Antes de comenzar

Antes de conectar por USB, asegúrate de que:

  • El terminal TPV esté encendido y configurado para el modo TPV Integrado
  • El cable USB esté correctamente conectado entre el TPV y el sistema de automatización
  • La biblioteca del TPV Integrado esté disponible en tu aplicación
  • El sistema operativo reconozca el TPV como un dispositivo serie (por ejemplo, puerto COM en Windows, /dev/ttyACM0 en Linux)

Paso 1: Crear el USB Connector

Crea un Connector con CreateUsb usando el parámetro requerido para tu plataforma.

Parámetros:

ParámetroTipoObligatorioDescripciónDisponibilidad
addressstringSíLa dirección del puerto serie local (por ejemplo, Windows: COM1, COM3; Linux: /dev/ttyACM0)..NET
usbDeviceUsbDeviceSíObjeto de dispositivo Android para la conexión USB.Kotlin
setupParamsHashMap<String, String>NoConfiguración del terminal (por ejemplo, friendly name). Consulta la sección de flujo de reconexión para más detalles.Kotlin

Ejemplo — C#:

Connector connector = Connector.CreateUsb("COM3");

Ejemplo — Kotlin:

fun setupConnectorInstance(context: Context): POSIntegrado? {
    val usbManager = context.getSystemService(Context.USB_SERVICE) as UsbManager
    
    // Retrieve available device for USB connection
    val deviceList: List<UsbDevice> = usbManager.deviceList.map { it.value }
    
    // Select a available device
    val selectedDevice = deviceList.firstOrNull()
    
    val connectorInstance = if (selectedDevice != null) {
        POSIntegrado.createUsb(
            context = context,
            usbDevice = selectedDevice,
            setupParams = hashMapOf(
                SetupParameters.SELLER_FRIENDLY_NAME to "My Store"
            )
        )
    } else {
        null
    }
    
    return connectorInstance
}

Cuando la llamada es exitosa, se devuelve una instancia de Connector. La conexión se inicializa, pero el terminal aún no se ha validado.

Paso 2: Validar el terminal

Antes de ejecutar cualquier operación de dispositivo, valida el terminal con Polling:

var pollingResult = connector.PollingAsync();

Procede solo si la respuesta de Polling indica que el terminal está listo.

Paso 3: Ejecutar operaciones

Una vez validado, usa el Connector para ejecutar operaciones de dispositivo como Sale, Refund o GetReports. Solo se puede procesar una operación a la vez por Connector.

Paso 4: Cerrar la conexión

Después de completar todas las operaciones, libera la conexión:

connector.Close();

La instancia de Connector deja de ser válida después del cierre y no se puede reutilizar.

Siguientes pasos