HomeDocsHardware Bridge
Edge Peripheral Architecture

Hardware Bridge & Peripheral Integration

Grandeur Royal connects browser and desktop PMS clients directly to physical door lock encoders, thermal printers, and payment terminals via a secure local Rust daemon running over `wss://localhost:8443`.

Certified Hardware Peripherals

RFID Keycard Encoders

Supported Models: Assa Abloy VingCard (VC30, Visionline), Dormakaba Saflok/Ilco, Salto Space
Interface Protocol: TCP/IP socket or USB Virtual COM port
✓ Encodes ISO 14443A/B & MiFare in under 600ms

Thermal Receipt Printers

Supported Models: Epson TM-T88VI/VII, Star Micronics TSP143III, Bixolon SRP-350
Interface Protocol: ESC/POS over raw USB, Serial, or Ethernet
✓ 250mm/sec instant kitchen & guest folio printing

Payment Readers & PIN Pads

Supported Models: Stripe Terminal BBPOS WisePOS E, Pax A920, Ingenico Lane/Move 5000
Interface Protocol: Cloud-coupled or local USB / IP handoff
✓ Contactless EMV, Apple Pay, Google Pay tokenization

Passport & ID Scanners

Supported Models: Thales Gemalto Document Reader AT9000, Desko Penta Scanner
Interface Protocol: ICAO 9303 OCR & MRZ chip reading via USB
✓ Instant guest registration card population

Edge Hardware Daemon Architecture

To circumvent browser sandbox restrictions without requiring insecure NPAPI plugins, Grandeur Royal ships a lightweight, zero-dependency background daemon written in Rust (`grandeur-bridge`). The front desk web or desktop app connects over encrypted local WebSockets.

# Start the Grandeur Royal Local Hardware Daemon
$ grandeur-bridge --port 8443 --hotel-id prp_azure_sanctuary_883
[INFO] Initialized local WebSocket listener on wss://127.0.0.1:8443
[INFO] Detected Assa Abloy VC30 USB encoder on /dev/ttyUSB0 (Online)
[INFO] Detected Epson TM-T88VII printer on 192.168.1.140:9100 (Online)
[INFO] Handshake verified with Grandeur Royal Desktop Client v4.12

Issue Keycard via Local Bridge API

Trigger keycard issuance from any operator workstation or automated kiosk terminal:

// JavaScript / TypeScript Front Desk Bridge Call
const bridgeSocket = new WebSocket("wss://127.0.0.1:8443/bridge");

bridgeSocket.send(JSON.stringify({
  action: "encode_keycard",
  room_number: "PH-01",
  check_in: "2025-11-15T15:00:00Z",
  check_out: "2025-11-22T11:00:00Z",
  guest_name: "Lord Alistair Sterling",
  zones: ["SPA_VIP", "HEATED_INFINITY_POOL", "EXECUTIVE_LOUNGE"],
  encoder_id: "front_desk_vc30_01"
}));