Ana içeriğe atla

Konsol Entegrasyonu

Plato Konsolu, PC yazıcı sürücüsü için WIN_DRIVER yazıcı adaptörünü kullanır.

Yazıcı Kaydı

Konsol, yazıcıları printer-database adlı IndexedDB veritabanında saklar. Yazıcı kayıtları şunları içerir:
  • yazıcı türü
  • durum
  • son hata
  • yapılandırma
  • kağıt genişliği
  • kategoriler
  • sipariş türleri
  • logo
İlgili tür:
type PrinterType =
  | "EPSON"
  | "WIN_DRIVER"
  | "USB"
  | "BUILT_IN"
  | "ANDROID_DRIVER"
  | "SUNMI";

Sürücü URL

WIN_DRIVER adaptörü, URL tabanını yazıcı yapılandırmasından oluşturur:
http://<driverIpAddress>:<driverPort>
https://<driverIpAddress>:<driverPort>
driverPort boşsa adaptör bağlantı noktasını atlar. Bu, 443 bağlantı noktasındaki HTTPS için kullanışlıdır.

Yazıcı Hedefi

Adaptör, fiziksel yazıcı hedefini URL sürücüsünden ayrı olarak gönderir.
Yapılandırma AlanıTalep AlanıNotlar
driverIpAddressURL ana bilgisayarplato-printer.exe çalıştıran makine.
driverPortURL bağlantı noktasıSürücü HTTP/HTTPS bağlantı noktası.
driverUseHttpsURL protokolüDoğru olduğunda https’yi kullanır.
ipAddressip_addressFiziksel yazıcı IP’si.
portportFiziksel yazıcı TCP bağlantı noktası.
vendorvendor_idEşlenen satıcı kimliği.
productIdproduct_idUyumluluk için gönderildi.
beepbeepYazdırma sonrası bip sesi sırasını etkinleştirir.
Yazıcı IP’si eksikse veya 192.168.0.0’ye eşitse bağdaştırıcı ip_address: null ve port: null’yi gönderir ve mevcut sürücü bunları Missing printer address ile reddeder.

Satıcı Kimlikleri

Adaptör satıcıları eşleştirir:
SatıcıSatıcı Kimliği
EPSON0x04b8
BIRCH0x1fc9
PHILIPS0x0471
SUNMI0x04b8
OSCAR0x04b8

Baskı Hazırlığı

Konsol yazdırma akışı:
  1. DOM’u PNG bloğuna dönüştürün.
  2. Blobu tuvale yükleyin.
  3. Tuval piksellerini siyah/beyaz tarama satırlarına dönüştürün.
  4. Raster satırlarını 128 satırlık parçalara bölün.
  5. Her parçayı ESC/POS tarama baytları olarak kodlayın.
  6. Base64 her bayt parçasını kodlar.
  7. POST /print’yi gönderin.
Sürücü hiçbir zaman HTML almaz. Yazdırılabilir ESC/POS parçalarını alır.

Tarayıcı Sırası

Konsolun, istekler bilgisayar sürücüsüne ulaşmadan önce yerel bir tarayıcı kuyruğu vardır.
  • İşler IndexedDB’de saklanır.
  • İşler pending’den printing’ye taşınır.
  • Başarısız olan işler failed olarak işaretlenir.
  • Eski bir printing işi 60 saniye sonra kurtarılır.
  • Zamanlanmış işler her 30 saniyede bir kontrol edilir.
  • Başarısız olan işler her 60 saniyede bir yeniden denenir.
HTTP isteği kabul edildikten sonra PC yazıcı sürücüsünün kendi Redis kuyruğu vardır. Bu, iki kuyruğun olduğu anlamına gelir:
SıraKonumAmaç
Tarayıcı kuyruğuPlato Konsol Dizine AlınmışDBPOS tarafı yazdırma işlerini sürücü kabul edene kadar saklar.
Sürücü kuyruğuRedis/BullMQKabul edilen işleri fiziksel yazıcı alana kadar saklar.

Durum Eşleme

Konsol POST /status’yi çağırır.
  • HTTP hatası OFFLINE değerini döndürür.
  • ok: true ve status ile yanıt, offline değil, ONLINE değerini döndürür.
  • Diğer sürücü yanıtları lastError olarak saklanır.

Para Çekmecesi

Konsol, kasa çekmecesi ile yapılandırılmış her çevrimiçi yazıcı için POST /cash-drawer’yi çağırır.