Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.231.180.210] |
|
Сообщ.
#1
,
|
|
|
есть byteArray dt, а именно пакет из 8 байт которые я получил по CAN. Пытаюсь разобрать его на элементы и собрать 3 числа (float, int16, int16)
print(dt) #тут печатает byteArray print([dt[0],dt[1],dt[2],dt[3]]) # а вот тут и далее ругается что индекс за пределами списка print([dt[4],dt[5]]) print([dt[6],dt[7]]) подскажите пожалуйста что не так ? а вот на будущее вопрос. Преобразования делаю так angle = struct.pack('<f', [dt[0],dt[1],dt[2],dt[3]]) Ax = struct.pack('<H', [dt[4],dt[5]]) Ax = struct.pack('<H', [dt[6],dt[7]]) Добавлено закрыта тема, сам накосячил, должно быть print(dt) #тут печатает byteArray print([dt[0:4]) print(dt[4:6]) print(dt[6:8]) |
Сообщ.
#2
,
|
|
|
Вообще-то байты в числа превращает unpack.
Проще сделать всё одной строкой dt = struct.pack('<fHH', angle, Ax, Ay) # Для упаковки в байтовую строку angle, Ax, Ay = struct.unpack('<fHH', dt) # Для обратной распаковки |
Сообщ.
#3
,
|
|
|
Цитата amk @ Вообще-то байты в числа превращает unpack. очепятался |