12-01-2022, 06:53 AM
Hola,
Estoy haciendo un script en Python que envía un mensaje CAN a través de un PCAN-USB. El problema está que cuando quiero enviar un mensaje con datos flotantes me salé este error:
<TypeError: unsupported operand type(s) for >>: 'float' and 'int'>
Este es mi código:
Sé que un mensaje CAN puede manejar hasta 8 bytes, y un dato float ocupa 4 bytes si no estoy confundido. Alguien sabe como podría solucionar este problema ?
Gracias de antemano.
Estoy haciendo un script en Python que envía un mensaje CAN a través de un PCAN-USB. El problema está que cuando quiero enviar un mensaje con datos flotantes me salé este error:
<TypeError: unsupported operand type(s) for >>: 'float' and 'int'>
Este es mi código:
Código:
connect1 = PCANBasic()
# Initialize connection
res = connect1.Initialize(PCAN_USBBUS1,
PCAN_BAUD_500K,
TPCANType(0),0,0)
msg = TPCANMsg()
msg.ID = 0xW8
msg.MSGTYPE = PCAN_MESSAGE_STANDARD
msg.LEN = 8
msg.DATA[0] = (12.4>> 24) & 0xff #Error aqui
msg.DATA[1] = (12.4 >> 16) & 0xff
msg.DATA[2] = (12.4 >> 8) & 0xff
msg.DATA[3] = (12.4) & 0xff
msg.DATA[4] = (35.4 >> 24) & 0xff
msg.DATA[5] = (35.4 >> 16) & 0xff
msg.DATA[6] = (35.4 >> 8) & 0xff
msg.DATA[7] = (35.4) & 0xff
result = connect1.Write(PCAN_USBBUS1,msg)
if result != PCAN_ERROR_OK:
# An error occurred, get a text describing the error and show it
#
result = connect1.GetErrorText(result,0x00)
print(result)
else:
print("VP_POSITION : Message sent successfully")
res = connect1.Uninitialize(PCAN_USBBUS1)
Sé que un mensaje CAN puede manejar hasta 8 bytes, y un dato float ocupa 4 bytes si no estoy confundido. Alguien sabe como podría solucionar este problema ?
Gracias de antemano.