September 4, 201213 yr Moderator Fr. Bill, Arrived. Received. Thanks a bunch! Hopefully this will also give me some clues about placing custom VOR, NDB, etc. symbols instead of the defaults... Fr. Bill AOPA Member: 07141481 AARP Member: 3209010556 Avsim Board of Directors | Avsim Forums Moderator
September 4, 201213 yr Similarly I have created a xml mission adaptive flight planner that is ICAO based that can modify existing saved flight plans How do you read the existing flight plans from disk in XML? Gerry Howard
September 5, 201213 yr How do you read the existing flight plans from disk in XML? I had the same question ... not sure what Karol is describing. However, it is easy enough to read a list of waypoints (ICAO and/or Lat-Lon defined) from HDD file and create and load a flight plan from those. The front end is all XML, the back end requires LOGGER to handle HDD>XML>HDD. The reverse is straight forward, too - writing waypoints to file. This method does not interface with flight sim's ATC, cannot set VFR vs IFR, etc... just does the waypoints part. Bob
September 5, 201213 yr Moderator I suspect that Karol is loading the FP via FS first, then modifying it via XML. Fr. Bill AOPA Member: 07141481 AARP Member: 3209010556 Avsim Board of Directors | Avsim Forums Moderator
September 5, 201213 yr It is purely for in cockpit adaptive use . as Propwash said certain features do not exist , such as ATC update . The flight plan listing is as per the GPS and the Flight plan lines are custom draw. The modification or creation of flight plans are simple DTO's and Add or Delete Wpts. If a session is started with a saved flight plan all legs can be deleted and a new plan created with just the ADD WPT facility , however if a session is started with out any plan then as usual a plan must be started with a DTO and thereafter modified or added to with the ADD WPT or DELETE WPT facility. It is just for extreme flexability during the current sim session. Probably best used for military type applications. Cheers Karol
September 5, 201213 yr Below is a shot with the flight plan editor boxed in yellow. 1. Top block is a DTO. 2. Middle block is a DTO with an intervening Wpt. 3. 3rd block is ADD WPT Both the ADD WPT and DELETE WPT require a index number (SEQ) to be set in the thumbwheel. Open the keyboard register on left side , then make entry on right side. The small red flashing light is a reminder that the keyboard is engaged , it is extinguished by a right entry or the CLEAR button. It is ICAO entry only , and the ICAO will appear in blue boxes and is typed on your keyboard following left side clicks. Any length flight plan can be created or modified , it is incredibly versatile and flexible . The full code is below the shot , copy code with xml editor no background is required , place a folder then in panel folder and make a panel cfg entry. You will of course need a list of ICAO's possibly from a GPS. Cheers Karol Following is code for Flight plan editor, Karol <Gauge Name="FPeditor" Version="1.0"> <Size X="228" Y="205" /> <Macro Name="c">C:fs9gps</Macro> <Macro Name="C">C:fs9gps</Macro> <Update> <Frequency>6</Frequency> </Update> <Element Name="FLIGHT PLAN EDITOR BACKGROUND RECTANGLE"> <Position X="0" Y="0"/> <Rectangle Width="228" Height="205" FillColor="#32322E" Bright="Yes"/> </Element> <Element Name="Display Screen RECTANGLE"> <Position X="26" Y="5"/> <Rectangle Width="175" Height="171" FillColor="#020702" Bright="Yes"/> </Element> <!--Button Text--> <Element> <Position X="0" Y="16"/> <FormattedText X="228" Y="162" Font="Gloucester MT Extra Condensed" FontSize="9" LineSpacing="10" Adjust="Left" Color="#93FF72" Bright="Yes" Tabs="0,14C"> <String>\tDTO\n\n\n\tS.1\n\n\n\tS.2\n\n\n\tADD\n\n\n\tDEL\n\n\n\tCLR\n</String> </FormattedText> </Element> <Element> <Position X="0" Y="16"/> <FormattedText X="228" Y="162" Font="Gloucester MT Extra Condensed" FontSize="9" LineSpacing="10" Adjust="Left" Color="#93FF72" Bright="Yes" Tabs="0,207"> <String>\tENT\n\n\n\tENT\n\n\n\n\n\n\tENT\n</String> </FormattedText> </Element> <!--ELEMENTS--> <Element> <Position X="33" Y="5"/> <FormattedText X="197" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%MISSION ADAPTIVE FLIGHT PLAN%</String> </FormattedText> </Element> <!-- Separation line --> <Element> <Position X="40" Y="37"/> <Polygon Color="#1D581D" LineWidth="0.1" Bright="Yes"> <Point X="0" Y="0"/> <Point X="149" Y="0"/> </Polygon> </Element> <Element> <Position X="40" Y="93"/> <Polygon Color="#1D581D" LineWidth="0.1" Bright="Yes"> <Point X="0" Y="0"/> <Point X="149" Y="0"/> </Polygon> </Element> <Element> <Position X="40" Y="123"/> <Polygon Color="#1D581D" LineWidth="0.1" Bright="Yes"> <Point X="0" Y="0"/> <Point X="149" Y="0"/> </Polygon> </Element> <!-- DIRECT TO TEXT --> <Element> <Position X="26" Y="19"/> <FormattedText X="40" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%- DTO%</String> </FormattedText> </Element> <Element Name="DTO IDENT READBACK"> <Position X="74" Y="21" /> <FormattedText X="50" Y="16" Adjust="left" Fixed="Yes" Font="Tahoma" Color="#93FF72" Bright="Yes" FontSize="10"> <String>%((L:F111-DTO-4,enum) chr (L:F111-DTO-3,enum) chr scat (L:F111-DTO-2,enum) chr scat (L:F111-DTO-1,enum) chr scat)%!s!%</String> </FormattedText> </Element> <Element Name="DTO IDENT BORDER"> <Position X="70" Y="19"/> <Visible> (L:FPEntry, enum) 4 == </Visible> <Rectangle Width="33" Height="15" Color="#007293" Bright="Yes"/> </Element> <Element> <Position X="128" Y="19"/> <FormattedText X="73" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="Right" Color="#349F34" Bright="Yes"> <String>%-> ENTER DTO -%</String> </FormattedText> </Element> <!-- 2 LEG FLT PLN TEXT --> <Element> <Position X="26" Y="44"/> <FormattedText X="42" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%- SEQ 1%</String> </FormattedText> </Element> <Element Name="SEQ 1 IDENT BORDER"> <Position X="70" Y="44"/> <Visible> (L:FPEntry, enum) 1 == </Visible> <Rectangle Width="33" Height="15" Color="#007280" Bright="Yes"/> </Element> <Element Name="SEQ 1 IDENT READBACK"> <Position X="73" Y="46" /> <FormattedText X="50" Y="20" Adjust="left" Fixed="Yes" Font="Tahoma" Color="#93FF72" Bright="Yes" FontSize="10"> <String>%((L:F111-SEQA-4,enum) chr (L:F111-SEQA-3,enum) chr scat (L:F111-SEQA-2,enum) chr scat (L:F111-SEQA-1,enum) chr scat)%!s!%</String> </FormattedText> </Element> <Element> <Position X="135" Y="44"/> <FormattedText X="66" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="Right" Color="#349F34" Bright="Yes"> <String>%-> ENTER FP -%</String> </FormattedText> </Element> <Element> <Position X="26" Y="73"/> <FormattedText X="40" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%- DEST%</String> </FormattedText> </Element> <Element Name="DESTINATION IDENT BORDER"> <Position X="70" Y="73"/> <Visible> (L:FPEntry, enum) 2 == </Visible> <Rectangle Width="33" Height="15" Color="#007293" Bright="Yes"/> </Element> <Element Name="DESTINATION IDENT READBACK"> <Position X="73" Y="75" /> <FormattedText X="50" Y="20" Adjust="left" Fixed="Yes" Font="Tahoma" Color="#93FF72" Bright="Yes" FontSize="10"> <String>%((L:F111-DEST-4,enum) chr (L:F111-DEST-3,enum) chr scat (L:F111-DEST-2,enum) chr scat (L:F111-DEST-1,enum) chr scat)%!s!%</String> </FormattedText> </Element> <!-- ADD NEW WPT TEXT --> <Element> <Position X="26" Y="103"/> <FormattedText X="55" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%- ADD WPT%</String> </FormattedText> </Element> <Element Name="WPT IDENT READBACK"> <Position X="83" Y="105" /> <FormattedText X="50" Y="20" Adjust="left" Fixed="Yes" Font="Tahoma" Color="#93FF72" Bright="Yes" FontSize="10"> <String>%((L:F111-WPT-4,enum) chr (L:F111-WPT-3,enum) chr scat (L:F111-WPT-2,enum) chr scat (L:F111-WPT-1,enum) chr scat)%!s!%</String> </FormattedText> </Element> <Element Name="WPT IDENT BORDER"> <Position X="80" Y="103"/> <Visible> (L:FPEntry, enum) 3 == </Visible> <Rectangle Width="33" Height="15" Color="#007293" Bright="Yes"/> </Element> <Element> <Position X="126" Y="103"/> <FormattedText X="75" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="Right" Color="#349F34" Bright="Yes"> <String>%-> ENTER WPT -%</String> </FormattedText> </Element> <!-- Delete WPT - Clear TEXT --> <Element> <Position X="26" Y="133"/> <FormattedText X="65" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%- DELETE WPT%</String> </FormattedText> </Element> <Element> <Position X="26" Y="161"/> <FormattedText X="75" Y="12" Font="Tahoma" FontSize="10" LineSpacing="12" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%- CLEAR - ABORT%</String> </FormattedText> </Element> <!--Thumbwheel text display TENS and UNITS--> <Element> <Position X="160" Y="124"/> <FormattedText X="40" Y="10" Font="Tahoma" FontSize="8" LineSpacing="10" Adjust="LEFT" Color="#349F34" Bright="Yes"> <String>%"SEQ"%</String> </FormattedText> </Element> <Element Name="Box"> <Position X="151" Y="137"/> <Rectangle Width="40" Height="23" Color="#2B2B2B" LineWidth="2" Bright="Yes"/> </Element> <Element Name="10 BORDER"> <Position X="155" Y="140"/> <Rectangle Width="12" Height="16" Color="#2B2B2B" Bright="Yes"/> </Element> <Element> <Position X="156" Y="143"/> <Text X="10" Y="10" Bright="Yes" Length="2" Font="Arial" Color="0xDACEDE" Adjust="Center" VerticalAdjust="Center" Multiline="No" Fixed="No"> <String>%((L:F111_Wpt_10s, number))%!d!%</String> </Text> </Element> <Element Name="1 BORDER"> <Position X="175" Y="140"/> <Rectangle Width="12" Height="16" Color="#2B2B2B" Bright="Yes"/> </Element> <Element> <Position X="176" Y="143"/> <Text X="10" Y="10" Bright="Yes" Length="2" Font="Arial" Color="0xDACEDE" Adjust="Center" VerticalAdjust="Center" Multiline="No" Fixed="No"> <String>%((L:F111_Wpt_1s, number))%!d!%</String> </Text> </Element> <!--Thumbwheel SUM defined for resetting active leg at last mouse button--> <Element> <Position X="55" Y="3"/> <Text X="1" Y="1" Bright="Yes" Length="3" Font="Arial" Color="0x000000" Adjust="Center" VerticalAdjust="Center" Multiline="No" Fixed="No"> <String>%((L:F111_Wpt_10s, number) 10 * (L:F111_Wpt_1s, number) + (> L:F111_Wpt_Sum, number))%!02d!%</String> </Text> </Element> <!-- WARNING LIGHT indicates Keyboard is LOCKED OUT --> <Element> <Visible>(L:FPEntry, enum) 0.5 > (P:Local time,seconds) 0.4 % 0.25 < && </Visible> <Element> <Position X="197" Y="187"/> <FormattedText X="35" Y="14" Font="Tahoma" FontSize="12" LineSpacing="12" Adjust="LEFT" Color="#CC0000" Bright="Yes"> <String>%*%</String> </FormattedText> </Element> </Element> <Mouse> <!-- Thumbwheel setting for Wpt index --> <Macro Name="Button1">(M:Event) 'RightSingle' scmp 0 == if{ (L:F111_Wpt_10s, number) -- 0 max (> L:F111_Wpt_10s, number) } (M:Event) 'LeftSingle' scmp 0 == if{ (L:F111_Wpt_10s, number) ++ 9 min (> L:F111_Wpt_10s, number) } (M:Event) 'WheelUp' scmp 0 == if{ (L:F111_Wpt_10s, number) ++ 9 min (> L:F111_Wpt_10s, number) } (M:Event) 'WheelDown' scmp 0 == if{ (L:F111_Wpt_10s, number) -- 0 max (> L:F111_Wpt_10s, number) }</Macro> <Area Left="159" Top="142" Width="16" Height="25"> <Tooltip>Tens</Tooltip> <Click Kind="LeftSingle+RightSingle+WheelUp+WheelDown">@Button1</Click> <Cursor Type="Hand" /> </Area> <Macro Name="Button2">(M:Event) 'RightSingle' scmp 0 == if{ (L:F111_Wpt_1s, number) -- 0 max (> L:F111_Wpt_1s, number) } (M:Event) 'LeftSingle' scmp 0 == if{ (L:F111_Wpt_1s, number) ++ 9 min (> L:F111_Wpt_1s, number) } (M:Event) 'WheelUp' scmp 0 == if{ (L:F111_Wpt_1s, number) ++ 9 min (> L:F111_Wpt_1s, number) } (M:Event) 'WheelDown' scmp 0 == if{ (L:F111_Wpt_1s, number) -- 0 max (> L:F111_Wpt_1s, number) }</Macro> <Area Left="179" Top="142" Width="16" Height="25"> <Tooltip>Units</Tooltip> <Click Kind="LeftSingle+RightSingle+WheelUp+WheelDown">@Button2</Click> <Cursor Type="Hand" /> </Area> <!-- LH buttons --> <!-- GRAY - ENTER ORIGIN IDENT --> <Area Left="4" Top="35" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 1 (>L:FPEntry, enum) </Click> </Area> <!-- PURPLE - ENTER DESTINATION IDENT --> <Area Left="4" Top="64" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 2 (>L:FPEntry, enum) </Click> </Area> <!-- BLUE - ENTER WAYPOINTIDENT --> <Area Left="4" Top="94" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 3 (>L:FPEntry, enum) </Click> </Area> <!-- PURPLE- ENTER DTO IDENT --> <Area Left="4" Top="5" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 4 (>L:FPEntry, enum) </Click> </Area> <!-- DELETE WPT- DELETE WPT FROM FLIGHT PLAN BUTTON --> <Area Left="4" Top="124" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 'A' (>@c:IcaoSearchStartCursor) (L:F111-WPT-4,number) chr (L:F111-WPT-3,number) chr (L:F111-WPT-2,number) chr (L:F111-WPT-1,number) chr scat scat scat (>@c:IcaoSearchEnterChar) 0 (>@c:FlightPlanWaypointIndex) (@c:IcaoSearchMatchedIcaosNumber,number) 0 > if{ (@c:IcaoSearchCurrentICAO) (>@c:FlightPlanNewWaypointICAO) } (L:F111_Wpt_Sum, number) (>@c:FlightPlanDeleteWaypoint) </Click> </Area> <!-- CLR- CLEAR IDENTS and CANCEL KEYBD DIRECT ENTRY --> <Area Left="4" Top="154" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 0 (>L:F111-SEQA-1,enum) 0 (>L:F111-SEQA-2,enum) 0 (>L:F111-SEQA-3,enum) 0 (>L:F111-SEQA-4,enum) 0 (>L:F111-DEST-1,enum) 0 (>L:F111-DEST-2,enum) 0 (>L:F111-DEST-3,enum) 0 (>L:F111-DEST-4,enum) 0 (>L:F111-WPT-1,enum) 0 (>L:F111-WPT-2,enum) 0 (>L:F111-WPT-3,enum) 0 (>L:F111-WPT-4,enum) 0 (>L:F111-DTO-1,enum) 0 (>L:F111-DTO-2,enum) 0 (>L:F111-DTO-3,enum) 0 (>L:F111-DTO-4,enum) 0 (>L:FPEntry, enum) </Click> </Area> <!-- RH buttons --> <!-- DTO- ENTER DIRECT TO FLIGHT PLAN BUTTON --> <Area Left="197" Top="5" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 'A' (>@c:IcaoSearchStartCursor) (L:F111-DTO-4,number) chr (L:F111-DTO-3,number) chr (L:F111-DTO-2,number) chr (L:F111-DTO-1,number) chr scat scat scat (>@c:IcaoSearchEnterChar) 0 (>@c:FlightPlanWaypointIndex) (@c:IcaoSearchMatchedIcaosNumber,number) 0 > if{ (@c:IcaoSearchCurrentICAO) (>@c:FlightPlanNewWaypointICAO) } 1 (>@c:FlightPlanDirectToDestination) 0 (>L:FPEntry, enum) 0 (>L:F111-DTO-1,enum) 0 (>L:F111-DTO-2,enum) 0 (>L:F111-DTO-3,enum) 0 (>L:F111-DTO-4,enum) </Click> </Area> <!-- DTO + 1- MAKE FLIGHT PLAN BUTTON --> <Area Left="197" Top="35" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 'A' (>@c:IcaoSearchStartCursor) (L:F111-DEST-4,number) chr (L:F111-DEST-3,number) chr (L:F111-DEST-2,number) chr (L:F111-DEST-1,number) chr scat scat scat (>@c:IcaoSearchEnterChar) 0 (>@c:FlightPlanWaypointIndex) (@c:IcaoSearchMatchedIcaosNumber,number) 0 > if{ (@c:IcaoSearchCurrentIcao) (>@c:FlightPlanNewWaypointICAO) } 1 (>@c:FlightPlanDirectToDestination) 0 (>L:FPEntry, enum) 0 (>L:F111-DEST-1,enum) 0 (>L:F111-DEST-2,enum) 0 (>L:F111-DEST-3,enum) 0 (>L:F111-DEST-4,enum) 'A' (>@c:IcaoSearchStartCursor) (L:F111-SEQA-4,number) chr (L:F111-SEQA-3,number) chr (L:F111-SEQA-2,number) chr (L:F111-SEQA-1,number) chr scat scat scat (>@c:IcaoSearchEnterChar) 0 (>@c:FlightPlanWaypointIndex) (@c:IcaoSearchMatchedIcaosNumber,number) 0 > if{ (@c:IcaoSearchCurrentICAO) (>@c:FlightPlanNewWaypointICAO) } 1 (>@c:FlightPlanAddWaypoint) 0 (>L:FPEntry, enum) 0 (>L:F111-SEQA-1,enum) 0 (>L:F111-SEQA-2,enum) 0 (>L:F111-SEQA-3,enum) 0 (>L:F111-SEQA-4,enum) </Click> </Area> <!-- ADD WPT- ENTER NEW WPT TO FLIGHT PLAN BUTTON --> <Area Left="197" Top="94" Width="20" Height="20"> <Cursor Type="Hand"/> <Click> 'A' (>@c:IcaoSearchStartCursor) (L:F111-WPT-4,number) chr (L:F111-WPT-3,number) chr (L:F111-WPT-2,number) chr (L:F111-WPT-1,number) chr scat scat scat (>@c:IcaoSearchEnterChar) 0 (>@c:FlightPlanWaypointIndex) (@c:IcaoSearchMatchedIcaosNumber,number) 0 > if{ (@c:IcaoSearchCurrentICAO) (>@c:FlightPlanNewWaypointICAO) } (L:F111_Wpt_Sum, number) (>@c:FlightPlanAddWaypoint) 0 (>L:FPEntry, enum) 0 (>L:F111-WPT-1,enum) 0 (>L:F111-WPT-2,enum) 0 (>L:F111-WPT-3,enum) 0 (>L:F111-WPT-4,enum) </Click> </Area> </Mouse> <Keys> <On Key="Alphanumeric"> <!-- ORIGIN IDENT DIRECT KEYBOARD ENTRY --> <Visible>(L:FPEntry, enum) 1 ==</Visible> (L:F111-SEQA-3,enum) (>L:F111-SEQA-4,enum) (L:F111-SEQA-2,enum) (>L:F111-SEQA-3,enum) (L:F111-SEQA-1,enum) (>L:F111-SEQA-2,enum) (M:Key) (>L:F111-SEQA-1, enum) </On> <On Key="Alphanumeric"> <!-- DESTINATION IDENT DIRECT KEYBOARD ENTRY --> <Visible>(L:FPEntry, enum) 2 ==</Visible> (L:F111-DEST-3,enum) (>L:F111-DEST-4,enum) (L:F111-DEST-2,enum) (>L:F111-DEST-3,enum) (L:F111-DEST-1,enum) (>L:F111-DEST-2,enum) (M:Key) (>L:F111-DEST-1, enum) </On> <On Key="Alphanumeric"> <!-- WAYPOINT IDENT DIRECT KEYBOARD ENTRY --> <Visible>(L:FPEntry, enum) 3 ==</Visible> (L:F111-WPT-3,enum) (>L:F111-WPT-4,enum) (L:F111-WPT-2,enum) (>L:F111-WPT-3,enum) (L:F111-WPT-1,enum) (>L:F111-WPT-2,enum) (M:Key) (>L:F111-WPT-1, enum) </On> <On Key="Alphanumeric"> <!-- DIRECT TO IDENT DIRECT KEYBOARD ENTRY --> <Visible>(L:FPEntry, enum) 4 ==</Visible> (L:F111-DTO-3,enum) (>L:F111-DTO-4,enum) (L:F111-DTO-2,enum) (>L:F111-DTO-3,enum) (L:F111-DTO-1,enum) (>L:F111-DTO-2,enum) (M:Key) (>L:F111-DTO-1, enum) </On> </Keys> </Gauge>
September 5, 201213 yr For anyone wanting a scrollable flight plan listing which is handy for use in conjunction with the above flight plan editor the following code can be copied in an xml editor , does not need a background bitmap , again , place in folder , then in panel folder and make a panel cfg entry. Size of both is detailed at the very beginning of the code. Cheers Karol <SimBase.Document Type="AceXML" version="2,0_Karol_Chlebowski_DEC_2009" id="FPlist"> <Descr>AceXML Document</Descr> <Filename>vtzDATAMFD.xml</Filename> <SimGauge.Gauge id="Gauge" ArtDirectory="."> <Size>456,410</Size> <Update id="Update"> <Frequency>18</Frequency> </Update> <Macro id="c" Name="c"> <MacroValue>C:fs9gps</MacroValue> </Macro> <Macro id="g" Name="g"> <MacroValue>C:fs9gps</MacroValue> </Macro> <Macro id="FPLEnrouteHeader" Name="FPLEnrouteHeader"> <MacroValue>(@c:FlightPlanIsActiveFlightPlan) (@c:FlightPlanIsLoadedApproach) and</MacroValue> </Macro> <Macro id="FPLLinesCount" Name="FPLLinesCount"> <MacroValue> 0 @FPLEnrouteHeader + (@c:FlightPlanIsActiveFlightPlan) if{ (@c:FlightPlanWaypointsNumber) + } </MacroValue> </Macro> <Macro id="FPLLineIndex" Name="FPLLineIndex"> <MacroValue> (@c:FlightPlanIsActiveApproach) if{ (@c:FlightPlanIsActiveFlightPlan) if{ (@c:FlightPlanWaypointsNumber) } } els{ (@c:FlightPlanActiveWaypoint) } @FPLEnrouteHeader + </MacroValue> </Macro> <Macro id="ThumbMaxHeight" Name="ThumbMaxHeight"> <MacroValue>212</MacroValue> </Macro> <Macro id="FontColor" Name="FontColor"> <MacroValue>0x72FF93</MacroValue> </Macro> <Element id="2Map"> <FloatPosition>0.000,0.000</FloatPosition> <Element id="Bkgrnd"> <FloatPosition>0.000,0.000</FloatPosition> <Rectangle id="Rectangle"> <LineWidth>1</LineWidth> <Bright>True</Bright> <Width>456</Width> <Height>410</Height> <LineColor>0x050505</LineColor> <FillColor>0x050505</FillColor> </Rectangle> </Element> <Element id="List Bkgrnd"> <FloatPosition>60.000,11.000</FloatPosition> <Rectangle id="Rectangle"> <LineWidth>1</LineWidth> <Bright>True</Bright> <Width>336</Width> <Height>350</Height> <LineColor>0x051A05</LineColor> <FillColor>0x051A05</FillColor> </Rectangle> </Element> <Element id="Aircraft list"> <FloatPosition>0.000,0.000</FloatPosition> <Element id="Scroll Top"> <FloatPosition>377,76</FloatPosition> <Polygon id="Polygon"> <Bright>True</Bright> <LineWidth>1</LineWidth> <LineColor>0x414141</LineColor> <FillColor>0x414141</FillColor> <Point id="Point"> <FloatPosition>0,0</FloatPosition> </Point> <Point id="Point"> <FloatPosition>18,0</FloatPosition> </Point> <Point id="Point"> <FloatPosition>9,-9</FloatPosition> </Point> <Point id="Point"> <FloatPosition>0,0</FloatPosition> </Point> </Polygon> </Element> <Element id="Scroll Bottom"> <FloatPosition>377,291</FloatPosition> <Polygon id="Polygon"> <Bright>True</Bright> <LineWidth>1</LineWidth> <LineColor>0x414141</LineColor> <FillColor>0x414141</FillColor> <Point id="Point"> <FloatPosition>0,0</FloatPosition> </Point> <Point id="Point"> <FloatPosition>18,0</FloatPosition> </Point> <Point id="Point"> <FloatPosition>9,9</FloatPosition> </Point> <Point id="Point"> <FloatPosition>0,0</FloatPosition> </Point> </Polygon> </Element> <Element id="Scroll Thumb"> <FloatPosition>378.000,79.000</FloatPosition> <Rectangle id="Rectangle"> <LineWidth>1</LineWidth> <Bright>True</Bright> <Width>18</Width> <Height>240</Height> <HeightScript>@ThumbMaxHeight 15 * (@c:FlightPlanWaypointsNumber) 15 max /</HeightScript> <LineColor>0x414141</LineColor> <FillColor>0x232323</FillColor> </Rectangle> <Shift id="Shift"> <Scale>0.000,1.000</Scale> <Expression id="Expression"> <Script>@ThumbMaxHeight 1 15 (@c:FlightPlanWaypointsNumber) / - * (@c:FlightPlanWaypointsNumber) 15 - / (L:ListInitialVis) *</Script> </Expression> </Shift> </Element> <Element id="LEG_Data"> <FloatPosition>14.000,32.000</FloatPosition> <GaugeText id="Fltpln_LEG"> <BackgroundColorScript>0x000000</BackgroundColorScript> <FontColorScript>0x349F34</FontColorScript> <FontFace>Tahoma</FontFace> <FontHeight>19</FontHeight> <Tabs>0,10R,30L,102L,220R,282R,345R</Tabs> <GaugeString> %((L:ListInitialVis) 15 + (@c:FlightPlanWaypointsNumber) min s2) %{if}%((L:ListInitialVis) sp1) %{loop} %(l1 (>@c:FlightPlanWaypointIndex)) %((@c:FlightPlanWaypointIndex))%!d! \t%((@c:FlightPlanWaypointIdent))%!s! \t%((@c:FlightPlanWaypointMagneticHeading,degrees) d360)%!03d! \t%((@c:FlightPlanWaypointRemainingDistance,nmiles))%!9.1f! \t%((@c:FlightPlanWaypointRemainingTotalDistance,nmiles))%!d!\n %(l1 ++ s1 l2 <) %{next} %{end} </GaugeString> <Length>305</Length> <Size>344,305</Size> <Bright>True</Bright> </GaugeText> </Element> <Element id="TKEInfoText"> <FloatPosition>110.000,340.000</FloatPosition> <GaugeText id="TKEInfoText"> <Bright>True</Bright> <FontColor>0x72FF93</FontColor> <FontFace>Tahoma</FontFace> <FontHeight>16</FontHeight> <GaugeString>%TKE %((A:GPS IS ACTIVE WAY POINT, bool))%{if}%((A:GPS WP TRACK ANGLE ERROR, degrees))%!d!°%{end}</GaugeString> <Size>75,20</Size> <Transparent>True</Transparent> </GaugeText> </Element> <Element id="XTKInfoText"> <FloatPosition>215.000,340.000</FloatPosition> <GaugeText id="XTKInfoText"> <Bright>True</Bright> <FontColor>0x72FF93</FontColor> <FontFace>Tahoma</FontFace> <FontHeight>16</FontHeight> <GaugeString>%XTK %((A:GPS IS ACTIVE WAY POINT, bool))%{if}%((A:GPS WP CROSS TRK, nmiles) s1 abs d s0 100 >=)%{if}%!d!%{else}%(l0 10 >=)%{if}%!.1f!%{else}%!.2f!%{end}%{end}\{dpl=nm}%(l1 100 * near s0 0 >)%{if}>%{else}%(l0 0 <)%{if}<%{end}%{end}%{end}</GaugeString> <Size>95,20</Size> <Transparent>True</Transparent> </GaugeText> </Element> <Element id="Title_Call"> <FloatPosition>35.000,13.000</FloatPosition> <GaugeText id="Title_Call"> <BackgroundColorScript>0x000000</BackgroundColorScript> <FontColorScript>0x72FF93</FontColorScript> <FontFace>Tahoma</FontFace> <FontHeight>16</FontHeight> <Tabs>0,25L,84L,155L,220L,278L</Tabs> <GaugeString>\tSEQ\tWPT\tDTK \{dplo=M}\tDIS \{dpl=nm}\tTOT \{dpl=nm}\n%</GaugeString> <Length>30</Length> <Size>324,30</Size> <Bright>True</Bright> </GaugeText> </Element> <Element id="Remaing Distance"> <FloatPosition>288.000,340.000</FloatPosition> <GaugeText id="RemDist"> <Bright>True</Bright> <FontColor>0x8A8A8F</FontColor> <FontFace>Tahoma</FontFace> <FontHeight>16</FontHeight> <GaugeString>%((@c:FlightPlanWaypointsNumber) 1 - (>@c:FlightPlanWaypointIndex))%((@c:FlightPlanWaypointRemainingTotalDistance,nmiles) s0 0 !=)%{if}%(l0)%!d!%{end}</GaugeString> <HorizontalAlign>RIGHT</HorizontalAlign> <Size>65,20</Size> <Transparent>True</Transparent> </GaugeText> </Element> <Element id="Number Legs"> <FloatPosition>69.000,340.000</FloatPosition> <GaugeText id="RemDist"> <Bright>True</Bright> <FontColor>0x8A8A8F</FontColor> <FontFace>Tahoma</FontFace> <FontHeight>16</FontHeight> <GaugeString>%((A:GPS FLIGHT PLAN WP COUNT, number) 1 -)%!02d!</GaugeString> <HorizontalAlign>LEFT</HorizontalAlign> <Size>65,20</Size> <Transparent>True</Transparent> </GaugeText> </Element> <!--No flight plan exists : blank page--> <Element id="Advisory_Data"> <FloatPosition>0.000,0.000</FloatPosition> <Visibility>(@c:FlightPlanIsActiveFlightPlan) 0 ==</Visibility> <Element id="LEG_Data"> <FloatPosition>10.000,42.000</FloatPosition> <GaugeText id="Fltpln_NIL"> <BackgroundColorScript>0x000000</BackgroundColorScript> <FontColorScript>0x349F34</FontColorScript> <FontFace>Tahoma</FontFace> <FontHeight>16</FontHeight> <Tabs>0L,50L,60L,85L,95L,145L,155L,165L,175L,210L,230L,50L,250L,265L,310L</Tabs> <GaugeString>\n\n\n\t\t\t\t%NO% \n\n\n\t\t%FLIGHT% \t%PLAN% \n\n\n\t\t\t%LOADED %</GaugeString> <Length>350</Length> <Size>350,270</Size> <Bright>True</Bright> </GaugeText> </Element> </Element> </Element> </Element> <MouseArea id="MouseArea"> <FloatPosition>0.000,0.000</FloatPosition> <Size>456,410</Size> <MouseArea id="Thumb"> <FloatPosition>374.000,79.000</FloatPosition> <Size>28,210</Size> <CursorType>Hand</CursorType> <MouseClick id="MouseClick"> <Script>(M:Event) 'LeftSingle' scmp 0 == if{ (M:Y) (>L:DownY) } els{ (M:Y) (L:DownY) - @ThumbMaxHeight / (@c:FlightPlanWaypointsNumber) * (L:ListInitialVis) + (@c:FlightPlanWaypointsNumber) 15 - min 0 max (>L:ListInitialVis) }</Script> <ClickType>LeftSingle+LeftDrag</ClickType> </MouseClick> <Tooltip id="Tooltip"> <DefaultScript>Scroll</DefaultScript> </Tooltip> </MouseArea> </MouseArea> </SimGauge.Gauge> </SimBase.Document>
September 5, 201213 yr Karol, Looks like you've put a lot of work into this! May I suggest a couple of things you might want to check out: ICAO transfers are multiple cycle operations but your code doesn't account for the wait period before proceeding with subsequent operations. You will run into some trouble if information that relies on the transfer is used before the transfer is complete, so that's something to think about. Also, if you add or delete waypoints beyond the active WP, then FS will lock the active waypoint. To unlock, you need to reset FlightPlanIsActiveWaypointLocked, but that isn't in your code. Ambitious project. Working with the gps opens up a lot of XML opportunities, doesn't it? Bob
September 5, 201213 yr Bob I had been told about FlightPlanIsActiveWaypointLocked , possibly by yourself , I haven' got around to trying it yet. To date no problems with it , the wait period problem has not shown up , perhaps if I clicked functions quick enough it would. I have about 4 sources of ICAO's in the panel and primarily use them off the radar display , and make entries on the go usually with the autopilot engaged , and have made entries before and after the active leg without any hassles so far. I find it more flexible than the FS planner , can have the DEP as the DEST , have done plans that include half a dozen crossovers of the DEP , and multi leg loops of a waypoint with return to that Wpt. It's use is very fast while on the go , I also have another thumbwheel that enables any index to be set which is great for data mining , ie; getting general data such as bearing and distance to any ICAO It's still a work on progress as i want to add Lat/Long entry by both the keyboard and radar screen pick up. Still working my way through the GPS handbook , I suspect there are a multitude of innovations siitting there to be tapped. Cheers Karol
September 5, 201213 yr Jan Could I also please have a copy , my address is : karoljet@gmail.com I would be keen to try to adapt it to show flight plan index number at the junction of the leg of the flight plan lines , as well as the custom NAVAIDs . Cheers Karol
September 5, 201213 yr Sounds good. Right now, I'm writing a fs9gps:Map (CustomDraw) guidebook. One of the things I discuss is gauge pixel/screen pixel calibration to enable you to click anywhere on the map to add a waypoint at that point, for example, or to initiate nearest searches relative to the click point, or just show lat lon and distance & bearing from the user aircraft. Many things are available if you understand the gps module. And I agree with you, there's a lot that can be done with XML, even though it has limitations. Many new tools to work with XML, too .... BlackBox, LOGGER, and Tom Aguilo's XMLVars which I use extensively. Bob
September 6, 201213 yr Bob Oh , how I would love to get my hands on what you mention above . That facility creates a whole new horizon , the applications that stem from it are mind boggling , my imagination runs riot with ideas . I already have a string of associated uses planned in detail with multiple instruments integrated , I like the cross pollination from GPS to radars , HUD . Pave Tack and MFDs that can flow from such like . The GPS together with simconnect offer such a delightful scope for discovery . Wishing you all the very best with the Giudebook. Cheers Karol
September 7, 201213 yr Thinking about your ideas for inclusion in the Guidebook at post #27 above, specifically " click a map to initiate nearest searches" . I like that ! My Mission Adaptive flight planner is intended for simple high speed use during high speed flight where the pilot is time constrained in operating that instrument. Therefore my original intent was to have just simple ICAO entry and then add Lat/Long pick up off the radar map and that Lat/Long entry. Reason : NAVAIDs and Intersection searches can return multiples as they are not unique identifiers , that would result in a significant slow down of pilot entry function as the return listing would have to be scanned and each line would have to be examined to try to determine it's geographical location relative to the intended flight plan ,the location of many returns would be either difficult or impossible to ascertain , and more so in a time constrained environment . Thus their consideration was excluded. However , with your above method they can now be considered as it would be possible to limit the search by both number of returns and search distance . That facilitates high speed entry of the NAVAIDs and Intersections as well ! Thanks for the insight . Cheers Karol
September 7, 201213 yr Jan, Is it possible to let the active waypoint blink and add SAM threat circles as is in the real F-16? If this is possible could i also have a copy? my address is [email protected] Cheers Ed
Create an account or sign in to comment