Ana içeriğe atla

Sorun giderme

Önce en küçük yolla başlayın:
  1. Sürücü işlem durumu.
  2. Sürücüden yazıcıya TCP erişilebilirliği.
  3. Kuyruk durumu.
  4. Konsol yazıcısı yapılandırması.
  5. HTTPS veya tarayıcı güven sorunları.

Sürücüye Ulaşılamıyor

Kontrol etmek:
curl http://localhost:8080/health
Yerel sağlık başarısız olursa:
  • plato-printer.exe’nin çalıştığını doğrulayın.
  • config.json’nin geçerli JSON olduğunu doğrulayın.
  • server.port’nin halihazırda kullanılmadığını doğrulayın.
  • Port already in use için başlangıç ​​günlüklerini kontrol edin.
Yerel sağlık geçerse ancak POS buna ulaşamıyorsa:
  • server.port için Windows Güvenlik Duvarı’nı açın.
  • Başlangıç ​​başlığındaki sürücünün ağ adresini kullanın.
  • POS cihazının aynı ağda olduğunu veya izin verilen VLAN’da olduğunu doğrulayın.

Yazıcı Çevrimdışı

Arama:
curl -X POST http://localhost:8080/status \
  -H "Content-Type: application/json" \
  -d '{"ip_address":"192.168.1.50","port":"9100","validate":true}'
Yaygın nedenler:
Son HataAnlamDüzeltmek
Connection RefusedAna makineye ulaşılabilir ancak bağlantı noktası kapalı.Yazıcı bağlantı noktasını ve ham TCP ayarını kontrol edin.
Connection TimeoutYazıcı IP’sine/bağlantı noktasına ulaşılamıyor.IP’yi, ağı, VLAN’ı, güvenlik duvarını, yazıcı gücünü kontrol edin.
Printer open timed out after 2000msTCP bağlantısı tamamlanmadı.Yazıcı ağ yolunu kontrol edin.
Printer write timed out after 6000msSoket açıldı ancak yazma işlemi gerçekleşmedi.Yazıcıyı yeniden başlatın, arabelleği, ağı veya yazıcı ürün yazılımını kontrol edin.
TCP connection closedYazıcı beklenmedik bir şekilde soketi kapattı.Yazıcı ham bağlantı noktasını ve iş yükü boyutunu yeniden kontrol edin.

Takılıp Kalan İşler

Kuyrukları inceleyin:
curl http://localhost:8080/queue-status
Okumak:
  • waiting: işler hazır ancak etkin değil.
  • active: şu anda yazdırılıyor.
  • delayed: gelecekte planlanan veya yeniden denenen gecikmeli işler.
  • failed: BullMQ tarafından tutulan başarısız işler.
  • totalPending: tüm yazıcılarda beklemeye ek olarak gecikmeli.
  • isProcessing: en az bir aktif iş mevcut.
Başarısız olan işler sürekli olarak yeniden deneniyorsa öncelikle yazıcı bağlantısını düzeltin. Yazıcıya ulaşılabilir olduğunda kuyruk otomatik olarak düzelecektir.

Yazdırma İsteği Kabul Edildi Ancak Hiçbir Şey Yazdırılmıyor

/print, { "ok": true, "queued": true }’yi döndürürse sürücü işi kabul etti. Sonraki kontroller:
  1. GET /queue-status.
  2. validate: true ile POST /status.
  3. Konsol yapılandırmasındaki yazıcı IP’si ve bağlantı noktası.
  4. Yazıcı modeli TCP üzerinden ESC/POS taramayı destekler.
  5. Yazıcıda kağıt var ve duraklatılmamış.

Eksik Yazıcı Adresi

Mevcut sürücü her ikisini de gerektirir:
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
Konsolda bu genellikle fiziksel yazıcı IP’sinin veya bağlantı noktasının eksik olduğu anlamına gelir. URL sürücüsü yazıcı IP’si ile aynı değil.

HTTPS Başarısız

Kontrol etmek:
curl http://localhost:8080/ca.crt
curl https://plato-printer.local/health
Olası düzeltmeler:
  • CA sertifikasını POS cihazına yükleyin.
  • plato-printer.local’nin sürücü makineye çözümlenmesini sağlayın.
  • 443 bağlantı noktasını açın.
  • assets/certs’nin var olduğunu doğrulayın.
  • Caddy’nin günlüklerde başladığını doğrulayın.

Ağ Başarısızları

Kontrol etmek:
curl http://localhost:8080/mesh-status
Mesh devre dışıysa şunu ayarlayın:
{
  "features": {
    "meshEnabled": true
  }
}
HTTPS kullanılırsa ağ şunları kullanır:
wss://plato-printer.local/mesh

Redis Başlatılamıyor

Katıştırılmış Redis başlatma işlemi şu durumlarda başarısız olabilir:
  • Yapılandırılmış Redis ikili sürümü eksik veya bozuk.
  • Yapılandırılmış Redis bağlantı noktası zaten kullanımda.
  • Windows indirilen ikili dosyayı engeller.
  • Tespit edilen Redis sürümü redis.version ile eşleşmiyor.
Düzeltmeler:
  • redis-binaries’yi hazırlamak için paket komut dosyasını çalıştırın.
  • redis.port’yi değiştirin.
  • Bozuk redis-binaries/<version> klasörünü silin ve yeniden oluşturun.
  • redis.mode: "external"’yi iyi çalıştığı bilinen bir Redis sunucusuyla kullanın.

Güvenli Sıfırlama

Geliştirme sırasında yerel sıfırlama için:
pnpm --filter @plato/pc-printer clean
Bu, dist, output, logs, plato-printer.zip ve dump.rdb’yi kaldırır. Üretimde, kalıcı kuyrukları ve bilinen yazıcı kayıt durumunu kasıtlı olarak temizlemek istemediğiniz sürece dump.rdb’yi silmeyin.