# Printer Diagnostic

Tool ini digunakan untuk diagnosa otomatis printer per outlet, mencakup:
- validasi dependency runtime (`escpos`, `pyusb`, `pyserial`, `pywin32`)
- validasi konfigurasi printer (`printers.json`, default printer, format address)
- validasi runtime printer OS (deteksi printer Windows)
- cek konektivitas LAN/USB non-invasif
- rekomendasi tindakan otomatis

## Jalankan

```bash
python tests/diagnose_printer.py
```

## Opsi

```bash
python tests/diagnose_printer.py --timeout 3 --output "C:\\temp\\printer_diag.json"
python tests/diagnose_printer.py --json-only
```

## Output

- Ringkasan akan tampil di console (`PASS/WARN/FAIL`).
- File report JSON disimpan default ke:
  - `%APPDATA%\\PyPOS\\logs\\printer_diagnostic_YYYYMMDD_HHMMSS.json`

## Catatan

- Jika hasil menunjukkan `ERR_USB_BACKEND_MISSING` atau `usb_backend FAIL`,
  instal backend `libusb` di mesin outlet.
- Untuk printer LAN, pastikan format address adalah `IP:PORT` (misal `192.168.1.10:9100`).
