Arquitectura

El sistema se compone de dos aplicaciones independientes que se comunican por IPC:

  • Aplicación integradora (la suya): contiene solo el contrato. Llama al HalBridge, que se enlaza por IPC al servicio del HAL.
  • Aplicación anfitriona (BCI Pagos): contiene la implementación real (servicio, drivers, SDK del fabricante) y expone el servicio del HAL. Es quien efectivamente opera el hardware.
CapaResponsabilidad
HalBridgePuente. Establece y mantiene el binding al servicio, reconecta automáticamente y entrega los binders de cada componente.
IServiceHALContrato maestro. Expone un getter por cada componente (getPrinter(), getCamera(), etc.).
Interfaces de componenteIPrinter, ICamera, IScanner, IMagneticStripe, IDeviceInfo, INfc, IBeep, IDiagnostic.
ListenersCallbacks AIDL para operaciones asíncronas (impresión, escaneo, banda).

Flujo de una llamada

  1. La aplicación integradora obtiene la instancia del HalBridge y se conecta.
  2. El HalBridge enlaza por IPC con el servicio dentro de BCI Pagos (puede tardar varios segundos la primera vez).
  3. Una vez conectado, el integrador pide el binder del componente que necesita (por ejemplo, la impresora).
  4. El integrador invoca el método del componente. Para operaciones asíncronas, registra un listener y espera el callback.
  5. El servicio valida la identidad y la llave de acceso, opera el hardware y responde.
📘

La conexión no es instantánea. El primer enlace puede tardar entre 5 y 15 segundos, porque el sistema debe iniciar el proceso anfitrión y el SDK del hardware. La interfaz debe observar el estado de conexión de forma continua y no asumir un tiempo fijo.