Подсчет битов в сообщении, отправленном через последовательный порт
Я пытаюсь выяснить скорость передачи данных подключенного последовательного устройства. Я настроил устройство для отправки двоичных данных с частотой 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