> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plato.ae/llms.txt
> Use this file to discover all available pages before exploring further.

# Sorun giderme

> Sürücü, yazıcı, kuyruk, Redis, HTTPS ve Konsol sorunlarını teşhis edin.

# 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:

```sh theme={null}
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:

```sh theme={null}
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 Hata                               | Anlam                                                    | Düzeltmek                                                                            |
| -------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| `Connection Refused`                   | Ana makineye ulaşılabilir ancak bağlantı noktası kapalı. | Yazıcı bağlantı noktasını ve ham TCP ayarını kontrol edin.                           |
| `Connection Timeout`                   | Yazı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 2000ms`  | TCP bağlantısı tamamlanmadı.                             | Yazıcı ağ yolunu kontrol edin.                                                       |
| `Printer write timed out after 6000ms` | Soket 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 closed`                | Yazı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:

```sh theme={null}
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:

```json theme={null}
{
  "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:

```sh theme={null}
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:

```sh theme={null}
curl http://localhost:8080/mesh-status
```

Mesh devre dışıysa şunu ayarlayın:

```json theme={null}
{
  "features": {
    "meshEnabled": true
  }
}
```

HTTPS kullanılırsa ağ şunları kullanır:

```txt theme={null}
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:

```sh theme={null}
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.
