Add English localization and MIT-licensed public release documentation
This commit is contained in:
+49
-33
@@ -1,37 +1,53 @@
|
||||
# Validierung am 5. September 2026
|
||||
# Validation — 5 September 2026
|
||||
|
||||
Getestetes System: Bazzite, GNOME, Python 3.14, GTK 4.22, libadwaita 1.9.
|
||||
Angeschlossener BTD 700: USB `3542:3001`, Firmware 3.11.0.
|
||||
This document separates observed hardware behavior from simulated tests.
|
||||
The project was developed using AI (OpenAI Codex); these results are not a warranty.
|
||||
|
||||
- 21 Tests mit `python3 -m unittest discover -s tests -q`: bestanden.
|
||||
- Fenster-/Infobereich-Test `python3 tools/check_gui.py`: bestanden, ausschließlich
|
||||
mit einem simulierten Dongle. Aktionen wurden über `com.canonical.dbusmenu.Event`
|
||||
ausgelöst, nicht nur direkt gegen Controller-Methoden.
|
||||
- Geprüfte Demo-Abläufe: Standard/Gaming/Auracast, Codec, Transport, Trennen/Verbinden,
|
||||
öffentliche Auffindbarkeit, Broadcastqualität, Name/Passwort speichern,
|
||||
Passwortschutz ausschalten, Fenster schließen/aus Menü wieder öffnen,
|
||||
ungespeicherte Eingaben bei Statusabfragen erhalten und verwerfen.
|
||||
- Eigene Fensterbilder bei 620 × 800 und 420 × 600 Pixeln gerendert und visuell
|
||||
geprüft. Oberfläche scrollbar, Bedienelemente erreichbar. Die zuvor überlange
|
||||
Passwortbeschriftung wurde gekürzt und um einen sichtbaren Hinweis ergänzt.
|
||||
- Echte Hardwareabfragen: erfolgreich, siehe PROTOCOL.md. Anzeige:
|
||||
Gaming / aptX Adaptive / 24 Bit / 48 kHz / laufende Musikwiedergabe.
|
||||
- Live-Symbol exportiert StatusNotifierItem mit aktuellem Tooltip und einem
|
||||
D-Bus-Menü. GNOME-StatusNotifierWatcher nimmt die Registrierung an.
|
||||
- App über persönlichen Desktop-Eintrag installierbar; Desktop-Datei validiert.
|
||||
Dauerhafter Start in der Benutzersitzung mit transienter Unit
|
||||
`btd700-control.service`; kein Systemdienst und kein aktivierter Autostart.
|
||||
- Zweiter USB-Zugriff während laufender App: korrekt mit verständlicher Meldung
|
||||
abgelehnt, ohne die laufende Instanz zu beeinträchtigen.
|
||||
- Extraktionsskript gegen die offizielle Windows-EXE geprüft; SHA256 der
|
||||
extrahierten Assembly entspricht der bei der Analyse verwendeten Datei.
|
||||
## Environment
|
||||
|
||||
Der Nutzer hat anschließend bestätigt, dass die App am eigenen Dongle funktioniert.
|
||||
Welche einzelnen Funktionen dabei getestet wurden, wurde nicht näher aufgeschlüsselt.
|
||||
Bazzite / GNOME, Python 3.14, GTK 4.22, libadwaita 1.9.
|
||||
Connected BTD 700: USB `3542:3001`, firmware 3.11.0.
|
||||
|
||||
**Noch offen:** automatisierte Hardware-Schreibtests sowie eine systematische
|
||||
Prüfung mit Audio-/Auracast-Empfängern. `tools/check_hardware.py --run` wurde bisher
|
||||
nicht ausgeführt. Dieser Test unterbricht kurz Audio und verändert vorübergehend
|
||||
Auracast-Einstellungen einschließlich des Passworts; anschließend versucht er,
|
||||
die ursprünglichen Werte wiederherzustellen. Ein Werksreset wird dabei nicht
|
||||
ausgeführt; Firmware-Updates sind nicht implementiert.
|
||||
## Observed on the real device
|
||||
|
||||
- Correct control-interface discovery and opening without detaching audio drivers.
|
||||
- Successful state, mode, codec, quality, transport, Auracast configuration/name
|
||||
and firmware-version reads. See [PROTOCOL.md](PROTOCOL.md) for response bytes.
|
||||
- Reported live state: Gaming, aptX Adaptive, 24-bit / 48 kHz, audio playing.
|
||||
- Native GTK window and registered GNOME tray item with a live status tooltip.
|
||||
- A second USB client is rejected with a clear message while the app owns the device.
|
||||
- The device owner subsequently confirmed that the app works. The individual
|
||||
functions exercised by the owner were not enumerated.
|
||||
|
||||
## Automated verification
|
||||
|
||||
- Protocol/controller/transport tests: command allowlist, malformed frames, response
|
||||
correlation, event acknowledgements, readback, capability checks, input validation,
|
||||
reset confirmation and password handling using a simulated device.
|
||||
- Localization tests: English/German detection, explicit CLI override, message
|
||||
placeholders, localized status/errors and unchanged numeric protocol data.
|
||||
- Desktop integration tests: isolated installation/uninstallation and autostart
|
||||
behavior without changing the real user's launchers.
|
||||
- `tools/check_gui.py` exercised English and German windows and actual D-Bus menu
|
||||
events against a demo device: modes, codec, transport, connection, broadcast
|
||||
discovery/quality, name/password saving, encryption, closing/reopening and
|
||||
preserving/discarding unsaved edits.
|
||||
- Window layouts rendered and inspected at 620 × 800 and 420 × 600 pixels.
|
||||
- README screenshots captured from the real English GTK window at 620 × 880 with
|
||||
fictional demo data. No real USB access or generated mockups were used.
|
||||
- Extraction helper output matched the SHA256 of the original assembly used for
|
||||
protocol research. No vendor binaries were added to the distribution.
|
||||
|
||||
The CI workflow runs the unit tests on Python 3.10 and 3.14, in both languages.
|
||||
It does not run real hardware tests or claim that a particular receiver works.
|
||||
|
||||
## Not yet systematically verified
|
||||
|
||||
- Hardware writes across different firmware revisions and all individual commands.
|
||||
- Real Auracast receiver compatibility, audio quality and reconnect behavior.
|
||||
- Other distributions/desktops beyond the tested Bazzite/GNOME setup.
|
||||
|
||||
`tools/check_hardware.py --run` has not been executed. It deliberately interrupts
|
||||
audio, changes settings including the broadcast password, and attempts to restore
|
||||
the original values. It does not perform a factory reset and cannot perform
|
||||
firmware updates. Unplugging midway can prevent restoration.
|
||||
|
||||
Reference in New Issue
Block a user