الانتقال إلى المحتوى الرئيسي

HTTP API

يتم تقديم جميع نقاط النهاية من مضيف برنامج التشغيل الذي تم تكوينه.
http://<driver-host>:8080
https://plato-printer.local

هدف الطابعة المشترك

تتطلب نقاط نهاية استهداف الطابعة ip_address وport.
{
  "vendor_id": 1208,
  "product_id": 1208,
  "ip_address": "192.168.1.50",
  "port": "9100",
  "beep": false
}
يتم قبول vendor_id وproduct_id لتوافق العميل. يستهدف مسار الطباعة الحالي للشبكة الطابعات بواسطة ip_address وport.

مشاركة/طباعة

يصطف في قائمة انتظار مهمة الطباعة ويعود على الفور.
POST /print
Content-Type: application/json
``````json
{
  "vendor_id": 1208,
  "product_id": 1208,
  "ip_address": "192.168.1.50",
  "port": "9100",
  "beep": true,
  "chunks": ["GSB2MAA..."],
  "runAt": 1735689600000
}
مجالمطلوبملحوظات
ip_addressنعمعنوان IP الخاص بالطابعة.
portنعممنفذ TCP للطابعة، عادةً 9100.
chunksنعممجموعة غير فارغة من قطع ESC/POS الأساسية 64.
beepلايضيف تسلسل الصفير الذي تم تكوينه بعد الطباعة/القص.
runAtلاطابع زمني بالميلي ثانية، أو سلسلة رقمية، أو سلسلة تاريخ قابلة للتحليل. تؤخر القيم المستقبلية مهمة BullMQ.
الاستجابة الناجحة:
{
  "ok": true,
  "jobId": "42",
  "queued": true
}
أخطاء التحقق:
حالةخطأ
400Missing printer address
400Missing print data
400Invalid runAt timestamp

ما بعد /الحالة

إرجاع حالة الطابعة المخزنة مؤقتًا أو المباشرة.
{
  "ip_address": "192.168.1.50",
  "port": "9100",
  "validate": true
}
إجابة:
{
  "ok": true,
  "printerKey": "192.168.1.50:9100",
  "status": "online",
  "validated": true,
  "busy": false,
  "source": "probe",
  "lastPingOn": "2026-06-16T07:00:00.000Z",
  "lastError": null,
  "waiting": 0,
  "active": 0,
  "delayed": 0,
  "failed": 0,
  "completed": 0
}
سلوك الحالة:
  • إذا كانت قائمة الانتظار تحتوي على مهام انتظار أو نشطة أو متأخرة، فستُرجع الحالة الحالة المخزنة مؤقتًا باستخدام busy: true.
  • إذا كانت قائمة الانتظار خاملة، فيمكن للسائق فحص الطابعة.
  • source: "probe" يعني أنه تم إجراء فحص مباشر للمقبس.
  • source: "cache" يعني أن الاستجابة جاءت من الحالة المخزنة وعدد قوائم الانتظار.

بوست / صافرة

يقوم بوضع تسلسل الصفير الخاص بالطابعة في قائمة الانتظار.
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
إجابة:
{
  "ok": true,
  "jobId": "43",
  "queued": true
}

بريد / درج النقود

يقوم بوضع أمر نبض درج النقود ESC/POS في قائمة الانتظار.
{
  "ip_address": "192.168.1.50",
  "port": "9100"
}
إجابة:
{
  "ok": true,
  "jobId": "44",
  "queued": true
}

الحصول على / الصحة

إرجاع صحة العملية وإصدار الإصدار.
{
  "ok": true,
  "version": 66,
  "uptime": 123.45
}

الحصول على /حالة قائمة الانتظار

إرجاع قوائم انتظار الطابعة المعروفة.
{
  "queue": [
    {
      "printerKey": "192.168.1.50:9100",
      "status": "online",
      "validated": false,
      "busy": false,
      "source": "cache",
      "lastPingOn": "2026-06-16T07:00:00.000Z",
      "lastError": null,
      "waiting": 0,
      "active": 0,
      "delayed": 0,
      "failed": 0,
      "completed": 0
    }
  ],
  "totalPending": 0,
  "isProcessing": false
}

الحصول على /حالة الشبكة

عند تمكين الشبكة:
{
  "enabled": true,
  "path": "/mesh",
  "port": 8080,
  "connectedPeers": [],
  "peerCount": 0
}
عند تعطيل الشبكة:
{
  "enabled": false,
  "message": "Mesh disabled by config.json"
}

احصل على /ca.crt

متاح عند تمكين HTTPS. يقوم بتنزيل شهادة CA كـ plato-printer-ca.crt.

دبليو اس / شبكة

يتم تثبيت نقطة نهاية إشارة PeerJS عندما يكون features.meshEnabled صحيحًا.