Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: begin ace and msfs-navdata docs #214

Draft
wants to merge 1 commit into
base: primary
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/dev-corner/development-projects/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ nav:
- index.md
- Website Project: website.md
- Documentation Project: documentation.md
- ...
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
title: Advanced Cockpit Emulator
nav:
- index.md
- hot-reload.md
- simvars.md
- cockpit-editor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Cockpit Editor
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Hot Reload
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Overview
[Advanced Cockpit Emulator](https://github.com/flybywiresim/ace) is a program used for emulating react displays outside of the simulator.
This allows much faster and simpler development with access to lots of different tools such as [Hot Reload](hot-reload.md), [Cockpit Editor](cockpit-editor.md), and [Simvars](simvars-md).

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Simvars
7 changes: 7 additions & 0 deletions docs/dev-corner/development-projects/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,10 @@ Current Projects:

A Rusty way to interact with Microsoft Flight Simulator 2020

- [Advanced Cockpit Emulator](advanced-cockpit-emulator/index.md)

A program for emulating cockpit displays out of sim

- [MSFS-Navdata](msfs-navdata/index.md)

A npm package for handling different navdata formats for Microsoft Flight Simulator 2020
5 changes: 5 additions & 0 deletions docs/dev-corner/development-projects/msfs-navdata/.pages
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
title: MSFS-Navdata Package
nav:
- index.md
- database.md
- ...
19 changes: 19 additions & 0 deletions docs/dev-corner/development-projects/msfs-navdata/database.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Database

The database class is the interface between the FMS and the navdata backend. When Initialising a Database you must parse in a Backend for the database to use.
`Please Note: All functions on the database class are asyncronous`

### `getAirportByIdent(ident: string): Airport`
This will load the first airport found from the current Backend with a given identifier

### `getRunways(airportIdentifier: string, procedure?: Departure | Arrival): Runway[]`
This will load all runways at a given airport, this result can be narrowed down by parsing in a Departure or Arrival procedure in order to return only runways which are compatible with the given procedure.

### `getDepartures(airportIdentifier: string, runwayIdentifier?: string): Departure[]`
This will load all departures at a given airport, this result can be narrowed down by parsing in a runwayIdentifier in order to only return departures which are compatible with the given runway.

### `getArrivals(airportIdentifier: string, approach?: Approach): Arrival[]`
This will load all arrivals at a given airport, this result can be narrowed down by parsing in an Approach in order to only return arrivals compatible with the given Approach

### `getApproaches(airportIdentifier: string, arrival?: Arrival): Approach[]`
This will load all approaches at a given airport, this result can be narrowed down by parsing in an Arrival in order to only return Approaches compatible with the given Arrival
4 changes: 4 additions & 0 deletions docs/dev-corner/development-projects/msfs-navdata/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Overview
[MSFS-Navdata](https://github.com/flybywiresim/msfs-navdata) is a package that normalises the access of navdata in MSFS by loading default navdata and parsing it to a common format.

The client is also capable of loading external data through a local server. This allows developers to build their FMS using a common format which is compatible with multiple different sources.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
title: Types
nav:
- airport.md
- airway.md
- common.md
- terminal-procedures.md
15 changes: 15 additions & 0 deletions docs/dev-corner/development-projects/msfs-navdata/types/airport.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Airport
Airport data can be loaded through `Database.getAirportByIdent(ident: string): Airport`

property | type | example | description
-------------------------|--------------------------------|-------------------------| -------
ident | `string` | KDFW | 4 Letter identifier of the airport
databaseId | `string` | A KDFW | Unique database item identifier
icaoCode | `string` | K4 | ICAO region Code (2 letter)
airportName | `string` | DALLAS-FT WORTH INTL | Public name of the airport
location | `Location` | lat: 33 lon: alt: 606 | Reference location of the airport
speedLimit? | `Knots` | 250 | Airspeed limit at airport
speedLimitAltitude? | `Feet` | 10000 | Altitude up until which the speed limit applies
transitionAltitude? | `Feet` | 18000 | Transition Altitude in the airports location
transitionLevel? | `FlightLevel` | 180 | Transition Level in the airports location
longestRunwaySurfaceType | [RunwaySurfaceType](common.md) | 1: Hard | Surface type of the longest runway at airport
16 changes: 16 additions & 0 deletions docs/dev-corner/development-projects/msfs-navdata/types/airway.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Airway
Airport data can be loaded through `Database.getAirways(idents: string[]): Airway[]`

property | type | example | description
------------------------| ------------------|-----------|-----------
ident | `string` | A1 | Identifier of the airway
databaseId | `string` | ERJ A1 | Unique database item identifier
icaoCode | `string` | RJ | Region code of the airway (2 Letter)
level | `AirwayLevel` | 0: All | Level of the airway (All, High, or Low)
fixes | `Waypoint[]` | [...] | Array of fixes within the given airway
turnRadius? | `NauticalMiles` | undefined | Turn radius of transitions between legs within the given airway
rnp? | `NauticalMiles` | undefined |
direction | `AirwayDirection` | 0: Either | Direction through which the airway can be flown(Either, Forward, Backward)
minimumAltitudeForward | `Feet` | 8000 | Minimum altitude when flying the airway forward
minimumAltitudeBackward | `Feet` | null | Minimum altitude when flying the airway backward
maximumAltitude | `Feet` | 99999 | Maximum altitude when flying the airway
34 changes: 34 additions & 0 deletions docs/dev-corner/development-projects/msfs-navdata/types/common.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Common Types

### Location
* lat: `Degrees`
* lon: `Degrees`
* alt?: `Feet`

### RunwaySurfaceType
0. Unknown
1. Hard
2. Soft
3. Water

### ApproachType
0. Unknown
1. LocBackcourse
2. VorDme
3. Fms
4. Igs
5. Ils
6. Gls
7. Loc
8. Mls
9. Ndb
10. Gps
11. NdbDme
12. Rnav
13. Vortac
14. Tacan
15. Sdf
16. Vor
17. MlsTypeA
18. Lda
19. MlsTypeBC
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Terminal Procedures
Terminal Procedures are procedures in and out of airports: Departure(sids), Arrival(stars), Approach(iaps)

### ProcedureTransition
property | type | example | description
---------|------------------|---------|------
ident | `string` | LAM | Identifier of the transition
legs | `ProcedureLeg[]` | [...] | Array of legs in the transition

property | type | example | description
--------------------|--------------------------------------|--------------|----------
ident | `string` | LAM | Leg Identifier
databaseId | `string` | PEGEGLLI27L5 | Unique database identifier of the leg
icaoCode | `string` | EG | Region code of the leg (2 Letter)
procedureIdent | `string` | I27L | Identifier of the procedure this leg is part of
type | `LegType` | 10: FD | The type of leg, Path and Termination
overfly | `boolean` | false | Is this an overfly waypoint leg
waypoint? | `Waypoint` | {...} | The reference Waypoint of the leg if the Leg Type requires one
recommendedNavaid | `VhfNavaid or NdbNavaid or Waypoint` | undefined | Navaid used as reference for arc or fixed radius turns
rho? | `NauticalMiles` | 0 | Distance from the recommended navaid, to the waypoint
theta? | `DegreesMagnetic` | 0 | Magnetic bearing from the recommended navaid, to the waypoint
arcCentreFix? | `Waypoint` | null | Defines the arc for RF legs
arcRadius? | `NauticalMiles` | 11 | Defines the radius for RF legs
lenght? | `NauticalMiles` | null | Defines the radius for RF legs
lengthTime? | `Minutes` | undefined | length if it is specified in distance, exact meaning depends on the leg type, mutually exclusive with lengthTime
rnp? | `NauticalMiles` | null |
transitionAltitude? | `Feet` | null | Transition Altitude in the location of this leg(Only present on IF legs)
altitudeDescriptor | `AltitudeDescriptor` | 1: AtAlt1 | Specifies the meaning of the altitude1 and altitude2 properties
altitude1? | `Feet` | 7000 | altitudeDescriptor property specifies the meaning of this property
altitude2? | `Feet` | null | altitudeDescriptor property specifies the meaning of this property
speed? | `Knots` | 220 | The exact meaning of this is coded in the speedDescriptor property
speedDescriptor? | `SpeedDescriptor` | 2: Maximum | Specifies the meaning of the speed property
turnDirection? | `TurnDirection` | 0: Unknown |
magneticCourse? | `DegreesMagnetic` | 273 | Heading/Course to be flown during Legs which require a specific heading/course


### Approach
property | type | example | description
------------|---------------------------|-------------|-----------
ident | `string` | I27L | Identifier of the Approach
icaoCode | `string` | EG | Region code of the approach (2 Letter)
databaseId | `string` | PEGEGLLI27L | Unique database item identifier
type | [ApproachType](common.md) | 5: ILS | The type of the Approach
transitions | `ProcedureTransition[]` | [...] | Array of transitions into the Approach
legs | `ProcedureLeg[]` | [...] | Array of Common legs in the approach
missedLegs | `procedureLeg[]` | [...] | Array of missed approach legs in the approach

### Departure
property | type | example | description
-------------------|-------------------------|--------------|----------------------------
ident | `string` | BPK7F | Identifier of the departure
databaseId | `string` | PEGEGLLBPK7F | Unique databaseId of the departure
icaoCode | `string` | EG | region code of the departure (2 Letter)
runwayTransitions | `ProcedureTransition[]` | [...] | List of runway transitions on the departure
commonLegs | `ProcedureLeg[]` | [] | Legs present on the departure not dependant on transitions
enrouteTransitions | `ProcedureTransition[]` | [] | List of enroute transitions on the departure
engineOutLegs | `ProcedureLeg[]` | [] | List of engine out legs on the departure

### Arrival
property | type | example | description
-------------------|-------------------------|--------------|----------------------------
ident | `string` | LAM1X | Identifier of the Arrival
databaseId | `string` | PEGEGLLLAM1X | Unique databaseId of the Arrival
icaoCode | `string` | EG | region code of the Arrival (2 Letter)
enrouteTransitions | `ProcedureTransition[]` | [] | List of enroute transitions on the Arrival
commonLegs | `ProcedureLeg[]` | [] | Legs present on the Arrival not dependant on transitions
runwayTransitions | `ProcedureTransition[]` | [...] | List of runway transitions on the Arrival