X-Git-Url: https://git.xandkar.net/?p=erlang-x-plane-data.git;a=blobdiff_plain;f=README.md;fp=README.md;h=b417370d307e93e9da7e108ead2dc5a761feed72;hp=2de6895be7b3fee96d464b31c29d67016305e928;hb=84fa8ccb7143428a0aa49ceeb632ff45b374d8b8;hpb=10d6d4c7bd29e99c67024e8a08a2b35f8da1c4de diff --git a/README.md b/README.md index 2de6895..b417370 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,19 @@ Examples ### Parse data packet ```erlang -{ok, {Index, Groups}} = x_plane_data_raw:of_bin(XPlaneDataPacket), +{ok, {64=Index, GroupsRaw}=DataRaw} = x_plane_data_raw:of_bin(XPlaneDataPacket), ``` ### Access parsed data +#### Raw + +At this stage, only the structure of the packet was parsed. No attempt at +interpreting the values have been made: + ```erlang % Speeds are in group 3 -{3, Speeds} = lists:keyfind(3, 1, Groups), +{3, Speeds} = lists:keyfind(3, 1, GroupsRaw), { VindKias , VindKeas , VtrueKtas @@ -35,7 +40,7 @@ Examples } = Speeds, % Pitch roll and headings values are in group 17 -{17, PitchRollHeadings} = lists:keyfind(17, 1, Groups), +{17, PitchRollHeadings} = lists:keyfind(17, 1, GroupsRaw), { PitchDeg , RollDeg , HdingTrue @@ -47,6 +52,53 @@ Examples } = PitchRollHeadings, ``` +#### Named + +Here we identify what each of the numbered groups mean in a given X-Plane +version. Right now only X-Plane 10 is supported and I only identified 3 groups +so far: + +- index: `3` , name: `speeds` +- index: `17`, name: `pitch_roll_heading` +- index: `20`, name: `lat_lon_alt` + +Unidentified groups (with index other than what is listed above) will be +absent from the list of named groups (think of `x_plane_data_named:of_raw/1` as +a filter), so you'll have to access their raw version, if needed. + +##### Identify +```erlang +{ok, {x_plane_data_v10, GroupsNamed}} = x_plane_data_named:of_raw(DataRaw), +``` + +##### Access +```erlang +-include_lib("x_plane_data_group_lat_lon_alt.hrl"). +-include_lib("x_plane_data_group_pitch_roll_heading.hrl"). +-include_lib("x_plane_data_group_speeds.hrl"). + +... + +{speeds, #x_plane_data_group_speeds + { vind_kias = VindKias + , vind_keas = VindKeas + , vtrue_ktas = VtrueKtas + , vtrue_ktgs = VtrueKtgs + , vind_mph = VindMph + , vtrue_mphas = VtrueMphas + , vtrue_mphgs = VtrueMphgs + } +} = lists:keyfind(speeds, 1, GroupsNamed), + +{pitch_roll_heading, #x_plane_data_group_pitch_roll_heading + { pitch_deg = PitchDeg + , roll_deg = RollDeg + , hding_true = HdingTrue + , hding_mag = HdingMag + } +} = lists:keyfind(pitch_roll_heading, 1, GroupsNamed), +``` + Data format references ----------------------