Mikroprozessor zu RS-232 Echtzeitplot mit PySerial / Matplotlib?

Ich bin neu in der Welt von Python und meine Programmierkenntnisse sind ziemlich schlecht, aber ich versuche, eine Möglichkeit zu finden, mit Python die Ausgabe einer EEG-Schaltung anzuzeigen (mit der OpenEEG-Schaltung)http://openeeg.sourceforge.net)

Der Analogausgang wird über einen ADC (in einem ATmega8-Mikrocontroller) verstärkt und verarbeitet und von einem MAX232 in RS232 umgewandelt.

Das RS232-Signal ist wie folgt:

Byte 1: Synchronisationswert 0xa5
Byte 2: Synchronisationswert 0x5a
Byte 3: Version
Byte 4: Rahmennummer
Byte 5: Niedriges Byte von Kanal 1
Byte 6: Channel 1 High Byte
Byte 7: Niedriges Byte von Kanal 2
Byte 8: Channel 2 High Byte
...
Die Bytes 9-16 sind für zusätzliche Elektrodenkanäle, aber Daten sind nicht erforderlich, da nur die ersten beiden verwendet werden
...
Byte 17: Tastenzustände (b1-b4)

Ich habe einige grundlegende PySerial-Funktionen, aber ich muss einen Weg finden, um die eingehenden Daten zu nutzen, indem ich sie puffere und die nützlichen Werte als 2 Echtzeit-x-y-Wellenformen (Zeit gegen Spannung) zeichne.

Frage Update:

Ich bekomme den Code zum Drucken mit den offensichtlich wenigen Zeilen PySerial, aber es ist Kauderwelsch. Ich versuche, die Daten auf das Format der Werte zu reduzieren, die dann gezeichnet werden können. Die 17-Byte-Daten kommen derzeit mit 256 Bildern / Sek. An. Die (zwei) Kanäle bestehen jeweils aus 10 Datenbits (mit 6 Nullen, um den Rest der 2 Bytes zu bilden). Sie sind vorzeichenlos und geben mögliche Werte von 0 bis 1023 an. Dies entspricht Werten, die als positiv und negativ dargestellt werden sollten, sodass ein Binärwert von 512 einer Darstellung von null (Mikro) Volt entspricht.

Wie lese ich den eingehenden Stream als 8-Bit-Binärdaten (und entferne die nicht benötigten Daten) und kombiniere dann die beiden relevanten Bytes von jedem Kanal, den ich haben möchte (möglicherweise entferne ich die überschüssigen 6 Nullen, falls erforderlich)?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage