Найти - Пользователи
Полная версия: Как получить данные из байтового массива?
Начало » Python для новичков » Как получить данные из байтового массива?
1
Fundla
Доброго времени суток!
Есть ардуинка которая шлет в ком порт некий байтовый массив, а в питоне необходимо этот массив поймать, разложить по переменным и соответственно иметь возможность ими манипулировать.
Принять данные получается в таком виде:
b'\x00\x08\r\n' или 00080d0a (если применить “.hex()”)
Что с этим делать дальше не понятно. Необходимо, например, создать переменную из 3го бита 1го байта полученного массива для дальнейшей работы с этой переменной. Как это сделать? Документации или примеров в сети не нашел. Прошу помощи…
Используемый код:
*****
import serial
import time

ser = serial.Serial('COM3')
time.sleep(2)
print(ser.name)

while True:
data = ser.readline().hex()
print(data)
Rodegast
>>> arr = b'\x00\x08\r\n'
>>> list(arr)
[0, 8, 13, 10]
Fundla
Спасибо, но не совсем понятно что это. В какое место моего кода это надо вставить?
FishHook
Fundla
Необходимо, например, создать переменную из 3го бита 1го байта полученного массива для дальнейшей работы с этой переменной.
используйте битовые операции, сдвиги, маски и пр. Это не питон специфично. Если хотите получить значение N-го бита, это можно сделать например вот так
 def get_bit(num, i):
    mask = 1 << i
    return (num & mask) >> i
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB