Output
This page documents the output configuration. The device supports the following outputs:
Note
The decoding rules are defined by the provided CANmod.gps DBC file
Warning
The raw IMU output generates a lot of data. Consider disabling the output if not used (the IMU measurements are used internally to improve the position estimate regardless).
Trigger method
All output signals can be configured to either push (default) or poll using the trigger
configuration field (set for each individual output signal).
Push
Using the push trigger, an output signal is automatically transmitted on the bus with a constant period time. The base period time (specific for each signal, e.g. 100 ms), corresponds to the maximum push frequency for a signal. The period can be extended (the frequency reduced) using scaler
field.
Example:
An output signal has a base output period of 100 ms (10 Hz). To obtain a 1000 ms (1 Hz) output period, the scaler
value is set to 10.
Poll
Using the poll trigger, an output signal is only transmitted on the bus when specifically requested to. An output signal is polled (requested) by transmitting a CAN-bus Remote-Transmission-Request (RTR) frame using CAN-bus ID configured for the specific output signal.
Note
When creating the RTC frame, it is important to use the ID-format (standard or extended) matching the configuration. The DLC
(data length) can be set to any value.
Example:
An output signal is configured with CAN-bus ID 1
. The trigger
is set to poll
. Below trace illustrates how RTR
frames are used to trigger response DT
frames.
1 RTR 0001 Tx
2 DT 0001 Rx 99 99 99 99
3 RTR 0001 Tx
4 DT 0001 Rx 99 99 99 99
5 RTR 0001 Tx
6 DT 0001 Rx 99 99 99 99
7 RTR 0001 Tx
8 DT 0001 Rx 99 99 99 99
Signal encoding description file (dbc file)
The decoding rules described in dbc file format can be downloaded below:
Note
The DBC file is configured to match the default output IDs. If the output IDs are changed in the configuration, the DBC file needs to be updated accordingly.
Encoding
Related signals are packed in the same CAN-bus frame. All signals use an encoding method similar to what is used in SAE J1939-71:
Intel byte order (multi byte values are stored least significant byte first)
Values are encoded as unsigned integers which are then offset and scaled
By using encoding based on scaled and offset unsigned integers, the raw signal values can be decoded to physical values using a simple linear transformation:
with:
\(y_{\texttt{PHY}}\): The signal physical value
\(x_{\texttt{RAW}}\): The signal raw value
\(a\): The signal scaling factor
\(b\): The signal offset
Above transformation can be described by *.dbc files[1].
Note
Placing byte 0 to the right makes it easy to interpret Intel order data