Zum Inhalt

Clients

Fertige Clients im Repo unter clients/: jeder Befehl als Methode, Events über den WebSocket mit automatischem Neuverbinden, Fehler als Ausnahme mit der Meldung des Servers.

Python

clients/python, Python ab 3.10. Befehle brauchen nur die Standardbibliothek, Events zusätzlich websockets.

pip install "fpv-laptimer-client[events]"   # oder aus dem Repo: "./clients/python[events]"
from laptimer_client import Laptimer

lt = Laptimer("http://pi:5800", key="lt_…")

@lt.on("pilot_pass")
def lap(ev):
    if ev.data["kind"] == "lap":
        print(ev.data["pilot"], ev.data["lap"], ev.data["lap_time_s"])

lt.start_session(race=True, laps=3)
lt.run_forever()

Ohne Installation geht auch laptimer_client/__init__.py als laptimer_client.py neben dem eigenen Script, etwa in einem Hook. Alles Weitere im README.

JavaScript

clients/js, für Node ≥ 22 und den Browser, ohne Abhängigkeiten, mit JSDoc-Typen (der Editor ergänzt Befehle und Event-Felder).

import { Laptimer } from 'laptimer-client'

const lt = new Laptimer({ url: 'http://pi:5800', key: 'lt_…' })
lt.on('pilot_pass', (d) => {
  if (d.kind === 'lap') console.log(d.pilot, d.lap, d.lap_time_s)
})
await lt.connect()
await lt.session.start({ race: true, laps: 3 })

Alles Weitere im README.