Микропроцессор в режиме реального времени 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) I '

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

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

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

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

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

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