Подсчет битов в сообщении, отправленном через последовательный порт

Я пытаюсь выяснить скорость передачи данных подключенного последовательного устройства. Я настроил устройство для отправки двоичных данных с частотой 10 Гц. Мой план состоял в том, чтобы посмотреть на одно сообщение с устройства, посчитать количество бит, а затем умножить на 10, чтобы получить бит / с.

Вот пример того, как я считаю биты в Python, используя фрагмент одного сообщения:

>> message = "\0xdf\0xd0sA_\0xff0D\0x02\0xef0B"
>> 8 * sys.getsizeof(message)
512

И, наконец, мой вопрос: нужно ли считать шестнадцатеричные префиксы "\0x"? Может быть, я должен преобразовать сообщение в двоичное представление, а затем посмотреть, сколько это будет времени?

1 ответ

Решение

Если message является байтовой строкой, то ее длина в битах 8 * len(message),

len возвращает количество байтов в message (что отправляется через последовательный порт). sys.getsizeof возвращает размер объекта Python (str тип) (размер в памяти):

>>> len(b'a')
1
>>> sys.getsizeof(b'a')
38
Другие вопросы по тегам