Passer au contenu principal

Pilote d’imprimante PC

Le pilote d’imprimante PC est un service Windows local pour l’impression Plato POS. Il accepte les travaux d’impression sur HTTP, les stocke dans les files d’attente BullMQ sauvegardées par Redis et écrit les octets ESC/POS sur les imprimantes thermiques réseau via TCP. Il ne s’agit pas d’un pilote d’imprimante pour le système d’exploitation. Il s’agit d’un petit pont local entre le navigateur POS de Plato et les imprimantes brutes ESC/POS.

Ce qu’il fait

  • Reçoit les travaux d’impression de la console Plato via POST /print.
  • Convertit les blocs raster base64 ESC/POS entrants en tâches d’imprimante en file d’attente.
  • Conserve une file d’attente distincte par adresse d’imprimante.
  • Traite une tâche à la fois par imprimante.
  • Envoie les octets bruts ESC/POS aux imprimantes TCP.
  • Prend en charge les vérifications de l’état de l’imprimante, le coup de pied du tiroir-caisse, les commandes sonores, l’inspection de la file d’attente, le proxy HTTPS et la signalisation de maillage PeerJS.

Forme d’exécution

Plato POS browser
  |
  | POST /print
  v
PC printer HTTP server
  |
  | build print chunks
  v
PrinterStores
  |
  | one BullMQ queue per ip:port
  v
PrinterStore worker
  |
  | TCP socket
  v
ESC/POS thermal printer

Fichiers principaux

DéposerRôle
drivers/pc-printer/src/index.tsApplication express, CORS, démarrage, HTTPS, serveur maillé, gestionnaires d’arrêt.
drivers/pc-printer/src/routes.tsPoints de terminaison HTTP pour l’impression, l’état, le bip, le tiroir-caisse, l’intégrité et l’état de la file d’attente.
drivers/pc-printer/src/printer-stores.tsFile d’attente par imprimante, travailleur, cycle de vie du socket, vérification de l’état, nouvelle tentative de récupération.
drivers/pc-printer/src/printer.tsÉcritures TCP de bas niveau, délai d’attente d’écriture, commande d’initialisation de l’imprimante, découverte IP locale.
drivers/pc-printer/src/lib/config.tsconfig.json valeurs par défaut, analyse et nettoyage.
drivers/pc-printer/src/lib/redis.tsRuntime Redis intégré ou externe.
drivers/pc-printer/src/lib/receipt-encoder.tsCommandes d’emballage de morceaux, de coupe, de bip sonore et de tiroir-caisse ESC/POS.
drivers/pc-printer/src/scripts/*Aides à la configuration et à la publication du Caddy HTTPS.

Ports réseau

PortDéfautUtilisé pour
server.port8080Principal HTTP API.
caddy.httpsPort443Proxy inverse HTTPS lorsqu’il est activé.
redis.port6379Redis intégré ou externe.
Port imprimanteGénéralement 9100Connexion TCP brute à l’imprimante.

Capacités

  • Imprimantes réseau qui acceptent ESC/POS sur TCP.
  • Travaux d’impression raster générés par la console Plato.
  • Travaux d’impression différés via runAt.
  • Files d’attente de nouvelles tentatives persistantes.
  • Pulse du tiroir-caisse via ESC/POS.
  • Séquence de bips répétés.
  • HTTPS via Caddy sous Windows.
  • Signalisation maillée PeerJS sur /mesh.