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

# PC Yazıcı Sürücüsü

> Plato POS için geçerli Windows yazdırma köprüsü.

# PC Yazıcı Sürücüsü

PC yazıcı sürücüsü, Plato POS yazdırmaya yönelik yerel bir Windows hizmetidir. Yazdırma işlerini HTTP üzerinden kabul eder, bunları Redis destekli BullMQ kuyruklarında saklar ve ESC/POS baytlarını TCP üzerinden ağ termal yazıcılarına yazar.

Bu bir işletim sistemi yazıcı sürücüsü değildir. Plato'nin tarayıcısı POS ile ham ESC/POS yazıcıları arasında küçük bir yerel köprüdür.

## Ne İşe Yarar

* Yazdırma işlerini `POST /print` aracılığıyla Plato Konsolundan alır.
* Gelen base64 ESC/POS raster parçalarını sıraya alınmış yazıcı işlerine dönüştürür.
* Yazıcı adresi başına ayrı bir kuyruk tutar.
* Yazıcı başına aynı anda bir işi işler.
* Ham ESC/POS baytlarını TCP yazıcılarına gönderir.
* Yazıcı durumu kontrollerini, kasa çekmecesi vuruşunu, bip sesi komutlarını, kuyruk incelemesini, HTTPS proxy'yi ve PeerJS ağ sinyalini destekler.

## Çalışma Zamanı Şekli

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

## Ana Dosyalar

| Dosya                                           | Rol                                                                                               |
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| `drivers/pc-printer/src/index.ts`               | Ekspres uygulama, CORS, başlangıç, HTTPS, ağ sunucusu, kapatma işleyicileri.                      |
| `drivers/pc-printer/src/routes.ts`              | Yazdırma, durum, bip sesi, kasa çekmecesi, sağlık ve kuyruk durumu için HTTP uç noktaları.        |
| `drivers/pc-printer/src/printer-stores.ts`      | Yazıcı başına kuyruk, çalışan, soket yaşam döngüsü, durum araştırması, kurtarmayı yeniden deneme. |
| `drivers/pc-printer/src/printer.ts`             | Düşük düzeyli TCP yazma, yazma zaman aşımı, yazıcı başlatma komutu, yerel IP bulma.               |
| `drivers/pc-printer/src/lib/config.ts`          | `config.json` varsayılanlar, ayrıştırma ve temizleme.                                             |
| `drivers/pc-printer/src/lib/redis.ts`           | Gömülü veya harici Redis çalışma zamanı.                                                          |
| `drivers/pc-printer/src/lib/receipt-encoder.ts` | ESC/POS parça sarma, kesme, bip sesi ve para çekmecesi komutları.                                 |
| `drivers/pc-printer/src/scripts/*`              | Caddy HTTPS kurulum ve sürüm yardımcıları.                                                        |

## Ağ Bağlantı Noktaları

| Liman                   | Varsayılan        | İçin kullanılır                        |
| ----------------------- | ----------------- | -------------------------------------- |
| `server.port`           | `8080`            | Ana HTTP API.                          |
| `caddy.httpsPort`       | `443`             | Etkinleştirildiğinde HTTPS ters proxy. |
| `redis.port`            | `6379`            | Gömülü veya harici Redis.              |
| Yazıcı bağlantı noktası | Genellikle `9100` | Yazıcıya ham TCP bağlantısı.           |

## Yetenekler

* TCP üzerinden ESC/POS'yi kabul eden ağ yazıcıları.
* Plato Konsolu tarafından oluşturulan taramalı yazdırma işleri.
* `runAt` aracılığıyla ertelenen yazdırma işleri.
* Kalıcı yeniden deneme kuyrukları.
* Para çekmecesi ESC/POS aracılığıyla nabız atıyor.
* Tekrarlanan bip dizisi.
* Windows'ta Caddy aracılığıyla HTTPS.
* `/mesh`'de PeerJS ağ sinyali.
