Skip to content

Releases: microsoft/msfs-avionics-mirror

MSFS Avionics Framework v2.0.7

07 Mar 19:18
Compare
Choose a tag to compare

MSFS Avionics Framework v2.0.7

SDK

  • Adjusted the timeout for facility requests through FacilityLoader to be more lenient.
  • FlightPlan::openBatch() is now guaranteed to return a UUID when a batch is opened (previously it could fail to return a UUID if a runtime error was encountered).
  • Added new FaaChartType and LidoChartType enums.
  • Added new ChartViewLambertConformalConicProjection class.
  • Added IcaoValue overloads to UserFacilityUtils.createFromLatLon, UserFacilityUtils.createFromRadialDistance, and UserFacilityUtils.createFromRadialRadial.
  • Deprecated ICAO string overloads of UserFacilityUtils.createFromLatLon, UserFacilityUtils.createFromRadialDistance, and UserFacilityUtils.createFromRadialRadial.
  • Added new ObjectUtils class.
  • Fixed an issue where SmoothingPathCalculator did not correctly refresh the isPathEnd flag on constraints after previously invalidated constraints were added back to the vertical plan.
  • ApproachUtils.isRnpAr() now uses the newly added RNP AR flags in the facility data instead of the previous heuristic that relied on absence of LNAV/LNAV-VNAV/LP/LPV minima.
  • Added new FlightPlanUtils.isToFixLeg() method.
  • Added a new targetChangeInhibitTime option to APAltCapDirector.

GarminSDK

  • Fixed an issue where GarminAutopilot would sometimes incorrectly report that approach mode was active when it should not be.
  • Fixed an issue with loading published approaches using Fms where it sometimes would incorrectly connect the approach transition to final approach segment.
  • Fms now uses the speed restriction type available in the published procedure legs when designating speed restrictions in loaded procedures.

Epic 2

  • Fixed an issue where the getAutothrottleOptions() plugin function was ignored.

MSFS Avionics Framework 2.0.5

28 Nov 04:56
Compare
Choose a tag to compare

Initial framework release for Microsoft Flight Simulator 2024. This release includes the V2 updates for the G1000 NXi, G3000/5000, GNS430W/530W, G3X Touch, and WT21, as well as adds the Epic 2/Apex and UNS-1 FMS.

MSFS Avionics Framework 0.7.1

24 Jan 19:30
Compare
Choose a tag to compare

SDK

  • Fixed some incorrect package dependency versions in various project.json files

SR22T G1000 Plugin

  • Release of the source of the SR22T plugin for the G1000

MSFS Avionics Framework 0.7.0

08 Dec 19:46
Compare
Choose a tag to compare

SDK

  • [Breaking Change] The createRawTextInput() method of TextInputField has been removed.
  • Improved fidelity of GPSSatComputer simulation and added additional configuration options.
  • Added new range() and fillRange() methods to ArrayUtils.
  • Added new AccelerometerPublisher class.
  • Added new above_ground_height topic to GNSSEvents.
  • Added new DistancePerWeight and DistanceRatio members to UnitFamily.
  • Added new NMILE_PER_GALLON_FUEL and FOOT_PER_NMILE unit types.
  • Added new DefaultMapLabeledRingLabel class.
  • Added new GenericMapSharedCanvasSubLayer class.
  • Added new MapLabeledRingCanvasSubLayer class.
  • Tcas now supports dynamic max intruder count and update frequencies.
  • Added new MapSharedCanvasLayer class.
  • Added support for adding on-destroy callbacks to MapSystemBuilder.
  • Errors thrown in MapSystem init callbacks will now be caught instead of interrupting the rest of the map build process.
  • Fixed a bug where MapMultiLineAirspaceRenderer would incorrectly render offset lines at the beginning of a shape.
  • Added new elevation_position topic to ControlSurfacesEvents.
  • Autopilot now uses the sim's maximum bank angle value when none is set using APConfig.
  • Added new optional independentFds parameter to APConfig.
  • The MappedSubscribable interface now extends Subscription.
  • ConsumerSubject and ConsumerValue now implement Subscription.
  • Added new hideSign option to NumberFormatter.
  • The options argument in NumberFormatter.create() is now optional.
  • Added new SubscribableMapFunctions.count() method.
  • Added new MB and MILE_PER_GALLON_FUEL unit types.
  • Fixed incorrect values being published to the fuel_usable_total_weight topic.
  • Fixed a bug when undefined was explicitly passed as the option argument to NumberFormatter.create().
  • Fixed a bug where BingComponent was sending too many params to SET_MAP_PARAMS Coherent calls.
  • Added new indicated_mach_number, indicated_tas, tas_to_ias_factor, indicated_mach_to_kias_factor, and indicated_tas_to_ias_factor topics to AdcEvents.
  • The type of APConfig is now parameterized in Autopilot.
  • APFLCDirector now supports using indicated mach number.
  • AbstractAutothrottle now supports using indicated mach number.
  • Added new color interpolation methods to ColorUtils.
  • FSComponent now supports the SVG tspan element.
  • Formatter now optionally takes a second type parameter (defaulting to string for backwards-compatibility) that specifies the output type of the formatter.
  • Introduced the new FmcFormatter type which wraps Formatter and allows it to return a string | FmcRenderTemplate.
  • DisplayField now accepts formatters whose output type is FmcRenderTemplate, by taking FmcFormatter as the formatter type in the options object.
  • The memorizedComponents property of AbstractFmcPage is now public.
  • Added new takeTextInput() method to TextInputField.
  • Fixed type errors in the onPrefixedEvent() method of FmcScreen.
  • AltitudeSelectManager now supports filtering events that trigger input acceleration
  • AltitudeSelectManager now supports locking selected altitude to the small increment step on SET events.

GarminSDK

  • [Breaking Change] Added additional type safety to BearingDisplay to prevent runtime errors.
  • Added additional members to NavDataFieldType.
  • Added new NavDataBarFieldTypeModelFactory interface.
  • NavDataNumberUnitField and NavDataBearingField now support custom unit formatters.
  • Added new generic nav data field type renderers.
  • TrafficInfoService now supports ADS-B integration and additional configuration options related to ADS-B.
  • CDI scaling label is now an optional parameter when selecting a sensitivity level from AdsbSensitivityParameters.
  • Fixed a potential runtime error in MapRangeCompassLayer.
  • Added new runwayLabelShow property to MapWaypointsModule to control visibility of runway labels separately from outlines.
  • The GarminMapBuilder.waypoints build step now passes in the map system context to the configure function.
  • Factored MapPanningModule and MapPanningRTRController out of the map pointer code.
  • Fixed a bug in TouchPad where the incorrect previous mouse position was being passed to the onDragMoved callback.
  • MapWaypointsVisController now supports options to customize declutter thresholds.
  • MapWaypointsVisController no longer controls the visibility of runway outlines.
  • GarminMapBuilder.waypointVisSettings now supports options to customize declutter thresholds.
  • Added new NextGenGarminMapBuilder class.
  • Added support for HDDDΒ° MM.MMM' format to LatLonDisplay.
  • Added new optional splitPrefix prop to LatLonDisplay.
  • Added new runway property to ApproachDetails.
  • Added support for custom unit formatters to NumberUnitDisplay and BearingDisplay.
  • BearingDisplay, NumberUnitDisplay and TimeDisplay now support ToggleableClassNameRecord for their class props.
  • Added new suffixFormatter and hideSuffixWhenNaN props to TimeDisplay.
  • Added new hideUnitWhenNaN prop to NumberUnitDisplay.
  • Added new mapGroundNorthUpActive setting to MapUserSettingTypes.
  • MapOrientationModule, MapOrientationSettingsController, and MapDesiredOrientationController now support north up on ground logic.
  • ScrollList now automatically snaps back to item when item length, item spacing, or item count per page props change.
  • DateTimeUserSettings now supports retrieving an instrument-local setting manager.
  • Fixed a bug in Fms where removing the entry leg of an airway would corrupt the flight plan if the airway only had one leg in it.
  • MapTerrainController now supports custom default terrain mode.
  • Fixed a bug where MapWaypointHighlightIcon was still rendering zero-width strokes.
  • ArtificialHorizon now supports either solid color or gradient for both ground and sky.
  • Added new GarminAPConfigInterface interface.
  • Added option to use indicated mach number to GarminAPConfig.
  • AdcSystem now publishes mach and true airspeed values derived from indicated airspeed in lieu of "true" values.
  • Added new tasToIas property to AirspeedIndicatorDataProvider.
  • Added new tasToIas property to AirspeedDefinitionContext.
  • AirspeedIndicator no longer takes in the event bus as a prop.
  • AirspeedIndicator now supports adding additional CSS classes via prop.
  • AirspeedIndicator now optionally supports zero-valued V-speeds.
  • DefaultAirspeedIndicatorDataProvider no longer requires an instance of AirspeedAoaDataProvider to be passed to the constructor. If no AOA data provider is specified, then DefaultAirspeedIndicatorDataProvider behaves as if AOA data is always unavailable.
  • Various methods in VSpeedUserSettingUtils now optionally support zero-valued V-speeds.

G1000

  • [Breaking Change] Replaced the AirspeedIndicator component with the new G1000AirspeedIndicator component.
  • Added support for hardware keybord with new AS1000_CONTROL_PAD_ H events.
  • Added support for LVL and TO/GA modes.
  • Added support for knob-based XPDR code entry using H events.
  • Added panel.xml support for configuring V-speeds.
  • Added panel.xml support for configuring the airspeed indicator.
  • Added new ArrowControl component.
  • G1000UiControlWrapper now supports wrapping G1000ControlList controls.
  • NumberInput now takes MutableSubscribable objects for its dataSubject prop.
  • ArrowToggle now takes MutableSubscribable objects for its dataref prop.
  • Exported NavSystems's class FrequencyItem and its props interface FrequencyItemProps.
  • Added panel.xml support for enabling/disabling selected altitude input event compatibility. Enable to treat AP_ALT_VAR_SET events as increment/decrement events. Used for airplanes whose ModelBehaviors intercept AP_ALT_VAR_INC/AP_ALT_VAR_DEC events and forward them as SET events instead.
  • Added panel.xml support for configuring autopilot lateral director (ROL, HDG, VOR, LOC, GPS) bank angle limits.
  • Added a scrollToMostRecentlyAdded prop to HardwareControlListProps to allow autoscrolling to the most recently added item of the list.
  • Added support for control pad entry on number entry components under UiControls2: GenericNumberInput, and the newly added TimeNumberInput and CourseNumberInput. The GenericNumberInput component supports keypad entry through single digit DigitInputs.
  • Made all methods in PFD and MFD plugins optional.
  • CAS messages may now be assigned associated Alerts messages via JS and/or plugin code
  • Added support for styling the Com selection based on the radio selected to transmit, and for both Nav and Com standby frequencies selected to edit.

G3000

  • Added new CharInput and CharInputSlot components.
  • Added new Keyboard component.
  • Added new GtcWaypointDialog view, which allows a user to select a waypoint. This new dialog should be used where possible instead of GtcKeyboardDialog.
  • GtcWaypointDisplay now supports binding ToggleableClassNameRecord to its class prop.
  • Fixed memory leaks in GtcWaypointDisplay.
  • Added panel.xml support for defining airspeed indicator color ranges using TAS.

MSFS Avionics Framework 0.6.0

18 Oct 18:49
Compare
Choose a tag to compare

SDK

  • [Breaking Change] Fixed various typing errors in the FMC framework which could allow binding to incorrect data.
  • [Breaking Change] Removed Binding<T> and TwoWayBinding<T, U>.
  • [Breaking Change] The format() method of Formatter<T> now takes a non-nullable type for its value parameter.
  • [Breaking Change] The nullValueString property of Formatter<T> is now optional.
  • Added support for associating flight plan modifications with batches using FlightPlan and FlightPlanner.
  • Added new ColorUtils class.
  • Added new AvionicsSystemPowerEvents type.
  • Added a protected onPowerValid() callback to BasicAvionicsSystem.
  • Added new Wait.awaitFrames() method.
  • Added new selectedHeading property to MapAutopilotPropsModule.
  • MapAutopilotPropsController now supports binding props to custom event bus topics.
  • Added new ReadonlyConsumerValue type.
  • Added utilities for SimBrief OFP download and route/winds extraction.
  • Fixed a bug where APFLCDirector could target the wrong speed in rare circumstances.
  • Added support for per-leg user data in FlightPlan.
  • APNavDirector and APBackCourseDirector now support tracking VOR/LOC signals in two phases: intercept and tracking. Certain director behaviors can now be configured independently for each phase.
  • AltitudeSelectManager now allows passing undefined to the settingsManager constructor parameter if metric mode is not supported.
  • All director and manager factories in APConfig are now optional.
  • Fixed a bug with FSComponent where text and subscribables added directly as children of fragments would not be rendered to the DOM.
  • Fixed an incorrect return type on one of the overloads of FSComponent.bindCssClassSet().
  • Added new FilteredMapSubject class.
  • Added new overload of FSComponent.bindCssClassSet().
  • Fixed rare runtime errors and memory leaks in AbstractSubscribable, AbstractSubscribableArray, AbstractSubscribableSet, and AbstractSubscribableMap.
  • Applied memory optimizations to ObjectSubject.
  • Subject.apply() no longer throws an uncaught runtime error if the subject value is not an object.
  • A function can now be passed in as a shorthand for a formatter object in DisplayFieldOptions.
  • Added new cg_percent topic to WeightBalanceEvents.
  • Added JSX support for binding an intrinsic element's style attribute to a SubscribableMap<string, string>.
  • Added new n1_uncorrected and n2_uncorrected topics to EngineEvents.

GarminSDK

  • [Breaking Change] Fixed a bug where the ISA nav data field was displaying ISA temperature instead of delta ISA.
  • Adjusted NextGen map and SVT absolute terrain colors to better match the real units.
  • Added new MapWindVectorModule, MapWindVectorLayer, and MapWindVectorController classes.
  • Added mapWindVectorShow to MapUserSettingTypes.
  • Added support for the display of the wind vector to GarminMapBuilder, NextGenNavMapBuilder, NextGenNearestMapBuilder, and NextGenConnextMapBuilder.
  • Added new WeatherRadarAvionicsSystem class.
  • Added new wxrCalibratedGain and wxrGain settings to WeatherRadarUserSettingTypes.
  • TouchSlider now supports rendering an optional inset child node.
  • Added new GarminHeadingSyncManager class.
  • Added new MapGarminAutopilotPropsModule and MapGarminAutopilotPropsController classes.
  • Added new GarminMapBuilder.autopilotProps() method.
  • MapRangeCompassLayer now supports drawing the selected heading line in Track Up orientation, and no longer hides the line when the selected heading is out of the compass's heading bounds (the heading bug is still hidden).
  • Added new NavDataBarFieldConsumerValueModel and NavDataBarFieldConsumerValueNumberUnitModel classes.
  • Deprecated the NavDataBarFieldConsumerModel and NavDataBarFieldConsumerNumberUnitModel classes.
  • Added new configurable GarminAutopilot class.
  • Added a new NavReference API.
  • Added new TouchList component.
  • Added new ScrollList component.
  • Added support for new onTouched callback to TouchButton and related button components.
  • Added support for a button held state to TouchButton and related button components.
  • Added new simulatePressed() method to TouchButton and related button components.
  • Added new DynamicList class.
  • Fixed a bug where TouchButton would immediately enter the drag-inhibited state when primed if inhibitOnDrag was set to true and focusOnDrag was set to false.
  • Added new getRootElement() method to all touchscreen button components.
  • GarminVNavManager2 no longer uses the climb or missed approach tracking phases if advanced VNAV is not supported.
  • GarminVNavManager2 now publishes appropriate flight phase, tracking phase, and current/active constraint data when ground speed is less than 30 knots.

G3000

  • [Breaking Change] NavReferenceSources is now an interface. Use the new NavReferenceSourceCollection class in garminsdk to access an implementation of the interface.
  • Added new panel.xml weather radar options for min/max user-selectable gain and electrical circuit for power draw when the radar is actively scanning.
  • Added support for autopilot selected heading sync behavior.
  • Added panel.xml configuration option for HDG sync mode support.
  • Added new GarminTouchList and GarminTouchListProps exports to the msfs-wtg3000-gtc package, which are aliases for TouchList and TouchListProps from the msfs-garminsdk package.
  • Added panel.xml support for configuring GTC default control mode.

MSFS Avionics Framework 0.5.0

03 Jul 17:17
Compare
Choose a tag to compare

SDK

  • [Breaking Change] isFlightDirectorOn and isFlightDirectorCoPilotOn are now read-only outside APStateManager. Use the setFlightDirector() method instead.
  • [Breaking Change] Added new FMS_LOC member to APLateralModes enum and new createFmsLocLateralDirector() method to APConfig interface.
  • [Breaking Change] NavComInstrument no longer creates its own instance of NavComSimVarPublisher.
  • [Breaking Change] NavProcessor no longer creates its own instance of NavProcSimVarPublisher.
  • [Breaking Change] APRadioNavInstrument no longer creates its own instance of NavProcSimVarPublisher.
  • [Breaking Change] APLvlDirector now requires an APValues object to be passed to its constructor.
  • [Breaking Change] The isToGaMode option for APLvlDirector is now specified via an options object.
  • [Breaking Change] Changed the ap_master_[engage/disengage] and ap_yd_[engage/disengage], and topics to ap_master_[on/off] and ap_yd_[on/off], respectively.
  • [Breaking Change] AbstractAutothrottle now uses MultiExpSmoother for smoothing speed and engine power.
  • [Breaking Change] Added new cross-track error parameter to APNavDirectorInterceptFunc.
  • Added new getCurrentClimbConstraint(), getNextDescentConstraintIndex(), getNextClimbConstraintIndex(), and getNextMaprConstraintIndex() methods to VNavUtils.
  • Added new AuralAlertSystemWarningAdapter class.
  • Added new autoEngageFd and initializeStateManagerOnFirstFlightPlanSync options to APConfig.
  • Added new optional drivePitch and driveBank properties to the PlaneDirector interface.
  • Added new AutopilotDriver class.
  • All autopilot directors now directly consume SimVar values for performance-critical data instead of using the event bus. This ensures that they are using the most up-to-date data accessible from the JS environment.
  • Added new GenericFlcComputer class.
  • Added new ambient_density topic to AdcEvents, providing ambient air density in slugs per cubic foot.
  • Added SLUG and KNOT_PER_SEC units to UnitType.
  • Added density and force units to UnitType.
  • Added asUnit utility to NumberUnitSubject for creating a constant conversion to another unit.
  • BasicAvionicsSystem now supports binding power state to subscribables.
  • Added new MathUtils.SQRT3 and MathUtils.SQRT1_3 constants.
  • Added new MathUtils.diffAngleDeg() method.
  • Fixed a bug in Vec3Math.setFromSpherical() where the vector length was not being applied.
  • Added support for pitch and heading angle scaling factors in HorizonProjection.
  • Added new projectCameraRelativeAngular(), invertToCameraRelativeAngles(), projectRelativeCoordinates(), and projectCameraRelativeCoordinates() methods to HorizonProjection.
  • Added additional CSS classes to the digits of DigitScroller so that each digit can be selected and styled independently.
  • Fixed a bug in ClippedPathStream where it was sometimes not generating the correct clipped endpoints for lines.
  • Added isFinite() methods to the various VecMath classes.
  • The various VecSubject classes now consider NaN to be equal to itself.
  • Added new HPA, PercentOver100, MetersPerSecondSquared, and MillimetersWater members to SimVarValueType enum.
  • Added new autobrake_switch_pos and autobrake_active topics to BrakeEvents.
  • Added new simRate topic to ClockEvents.
  • Added JSX support for binding the class attribute of native HTML elements to objects containing key-value pairs where the keys are class name strings and the values are boolean or Subscribable<boolean>.
  • Added JSX support for binding the style attribute of native HTML elements to objects containing key-value pairs where the keys are style property names and the values are string, or Subscribable<string>.
  • Added type checking for JSX ref, style, and class props on native HTML elements.
  • Fixed a bug where AbstractNearestSubscription would notify removals with the incorrect array index.
  • Added new nav_radial_error topic to NavProcSimVars.
  • Fixed a bug where SmoothingPathCalculator did not write target altitudes to smoothed flat constraints.
  • Added new SubscribableMapFunctions.or(), SubscribableMapFunctions.and(), and SubscribableMapFunctions.nor() methods.
  • Added new MathUtils.ceil() and MathUtils.floor() methods.
  • Added new vectorAnticipationBankRate and disableAutoSuspendAtMissedApproachPoint options to LNavDirectorOptions.
  • Added new verticalAngle property to FlightPlanLeg type.
  • Fixed a bug in CasSystem where deactivating a suffixed alert when it was not active (or was scheduled to be active) and another suffix was active would corrupt the system state.
  • Added option to cache output strings to DurationFormatter, DmsFormatter2, and DateTimeFormatter.
  • DateTimeFormatter can now format hour/minute/second fragments to include decimals.
  • DateTimeFormatter now outputs '12' instead of '0' for 12-hour fragments.
  • Console warnings are now emitted when invalid fragment syntax is given to DurationFormatter, DmsFormatter2, or DateTimeFormatter.
  • Added new copyFrom() method to FlightPlan.
  • Added new indexed payload_station_weight topic to WeightBalanceEvents.
  • AbstractAutothrottle supports new options to set a threshold for changing speed target, overspeed limit, and underspeed limit values to ignore the contribution to the PID derivative term from the changing target value.
  • Added new getPreviousError() method to PidController.
  • PidController no longer calculates an infinite/NaN derivative term when dt is 0.
  • NavComSimVarPublisher now publishes all the topics that are published by NavProcSimVarPublisher.
  • Deprecated NavProcSimVarPublisher, NavProcSimVars, and other related types.
  • SimVarPublisher now supports defining custom valid index ranges and default index for indexed simvars.
  • Added various new topics to FuelSystemEvents.
  • Added new topics to GNSSEvents related to inertial data.
  • Autopilot now sets APValues.lateralActive to APLateralMode.NONE and APValues.verticalActive to APVerticalMode.NONE when the lateral and vertical directors assigned to the NONE modes are active, respectively.
  • BacklightLevelController now takes horizon angle into account.
  • Fixed index out of bounds errors when calling plugin component handlers.
  • Added an overload of FSComponent.bindCssClassSet() that binds a set to a ToggleableClassNameRecord.
  • Added new FSComponent.addCssClassesToRecord() function.
  • SmoothingPathCalculatorOptions now has all optional properties.
  • Fixed an issue where GNSSPublisher was publishing incorrect values to the zulu_time topic.
  • FlightPlanner no longer tries to change the active flight plan index to a non-existent flight plan after receiving a flight plan sync response.
  • Added new HorizonSharedCanvasLayer component.
  • Fixed an issue where FlightPlan.setProcedureDetails() would sometimes incorrectly update the flight plan's internal procedure details data.
  • LinearServo's drive() method now takes in optional args to override timestamp and servo rate.
  • Added new simRate property to APValues.
  • All lateral autopilot directors now use driveBank() instead of setBank() and support custom bank rates.
  • APHdgDirector and APTrkDirector now support locking turn direction.
  • Fixed a bug in ClippedPathStream.arc() where arc segments were improperly drawn.
  • ClippedPathStream.arc() now clamps the angular width of arcs to 2 * Math.PI. This brings it in line with the behavior of CanvasRenderingContext2D's arc() method.
  • Added new AiPilotEvents interface and AiPilotPublisher class.
  • Added new ap_disengage_status topic to APEvents.
  • Added arbitrary index support to the ap_heading_selected, ap_altitude_selected, ap_vs_selected, ap_fpa_selected, ap_ias_selected, and ap_mach_selected topics in APEvents.
  • The keyEventManager property in APStateManager is now protected instead of private.
  • Added new SubscribableMap interface and MapSubject class.
  • Fixed bugs where CasRegistrationManager and AuralAlertRegistrationManager were inappropriately caching registration events.
  • FlightPathTurnCalculator no longer attempts to compute turn anticipation if the from leg ends in a discontinuity or either the from/to leg is a discontinuity leg.
  • FlightPathTurnCalculator will now generate anticipated turns for AF/RF legs that don't exactly end on the same point as the connecting leg (within a certain tolerance).
  • Fixed a bug where FlightPathTurnCalculator would sometimes generate an anticipated arc/track turn whose anticipation distance was too large.
  • VNavUtils.getFpa() now always returns zero when altitude is zero.
  • Improved flight path calculation for CF legs in certain cases involving approach procedures that direct you to fly an outbound VOR radial before turning you back toward the final approach course.
  • Added new FlightPathUtils.getGreatCircleTangentToPath() and FlightPathUtils.getGreatCircleTangentToVector() methods.
  • Fixed SwitchLabel so that the caret won't turn green when on the left side.
  • Added new lskNotHandledThrowValue, textInputFieldDisallowedDeleteThrowValue and textInputFieldParseFailThrowValue options to FmcScreenOptions.
  • Added new MultiExpSmoother class.
  • Added new AmbientPublisher class.
  • Added new anti_ice_structural_ice_pct topic to AntiIceEvents.
  • Added new lnav_is_awaiting_calc topic to LNavEvents.
  • Added new getNextDescentConstraintIndex(), getNextClimbConstraintIndex(), and getNextMaprConstraintIndex() methods to VNavUtils.
  • Added a pitch limit to APVNavPathDirector.
  • Added new optional showTerminalWaypoints parameter to NearestIntersectionSearchSession.setIntersectionFilter().
  • Fixed an issue where `Map...
Read more

MSFS Avionics Framework 0.4.0

23 Mar 00:50
Compare
Choose a tag to compare

msfs-sdk

  • [Breaking Change] SortedArray: get(), first(), and last() now throw errors if index is out of bounds.
  • [Breaking Change] ArraySubject no longer passes an index of -1 to handlers. The index passed to handlers is now always the index of the manipulated element(s).
  • [Breaking Change] The nav_radial and adf_bearing topics were changed to be in units of degrees instead of radians.
  • [Breaking Change] The gp_distance topic was changed to be in units of feet.
  • [Breaking Change] Added new getCurrentConstraintDetails(), getTargetConstraintIndex() and getTargetConstraint() methods to VNavPathCalculator interface.
  • [Breaking Change] Added new planBuilt property to VNavPathCalculator interface.
  • [Breaking Change] Removed the setCurrentAlongLegDistance() method from the VNavPathCalculator interface.
  • [Breaking Change] Removed the setCurrentAlongLegDistance() method from SmoothingPathCalculator.
  • [Breaking Change] Renamed the flaps_angle topic to flaps_left_angle and added new flaps_right_angle topic.
  • [Breaking Change] Renamed the gear_position_index topic to gear_position.
  • [Breaking Change] Refactored threat detection logic used by Tcas. As a result, the API for TcasSensitivityParameters and TcasIntruder have changed.
  • [Breaking Change] Improved the resolution advisory selection logic for Tcas and added support for multi-threat encounters and composite RAs.
  • [Breaking Change] Changed the type of the eng_combustion topic to boolean.
  • [Breaking Change] Changed the name of the eng_starter topic to eng_starter_on and changed its type to boolean.
  • [Breaking Change] Changed the name of the eng_manual_ignition topic to eng_ignition_switch_state and changed its type to 0 | 1 | 2.
  • [Breaking Change] VNavUtils.getConstraintDetails() now accepts an out argument to define the object to write the details to instead of always creating a new object with every call.
  • [Breaking Change] SmoothingPathCalculator now takes additional options in the constructor to customize behavior.
  • [Breaking Change] Changed UserFacility to store the ICAOs of references (if any) instead of the facilities themselves.
  • [Breaking Change] DurationFormatter now supports precision.
  • [Breaking Change] The gp_available topic now indicates whether a glidepath is actually available for guidance as opposed to whether the currently loaded approach supports a glidepath.
  • [Breaking Change] Added a phase property to flight plan VerticalData.
  • [Breaking Change] Changed the sign convention of VNavUtils.getVerticalSpeedFromFpa() to match the other vertical speed/FPA/groundspeed conversions.
  • [Breaking Change] VNavWaypoint now supports mutable location and requires an ident string.
  • [Breaking Change] Renamed NearestUserFacilitySearchSession to NearestRepoFacilitySearchSession.
  • [Breaking Change] Changed FacilityWaypoint to be an interface. The old FacilityWaypoint class was renamed BasicFacilityWaypoint.
  • [Breaking Change] Moved LNavDirector.getVectorsForTransitionMode() into LNavUtils.
  • [Breaking Change] SmoothingPathCalculator no longer supports the vnav_set_current_fpa control event topic.
  • [Breaking Change] SmoothingPathCalculator no longer automatically calculates the FPA for vertical directs; it is now the responsibility of the code activating the VDTO to provide an FPA. If an FPA is not explicitly provided, it will default to the calculator's default FPA.
  • [Breaking Change] Renamed VNavUtils.getNextClimbConstraint() to VNavUtils.getNextClimbTargetConstraint().
  • [Breaking Change] Added an additional argument globalPluginTargetFunc to the addScripts() method of PluginSystem to allow the system to filter global plugins.
  • [Breaking Change] Added the option for MapAltitudeArcLayer to render the arc using SVG instead of canvas.
  • [Breaking Change] Removed the instrument count constructor parameters from AdcPublisher and AhrsPublisher; these publishers now support all indexes for their indexed topics by default.
  • [Breaking Change] The old SoundServer-related play_sound, start_sound, and stop_sound event bus topics are no longer supported. New topics used to publish commands to SoundServer can be found in the SoundServerControlEvents interface.
  • [Breaking Change] SoundServer no longer prevents sounds from being played based on instrument electricity state.
  • [Breaking Change] APStateManager now requires an APConfig object to be passed to its constructor.
  • [Breaking Change] LNavDirector, APRollDirector, APLvlDirector, APHdgDirector, APNavDirector, and APBackCourseDirector now accept configuration options via an optional object passed to their constructors.
  • [Breaking Change] Added new onSoundEnd() method to the FsInstrument interface.
  • [Breaking Change] Renamed KeyInterceptManager to KeyEventManager and added ability to trigger key events with the new triggerKey() method.
  • Added optional endIndex param to FlightPlan.legs().
  • Added new FlightPlan.tryGetSegment() method.
  • Added new trimStart() and trimEnd() methods to StringUtils.
  • Adjusted LatLonDisplay component to properly pad the minutes value with a leading zero when the value is less than 10.
  • Added USER facility support to NearestContext.
  • Added vc_mouse_leave and vc_mouse_enter events to BaseInstrumentPublisher.
  • Added optional type parameter to ICAO.isFacility().
  • Added new FacilityUtils class.
  • FacilityRepository now supports adding/removing multiple facilities at a time.
  • Fixed a bug in KdTree where the tree structure was not reset when clearing the tree.
  • Fixed a bug in KdTree where removing elements would corrupt the tree state.
  • Fixed a bug in MapNearestWaypointsLayer where it would continue to render waypoints for facilities that had been removed from the facility repository.
  • NearestSubscription: added awaitStart() method.
  • NearestSubscription: start() and update() now always await until the subscription has been started/updated, respectively.
  • FacilityLoader now returns the correct type of session when starting a nearest VOR search.
  • NearestVorSubscription: added setVorFilter() method.
  • Fixed a bug where AdaptiveNearestSubscription could sometimes provide the incorrect facilities.
  • Added optional param to NearestContext.initialize() to define airplane position.
  • NearestContext.update() now awaits the update of the context's constituent nearest subscriptions.
  • Increased the number of cases where NearestContext.getRegionLetter() will succeed.
  • Added new AdaptiveNearestContext class.
  • Added various utility methods to ArrayUtils.
  • SortedArray: added peek(), peekFirst(), peekLast(), resort() and removeAt() methods.
  • InstrumentBackplane now uses the BackplanePublisher interface instead of BasePublisher.
  • Added new EventRepublisher class.
  • Added new FlightTimerInstrument and FlightTimerPublisher classes.
  • Added new nav_dme_lla and adf_lla topics to NavProcSimVars events.
  • Added new lnavdata_waypoint_ident topic to LNavDataEvents.
  • Added new NavComSimVars event topics for COM radio 3, NAV radios 3/4, and ADF radio 2.
  • Added useMinusSign option to NumberFormatter.
  • Added new gp_service_level topic to VNavEvents.
  • Added new optional parameter copyCalcs to the copyFlightPlan() method in FlightPlanner and the copy() method in FlightPlan.
  • NavProcessor now calls setBrgSrc() when a radio that is a selected bearing source has a frequency change event.
  • Added new VNavConstraintDetails type.
  • Added new vnav_constraint_details topic to VNavEvents.
  • Added isLegIndexPredicted to FlightPlanPredictor.
  • Added new Easing utils class.
  • Added new Animator class.
  • FSComponent.parseCssClassesFromString() now takes optional filter argument.
  • Added support for changing NAV/COM radio volume to NavComInstrument.
  • CF leg flight path calculations now respect a leg's lat/lon fields if they are defined.
  • Added new ICAO.getRegionCode() method.
  • NaN values are now considered equal for the purposes of NumberUnit and GeoPoint equality checks.
  • GeoPointSubject now supports custom error tolerance.
  • Added toggle() method to MutableSubscribableSet.
  • Added new zero_lift_aoa topic to AdcEvents.
  • Fixed publishing of mach_to_kias_factor topic when IAS is close to 0.
  • Fixed a bug where the mach_to_kias_factor topic could have an infinite value.
  • Made landing gear-related topics indexed in ControlSurfacesEvents.
  • Added new gear_is_on_ground topic to ControlSurfacesEvents.
  • Added new topics to NavComSimVars events that publish COM radio tuned facility name and ident.
  • Fixed a a bug where Transform2D.toScale() was ignoring the z scaling factor.
  • Added new ap_selected_speed_is_manual topic to APEvents.
  • Added new lnav_along_track_speed topic to LNavEvents.
  • BottomTargetPathCalculator now writes the firstDescentConstraintLegIndex and lastDescentConstraintLegIndex fields in the vertical plan.
  • SmoothingPathCalculator now writes the missedApproachStartIndex field in the vertical plan, and the isBeyondFaf field in the vertical constraint.
  • Added methods to get first/last climb/descent constraint indexes to VNavUtils.
  • Added new FlightPathUtils.projectVelocityToCircle() method.
  • Added support for subscribable parameters in withPrecision(), changedBy(), and atFrequency() methods in SubscribableMapFunctions.
  • Added new TemperatureDelta member to UnitFamily enum.
  • Added a new overload of MappedSubject.create() that allows you to omit the mapping function.
  • Deprecated CombinedSubject.
  • Fixed a floating point rounding error bug in DurationDisplay.
  • DurationDisplay now displays negativ...
Read more

MSFS Avionics Framework - 0.3.0

29 Sep 16:28
Compare
Choose a tag to compare

Avionics Framework Changelog

SDK changes by directory

autopilot

  • [Breaking Change] AltitudeSelectManager now publishes selected altitude initialization state to alt_select_is_initialized topic.
  • AltitudeSelectManager now supports initOnInput option.
  • Added lnavdata_waypoint_ident event to LNavDataEvents.
  • Added configuration parameters for pitch min/max and increment to APPitchDirector
  • BottomTargetPathCalculator now checks the invalid constraints on each calculate event to determine if any invalid constrant could now be valid and re-added to the vertical flight plan.
  • Change getFafIndexReverse method in VNavUtils to return the last leg if no FAF exists.
  • Fix criteria for adding a constraint to the vertical plan in BottomTargetPathCalculator.buildVerticalPath().

components

  • Added Altitude Arc layer and module to map system.
  • onBoundCallback is now an optional prop on BingComponent.
  • MapProjection no longer notifies change listeners when there is no change after calling set().

data

  • Added new EventRepublisher class.

geo

  • [Breaking Change] NavAngleUnit is now an interface.
  • [Breaking Change] NavAngleSubject was renamed to BasicNavAngleSubject, and slightly refactored to support the new BasicNavAngleUnit class.
  • Added new method angularWidth() to GeoCircle.
  • GeoCircle.angleAlong() and GeoCircle.distanceAlong() now support optional equality tolerance arguments.
  • Added BasicNavAngleUnit class, which implements NavAngleUnit.
  • Fixed missing unit conversion when calling GeoPoint.distance() with LatLonInterface arguments.

graphics

  • Fixed a bug where AffineTransformPathStream was not applying the correct rotation to arcs.

flightplan

  • [Breaking Change] Added optional inclusive argument to FlightPathUtils.isPointAlongArc().
  • [Breaking Change] TurnToCourseBuilder no longer builds a vector if the turn start and end would be equivalent.
  • Added several new flight path vector flags.
  • FlightPathCalculator now supports fallback state.
  • LegCalculations now has a isFallback property which is set to true when the calculated flight path for the leg ends in a fallback state.
  • Improved flight path calculations for CF/FD/FC legs.
  • Improved fallback case handling for CI/VI/CR/VR/CD/VD legs.
  • FlightPathUtils.resolveIngressToEgress() now handles cases where the end of an ingress vector or start of an egress vector joins a base flight path vector outside the bounds of the joined vector.
  • Fixed a bug in FlightPathUtils.isPointAlongArc() where tolerances were not being handled correctly.
  • Fixed a unit conversion error in CircleInterceptLegCalculator.
  • CF leg calc now respects a leg's lat/lon fields if they are defined.

instruments

  • InstrumentBackplane now uses the BackplanePublisher interface instead of BasePublisher.
  • Added nav_dme_lla and adf_lla to NavProcSimVars events.
  • ADC publishing now pauses when slew is active
  • Added NAV/COM volume support.
  • Fixed various issues causing edge case errors for bearing source data and pointers.

navigation

  • added getRegionCode static method to ICAO.
  • LodBoundary no longer uses unsimplified vectors for all LODs when grabbing LOD'd vectors from the sim.
  • Added FacilityILSFrequency interface to and updated various runway structures to use it.

sub

  • Added NUMERIC_NAN_EQUALITY function to SubscribableUtils.
  • pause() and resume() methods on Subscription and MappedSubscribable now return this.

Garmin SDK Changelog

These are the changes between the initial public release of the garminsdk and current release version 0.1.0.

AHRS / ADC

  • Added AdcSystem and moved ADC-related events to that.
  • AhrsSystem now republishes relevant AHRS data to the bus under its own indexed topics for ease of consumption.
  • AhrsSystem now publishes whether heading and altitude data are valid.
  • Magnetometer failure no longer causes AHRS to fail, and a functioning magnetometer is no longer required for AHRS alignment.
  • Updated horizon display and ASI to fully source data from AhrsSystem and AdcSystem.

Map

  • The map now draws all fallback flight path vectors and certain CF leg vectors as roll-heading vectors (arrows).
  • Transitions that are part of leg-to-leg turns where one half of the turn joins a roll-heading vector are now fully drawn as roll-heading vectors.
  • MapOrientationRTRController and map builder now support mapping orientation modes to subscribable target offsets/range endpoints in addition to static ones.
  • Maps now render TOD/BOD markers where appropriate.
  • Maps now correctly revert to heading-up under the hood when in track-up mode while on the ground.
  • Fixed bug where map range compass layer could be missing heading labels after a map resize.
  • Tweaked various map builder options to adjust to the new TrafficSystem interface.

Traffic

  • All Garmin traffic systems now implement the new interface TrafficSystem.
  • Added more styling options to TrafficMapRangeLayer.
  • TrafficMapRangeLayer will now always display ranges in nautical miles.
  • Fixed a bug where TrafficMapRangeLayer would not draw ticks correctly after its parent map was resized.
  • Fixed traffic offscale indications persisting after alert had been canceled.

Autopilot

  • Change default max bank angle in GarminAPConfig from 30 to 25.
  • Instantiate the new APBackCourseDirector in GarminAPConfig.

FMS

  • Add vector anticipation protection for invalid legs.
  • CF leg calc now respects a leg's lat/lon fields if they are defined.
  • GarminObsDirector now always uses the magnetic variation at the OBS fix to compute a true course to track.
  • Added new ObsSuspDataProvider class to handle SUSP mode.
  • Set vnavNextLegTargetAltitude in GarminVNavManager.
  • GarminVNavManager no longer requires nextLeg.
  • Send active leg change after segments cleared to reset active leg in NavDataComputer.
  • FmaDisplaySlot renamed to FmaModeSlot and its props were changed to make it more explicit that it requires the transition state of the active mode rather than the armed modes.
  • FmaApSlot renamed to FmaMasterSlot and changed to handle just one master setting each.
  • Enhanced isDuplicateLeg in FMS to handle when idents match but assciated airport is different.
  • Moved various FMA components from g1000 to garminsdk.
  • Don't show VNAV UNAVAILABLE message when beyond FAF.
  • Fixed issue where deduping a CF after an intercept leg alters the flight path significantly.
  • Fixed a bug with path rearm due to changes in LNAV sequencing.
  • Fixed a bug where addVisualFacilityFromLeg would try to add discos to the repo.
  • Fixed a bug that caused GS GP to not fully deactivate in some cases.
  • Fixed issue that could cause direct-to with MANSEQ active to activate the next leg.

Altimeter / Minimums

  • Added support for NXi/G3000-style altimeter.
  • Added RadarAltimeterSystem.
  • Added RadarAltimeter component.
  • RadarAltimeterDataProvider now smooths the provided radar altitude and provides a data failed state.
  • Added MinimumsAlerter.
  • Added a standard PFD minimums display component.

Miscellaneous

  • Added WeatherRadar component and WeatherRadarUserSettingTypes user setting type definition.
  • Added support for properly updating flight plan state when using the travel-to feature.
  • Added display of bush trip flight plans based on community feedback.
  • Moved softkey framework from g1000 project to garminsdk.
  • Moved some HSI components to garminsdk.
  • Added CdiScaleFormatter class to generate text formatters for CDI scaling modes.
  • Changed UnitFormatter output string for inches of mercury to 'IN'.
  • TAS/TIS now correctly initialize to operating mode if starting flight in air.
  • Fixed garmin visual approach legs not showing up in procedure previews
  • Fixed various issues related to the display of bearing pointers and related info.

MSFS Avionics Framework - 0.2.0

10 May 13:33
Compare
Choose a tag to compare

Working Title Avionics Framework v0.2

This release of the Avionics Framework includes a new component, the Garmin SDK. This contains common code meant to be used across Garmin systems to facilitate the development of new Garmin products which use similar paradigms. Since this is the initial release of the Garmin SDK there is no change log for that, but changes to it in future releases will be documented here.

SDK Changes by Directory

autopilot

  • [Breaking Change] Refactored LNAV events.
  • [Breaking Change] Added required param primaryPlanIndex to VNAVDirector constructor.
  • [Breaking Change] Added required parameter settingsManager to AltitudeSelectManager constructor.
  • [Breaking Change] Renamed LNavVars L-Vars from WT1000_to WTAP_.
  • [Breaking Change] Renamed VNavSimVars L-Vars from WT1000_to WTAP_.
  • [Breaking Change] Made the following changes to the VNavConstraint interface.
    • Added the minAltitude, maxAltitude properties.
    • Changed the altitude property to targetAltitude.
    • BottomTargetPathCalculator and VNAVDirector now use the targetAltitude field.
  • [Breaking Change] Changed apValues.navToNavLocArm to be a function that returns the latest value from the nav to nav manager.
  • [Breaking Change] Removed some protected fields from AutoPilot in favor of using the subjects with the same names from apValues. The fields removed were lateralActive, lateralArmed, verticalActive, verticalArmed.
  • [Breaking Change] Refactored VNavPathCalculator interface and implemented classes SmoothingPathCalculator and BottomTargetPathCalculator to support multiple flight plans, requiring methods to supply a plan index or a vertical plan for each method run. This allows vnav path calculations to be run, and data to be retained, for multiple plans at the same time.
  • [Breaking Change] Moved and Renamed (from VnavUtils) the static class VNavUtils to it's own file in the SDK.
  • [Breaking Change] Moved and refactored a significant number of methods from the calculators to VNavUtils.
  • [Breaking Change] Refactored all vnav related events; they now follow the correct snake-case for topic naming. They also now live in these three event classes:
    • VNavEvents are all events published directly by VNav based on data directly from the path calculator. Many, but not all of these, are lvar-driven events.
    • VNavDataEvents are all events published by other data processors/users based on/related to VNav data, but are not published directly by the VNav classes themselves.
    • VNavControlEvents are generic or common events used by avionics to control aspects of VNav via the bus.
  • APPublisher now publishes yaw_damper state
  • Added new interface ObsDirector.
  • Added optional param obsDirector to LNAVDirector constructor.
  • Added new interface VnavPathCalculator.
  • Added new GlidePathCalculator class.
  • Fixed sync of GPS WP DISTANCE in GpsSynchronizer.
  • Added new interface VNavControlEvents.
  • Added new class VNavUtils.
  • FLCDirector now supports mach hold.
  • AltitudeSelectManager now supports input acceleration and a variety of other configuration options.
  • Added 2 new subjects to AutoPilot's apValues, lateralArmed and verticalArmed
  • LNavDirector now accepts true or false value on the 'suspend_sequencing' Control Event on the bus, and correctly sets the suspend state in LNAV.
  • suspChanged event from LNavEvents has been removed and replaced with isSuspended.
  • Added ability to supply an external captureAltitude() method to APAltCapDirector for tuning specific aircraft; if supplied this is used, if unsupplied a default method is used.
  • Fixed bug where APNavDirector's localizer tracking would be offset.
  • Added instances of the iterator on BottomTargetPathCalculator and GlidePathCalculator.
  • added firstDescentConstraintLegIndex, lastDescentConstraintLegIndex to VerticalFlightPlan interface. Added isDirectToTarget to VNavLeg interface.
  • Adjusted BottomTargetPathCalculator for changed interfaces.
  • Updated and added more VNavUtils methods. As appropriate - generally VNavUtils methods are those that are common across all vnav implementations, while the private static methods in the calculator itself represent logic specific to the calculator.
  • Changed VNavVar VNAVMode to VNAVState, changed VNavSimVarEvents vnav_mode to vnav_state, changed enum VNavMode to VNavState.
  • Renamed and refactored the default SDK VNavDirector to VNavManager interface.
  • Changed APVerticalModes enum to include PATH instead of VNAV.
  • Added new SDK Autopilot Director, APVNavPathDirector
  • Updated APFLCDirector allowing it to be armed.
  • Refactored Autopilot in SDK to handle new VNavManager injection.
  • Added vertical and lateral wind correction to AP directors.

components

  • [Breaking Change] Renamed MapAbstractWaypointRenderer to MapWaypointRenderer.
  • [Breaking Change] Shortened the names of some flight path renderer classes.
  • [Breaking Change] All flight path renderer classes now use the new GeoProjectionPathStreamStack class.
  • [Breaking Change] AbstractFlightPathLegRenderer.render() now accepts bitflags to determine which part of the leg to render.
  • [Breaking Change] BingComponent, MapBingLayer, and SynVisComponent now require a prop that provides the current game state.
  • Added new HardwareUiControl base class for use when developing GUI menus.
  • Added support to HardwareUiControl for:
    • defining whether a control requires a focused child in order to be focused itself.
    • defining desired focus position on scroll.
    • defining how to handle focus when a focused control is left without a focused child after a blur operation.
  • MapWaypointRenderer now supports injectable render role selection behavior.
  • Added support for dynamically adding and removing roles to MapWaypointRenderer.
  • Added new PathStream classes.
  • Added new GeoCirclePathRenderer class.
  • Added the GeoProjectionPathStreamStack class.
  • Added new CustomFlightPathLegRenderer class.
  • Added new FlightPathLegLineRenderer and FlightPathLegPatternRenderer classes.
  • MapProjection now supports setting arbitrary endpoints to define range.
  • Added additional sim crash protections to BingComponent
  • Added new MapSystem map building system API and related components.
  • DurationDisplay and LatLonDisplay now accept SubscribableSet for their class prop.
  • DurationDisplay can now accept a static value for its value prop.

data

  • [Breaking Change] Removed vnav_enabled event from ControlEvents.
  • [Breaking Change] Enforces that event bus topics must be of type string in places where it wasn't already.
  • [Breaking Change] KeyInterceptManager now converts key event values to their correct format (signed 32-bit integers) before publishing them on the event bus.
  • Added new suspend_sequencing event to ControlEvents.
  • Added new lnav_inhibit_next_sequence event to ControlEvents.
  • Added new activate_missed_approach event to ControlEvents.
  • Added new approach_freq_set event to ControlEvents.
  • Added new approach_available event to ControlEvents.
  • Added mach unit to SimVarValueType.
  • Fixed potential handler leaks within filtered Consumers.
  • Created an EventBusMetaEvents event interface.
    • Added the existing previously interface-less event_bus event to this new interface.
    • Created an event_bus_topic_sub event topic to this new interface that EventBus publishes when a topic is subscribed to.
  • Added a getTopicSubscriberCount() method to EventBus.
  • Changed SimVarPublisher to automatically start polling simvars that it gets subscriptions for.
    • The existing subscribe() and unsubscribe() methods on SimVarPublisher now do nothing.
  • ConsumerSubject now allows pausing, resuming, and setting consumer after instantiation.
  • Added additional sim crash protections to KeyInterceptManager
  • Subscribables, Consumers, EventBus, and SubEvent now return a Subscription object when a handler function is subscribed to them.
  • The old method of unsubscribing handlers from Subscribables, Consumers, EventBus, and SubEvent has been deprecated in favor of using Subscription.
  • Added new GameStateProvider class.

fadec

  • Added ThrottleLeverManager class.
  • Added JetFadec class.

flightplan

  • [Breaking Change] The HoldLeg flight path vector flag has been separated into HoldInboundLeg and HoldOutboundLeg.
  • [Breaking Change] Split the HoldEntry flight path vector flag into HoldDirectEntry, HoldTeardropEntry, and HoldParallelEntry flags.
  • Instantiating FlightPlanner now provides an option for the user to specify a naming method to name legs. The default garmin naming framework remains.
  • Added new DirectToPointBuilder flight path vector builder class.
  • Added a new method, FlightPathUtils.isPointAlongArc(), for checking if a point lies on a geo circle arc.
  • Added new flight plan leg type: ThruDiscontinuity. This is a discontinuity leg that does not trigger LNAV to suspend sequencing.
  • Added new FlightPlanLegIterator class in sdk/flightplan with methods for iterating forward or reverse through the legs of a flight plan.

geo

  • Added new static methods to GeoPoint for calculating distance and bearing from raw lat/lon values.
  • Added new GeoCircleResampler class.
  • GeoProjection now supports full 3D pre-rotation.

graphics

  • Added new DurationFormatter and DateTimeFormatter classes.
  • Added new SvgPathStream class.
  • Adjusted the behavior of PathStream.arc() when called immediately after beginPath() to match what canvas does.

instruments

  • [Breaking Change] The gps_wp_bearing event is now published as string instead of number of degrees.
  • [Br...
Read more

MSFS Avionics Framework - 0.1.0

09 May 22:40
Compare
Choose a tag to compare

Initial MSFS Avionics Framework release.