Difference between revisions of "UDP Output"
(→Debugging) |
|||
(8 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
Silent Wings can output various flight data to a configurable UDP socket. This can be useful for add-on developers and cockpit builders. Specifically, we support the Simmeters protocol for output of flight data to [http://www.simmeters.com Simmeters] instrument panels. In addition, we support the Condor format and our own binary format. | Silent Wings can output various flight data to a configurable UDP socket. This can be useful for add-on developers and cockpit builders. Specifically, we support the Simmeters protocol for output of flight data to [http://www.simmeters.com Simmeters] instrument panels. In addition, we support the Condor format and our own binary format. | ||
− | use_output_udp = | + | The following options in the "options.dat" file control the UDP protocol settings. |
+ | |||
+ | use_output_udp = true | ||
output_udp_protocol = simmeters | output_udp_protocol = simmeters | ||
output_udp_address = localhost | output_udp_address = localhost | ||
Line 12: | Line 14: | ||
== Condor Protocol == | == Condor Protocol == | ||
+ | |||
+ | To enable it, use the option | ||
+ | |||
+ | output_udp_protocol = condor | ||
+ | |||
+ | The Condor protcol consists of a bunch of strings on the format TAG=VALUE. The values sent by Silent Wings are (without the <> brackets): | ||
+ | |||
+ | time=<decimal hours> | ||
+ | airspeed=<absolute airspeed> | ||
+ | altitude=<altitude> | ||
+ | vario=<variometer value [1]> | ||
+ | evario=<variometer values [1]> | ||
+ | nettovario=<netto vario> | ||
+ | integrator=<integrated vario> | ||
+ | compass=<compass heading> | ||
+ | slipball=<ball angle (radians) [2]> | ||
+ | turnrate=<rad/sec> | ||
+ | yawstringangle=<radians> | ||
+ | radiofrequency=<current comm frequency> | ||
+ | yaw=<rotation about z axis, radians> | ||
+ | pitch=<rotation about y axis, radians> | ||
+ | bank=<rotation about x axis, radians> | ||
+ | quaternionx=<quaternion representation of aircraft orientation, X component> | ||
+ | quaterniony=<quaternion representation of aircraft orientation, Y component> | ||
+ | quaternionz=<quaternion representation of aircraft orientation, Z component> | ||
+ | quaternionw=<quaternion representation of aircraft orientation, W component> | ||
+ | ax=<accelleration along X axis> | ||
+ | ay=<accelleration along Y axis> | ||
+ | az=<accelleration along Z axis> | ||
+ | vx=<velocity along X axis (m/s)> | ||
+ | vy=<velocity along Y axis (m/s)> | ||
+ | vz=<velocity along Z axis (m/s)> | ||
+ | rollrate=<radians/second around X axis> | ||
+ | pitchrate=<radians/second around Y axis> | ||
+ | yawrate=<radians/second around Z axis> | ||
+ | gforce=<filtered g load> | ||
+ | |||
+ | Note [1]: The first variometer value is filtered with a slow | ||
+ | filter to simulate a slower mechanical vario. The "evario" value | ||
+ | is the variometer value that is normally indicated in the | ||
+ | instrument panel. | ||
+ | |||
+ | Note [2]: The slip ball is calibrated to +/- 15 degrees in radians | ||
+ | |||
+ | All coordinate values are given in aircraft body coordinates | ||
+ | which are defined as X forward, Y right and Z down. | ||
== Binary Protocol == | == Binary Protocol == | ||
The binary protocol is the most compact, and gives the best precision, but can be harder to program and debug. | The binary protocol is the most compact, and gives the best precision, but can be harder to program and debug. | ||
+ | To enable it, use the option | ||
+ | |||
+ | output_udp_protocol = binary | ||
+ | |||
+ | in the options.dat file. | ||
+ | |||
+ | The binary protocol sends the following data: | ||
unsigned int timestamp; // Millisec Timestamp | unsigned int timestamp; // Millisec Timestamp | ||
double position_latitude; // Degrees Position latitude, | double position_latitude; // Degrees Position latitude, | ||
double position_longitude; // Degrees longitude, | double position_longitude; // Degrees longitude, | ||
− | + | float altitude_msl; // m Altitude - relative to Sea-level | |
float altitude_ground; // m Altitude above gnd | float altitude_ground; // m Altitude above gnd | ||
float altitude_ground_45; // m gnd 45 degrees ahead (NOT IMPLEMENTED YET), | float altitude_ground_45; // m gnd 45 degrees ahead (NOT IMPLEMENTED YET), | ||
Line 36: | Line 91: | ||
float vy_wind | float vy_wind | ||
float vz_wind | float vz_wind | ||
+ | float v_eas // m/sec Equivalent (indicated) air speed. | ||
float ax // m/sec2 Acceleration vector in body axis | float ax // m/sec2 Acceleration vector in body axis | ||
float ay | float ay | ||
float az | float az | ||
− | |||
float angle_of_attack; // Degrees Angle of attack | float angle_of_attack; // Degrees Angle of attack | ||
float angle_sideslip; // Degrees Sideslip angle | float angle_sideslip; // Degrees Sideslip angle | ||
Line 48: | Line 103: | ||
float density // Air density at aircraft altitude. | float density // Air density at aircraft altitude. | ||
float temperature // Celcius Air temperature at aircraft altitude. | float temperature // Celcius Air temperature at aircraft altitude. | ||
+ | |||
+ | total size: 132 bytes | ||
+ | |||
+ | == Debugging == | ||
+ | To check that you have everything correctly set up, you can use the 'nc' or 'ncat' command which is available on both windows and linux. On Windows it is distributed in the [http://nmap.org/download.html NMap] software. | ||
+ | |||
+ | Assuming that you have set the output to port 6060 you can type the following into a terminal window while Silent Wings is running: | ||
+ | |||
+ | ncat -l -u localhost 6060 | ||
+ | |||
+ | And the terminal window should be filled with the output of the protocol you have selected, for example with the condor protocol: | ||
+ | |||
+ | time=12.08 | ||
+ | airspeed=30.327 | ||
+ | altitude=1183.170 | ||
+ | vario=-0.850 | ||
+ | evario=-0.851 | ||
+ | nettovario=0.000 | ||
+ | integrator=-0.838 | ||
+ | compass=220.21 | ||
+ | ... | ||
[[Category:Interfaces]] | [[Category:Interfaces]] |
Latest revision as of 00:11, 5 February 2012
Note: This feature is implemented in Silent Wings 1.08. It will not work with earlier versions
Silent Wings can output various flight data to a configurable UDP socket. This can be useful for add-on developers and cockpit builders. Specifically, we support the Simmeters protocol for output of flight data to Simmeters instrument panels. In addition, we support the Condor format and our own binary format.
The following options in the "options.dat" file control the UDP protocol settings.
use_output_udp = true output_udp_protocol = simmeters output_udp_address = localhost output_udp_port = 6060 output_udp_rate = 30
Simmeters Protocol
Condor Protocol
To enable it, use the option
output_udp_protocol = condor
The Condor protcol consists of a bunch of strings on the format TAG=VALUE. The values sent by Silent Wings are (without the <> brackets):
time=<decimal hours> airspeed=<absolute airspeed> altitude=<altitude> vario=<variometer value [1]> evario=<variometer values [1]> nettovario=<netto vario> integrator=<integrated vario> compass=<compass heading> slipball=<ball angle (radians) [2]> turnrate=<rad/sec> yawstringangle=<radians> radiofrequency=<current comm frequency> yaw=<rotation about z axis, radians> pitch=<rotation about y axis, radians> bank=<rotation about x axis, radians> quaternionx=<quaternion representation of aircraft orientation, X component> quaterniony=<quaternion representation of aircraft orientation, Y component> quaternionz=<quaternion representation of aircraft orientation, Z component> quaternionw=<quaternion representation of aircraft orientation, W component> ax=<accelleration along X axis> ay=<accelleration along Y axis> az=<accelleration along Z axis> vx=<velocity along X axis (m/s)> vy=<velocity along Y axis (m/s)> vz=<velocity along Z axis (m/s)> rollrate=<radians/second around X axis> pitchrate=<radians/second around Y axis> yawrate=<radians/second around Z axis> gforce=<filtered g load>
Note [1]: The first variometer value is filtered with a slow filter to simulate a slower mechanical vario. The "evario" value is the variometer value that is normally indicated in the instrument panel.
Note [2]: The slip ball is calibrated to +/- 15 degrees in radians
All coordinate values are given in aircraft body coordinates which are defined as X forward, Y right and Z down.
Binary Protocol
The binary protocol is the most compact, and gives the best precision, but can be harder to program and debug. To enable it, use the option
output_udp_protocol = binary
in the options.dat file.
The binary protocol sends the following data:
unsigned int timestamp; // Millisec Timestamp double position_latitude; // Degrees Position latitude, double position_longitude; // Degrees longitude, float altitude_msl; // m Altitude - relative to Sea-level float altitude_ground; // m Altitude above gnd float altitude_ground_45; // m gnd 45 degrees ahead (NOT IMPLEMENTED YET), float altitude_ground_forward; // m gnd straight ahead (NOT IMPLEMENTED YET). float roll; // Degrees float pitch; // Degrees float yaw; // Degrees float d_roll // Deg/sec Roll speed. float d_pitch // Deg/sec Pitch speed. float d_yaw // Deg/sec Yaw speed. float vx // m/sec Speed vector in body-axis float vy float vz float vx_wind // m/sec Speed vector in body-axis, relative to wind float vy_wind float vz_wind float v_eas // m/sec Equivalent (indicated) air speed. float ax // m/sec2 Acceleration vector in body axis float ay float az float angle_of_attack; // Degrees Angle of attack float angle_sideslip; // Degrees Sideslip angle float vario // m/sec TE-compensated variometer. float heading // Degrees Compass heading. float rate_of_turn // Deg/sec Rate of turn. float airpressure // pascal Local air pressure (at aircraft altitude). float density // Air density at aircraft altitude. float temperature // Celcius Air temperature at aircraft altitude.
total size: 132 bytes
Debugging
To check that you have everything correctly set up, you can use the 'nc' or 'ncat' command which is available on both windows and linux. On Windows it is distributed in the NMap software.
Assuming that you have set the output to port 6060 you can type the following into a terminal window while Silent Wings is running:
ncat -l -u localhost 6060
And the terminal window should be filled with the output of the protocol you have selected, for example with the condor protocol:
time=12.08 airspeed=30.327 altitude=1183.170 vario=-0.850 evario=-0.851 nettovario=0.000 integrator=-0.838 compass=220.21 ...