Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
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
other
Target Operating System
[+] Linux
QNX
other
Hardware Platform
[+] NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)
other
SDK Manager Version
1.7.1.8928
[+] other
Host Machine Version
[+] native Ubuntu 18.04
other
Hi team,
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.
for example,
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.
for example,
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?