Additional apps¶
Veronte UDP Telemetry CLI¶
Veronte UDP Telemetry CLI is an additional command-line tool which allows Veronte Link to send Autopilot 1x telemetry over UDP.
Download¶
Once the Veronte Autopilot 1x has been purchased, a GitHub release should be created for the customer with the application.
To access to the release and download the software, read the Releases section of the Joint Collaboration Framework manual.
Installation¶
To install Veronte UDP Telemetry CLI on Windows just execute “veronte-udp-telemetry-cli.exe” and follow the indications of the Setup Wizard.
Warning
If users have any problems with the installation, please disable the antivirus and the Windows firewall. Disabling the antivirus depends on the antivirus software.
To disable the firewall, go to “Control Panel” \(\rightarrow\) “System and Security” \(\rightarrow\) “Windows Defender Firewall” and then, click on “Turn windows Defender Firewall on or off”.
Configuration¶
The following sections detail the steps to configure the Veronte system to transmit telemetry UDP messages through Veronte UDP Telemetry CLI, after it is installed.
1x PDI Builder¶
First, in 1x PDI Builder, the intended variables to send must be added to the corresponding telemetry vector.
To do this:
Go to Telemetry menu \(\rightarrow\) Telemetry panel.
By clicking the corresponding button, add the desired telemetry variables to one of the telemetry vectors Data to VApp.
Note
For further information about this Telemetry menu, please refer to the Telemetry section of 1x PDI Builder user manual.
Configure the Data to VApp vector where the variables have been added as follows:
Frequency: Desired frequency of data transmission
Address: App 2 (Veronte apps address)
Note
Hash parameter is not configurable, it is automatically calculated by the system based on the telemetry vector configured by the user. It is a hexadecimal representation of the CRC of the fieldset.
Veronte UDP Telemetry CLI¶
Veronte UDP Telemetry CLI has a configuration file (tudp.config
) where users must specify which telemetry variables to send. Once the app is installed, this file can be found in C:/Users/user/AppData/Roaming/VeronteUDPTelemetryCli
:
Caution
On Windows, the AppData folder is hidden by default, if it is not visible in C:\Users\user
, users can “show” it by checking the “Hidden Items” checkbox:
This configuration file consists of 3 parts:
&HEAD hex
. This establishes the header of the UDP messsages sent.&LVARS
…END_LVARS
. Defines the LVARS, which are complex variables defined by the user, as expressions in which autopilot variables may or may not be used. Each new line between&LVARS
andEND_LVARS
is a LVAR. LVARs can be boolean or number type.Each LVAR has the following structure:
L[id] = [default value] = [expression]
id
: It is any integer to identify the LVAR and is used in the entries to indicate the LVAR to send.default value
: The default value is the initial value that the LVAR will have the first time it is set.expression
: For each UDP packet sent, the LVAR values are updated with the result by evaluating the expression.
Example
L40 = false = (u1599_RVAR_1021 > (0.5)) && (u1599_BIT_1053 > (0))
LVAR L40, initialized as false, and for each UDP packet sent, the LVAR value is updated with the result of the expression (u1599_RVAR_1021 > (0.5)) && (u1599_BIT_1053 > (0)).
Where, u1599_RVAR_1021 refers to RVAR 1021 of the autopilot with address 1599, and u1599_BIT_1053 refers to BIT 1053 of the same autopilot.
Offsets/Entries. This is the information that is sent via UDP for each telemetry variable.
Users must fill in for each entry (except bits) the following fields of the table in this order:
MULT (float): Scaling factor by which the variable obtained from the autopilot is multiplied.
Note
Only used for the following VVARs (VERVARs): L_EQ, RVAR, UVAR, CUSTOM and LVAR.
This field does not affect the bits, but must be set nonetheless.
OFFSET (float): Offset factor to be added to the variable value obtained from the autopilot, before being multiplied by the MULT value.
Note
This field does not affect the bits, but must be set nonetheless.
TVAR: Type of variable representing the value sent via UDP. It can be:
Important
The variables configured in the
tudp.config
file must match the previous configuration from 1x PDI Builder configuration section of this manual, so each variable is parsed according to the organization of the bits.byte: Unsigned byte (0 to 255)
bit: A desired number of bits
UInt16: Unsigned 16-bit integer (0 to 65.536)
Int16: Signed 16-bit integer (-32.768 to 32.768)
UInt32: Unsigned 32-bit integer (-2.147.483.648 to 2.147.483.648)
Int32: Signed 32-bit integer (0 to 4.294.967.295)
Float: 32 bit single-precision floating-point ( \(3.4028237 \cdot 10^{38}\) to \(1.175494 \cdot 10^{-38}\) )
Note
Unlike the other TVARs, bits allows users to define several variables that are packed as only one within the UDP message. To do this, each new line is a variable that is included in the bits entry, until the
&END_BIT
line is read.UAV (int): Serial Number of the Autopilot 1x where the variables come from.
Note
UAV address does not matter for LVARs, since it is either already indicated in the LVAR expression or it is a value that does not come from any autopilot.
VERVAR/VVAR: Type of variable in Veronte system.
RVAR: Real variables obtained directly from the autopilot
UVAR: Integer variables obtained directly from the autopilot
BIT: Bit variables obtained directly from the autopilot
CUSTOM
NONE: Equivalent to 0
L_EQ: Linear equation. Similar to TVAR bits, it allows defining several variables in a single entry.
The resulting value of this type of entry is the addition of all the consequent variables, multiplied by COEFFICIENT, to which the unit conversion (UNIT), addition (OFFSET) and multiplication (MULT) are finally applied.
The linear equation continues to wait for more variables until the
&END_L_EQ
line is read.Note
As implemented, there is no use for the ID field when defining an L_EQ, since the IDs used are those of the following lines.
LVAR: It must be previously defined as explained above.
ID (int): Identifier of the variable in Veronte. Refer to the Lists of Variables - Lists of interest section of 1x Software Manual for Index-Variable correspondence or check it on the Variables panel of the UI menu of 1x PDI Builder app.
UNIT (int): Index of the unit of measurement of the variable in case a conversion has to be made. Please, see the Index-Unit correspondence table for detailed information.
LIMITS (optional) (Only for BITs): It is optional and its format is
[min&max]
, both are of float type.
COEFFICIENT (Only for L_EQ): It is a coefficient of the linear equation.
Below are several examples of the configuration file depending on the type of variable to be sent.
RVARs. Example with Relative Timestamp, Longitude and Latitude variables:
#HEAD HEX &HEAD 0AA0 #MULT OFFSET TVAR UAV VERVAR ID UNIT 1000 0 UInt32 1599 RVAR 300 NONE 1 0 Float 1599 RVAR 500 NONE 1 0 Float 1599 RVAR 501 NONE # First row: Send Time Since Hardware Start-Up (Milliseconds) as an UInt32 (4 bytes) # Second row: Send Longitude as a Float (4 bytes) # Third row: Send Latitude as a Float (4 bytes)
LVARs:
#HEAD HEX &HEAD 1FB9 &LVARS L1 = 0 = L1 + 1 L70 = 20 = L70 + L1 L45 = false = L70 % 2 == 0 L80 = false = (u1599_RVAR_1021 > (0.5)) && (u1599_BIT_1053 > (0)) &END_LVARS # L80 initially has a value of false. Next values are obtained from the expression # (u1599_RVAR_1021 > (0.5)) && (u1599_BIT_1053 > (0)) # u1599_RVAR_1021 = value of RVAR 1021 (stky21, Stick Input y21) # from autopilot with address 1599. # The value of this variable is also updated every time # Use of Lvars #MULT OFFSET TVAR UAV VERVAR ID UNIT 1 0 Int16 0000 LVAR 1 NONE 1 0 Float 0000 LVAR 70 NONE 1 0 byte 0000 LVAR 45 NONE # UAV address does not matter for these LVARs since they do not come from an autopilot. # First row: Send L1 as an Int16 (2 bytes) # Second row: Send L70 as a Float (4 bytes) # Third row: Send L45 as a byte (1 byte)
BITs:
#HEAD HEX &HEAD 0AA0 #MULT OFFSET TVAR UAV VERVAR ID UNIT 1 0 bits #UAV VERVAR ID UNIT LIMITS(optional) 1599 RVAR 501 NONE 1599 RVAR 500 NONE [-1000&1000] &END_BIT # Mult and Offset do not affect bits, but they must be set regardless. # Any int value is valid and acts the same.
BITs with LVARs. Taking the LVARs defined in the previous example:
#HEAD HEX &HEAD 1FB9 #Definition of LVARs &LVARS L1 = 0 = L1 + 1 L70 = 20 = L70 + L1 L45 = false = L70 % 2 == 0 &END_LVARS #Bits example with lvars #MULT OFFSET TVAR UAV VERVAR ID UNIT 1 0 bits #UAV VERVAR ID UNIT LIMITS(optional) 0000 LVAR 1 NONE [0&10] 0000 LVAR 70 NONE [100&500] 0000 LVAR 45 NONE &END_BIT # Mult and Offset do not affect bits, but they must be set regardless. # Any int value is valid and acts the same. # In this example, each one of the variables occupies one bit in the resulting message. # L1, which is incremented by one, is checked if it is within the set limit 0&10, # i.e., for values strictly greater than 0 and strictly less than 10, # the bit will be 1, and for all other values, it will be 0. # The same applies to L70, when 100<L70>500, the bit is 1, and for the rest it is 0. # L45 on the other hand doesn't have a limit. # When no limit is established, it compares it to 1. # Since L45 is a boolean that checks that L70 is even, # the bit will be one when the value is 1, and 0 when not. # Concrete example: L1 = 16, L70 = 156, L45 = true (because L70 is even) # The UDP packet will be: # HEADER: 31 -71 # L1: 16 0 # L70: 0 0 28 67 # L45: 1 # bits: 6 = bits[1 1 0] because: # L1 is not in the limits (0), L70 is (middle 1), and L45 is 1/true (left 1). # The order is from least to most significant in the order indicated in the bits list.
L_EQ:
#HEAD HEX &HEAD 0AA0 #MULT OFFSET TVAR UAV VERVAR ID UNIT 1 0 Int16 0000 L_EQ NONE NONE #UAV VERVAR ID UNIT COEFFICIENT 1001 RVAR 1 NONE 2.3 1001 UVAR 1 NONE 2.3 &END_L_EQ # LINEAR EQUATION: # ((COEFFICIENT*RVAR(1) + COEFFICIENT*UVAR(1)) + Offset) * Mult # ((2.3*RVAR(1) + 2.3*UVAR(1)) + 0) * 1
L_EQ with LVARs. Taking the LVARs defined in the previous example:
#HEAD HEX &HEAD 1FB9 #Definition of LVARs &LVARS L1 = 0 = L1 + 1 L70 = 20 = L70 + L1 &END_LVARS #Linear equation example with lvars #MULT OFFSET TVAR UAV VERVAR ID UNIT 2 13 Float 0000 L_EQ 0 NONE #UAV VERVAR ID UNIT COEFFICIENT 0000 LVAR 1 NONE 50 0000 LVAR 70 NONE 25 &END_L_EQ # Concrete example: L1 = 1, L70 = 21 # ((50*L1 + 25*L70) + Offset) * Mult = ((50*1 + 25*21) + 13) * 2 = 1176 # Sent as a Float, therefore in the udp packet it will be: # 1176 = [0 0 -109 68]
Index-Unit correspondence table¶
Unit ID |
Unit |
---|---|
0 |
m/s |
1 |
kt |
2 |
km/h |
3 |
mph |
4 |
ft/s |
121 |
ft/m |
321 |
mm/s |
5 |
m |
6 |
km |
62 |
mm |
63 |
cm |
7 |
mi |
8 |
NM |
9 |
yd |
10 |
ft |
11 |
in |
12 |
m/s² |
13 |
ft/s² |
14 |
in/s² |
15 |
g (gravity) |
202 |
rad |
16 |
rad [\(-\pi, \pi\)] |
203 |
rad [0, \(2\pi\)] |
205 |
º |
17 |
º [-180,180] |
101 |
º [0,360] |
102 |
º ‘ ‘’ |
103 |
º ‘ ‘’ (N/S) |
104 |
º ‘ ‘’ (E/W) |
21 |
T |
160 |
nT |
23 |
G |
22 |
mG |
24 |
V |
25 |
mV |
26 |
A |
27 |
mA |
340 |
kA |
28 |
Pa |
29 |
kPa |
30 |
bar |
31 |
mbar |
32 |
psi |
33 |
mmHg |
34 |
at |
35 |
atm |
147 |
Pa² |
36 |
K |
37 |
ºC |
38 |
ºF |
39 |
s |
120 |
Time |
40 |
min |
41 |
h |
330 |
ns |
108 |
\(\mu\) s |
109 |
ms |
42 |
rad/s |
117 |
º/s |
43 |
rad/min |
44 |
rad/h |
45 |
rps |
46 |
rpm |
47 |
rph |
57 |
m³/s |
58 |
gal/s |
54 |
gal/h |
59 |
l/s |
55 |
l/h |
56 |
– |
60 |
x1 |
64 |
% |
61 |
pkts/s |
105 |
Hz |
106 |
mHz |
107 |
kHz |
140 |
Bd |
141 |
kBd |
142 |
MBd |
110 |
m² |
111 |
cm² |
112 |
mm² |
113 |
km² |
114 |
mile² |
115 |
ft² |
116 |
yd² |
118 |
bit |
119 |
byte |
131 |
KB |
132 |
GB |
122 |
kg |
123 |
g |
124 |
tonnes |
125 |
lbs |
126 |
oz |
127 |
N |
128 |
kN |
129 |
lbf |
130 |
pdl |
134 |
rad/s² |
135 |
rad/min² |
136 |
rad/h² |
137 |
º/s² |
138 |
º/m² |
139 |
º/h² |
329 |
rpm/s |
143 |
T² |
144 |
(m/s)² |
145 |
(cm/s)² |
146 |
(mm/s)² |
327 |
\(\Omega\) |
328 |
Henrios |
322 |
watios |
323 |
kW |
324 |
Kgm/s |
325 |
erg/s |
326 |
cv |
331 |
m³ |
332 |
dm³ |
333 |
mm³ |
334 |
L |
335 |
mL |
Operation¶
This section details the steps to transmit telemetry UDP messages through Veronte UDP Telemetry CLI.
Sending UDP messages¶
Veronte UDP Telemetry CLI connects to Veronte Link to send the previously configured Autopilot 1x telemetry via UDP messages. For this reason, the connection between the autopilot and Veronte Link must be properly established, and Veronte Link needs to be opened.
Note
For more information about this connection, please refer to Connection - Operation section of this manual.
These are the options to send the configured variables:
Launching Veronte UDP Telemetry CLI by double-clicking on the App shortcut or the
.exe
file:This will send the UDP messages with the following default configuration:
Host url: 127.0.0.1
UDP port: 3000
Frequency: 10 Hz
Note
These installation files location will vary depending on the location selected during installation.
Note that Veronte UDP Telemetry CLI Installer
.exe
is not the Veronte UDP Telemetry CLI.exe
to launch.Launching Veronte UDP Telemetry CLI
.exe
from terminal, where it is possible to specify the parameters of the trasmission using the following command-line options:- u: UDP address
- p: UDP port
- f: Desired frequency of data transmission (Hz)
This is an example:
The expected outcome is the following:
Note
Veronte UDP Telemetry CLI always adds the matcher 0x0A 0xA0 at the beginning of each sent UDP packet before the variable data.
Therefore the received UDP packet will be: 0x0A 0xA0 followed by the consecutive stream of data in the order and byte width configured in tudp.config.
If users have any doubts about the UDP packets that are generated, please refer to Viewing UDP data - Troubleshooting section of this manual.