Hola, bienvenido.
El operador >> (bitwise shift) no puede aplicarse sobre números de coma flotante. Si querés representar un float como un conjunto de bytes, te recomiendo que lo hagas vía el módulo estándar struct:
Luego podés hacer:
Chequeá la documentación del módulo struct para asegurarte de usar el formato correcto según la especificación del hardware al cual estás enviando los datos. En el ejemplo, "<f" codifica un float de 4-bytes usando little-endian.
Saludos
El operador >> (bitwise shift) no puede aplicarse sobre números de coma flotante. Si querés representar un float como un conjunto de bytes, te recomiendo que lo hagas vía el módulo estándar struct:
Código:
# Codificar como bytes el número 12.4.
>>> import struct
>>> data = struct.pack("<f", 12.4)
>>> type(data)
<class 'bytes'>
>>> len(data)
4
>>> list(data)
[102, 102, 70, 65]
Luego podés hacer:
Código:
msg.DATA[0] = data[0]
msg.DATA[1] = data[1]
msg.DATA[2] = data[2]
msg.DATA[3] = data[3]
Chequeá la documentación del módulo struct para asegurarte de usar el formato correcto según la especificación del hardware al cual estás enviando los datos. En el ejemplo, "<f" codifica un float de 4-bytes usando little-endian.
Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!
También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.