Custom Messages¶
When using and configuring custom messages, the following types of elements can be defined within.
Telemetry Panel
Variable¶
Used to store certain bits in a system variable (RX) or to send a certain variable (TX).
Variable Configuration Menu
Type of Compression. The first step is to configure which kind of compression will be used for this variable.
Uncompressed: the variable is taken in its full length, with no value modification.
- Compressed:
Compress (Bits signed): specify the number of bits to be compressed to (negative values accpeted). It is necessary that the user configures Encode/Decode options.
Compress (Bits unsigned): specify the number of bits to be compressed to (no negative values accepted). It is necessary that the user configures Encode/Decode options.
Compress (Decimals): the variable is compressed according to the number of decimals specified and the range specified (max and min values). The resultant compression (number of bits) follows the relation \((max-min) \cdot 10^{decimals}\) - which yields the encoding of the maximum value of the range (and the number of bits necessary for that). The range needs to be specified on the Encode - Min/Max field.
Compress Decimal Selection
Encode/Decode: these values are used to apply a scaling factor after the transformation from binary to decimal value, or before the transformation from decimal to binary value.
In the example shown below, a real user variable (32 bits) is being used to receive data from an external device. This data corresponds to the heading angle of the aircraft (which goes from 0 to 359 degrees). The device is sending this information in a 16-bit data frame and the angle value times 100 (hence why the Decode section goes from 0 to 35900). This needs to be saved in Veronte in the user variable in the range 0 to 359 (Encode).
Variable Identification Example
Checksum¶
Sometimes, control codes are needed for preventing random errors in transmission, where a bits frame is operated and the result is sent to the receiver to check it. To do so the CheckSum option is used.
CheckSum
Back From: Indicates that the CRC will be computed from the indicated byte (inclusive).
Back To: Indicates that the CRC will be computed to the indicated byte (exclusive).
Note
Byte 0 it is referred to the first byte of the Checksum block. i.e for a message with 6 bytes where 2 bytes are the CRC. Back from = 4 and Back To = 0
Endianness: Indicates how the bytes that it contains are read:
Big endian: Set the value from left to right
Little endian: Set the value from right to left
Mixed endian: For some special devices.
Type: User can choose the type of CRC that will be applied.
CRC type.
Polynomial. Select from a list of predefined Embention Veronte CRC. Last option is Custom, where fields as nº Bits, Polynomial, Start Value, Final Xor, Reflect In and Out can be defined. Check Polynomial CRC online for more information.
Module. Applies Module CRC.
Mavlink. EMbention has implemented the Mavlink checksum, used only for Mavlink protocol communications.
- Sum 8. The Sum 8 checksum is the 8 bit modulo 256 checksum. It consists of adding all bytes to take only the less significant bits whenever the sum exceeds 8 bits (255). The algorithm will be:
SUM = Sum on all bytes
CHECKSUM = MOD(SUM,256)
Matcher¶
This option is used to send a constant value through the bus in TX or wait for a particular value in RX.
Matcher
Nº Bits: number of bits in which the matcher is performed.
Value: sent/received value for the above nº of bits.
Mask: it is automatically set when the nº of bits is assigned.
For example, a matcher of 8 bits with a value of 9 will be reading/sending: 0000 1001 .
Skip¶
This option is used to discard a certain number of bits from the message (the maximum number of bits that can be skipped with a single “Skip” are 32). This tool can be used when there are variables incoming that are from no interest for the user, not loading unnecessary information into the system.
Parse ASCII¶
Parsing ASCII is used when the protocol required is of this kind. Only for RX. The variable set at the top is where the ASCII will be saved.
ASCII protocol is used for transforming a character array into decimal values. For such task, the user needs to define the number of characters in the integer and the decimal parts, as well as defining which is the division character. See how to introduce all this information in the picture below.
Parse ASCII Menu
Position¶
Position is used to input/output a data set with a particular format. When created, the user can only choose from Moving Object variables.
The window display below is the configurable menu, where it can be chosen between degrees and radians as units. The information stored is the WGS84 coordinates in the following order: Latitude, Longitude and Height. All of them are stored with double precision.
Position Menu