Die Trennung

RaKoDart kennt nur einen einheitlichen Wurfzustand. Der Adapter übersetzt entweder Autodarts oder die eigene Kamera-API in dieses Format. Spiellogik, Korrektur, Anzeige und Statistiken bleiben dadurch dieselben.

Aktuell ausgewählt: Autodarts. Vorgesehene Kamera-Adresse: http://127.0.0.1:3190

1. Zustand lesen

GET /api/state liefert immer nur die bis zu drei Darts des aktuellen Zuges. Nach dem Ziehen der Darts wird throws geleert und numThrows auf 0 gesetzt.

{
  "connected": true,
  "running": true,
  "status": "Throw",
  "event": "dart_detected",
  "numThrows": 2,
  "throws": [
    {"id":"4711-1", "label":"T20", "x":0.12, "y":-0.34, "confidence":0.98},
    {"id":"4711-2", "number":5, "multiplier":1, "bed":"SingleOuter"}
  ]
}

Erlaubte Treffer sind S1…S20, D1…D20, T1…T20, S25, D25 und Miss. Alternativ akzeptiert der Adapter number plus multiplier. Koordinaten und Konfidenz sind optional; für Ausbullen werden echte Koordinaten benötigt. Der gemeinsame RaKoDart-Vertrag ist perspektivkorrigiert und normiert: (0,0) = Bullzentrum, Radius 1 = Außenkante Double-Ring = 170 mm, positive y-Richtung nach oben.

2. Erkennung steuern

POST /api/command erhält JSON:

{"command":"start"}

Zulässige Befehle: start, stop, reset. Als Antwort genügt {"ok":true}. Alternativ unterstützt RaKoDart auch /api/start, /api/stop und /api/reset.

3. Wichtige Zustände