Architecture

Le logiciel HWPROXY permet d’exposer la gestion facilitée de matériel via http (api rest + websocket).

Il est déployé dans un conteneur via Kubernetes vers les machines (noeuds) concernées (via daemonset). Ils ont des droits privilégiés pour un accès direct au matériel et au système d’exploitation de la machine.

Composants logiciels HWPROXY

Le proxy matériel se compose de plusieurs modules articulés autour d’un même module matériel (hardware).

graph BT subgraph hwproxy escpos[ESCPOS] --> hw{hardware core} cardprinter[CardPrinter] --> hw ticketprinter[TicketPrinter] --> hw cec[HDMI CEC] --> hw dbus[DBus] --> hw barcode[Barcode] --> hw tpa[TPA IUP250] --> hw clock[Horloge] --> hw tpe[TPE] --> hw simplecamera[SimpleCamera] --> hw nfc[NFC] --> hw click tpa href "../TPA" click escpos href "../Escpos" end

Les modules :

  • ESCPOS : imprimantes à ticket de caisse compatible avec le protocol Epson ESCPOS
  • CardPrinter : imprimantes à carte vyniles (non développé)
  • TicketPrinter : imprimantes à tickets cartonnés
  • HDMI CEC : pilotage des périphériques compatibles HDMI CEC
  • DBus : gestion des services système, arrêt/redémarrage système
  • Barcode : utilisation des lecteurs code-barre
  • TPA IUP250 : pilotge de paiements par TPA Ingenico IUP250
  • TPE : pilotge de paiements par TPE Ingenico
  • Horloge : envoie réguliers de l’heure
  • SimpleCamera : utilisation de caméra
  • NFC : gestion de cartes NFC

PointOfSale

Une caisse avec opérateur se compose des modules :

  • ESCPOS
  • DBus
  • Barcode
  • TPE
  • Horloge
flowchart LR subgraph Linux os-dbus[DBus] os-printer[descripteur imprimante] os-serial[port série] os-keyboard[clavier] end subgraph hwproxy hw-dbus[DBus] hw-escpos[ESCPOS] hw-barcode[Barcode] hw-tpe[TPE] end subgraph Matériel m-escpos[Imprimante thermique] m-cash[Tirroir caisse] m-barcode[Lecteur code-barre] m-tpe[TPE Ingenico] m-check[Imprimante chèque] end hw-dbus ----- os-dbus m-escpos ----- os-printer hw-escpos ----- os-printer m-cash --- m-escpos hw-barcode ----- os-serial hw-barcode -...- os-keyboard m-barcode ----- os-serial m-barcode -...- os-keyboard hw-tpe ----- os-serial m-tpe ----- os-serial m-check --- m-tpe

Kiosk

Une caisse automatique se compose des modules :

flowchart LR subgraph Linux os-dbus[DBus] os-printer[descripteur imprimante] os-serial[port série] os-keyboard[clavier] end subgraph hwproxy hw-dbus[DBus] hw-escpos[ESCPOS] hw-barcode[Barcode] hw-tpa[TPA] end subgraph Matériel m-escpos[Imprimante thermique] m-barcode[Lecteur code-barre] m-tpa[TPA Ingenico] m-webrelay[Webrelay] end hw-dbus ----- os-dbus m-escpos ----- os-printer hw-escpos ----- os-printer hw-barcode ----- os-serial hw-barcode -...- os-keyboard m-barcode ----- os-serial m-barcode -...- os-keyboard hw-tpa ----- os-serial m-tpa ----- os-serial hw-escpos ---|hook| m-webrelay

Les informations du webrelay sont ajoutées à celles de l’imprimante ESCPOS pour compléter les retours de capteurs :

Imprimante Borne
Capot ouvert Porte ouverte
Fin de papier Fin de papier