Please provide the following info (check/uncheck the boxes after creating this topic):
DRIVE OS Linux 5.2.6
DRIVE OS Linux 5.2.6 and DriveWorks 4.0
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
[+] NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version
Target Operating System
[+] NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
SDK Manager Version
Host Machine Version
[+] native Ubuntu 18.04
I am sending CAN data via can.socket channel from driveworks code using ‘dwSensorCAN_sendMessage’ function.
But when I try to send messages having signals of type float or double ( In my dbc these signals are either IEEE float or IEEE double) the messages found to be sent with rounded value.
if my signal value is float32 steer_lms_value =12.3
dwCANInterpreter_encodef32 (steer_lms_value, steer_lms_signal_name, &msg_send_steer,canParser);
dwSensorCAN_sendMessage (&msg_send_steer,10000, canSensor);
gives output as: 0C00000000000000.
which is simply a rounded value of signal.
Also in output we are not able to see an IEEE float or IEEE double format.
similar issue happens when we are reading CAN messages also. If the signal we are reading is IEEE float /IEEE double then the output we are getting as a direct hex to decimal converted value.
our message was 0x284 with only signal as IEEE double.
0x284: 5A AE BC E1 B4 9E 10 40
The corresponding decimal value is 4.154986884251764 (using IEEE-754 Floating-Point Conversion).
But when we are reading value in driveworks we are getting a value of :4616364117773299290. which is a direct hex to decimal conversion of above signal value.
Could you please clarify on this?