Wykres mikroprocesorowy na RS-232 w czasie rzeczywistym za pomocą PySerial / Matplotlib?

Jestem nowicjuszem w świecie Pythona, a moje umiejętności programistyczne są dość słabe, ale próbuję znaleźć sposób na użycie Pythona do wyświetlania wyjścia z obwodu EEG (przy użyciu układu OpenEEGhttp://openeeg.sourceforge.net)

Wyjście analogowe jest wzmacniane i przetwarzane przez ADC (w mikrokontrolerze ATmega8) i jest konwertowane na RS232 przez MAX232.

Sygnał RS232 jest następujący:

Bajt 1: wartość synchronizacji 0xa5
Bajt 2: wartość synchronizacji 0x5a
Bajt 3: wersja
Bajt 4: Numer ramki
Bajt 5: Kanał 1 Niski bajt
Bajt 6: Kanał 1 Wysoki bajt
Bajt 7: Kanał 2 Niski bajt
Bajt 8: Kanał 2 Wysoki bajt
...
Bajty 9-16 są przeznaczone dla dodatkowych kanałów elektrod, ale dane nie są wymagane, ponieważ używają tylko pierwszych dwóch
...
Bajt 17: Stany przycisków (b1-b4)

Mam kilka podstawowych funkcji PySerial, ale muszę wymyślić sposób wykorzystania przychodzących danych przez buforowanie ich i wykreślenie przydatnych wartości jako 2 przebiegi w czasie rzeczywistym x-y (czas vs napięcie)

Aktualizacja pytania:

Dostaję kod do wydrukowania z kilkoma oczywistymi liniami PySerial, ale jest to bełkot. Próbuję rozebrać dane do formatu wartości, które można następnie wykreślić. 17 bajtów danych ma obecnie 256 klatek / sek. Kanały (dwa) składają się z 10 bitów danych każdy (z 6 zerami, aby uzupełnić pozostałe 2 bajty). Są niepodpisane, dając możliwe wartości od 0 do 1023. Odpowiadają one wartościom, które powinny być wykreślone jako dodatnie i ujemne, więc wartość binarna 512 odpowiada wykresowi zera (mikro) woltów ....

Jak odczytać strumień przychodzący jako 8-bitowy plik binarny (usuwając dane, których nie potrzebuję), a następnie połączyć dwa odpowiednie bajty z każdego kanału, który chcę (ewentualnie usunąć nadmiar 6 zer, jeśli to konieczne)?

questionAnswers(3)

yourAnswerToTheQuestion