.. | ||
common/include | ||
gps | ||
.gitignore | ||
.ruby-gemset | ||
.ruby-version | ||
rakefile.rb | ||
README.mkd |
Prerequisites
To be able to compile your solutions and execute the tests, you will need the following:
- working gcc compiler
- working ruby installation
- rubygems: rake and bake-toolkit
Install the bake tool
see https://esrlabs.github.io/bake/
GPS on CAN
In this task you will need to receive Can-frames on the can-bus that contain the GPS location of the vehicle. The raw data has to be converted to arc-milliseconds
Beware that the system you are running your code on will not support floating point operations. Use only unsigned and signed integers! Still the precision of your calculations has to be +-100 milli-arc-seconds
Dynamic allocation is not supported on the system.
You will have to complete the GpsConverter.cpp (and .h).
Conversion between Arc-Degree and arc-milliseconds
1°2'5" == (13600+ 260 + 5)*1000
Conversion of raw values to Arc-Degree
value [degree] = 180/(2^31-1) * value[raw]
HINT 1
Try to use constants as much as possible, instead of computing stuff on the go.
HINT 2
In order to avoid losing decimals first, multiply with a large factor and then divide to get the result in ms.
GPS Datalayout in CAN Message
Byte7 ST_LAT_NAVI
Byte6 ST_LAT_NAVI
Byte5 ST_LAT_NAVI
Byte4 ST_LAT_NAVI
Byte3 ST_LONG_NAVI
Byte2 ST_LONG_NAVI
Byte1 ST_LONG_NAVI
Byte0 ST_LONG_NAVI
Byteorder
Little Endian (Least Significant Byte is at lowest address)
Signal Descriptions
Status Longitude Navigation
ST_LONG_NAVI
Possible Values
-180° ... +180°
Signal type
32 Bit Signed Integer (Byte 0 ... Byte 3)
Invalid Data
Invalid-Value: 80 00 00 00
Signal not available value: 7F FF FF FF and FF FF FF FF
Do not forget to check for these values
Status Latitude Navigation
ST_LAT_NAVI
Possible Values
-180° ... +180°
Signal type
32 Bit Signed Integer (Byte 4 ... Byte 7)
Invalid Data
Invalid-Value: 80 00 00 00
Signal not available value: 7F FF FF FF and FF FF FF FF
Tests
Use the rake file in the "ppc" folder to build your project and run the tests
Building the project
execute rake build
from this directory
Running the tests
execute rake run
from this directory