UDP Output
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
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