Микропроцессор в режиме реального времени RS-232 с использованием PySerial / Matplotlib?

Я новичок в мире Python, и мои навыки программирования довольно плохие, но я пытаюсь найти способ использовать Python для отображения выходных данных схемы ЭЭГ (используя схему OpenEEGhttp://openeeg.sourceforge.net)

Аналоговый выход усиливается и обрабатывается через АЦП (в микроконтроллере ATmega8) и преобразуется в RS232 с помощью MAX232.

Сигнал RS232 выглядит следующим образом:

Байт 1: значение синхронизации 0xa5
Байт 2: значение синхронизации 0x5a
Байт 3: версия
Байт 4: номер кадра
Байт 5: младший байт канала 1
Байт 6: канал 1, старший байт
Байт 7: младший байт канала 2
Байт 8: старший байт канала 2
...
Байты 9-16 предназначены для дополнительных электродных каналов, но данные не требуются, поскольку используются только первые два
...
Байт 17: состояния кнопок (b1-b4)

У меня есть некоторые базовые функциональные возможности PySerial, но мне нужно найти способ использовать входящие данные, буферизуя их и отображая полезные значения в виде 2 осциллограмм в реальном времени (время против напряжения)

Обновление вопроса:

Я получаю код для печати с очевидными несколькими строками PySerial, но это бред. Я пытаюсь сократить данные до формата значений, которые затем могут быть нанесены на график. 17 байтов данных в настоящее время поступают со скоростью 256 кадров в секунду. (Два) канала состоят из 10 бит данных каждый (с 6 нулями, чтобы заполнить оставшиеся 2 байта). Они являются беззнаковыми, давая возможные значения от 0 до 1023. Они соответствуют значениям, которые должны быть нанесены как положительные и отрицательные, поэтому двоичное значение 512 соответствует графику нулевых (микро) вольт ....

Как мне прочитать входящий поток как 8-битный двоичный файл (удаляя ненужные мне данные), а затем объединить два соответствующих байта из каждого канала, который я хочу (возможно, удалив лишние 6 нулей при необходимости)?

Ответы на вопрос(3)

Ваш ответ на вопрос