Overview
For proper use, vatSys requires a profile dataset be created and distributed to it’s users.
Each profile dataset should contain the data needed for one or more FIR’s or Air Traffic Systems.
The default vatSys profile (Eurocat Australia), may be viewed here.
Data Definition Hierarchy
The definition of all WAYPOINT, NAVAID, AIRPORT, SID & STAR names referenced by vatSys XML files are searched for in the following order:
- Airspace.xml
- Navigraph Data
Lat Long Format
vatSys accepts coordinates in any valid ISO 6709 format.
Latitude and Longitude in Degrees:
±DD.DDDD±DDD.DDDD (eg +12.345-098.765)
Latitude and Longitude in Degrees and Minutes:
±DDMM.MMMM±DDDMM.MMMM (eg +1234.56-09854.321)
Latitude and Longitude in Degrees, Minutes and Seconds:
±DDMMSS.SSSS±DDDMMSS.SSSS (eg +123456.7-0985432.1)
Latitude, Longitude (in Degrees) and Altitude:
±DD.DDDD±DDD.DDDD±AAA.AAA (eg +12.345-098.765+15.9)
Latitude, Longitude (in Degrees and Minutes) and Altitude:
±DDMM.MMMM±DDDMM.MMMM±AAA.AAA (eg +1234.56-09854.321+15.9)
Latitude, Longitude (in Degrees, Minutes and Seconds) and Altitude:
±DDMMSS.SSSS±DDDMMSS.SSSS±AAA.AAA (eg +123456.7-0985432.1+15.9)
Chaining Points Together
Multiple points may be chained by adding each point on a new line followed by the /
character.
ELBIS/
IKUMA/
IDOTO/
GUNAM/
NIKOM/
CIN/
POKOS/
VALRA/
+12.345-098.765/
+15.345-123.765
Colours.XML
Colours.xml defines the colours used throughout the entire application. The default IDs are listed below. Additional Custom Colours may be defined for reference by individual maps.
Colour IDs
Colour ID | Use |
---|---|
Default | Special use by plugins only |
State | Special use by plugins only |
Custom | May be defined multiple times to allow custom coloured maps |
Window and Control backgrounds | |
ASDBackground | Air Situation Display background |
GroundBackground | Ground Situation Display background |
HighlightedText | Selected text |
WindowBackground | Generic Window background |
WindowWarning | Warning colour used in menu, button and window backgrounds |
WindowEmergency | Emergency colour used in menu, button and window backgrounds |
WindowButtonSelected | Selected (Toggled) menu, button and scrollbar backgrounds |
WindowButtonDepressed | Depressed (button) or hover (menu item) backgrounds |
InteractiveText | Font of interactive items |
NonInteractiveText | Font of non-interactive items |
GenericText | Generic font |
StripBackground | Background of strips |
StripText | Strip Font |
ListSeparator | List Separator Bars |
ListSeparatorSelected | List Separator Bars when Selected |
CPDLCMessageBackground | Generic CPDLC message background |
CPDLCDownlink | Downlink Messages and label item |
CPDLCUplink | Uplink Messages and label item |
CPDLCFreetext | Freetext Messages |
CPDLCSendButton | CPDLC Editor Window send button |
PopupASDWindowBorderFocused | Border colour of focused popup Air/Ground Windows |
Maps | |
PrimaryMap | System maps and default |
SecondaryMap | System2 maps |
PRDArea | REST_NTZ_DAIW , TDA and Supervisor maps |
UserMap | Local_Private and Global_Private maps (not currently used) |
Infill | Filled maps |
GroundRunway | Ground Situation Displays only |
GroundTaxiway | Ground Situation Displays only |
GroundApron | Ground Situation Displays only |
GroundBuilding | Ground Situation Displays only |
GroundOther | Ground Situation Displays only |
Tracks, labels, strips | |
Preactive | |
Jurisdiction | |
GhostJurisdiction | |
PostJurisdiction | |
JurisdictionIQL | Quick-looked state |
Handover | |
Announced | |
NonJurisdictionIQL | Quick-looked state |
NonJurisdiction | |
NonJurisdictionLabel | |
CFLHighlight | |
IdentFlash | SPI |
Route | |
PostJurisdictionFlash | |
GroundUnknown | |
GroundArrival | |
GroundDeparture | |
GroundLocal | |
Warning | |
Emergency | |
Tools | |
StaticTools | |
DynamicTools | |
Arrival Manager | |
Frozen | reserved for future use |
SuperStable | reserved for future use |
Stable | reserved for future use |
Unstable | reserved for future use |
DelayMinor | reserved for future use |
DelayMajor | reserved for future use |
VSCS | |
VSCSHotline | |
VSCSOpenHotline | |
VSCSColdline | |
VSCSOpenColdline | |
VSCSActiveFrequency | |
VSCSReceivingFrequency | |
VSCSButtonSelected | |
VSCSButtonDepressed | |
VSCSBackground | VSCS Window background |
VSCSFrequencyWarning | Frequency in error state |
Colour Defintion
<Colour id="DynamicTools">
<Use>Dynamic Tool In Use</Use>
<Name>OffWhite</Name>
<R>255</R>
<G>230</G>
<B>230</B>
</Colour>
Define the RGB value for a defined colour. Use
element is optional and for reference only.
Custom Colours
Custom colours may be defined by using the id="Custom"
and ensuring a unique <Name>
is assigned.
<Colour id="Custom">
<Use>Special colour for my very special map</Use>
<Name>SpecialPlum</Name>
<R>194</R>
<G>147</G>
<B>141</B>
</Colour>
Custom colours may then be referenced by Maps to affect their displayed colour.
Airspace.XML
SystemRunways
This section ‘maps’ the runway selectable by the controller in the strip or label of an aircraft to a SID or STAR defined in data for a particular runway (the DataRunway
).
For every controlled airport in australia… we need to add the airport->runways->sidstars
<SystemRunways>
<Airport Name="YBCG">
<Runway Name="14" DataRunway="14">
<SID Name="APAGI\d" Type="Jet"/>
<SID Name="CUDGN\d" />
<SID Name="CG\d" Default="True" />
<STAR Name="[A-Z]{4}\dA" ApproachName="ILSZ"/>
<STAR Name="[A-Z]{4}\dY" ApproachName="RNVY"/>
</Runway>
<Runway Name="32" DataRunway="32">
<SID Name="APAGI\d" Type="Jet"/>
<SID Name="BURLI\d" />
<SID Name="CG\d" Default="True" />
<STAR Name="[A-Z]{4}\dA" ApproachName="RNVZ"/>
<STAR Name="[A-Z]{4}\dY" ApproachName="RNVY"/>
</Runway>
<Runway Name="14V" DataRunway="14">
<STAR Name="[A-Z]{4}\dV" />
</Runway>
<Runway Name="32V" DataRunway="32">
<STAR Name="[A-Z]{4}\dV" />
</Runway>
</Airport>
</SystemRunways>
What does this all mean?
- The
Name
attribute ofSID
andSTAR
elements accepts Regex search patterns; - eg. If you see the code
\d
it means any number, so if the APAGI4 becomes APAGI5 the code doesn’t need to change. - eg.
[A-Z]{4}\dA
means the first 4 characters are anything between A-Z, then look for any number then (in this case) Alpha charts. This means the BLAK3A arrival can change to BLAK4A arrival and the code doesn’t need to change. - By doing this
[A-Z]{4}\dA
andApproachName="ILSZ"
we have assigned all Alpha STARs the ILSZ approach and[A-Z]{4}\dY
all Yankee STARs to theApproachName="RNVY"
RNAV Yankee approach. - We set the default SID to the airport’s radar departure and we set any visual STAR’s under a separate runway called
[runwayid]V
like 14V. We do this by calling all STARs that end in any number and V for Victor/visual using[A-Z]{4}\dV
. - The SIDs are written out individually since some are jet and some are non jet.
- Runway ID cannot be more than 3 characters, so this means for any parallel runways the visual approach is not a seperate runway entry. Applicable to Sydney and Brisbane (#soon).
SIDSTARs
This section defines the routes of SIDs, STARs, Approaches and their Transitions.
SIDs and STARs should be defined for controlled airports whenever you wish to remove reliance on Navigraph defined data.
<SIDSTARs>
<SID Name="TESTA1" Airport="AAAA" Runways="18,36">
<Route Runway="36">ROUTE POINT</Route>
<Route Runway="18">ANTHR RALTO</Route>
<Route>TESTA</Route>
<Transition Name="ABCDE">FINSH ABCDE</Transition>
</SID>
<STAR Name="TESTA1" Airport="AAAA" Runways="18,36">
<Transition Name="ABCDE">ABCDE FINSH</Transition>
<Route>TESTA</Route>
<Route Runway="36">POINT ROUTE</Route>
<Route Runway="18">RALTO ANTHR</Route>
</STAR>
<Approach Name="RNVZ" Airport="AAAA" Runway="18">
<Transition Name="ABCDE">ANTHR</Transition>
<Route>FAFFF AA18T</Route>
</Approach>
</SIDSTARs>
What does this all mean?
SIDs and STARs consist of Route
elements that are runway or non runway specific. For a SID
, the non-runway specific route will always follow the runway specific route. For a STAR
, the reverse is true. Transitions will be applied whenever the transition end point coincides with a point on the flight planned route.
Approaches link a STAR to a runway. Transitions will be applied if they conincide with the STAR end point. Approaches are used only if defined in SystemRunways
and are not manually selectable.
Airways
Airways may be defined whenever you wish to remove reliance on Navigraph defined data. Airways are always treated as valid in both directions.
<Airways>
<Airway Name="A216">
APUKA/
MEMIG/
LOCKA/
CS
</Airway>
</Airways>
Intersections
Intersections (Fixes & Navaids) may be defined whenever you wish to remove reliance on Navigraph defined data.
<Intersections>
<Point Name="ABARB" Type="Fix">-325106.400+1545604.900</Point>
<Point Name="WP" Type="Navaid" NavaidType="VOR" Frequency="112.800">-124024.800+1415520.900</Point>
</Intersections>
Duplicates are generally accepted. vatSys will attempt to choose the nearest relevant intersection when parsing to resolve.
Intersection Types
Types
{
Fix,
Navaid,
Airport,
Unknown
}
Navaid Intersection Types
NavaidTypes
{
None,
VOR,
NDB,
TAC
}
Airports
Airports may be defined whenever you wish to remove reliance on Navigraph defined data.
<Airport ICAO="YABA" Position="-345636.000+1174832.000" Elevation="233">
<Runway Name="14" Position="-345639.000+1174835.000">
<Runway Name="32" Position="-345642.000+1174838.000">
</Airport>
Maps
Maps are what the Air Situation Display uses to display background information to the user of the client.
Each XML file must contain one <Maps>
element, which may define multiple <Map>
elements. Each <Map>
are individually selectable within vatSys.
Folder structure within the vatSys Files\Maps\
directory is preserved by the Maps menu within vatSys.
Map Element
The Map element has the following attributes and children elements.
Type
Each Map
element may have one Type
attribute from the following:
{
System,
System2,
Flex,
Filled,
Local_Private,
Global_Private,
Supervisor,
TDA,
REST_NTZ_DAIW,
Ground_RWY,
Ground_TWY,
Ground_APR,
Ground_BLD,
Ground_BAK
}
The type primarily will affect the colour vatSys uses to paint the map. Colours are defined in Colours.xml.
Name
The title of the Map (as displayed to the user).
Priority
An integer specifying the z-axis layering of the map, 0 being drawn on top of everything else.
PRIORITY_HIGHEST = 0
Center
An approximate center point of the map, used to deconflict in the event of multiple Waypoints with the same name.
Custom Colour Name
The optional attribute CustomColourName="SpecialPlum"
will allow display in a colour defined in Colours.xml.
Line Element
Each <Line>
element draws a line between all children <Point>
's. Lines may set attribute Pattern
to one of the following:
{
Solid,
Broken,
Hash,
Dashed,
Dotted,
None
}
Lines may set attribute Width
to any floating value to change the stroke width (in pixels) of the rendered line:
<Line .. Width="1.67">
...
</Line>
Default stroke width is 1.0
.
Airway lines may be coded using a special syntax within <Point>
<Point>STARTFIX.AIRWAYNAME.ENDFIX</Point>
eg. <Point>VALRA.A339.ELBIS</Point>
Infill Element
Each <Infill>
element fills a polygon bound by the children <Point>
's.
Infills may specify a Type
attribute (default Normal):
{
Normal,
Background,
}
Background Infill Type is filled in the ASD background colour (useful for simplifying polygon definitions).
Infills may specify a Pattern
attribute (default Solid):
{
Solid,
Broken,
Hash,
Dashed,
Dotted
}
Symbol Element
Each <Symbol>
element must have attribute Type
to select one of the following types:
{
SolidTriangle,
HollowTriangle,
HollowTriangleWithBorder,
SolidTriangleWithBorder,
SolidSquare,
SolidStar,
HollowStar,
MalteseCross,
HollowSquare,
Circle,
DashedCircle,
DotFillCircle,
Hexagon,
Reticle
}
Each <Symbol>
can have multiple <Point>
children. Each Point InnerText is either an otherwise defined waypoint/navaid/airport or latlong in standard format of where to place the Symbol.
Label Element
Each <Label>
element of a map can have attributes HasLeader="bool"
, LabelOrientation="enum"
, Alignment="enum"
and VerticalAlignment="enum"
- these attributes specify if there is a line drawn from the point location to the text label and which compass direction or not, and the alignment of the text.
LabelOrientation
{
N,
NE,
E,
SE,
S,
SW,
W,
NW
}
Westerly LabelOrientation
directions are Right aligned by default, otherwise default text alignment is Left.
Alignment
{
Left,
Center,
Right
}
Southerly LabelOrientation
directions are Top aligned by default, otherwise default text vertical alignment is Bottom.
VerticalAlignment
{
Top,
Middle,
Bottom
}
Each <Label>
can have multiple <Point>
children. Each Point can have the attribute Name="string"
(which is displayed as the label text) and the InnerText is either an otherwise defined waypoint/navaid/airport or latlong in standard format of where to place the label. If you omit Name the name is generated from the InnerText.
Misc.XML
Contains miscellaneous Flight Data Processor and HMI settings.
RVSMBand
<RVSMBand Lower="28000" Upper="41000" />
-Lower
is lower flight level of RVSM airspace in feet
-Upper
is upper flight level of RVSM airspace in feet
Used for triggering display of LABEL_ITEM_FRULES
track label item.
Transition
<Transition Altitude="10000" />
Altitude
is level below which pressure corrected level is displayed instead of flight level
RVSMStatus
<RVSMStatus FAAEquipment="L, W, Z" ICAOEquipment="W" />
FAAEquipment
comma separated equipment codes that indicate RVSM approval when flight plan is of VATSIM-FAA type
ICAOEquipment
comma separated equipment codes that indicate RVSM approval when flight plan is of VATSIM-ICAO type
When any of the above are met, RVSM status flag is set to true.
ADSBStatus
<ADSBStatus FAAEquipment="I, L, G, Z" ICAOEquipment="L, E, B1, B2" Remark="ADSB" />
FAAEquipment
comma separated equipment codes that indicate ADSB equipage when flight plan is of VATSIM-FAA type
ICAOEquipment
comma separated equipment codes that indicate ADSB equipage when flight plan is of VATSIM-ICAO type
Remark
string present in flight plan remarks formatted as RMK/string
When any of the above are met, ADSB status flag is set to true.
LATCValues
<LATCValues>15, 22, 29, 38, 45, 61, 72, 89, 115, 165</LATCValues>
Distance values (NM) selectable when using the Conflict Area tool. These should represent meaningful separation values for procedural airspace eg. 7NM CEP + 14NM CEP + 1NM for Separation = 22NM
FilterGroundTracks
<FilterGroundTracks>YMML,YSSY,YPAD,YPPH,YBBN,YSCB,YPDN,YBCG,YBCS</FilterGroundTracks>
Comma separated airport ICAO designators. ASD radar track labels are filtered in proximity when on the ground.
PDCAirports
<PDCAirports>YMML,YSSY,YPAD,YPPH,YBBN,YSCB,YPDN,YBCG,YBCS</PDCAirports>
Comma separated airport ICAO designators. PDC strip options are available when the departure point is one of these airports.
BRL
<BRL LabelType="Extended" />
LabelType
-Normal (default) or
-Extended (Shows reciprocal bearing and distance units)
Sets the bearing and range line tool label type.
ASSR
<ASSR AutoAssign="False" ShowNonDiscreteErrors="False" />
AutoAssign
boolean defaulting to True. When False, SSR Codes are not assigned automatically.
ShowNonDiscreteErrors
boolean defaulting to True. When False, SSR Code mismatch and invalid assignment Error messages are suppressed.
ShowMismatchErrors
boolean defaulting to True. When False, all SSR Code mismatch errors are suppressed.
Strips.XML
This file contains strip layout definitions for the rendering of flight progress strips. Each Position may be assigned a specific strip layout that is defined in this file, otherwise the default layout will be assigned.
This file is optional - default layouts are loaded if this file is missing. See example file.
StripLayouts
Contains StripLayout
definitions, each a specific layout of strip items that vatSys will render.
StripLayout
StripLayout contains layout sections, which contain layout lines, which contain strip items. Sections ‘flow’ horizontally or vertically. Widths of each section is calculated by the character width of the vatSys monospaced font and the minimum length of a line of strip items.
StripLayout has the attributes Name="string"
and ArrowType="enum"
.
Name
is the name of the layout for referencing in Position definitions, or the special name"Default"
. A single default layout should always be defined for general use when no specific layout is applicable.ArrowType
is the direction of the designator area item (if present). None will render a diamond shape. Direction will automatically choose arrow based on FDR direction of flight.
ArrowType
{
None,
Up,
Down,
Left,
Right,
Direction
}
StripLayoutSection
StripLayoutSection defines a portion of the strip. It may contain children StripLayoutSection
's in the child element StripLayoutSubsections
. It may contain lines of actual strip items in the child element StripLayoutLines
. The nesting of multiple child StripLayoutSections allows the creation of complex strip layouts.
StripLayoutSection has the following attributes, FlowDirection="enum"
, Border="flags"
and DisplayState="enum"
.
FlowDirection
is the direction in which child sub sections will be laid out and may be one of the following
FlowDirection
{
Horizontal,
Vertical
}
Horizontal Flow
Vertical Flow
Border
is the desired border to be rendered around this section. One or more flags may be combined with the|
character eg.Border="Left | Bottom"
Border
{
None = 0,
Left = 1,
Right = 2,
Top = 4,
Bottom = 8,
Vertical = Left | Right,
Horizontal = Top | Bottom,
All = Vertical | Horizontal
}
DisplayState
(optional) is whether this section should be rendered only when the strip is extended or not. Normal sections are always rendered.
DisplayState
{
Normal,
Extended
}
StripLayoutLine
StripLayoutLine contains the StripItems composing a line of a strip. It has one attribute, LineSpan="int"
, which is an optional attribute to specify the number of lines of text that these items will span. For example, the designation arrow in the default strip spans two lines of the strip.
StripLayoutLine has the child element StripItems
, which may contain one or more StripItem
elements.
StripItem
StripItems are the actual text item that the user sees and interacts with. It contains the following attributes:
Type="enum/string"
. Either a default item type from theStripItemType
enum, or a unique string name for use in CustomStripItem plugins.DesignationArea
is the strip direction arrow and must span two lines. The rest are single lines of text.PointIndex="int"
. When theType
is one ofPoint
,ETOP
,PCL
, this specifies the route segment index.0
is the last overflown route point.MinLength="int"
. The minimum length of the item. Set this to ensure layout of sections is calculated correctly.MaxLength="int"
. The maximum length of the item text. If the text exceeds this length, the text is truncated and the last character is replaced by*
.LeftClick="enum"
. TheClickspotTypes
action to occur on left click.MiddleClick="enum"
. TheClickspotTypes
action to occur on middle click.RightClick="enum"
. TheClickspotTypes
action to occur on right click.FontSize="enum"
. TheASDFontSize
size of the text. Default isSmall
.Border="flags"
. The desired border to be rendered around this item. One or more flags may be combined with the|
character eg.Border="Left | Bottom"
StripItemType
{
DesignationArea,
Callsign,
CPDLCStatus,
FlightRules,
TAS,
RFL,
Point,
AssignedSSR,
AircraftType,
PRL,
CFL,
ETOP,
ControllingSector,
ATD,
Destination,
Runway,
CoordinationStatus,
XFL,
PCL,
FDRState,
OtherInfo,
GlobalOpsInfo,
LocalOpsInfo,
Gate,
SIDSTAR,
WakeTurbCategory,
Departure,
ETD,
ExitBeacon,
ExitETO,
EntryBeacon,
EntryETO,
HoldPoint,
PDCStatus,
LabelData,
ETA,
FlightType,
PerformanceCategory
}
ClickspotTypes
{
Label_Field18_Popup,
Label_SAR_Popup,
Label_PRL_Popup,
Label_CFL_Popup,
Strip_CFL_Expand,
Strip_Select,
Strip_Cock,
Strip_State,
Strip_Controller,
Strip_Extend,
Strip_ATD,
Strip_SIDSTAR,
Strip_SIDSTAR_Expand,
Strip_Point,
Strip_Point_Expand,
Strip_Point_DCT,
Strip_MPR_Arm,
Strip_PCL,
Strip_ETO,
Strip_GlobalOps,
Strip_LocalOps,
Strip_Delete,
Strip_ASSR,
Strip_PDC_Editor,
Strip_PDC_Acknowledge,
}
ASDFontSize
{
XtraSmall,
Small,
Large,
XtraLarge
}
Colours
A Colours
element may be added to a StripItem
to override the default colours of items. It has the following attributes, each are a colour identity as defined in Colours.XML:
Colour="enum"
. Item text colourBackColour="enum"
. Item background colourBorderColour="enum"
. Item border colourP1Colour="enum"
. Item background colour when P1 alert is validP2Colour="enum"
. Item text colour when P2 alert is validP3Colour="enum"
. Item text colour when P3 alert is validP4Colour="enum"
. Item text colour when P4 alert is validP1BackColour="enum"
. Item background colour when P1 alert is validP2BackColour="enum"
. Item background colour when P2 alert is validP3BackColour="enum"
. Item background colour when P3 alert is validP4BackColour="enum"
. Item background colour when P4 alert is validP1BorderColour="enum"
. Item border colour when P1 alert is validP2BorderColour="enum"
. Item border colour when P2 alert is validP3BorderColour="enum"
. Item border colour when P3 alert is validP4BorderColour="enum"
. Item border colour when P4 alert is valid
StripItemSeparator
StripItemSeparator is a special blank StripItem for inserting empty space within a line. It’s only valid attribute is MinLength="int"
.