led-ctrl-v3-device-respeaker
Die Anbindung an den reSpeaker XVF3800 über USB.
Es enthält:
UsbTransport— Geräteerkennung, automatische Wiederverbindung, Heartbeat und thread-sicheres Lesen und Schreiben,ReSpeakerFrameSink— schreibt den komponierten LED-Frame auf den Ring und überspringt unveränderte Frames,ReSpeakerDoaProvider— liestDOA_VALUEund liefertdirection_degunddetection_state.
Ausgabe und Eingabe sind getrennte Objekte über einem gemeinsamen Transport. Sie werden einzeln registriert, damit ein Ausfall der einen Richtung die andere nicht mitnimmt.
Das Paket hängt nur am SDK. Es kennt weder Engine noch Effektlogik: eine
Definition deklariert lediglich die Fähigkeit doa und liest den validierten
Snapshot. Registriert ist der Provider als respeaker.doa — der Gerätename hält
ihn vom Simulator getrennt, die Fähigkeit ist das, was ein Effekt benennt.
Die Ringgröße stammt aus der Befehlstabelle der Firmware (LED_RING_COLOR) und
steht nirgends als Zahl im Code. Weicht die konfigurierte led_count davon ab,
meldet die Senke das über status(), statt Frames stillschweigend zu kürzen.
Wenn das Gerät belegt ist
Ein WinUSB-Handle ist exklusiv. Ein zweiter Prozess reiht sich nicht ein, er
bekommt Errno 13 — das liest sich wie ein Treiber- oder Rechteproblem und
schickt einen in die falsche Richtung. Meistens läuft schlicht noch ein anderer
Controller.
lefx-respeaker probe
probe sagt, ob das Gerät ansprechbar ist, und listet andernfalls die Prozesse,
die ein USB-Gerät halten — mit Kommandozeile, denn erfahrungsgemäß heißen alle
Kandidaten python.exe.
lefx-respeaker claim --dry-run
claim beendet, was im Weg steht, und prüft danach nach. Zwei Dinge begrenzen
den Schaden:
- Es wird einzeln beendet und nach jedem Schritt neu geprüft. Sobald das Gerät antwortet, hört es auf. Der Prozess, der wirklich im Weg war, ist damit der letzte, den es trifft.
- Fremde USB-Software wird nicht angefasst. Maus-, Tastatur- und
RGB-Software hält dauerhaft offene WinUSB-Handles und taucht in derselben
Suche auf. Sie wird aufgelistet und in Ruhe gelassen; nur Prozesse, die sich
als reSpeaker-Software zu erkennen geben, kommen in Frage.
--include-unrelatedhebt das auf — bewusst und einzeln.
Im Dienst ist dasselbe als Senken-Option verfügbar:
uv run lefx serve --sink respeaker --sink-option force_claim=true
Es ist eine Senken-Option und kein lefx-Schalter, weil lefx nichts über
reSpeaker wissen soll. Der Transport ruft es höchstens einmal pro
Verbindungszyklus auf, nur bei einem Zugriffsfehler: der Wiederholungsversuch
läuft alle paar Sekunden, und etwas, das in diesem Takt Prozesse beendet, wäre
eine Plage. Ein fehlendes Gerät gilt nicht als Konkurrenz — ein gezogenes Kabel
ist kein fremder Prozess.
Release files for led-ctrl-v3-device-respeaker 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| led_ctrl_v3_device_respeaker-3.0.0.tar.gz | 26.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| led_ctrl_v3_device_respeaker-3.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.2 kB
Release files / led_ctrl_v3_device_respeaker-3.0.0.tar.gz
| Download URL | led_ctrl_v3_device_respeaker-3.0.0.tar.gz |
|---|---|
| Size | 26.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a40eb4dccd30a216cca982a734882bf9cea03c414a51862df529a0ec094b73a8
|
|
BLAKE2b-256 checksum How to use checksums |
f52646dcb11f0c2408e8579c64877610b46d87a3e90e4e3858bd85c65fde950f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / led_ctrl_v3_device_respeaker-3.0.0-py3-none-any.whl
| Download URL | led_ctrl_v3_device_respeaker-3.0.0-py3-none-any.whl |
|---|---|
| Size | 30.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73c3c145c5ca218f3c8e1f79a5411b8b4768522fdb74796028b3f964c313901c
|
|
BLAKE2b-256 checksum How to use checksums |
b743b36f5f91c926f028d2c7aa7c2249bf1024c207f49a8d5a113a40a442ab58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|