06-10-2024, 05:07 PM
Das sollte kein Problem sein. Erstmal kommen wir auch in Echtzeit ohne größere Probleme über die Bluetooth-Schnittstelle von phyphox durchaus auf Raten von mehreren kHz. Das allerdings nicht mit der phyphox-Bibliothek, sondern dann direkt mit dafür zugeschnittenen Bluetooth-Funktionen (d.h. im Detail: Werte als 16bit Integer statt float formatiert, mehr in einer Charakteristik parallel übertragen und MTU erhöhen).
Das spätere Übertragen ist aber auch kein Problem. Wichtig ist hierbei nur (und das gilt auch für Echtzeitmessungen mit hohen Raten), dass der Zeitstempel nicht mehr der von phyphox generierte sein darf (in den Beispielen über "setChannel(0, ...)" auf Kanal 0), denn das ist der Zeitpunkt der Übertragung, der sehr ungenau ist und auch der Optimierung der Geräte unterliegt. Stattdessen sollte dann der Zeitstempel entweder auf dem ESP32 erzeugt und mit übertragen werden oder (um Bandbreite zu sparen falls es doch Echtzeit mit hoher Rate sein soll) oder man erstellt seine eigene phyphox-Konfiguration, in der die Zeitachse dann über die Analyse-Tools von phyphox generiert wird. Am einfachsten ist vermutlich ersteres, da hier aus phyphox-Sicht die Zeitachse einfach eine andere Größe ist, die mittels "setChannel" einer Achse zugeordnet wird.
Das spätere Übertragen ist aber auch kein Problem. Wichtig ist hierbei nur (und das gilt auch für Echtzeitmessungen mit hohen Raten), dass der Zeitstempel nicht mehr der von phyphox generierte sein darf (in den Beispielen über "setChannel(0, ...)" auf Kanal 0), denn das ist der Zeitpunkt der Übertragung, der sehr ungenau ist und auch der Optimierung der Geräte unterliegt. Stattdessen sollte dann der Zeitstempel entweder auf dem ESP32 erzeugt und mit übertragen werden oder (um Bandbreite zu sparen falls es doch Echtzeit mit hoher Rate sein soll) oder man erstellt seine eigene phyphox-Konfiguration, in der die Zeitachse dann über die Analyse-Tools von phyphox generiert wird. Am einfachsten ist vermutlich ersteres, da hier aus phyphox-Sicht die Zeitachse einfach eine andere Größe ist, die mittels "setChannel" einer Achse zugeordnet wird.