Skip to content

Releases: microsoft/msfs-avionics-mirror

MSFS Avionics Framework v2.3.3

09 Dec 18:44

Choose a tag to compare

SDK

  • [Breaking Change] Changed the invalidateClimbConstraint and invalidateDescentConstraint options for SmoothingPathCalculator to take functions that accept UncomputedVNavConstraint objects instead of VNavConstraint objects.
  • AutopilotDriver now supports defining a custom output to which it sends pitch and bank commands.
  • Deprecated the resetServo parameters for AutopilotDriver::setPitch() and AutopilotDriver::setBank().
  • Fixed an issue where the pitch up/down limits for AutopilotDriver::setPitch() and AutopilotDriver::drivePitch() were reversed.
  • Fixed an issue where the zeroRollHeight option for AutopilotDriver was effectively ignored if auto coordination was disabled.
  • Added new activeSimDuration and apMasterOn properties to APValues.
  • Autopilot now updates the simRate prop in APValues every update cycle.
  • GPSSatComputer can now be configured to have split non-SBAS/SBAS receiver channels.
  • Added the ability to manually inhibit satellites by PRN code in GPSSatComputer.
  • GPSSatComputer now exposes the full covariance matrix calculated from satellite geometry.
  • Added support to GpsSatComputer for simulating predicted satellite geometry and reception state for arbitrary receiver positions (spatial and temporal).
  • Added new ContactPointSimVarPublisher class.
  • Added new hyd_actuator_pressure topic to HydraulicsEvents.
  • Added new DataItemUtils utility class.
  • BingComponent now supports custom field of view for 3D maps via the new optional fov prop.
  • SynVisComponent now supports custom field of view via the new optional fov prop.
  • Added a new HorizonSyntheticVisionLayer class.
  • Added a new getOffset() method to HorizonProjection.
  • Added an option to TrafficInstrument to sync traffic data between primary and replica instances.
  • Added a new FlightPlanUtils.isInterceptLeg() method.
  • Fixed an issue where Tcas could sometimes not publish the tcas_intruder_removed event after removing an intruder.
  • Added a new FlightPlanUtils.getTerminatorIcaoValue() method.
  • Deprecated FlightPlanUtils.getTerminatorIcao().
  • Fixed a bug where Vec3Math.distance() was returning the incorrect value.
  • Added a new dmeBias property to FacilityDme.
  • Created a new LatLonAltInterface interface.
  • Added a new option to CasSystem to allow customization of message sorting.
  • Added support to Tcas for defining a custom data provider for the own airplane.
  • Deprecated the Tcas::ownAirplaneSubs property.
  • Added a new option to Tcas to define whether active surveillance is available.
  • Deprecated the lateralModeFailed property in Autopilot.
  • Added new handleLateralActiveModeReversion() and handleVerticalActiveModeReversion() methods to Autopilot.
  • Added a new optional deactivateMode() method to VNavManager.
  • GenericFlcComputer now provides a null pitch target when it cannot compute one due to lack of data.
  • Added an overload of the APVNavPathDirector constructor that accepts an APValues argument and deprecated the old overload that accepts an event bus instance.
  • Updated all autopilot director classes (those that implement the PlaneDirector interface) to prevent arming or activation when they do not have access to valid data required for their function.
  • Fixed all autopilot director classes (those that implement the PlaneDirector interface) to correctly call the onDeactivate() callback.
  • Added new DegreesPerSecondSquared and RadiansPerSecondSquared members to SimVarValueType enum.
  • Added a new DataItemSubject class.
  • Fixed an issue where DefaultFlightPathAnticipatedDataCalculator generated data that could cause the calculated flight path to become unstable over successive rounds of calculation.
  • Added a new FlightPlan::forEachLeg() method.
  • Added a new optional alongTrackOffset property to VerticalData.
  • Added a new VNavUtils.planLegs() method.
  • Added support for along-track (ATK) offsets for constraints in the vertical flight plan.
  • Fixed an issue where SmoothingPathCalculator was not correctly updating some vertical leg properties after recomputing the path in certain circumstances.
  • Added a new option to SmoothingPathCalculator that allows you customize how the minimum and maximum altitudes of a constraint are defined.
  • Deprecated the forceFirstApproachAtConstraint option for SmoothingPathCalculator.
  • Added a new option to SmoothingPathCalculator that allows you to customize how the calculator selects a target altitude for descent target constraints where the altitude is not constrained to a single value.
  • FlightPathCalculator now passes a reference to the facility cache to the anticipated data calculator.
  • Added a new name property to TrafficContact.
  • Added new optional facilityForIcao prop to MapNearestWaypointsLayer.
  • Added new optional airportFacilityDataFlags props to MapSystemWaypointsLayer and MapSystemFlightPlanLayer.
  • Added new MapSystemKeys.WaypointRendererAirportDataFlags const.
  • MapSystemBuilder.withNearestWaypoints() and MapSystemBuilder.withFlightPlan() now pass in the value of the MapSystemKeys.WaypointRendererAirportDataFlags context property to the airportFacilityDataFlags prop of the waypoints/flight plan layers.
  • Changed various methods in ArrayUtils to accept ArrayLike<T> instead of Array<T> where appropriate.
  • Added new FullGridLerpLookupTable and FullGridLerpVectorLookupTable classes.
  • Deprecated the insertBreakpoint() methods in LerpLookupTable and LerpVectorLookupTable.
  • Added new MapIndexedScaleFactorModule class.
  • Changed the type of the deadZone prop of MapSystemComponent to ReadonlyFloat64Array | Subscribable<ReadonlyFloat64Array>.
  • Fixed an issue where MapSystemController::onDeadZoneChanged() was never called.
  • Added new MapSystemSharedFlightPlanLayer component.
  • Added new withOnAfterRender(), withSharedFlightPlans() and withSharedFlightPlanDefinition() build steps to MapSystemBuilder.
  • MapSharedCanvasLayer and MapSharedCachedCanvasLayer now respect the class prop.
  • Added new getRoleGroup() method to WaypointDisplayBuilder.
  • Applied performance optimizations to MapWaypointRenderer.
  • Applied performance optimizations to MapCullableTextLabelManager.
  • Added a destroy() method to MapCullableTextLabelManager.
  • MapSystemBuilder.withTextLayer() and MapSystemBuilder.withWaypoints() now include a destroy step to destroy the MapCullableTextLabelManager added to the map context.
  • Added new alt properties to NdbFacility and VorFacility.
  • Fixed an issue where FlightPlanner did not correctly sync leg user data between different instruments.

GarminSDK

  • Updated HorizonDisplay to use a more realistic field of view for SVT by default.
  • Fixed a bug in PitchLadder where it could sometimes fail to switch between SVT and non-SVT styles when SVT was toggled.
  • Added a new option to TrafficInfoService to define whether TIS-A is supported.
  • Added new optional airportFacilityDataFlags props to MapWaypointsLayer and MapProcedurePreviewLayer.
  • Added new optional airportFacilityDataFlags parameters to the constructors of FixIcaoWaypointsRecord and ProcedureTurnLegWaypointsRecord.
  • Added new airportFacilityDataFlags options to MapDefaultFlightPlanWaypointRecordManager and ProcMapTransitionWaypointRecordManager.
  • GarminMapBuilder.waypoints() and GarminMapBuilder.procPreview() now pass in the value of the MapSystemKeys.WaypointRendererAirportDataFlags context property to the airportFacilityDataFlags prop of the waypoints/proc preview layers.
  • Added a new airportFacilityDataFlags option to all the pre-assembled next-gen map builders.
  • Fixed MapSharedFlightPlanLayer to respect the show prop for flight plans exposed by MapGarminFlightPlanModule.
  • Added new TrafficMapFlightPlanVisController class.
  • TrafficMapBuilder.build() now configures the map to hide the display of flight plans when position data is unavailable, if both flight plan display and data integrity are supported.
  • Fixed a potential out of bounds array access in FmsUtils.checkForCourseReversal().

G3000

  • Added new parameters to the model behaviors WT_G3000_Knob_Speed_Template to allow customization of animation sound triggers.

G3X Touch

  • Added a new G3XMapUtils.AIRPORT_DATA_FLAGS const.
  • All pre-assembled G3X map builders now build maps that use airport data flags equal to G3XMapUtils.AIRPORT_DATA_FLAGS when requesting facilities for waypoint rendering.

WT21

  • Fixed issues with the project setup that prevented the project from being built successfully with the provided build scripts.

MSFS Avionics Framework v2.2.3

21 Aug 17:22

Choose a tag to compare

All

  • Updated Typescript to 5.8.

SDK

  • [Breaking Change] Refactored typings on UserSettingManager. This change was necessary to work around a Typescript compiler issue introduced in Typescript 5.4.
  • [Breaking Change] Fixed an incorrect declared type on the second parameter of the mapping function accepted by Subscribable::pipe(). (NOTE:the only change is in the type declarations. Runtime behavior is not changed with this fix.)
  • Added new utility types.
  • Added new GlidePathCalculator2 class.
  • Added support for the new JS shared global API via the SharedGlobal class.
  • Added support to FacilityLoader for using a facility cache that is shared across instruments.
  • MapAirspaceLayer, MapNearestWaypointsLayer, MapSystemFlightPlanLayer, and MapSystemWaypointsLayer can now take a facility loader as an optional prop.
  • The following MapSystemBuilder steps now pass the facility loader saved to the map context under the MapSystemKeys.FacilityLoader key (if one exists) to the appropriate layers added by these steps: withNearestWaypoints(), withFlightPlan(), withAirspaces().
  • Added support to MapProjection for setting a constant nominal scale factor instead of a constant range.
  • Added a new overload of MapFieldOfViewCalculator::calculateFov() that calculates a scale factor instead of a range.
  • APGSDirector now uses geometric vertical speed instead of barometric vertical speed for its calculations.
  • Added support for defining custom event sync implementations when creating an EventBus.
  • BingComponent now emits a console warning when attempting to set a radius that exceeds the maximum supported value (5000000 m).
  • Added new useGreatCirclePathForDiscontinuity option to FlightPathCalculatorInitOptions.
  • Added new ExistingUserWaypointsArray class.
  • Added new GeoCylindricalClippedPathStream class.
  • Fixed some improperly worded error messages emitted by GeoProjectionPathStream.
  • MapSystemFlightPlanLayer now supports geographical cylindrical clipping. The new optional props geoClipAntiMeridianGap and geoClipLatitude can be used to configure the clipping bounds.
  • Added support to FlightPathLegToLegCalculator for calculating the correct transition when the FROM leg is coded as terminating in a flyover fix.
  • FlightPathLegToLegCalculator no longer attempts to calculate transitions with turn radius less than 10 meters.
  • Added a new flight path vector flag: FlightPathVectorFlags.LegToLegFallback. This flag is written to vectors that belong to a leg-to-leg transition where a fallback path was used because the desired path was not possible.
  • Added new ingressBase, ingressBaseJoinIndex, egressBase, and egressBaseJoinIndex properties to LegCalculations.
  • Added additional overloads to GeoCircle::closest(), GeoCircle::offsetDistanceAlong(), and GeoCircle::offsetAngleAlong() that accept an out argument of type Float64Array | GeoPoint.
  • Added an optional tolerance parameter to GeoCircle::intersection() and GeoCircle::intersectionGeoPoint().
  • Added a new InterceptCircleToPointVectorBuilder class.
  • Deprecated InterceptGreatCircleToPointVectorBuilder.
  • Added new getTangentPointBetweenCircles() and deepCopyVectorArray() methods to FlightPathUtils.
  • FlightPathLegToLegCalculator now supports calculating anticipated turns between all vector types.
  • Added new FlightPathCircleToCircleTurn class.
  • Added support for defining the following types of anticipated data via FlightPathAnticipatedDataCalculator: altitude, climb rate, ground speed, turn anticipation limits.
  • FlightPathAnticipatedDataContext now exposes additional data.
  • Fixed some cases where FlightPathCalculator was not respecting anticipated speed data provided by FlightPathAnticipatedDataCalculator.
  • Added new ReadonlyGeoCircle type.
  • Added new MapModulePropsController class.
  • MapOwnAirplanePropsController and MapAutopilotPropsController now support binding props to subscribables and SubEvents.
  • Added new SubEventInterfaceSenderType and SubEventInterfaceDataType utility types.
  • Fixed declared return types on various methods in SubscribableMapFunctions to accurately describe the functions being returned.
  • Optimized retrieving center and radius from GeoCircle.
  • Optimized retrieving latitude and longitude values from GeoPoint.
  • Changed the lat and lon properties on GeoPointInterface to readonly properties. This brings the type declaration in line with the original intent as well as the actual implementations of GeoPoint and GeoPointReadOnly.
  • Changed various uses of the LatLonInterface type to instead use Readonly<LatLonInterface> where a mutable type was not actually needed.
  • Added support for defining a custom provider of data for Autopilot via the new APDataProvider interface.
  • Added a new CachedValue class.
  • Added a new TimeUtils class.
  • Fixed an issue where UserSettingSaveManager::stopAutoSave() did not actually stop autosave.
  • Deprecated the event bus parameter in the constructor of UserSettingSaveManager.
  • TrafficInstrument can now function on a view that does not have a bound Bing map instance.
  • The Promises returned by ChartsClient.getIndexForAirport() and ChartsClient.getChartPages() will now reject with error codes on data request failure.
  • ChartView no longer throws an error when showChartImage() is called before the view is initialized.
  • Passing the empty string to ChartView::showChartImage() no longer crashes the sim.
  • Extended the charts API to add support for retrieving chart data from arbitrary sources.
  • Added new ChartUtils class.
  • RegisteredSimVarUtils.create() no longer infers its first type parameter from its return value. This will help catch mistakes such as const simVar: RegisteredSimVar<number> = RegisteredSimVarUtils.create(name, 'string'); at compile time.
  • Added new isViewOwner property to SharedGlobalObjectRef.
  • Added type property to IntersectionFacility.
  • BingComponent and SynVisComponent now support setting a custom camera lat/lon position, offset and rotation when using the 3D mode ("synthetic vision").
  • Implemented performance and accuracy optimizations for the GeoCircle::offsetAngleAlong(), GeoCircle::offsetDistanceAlong(), and GeoCircle::rotate() operations.

GarminSDK

  • Added new loadDeparture() and loadArrival() methods to Fms and deprecated the old insertDeparture() and insertArrival() methods.
    Added a new option to Fms to specify the facility loader to use.
    MapWaypointsLayer and MapProcedurePreviewLayer can now take a facility loader as an optional prop.
    The following GarminMapBuilder steps now pass the facility loader saved to the map context under the MapSystemKeys.FacilityLoader key (if one exists) to the appropriate layers added by these steps: waypoints(), procPreview().
    NextGenConnextMapBuilder, NextGenHsiMapBuilder, NextGenNavMapBuilder, NextGenNearestMapBuilder, NextGenProcMapBuilder, NextGenWaypointMapBuilder, and TrafficMapBuilder now support an option to specify the facility loader to use when building a map.
  • Added new CdiAutoSlewManager class.
  • Updated GarminAPConfig to create a glideslope director with tracking logic defined by the new GarminAPUtils.glideslopeVsTarget() method.
  • MapSharedFlightPlanLayer and MapProcedurePreviewLayer now use geographical cylindrical clipping to fix cases where flight plan paths could be improperly rendered.
  • Fixed an issue where FlightPathDefaultLegRenderer did not correctly render leg-to-leg course reversals.
  • MapGarminAutopilotPropsController now support binding props to subscribables and SubEvents.
  • The various "pre-assembled" map builders now support uncapped data update frequency (via the dataUpdateFreq option).
  • Changed various uses of the LatLonInterface type to instead use Readonly<LatLonInterface> where a mutable type was not actually needed.
  • Updated GarminChartDisplay to support custom chart image suppliers via the new createChartImageSupplier prop.

G3000

  • Deprecated the ObsAutoSlew class.
  • Added support for plugins to define custom chart providers.
  • Added a new terrainSystemStateDataProvider property to G3000GtcViewContext.

G3X Touch

  • G3XNavMapBuilder, G3XNearestMapBuilder, G3XProcPreviewMapBuilder, G3XTrafficMapBuilder, and G3XWaypointMapBuilder now support an option to specify the facility loader to use when building a map.
  • Deprecated the CdiAutoSlewManager class.
  • The various "pre-assembled" G3X-specific map builders now support uncapped data update frequency (via the dataUpdateFreq option).
  • Plugins can now import previously missing types related to the electronic charts feature.
  • Added support for plugins to define custom chart providers.

WT21

  • Added new loadDeparture() and loadArrival() methods to WT21Fms and deprecated the old insertDeparture() and insertArrival() methods.

Epic 2

  • Added new loadDeparture() and loadArrival() methods to Epic2Fms and deprecated the old insertDeparture() and insertArrival() methods.

MSFS Avionics Framework 0.9.0

08 Aug 18:54

Choose a tag to compare

SDK

  • Made Autopilot::apDriver protected rather than private.
  • Added new AutopilotDriver::getAdjustedPitch() method.
  • Added new dynamic_pressure topic to AdcEvents.
  • Added new AeroMath.thrustCorrectionFactor() method.
  • Added new jet_net_thrust topic to EngineEvents.
  • Added new accelDampeningPeriod option to InputAcceleration.
  • Made the cdi, loc, obs, and navSource properties of APNavDirector protected.
  • Added new PerSecond member to SimVarValueType enum.
  • Added new load_factor and load_factor_rate topics to AircraftInertialEvents.
  • Fixed a bug in NumberFormatter where the maxDigits option was not always respected when the pad option was set to a value other than 1.
  • Added option for PluginSystem::callPlugins() to iterate through plugins in reverse order.
  • Added new UnitType.CENTIMETER unit.
  • Added new Inches member to SimVarValueType enum.
  • Added additional options to APTogaPitchDirector to configure whether the director should drive the commanded pitch toward the target value instead of setting it and the rate at which the commanded pitch should be driven.
  • Added new driveLinear() and driveExp() methods to MathUtils.
  • Added new deactivateAutopilotOnGa option to APConfig.
  • Added new Rounding enum.
    Changed the type of the precision parameter of SubscribableMapFunctions.withPrecision() from number | Subscribable<number> to number | Accessible<number>.
  • Added a new optional round parameter to SubscribableMapFunctions.withPrecision().
  • Added new SubscribableMapFunctions.withPrecisionHysteresis() method.
  • Added new hysteresis, posInfinityString, and negInfinityString options for NumberFormatter.create().
  • Fixed a bug where the caching logic of NumberFormatter was ignoring sign.
  • Fixed the rounding behavior of NumberFormatter for negative numbers when round down or round up is chosen.
  • Added new Position, Position16k, and Position32k members to SimVarValueType enum.
  • Added new AccessibleUtils class.
  • Added new setConsumerWithDefault() and reset() methods to ConsumerValue and ConsumerSubject.
  • Fixed a bug where ArrayUtils.fillRange() would fill incorrect values if startIndex was not zero.
  • Added new eng_fire topic to EngineEvents.
  • Added new publishAutopilotModesAsLvars option to APConfig.
  • Added new at_overspeed_prot_is_engaged and at_underspeed_prot_is_engaged topics to AutothrottleEvents.
  • Added new SubscribableMapFunctions.average() method.
  • APNavDirector, APGSDirector, and APBackCourseDirector no longer depend on APRadioNavInstrument to function correctly.
  • Added canArm, canActivate and canRemainActive options to APNavDirector, APGSDirector, and APBackCourseDirector.
  • Added canArm option to APGPDirector.
  • Made Autopilot::monitorEvents() protected.
  • Deprecated Autopilot::isLateralModeActivatedOrArmed() in favor of deactivateArmedOrActiveLateralMode().
  • Added guards in JetFadec to prevent writing invalid SimVar values.
  • Added new SubscribableMapFunctions.sum() method.
  • Added new turbine_inlet_temp topic to EngineEvents.
  • The track_deg_true and track_deg_magnetic topics in GNSSEvents now default to the previous value if the current ground speed is too low (<=0.1 knots) to calculate an updated value. If no previous value is available, then airplane heading is used as the default.
  • Added new raw ground track topics to GNSSEvents.
  • Added an optional ground speed threshold parameter to GNSSPublisher.getInstantaneousTrack().
  • Added a new realTimeHiFreq topic to ClockEvents.
  • Added additional parameters to AbstractAutothrottle acceleration targeting functions to allow them to correct for changes in target indicated airspeed.
  • Added option in AbstractAutothrottle to apply smoothing to throttle position corrections.
  • Added options in AbstractAutothrottle to arbitrarily transform PID outputs of the selected speed, overspeed, and underspeed controllers.
  • Added an optional latch function to AbstractAutothrottle.
  • Fixed an issue where the xlink:href attribute was not being set correctly in SVG <image> elements.
  • Added new altitude property to AirportFacility.
  • Added new FlightPlanUtils.convertLegRunwayIcaosToSdkFormat() method.
  • Added new FlightPlanUtils.isToFixLeg() method.
  • Added additional fuel-related units to UnitType.
  • Added new UnitType.createFuelWeightUnit() method.
  • Added a new Kilograms member to the SimVarValueType enum.
  • Deprecated the value getter/setter on UserSetting.
  • Added the ability to define validation logic when loading values into settings using UserSettingSaveManager.

GarminSDK

  • [Breaking Change] Changed the return type of AirspeedDefinitionFactory to be an object implementing the new AirspeedDefinition interface.
  • [Breaking Change] Added additional approach- and glideslope/path-related properties to TerrainSystemData.
  • Added new CasDisplay2 component.
  • Added API for working with electronic checklists.
  • Fixed an issue where MapWindVectorLayer arrow would not update the rotation of its arrow correctly.
  • Added an event bus property to the AirspeedDefinitionContext type.
  • Added new options to AoaSystem for defining custom stall/zero-lift angle of attack values.
  • Fixed an issue where DefaultAoaDataProvider could get stuck providing NaN for the normAoaIasCoef value.
  • Added new props to AoaIndicator to customize: warning and caution range thresholds, visibility of digital readout, position and visibility of reference tick (simple gauge only), visibility of minor ticks (advanced gauge only), and position and visibility of donut cue.
  • Added support to AirspeedIndicator for displaying the approach cue.
  • Added support to AirspeedIndicator for customizing the color of V-speed bugs.
  • Added new vnav_track_alert topic to VNavDataEvents.
  • GarminVNavComputer will now issue vertical track alerts by publishing to the new vnav_track_alert event bus topic.
  • Added new trackAlert property to VNavDataProvider.
  • Added new verticalTrackAlert property to NavStatusBoxDataProvider.
  • Added an optional parameter to the DefaultNavStatusBoxDataProvider constructor that takes a VNavDataProvider. If this parameter is defined, then the data provider will provide vertical track alert data.
  • NavStatusBox now supports vertical track alert annunciations.
  • UnitFormatter now supports inch and centimeter unit types.
  • Added additional options to GarminAPConfig to configure the target pitch angles commanded by the TO and GA directors.
  • Added new deactivateAutopilotOnGa option to GarminAPConfigOptions.
  • GarminLowBankManager now supports enforcing auto-toggle state.
  • Added support for ESP (electronic stability and protection).
  • Added new AglSystem class.
  • Fixed various issues with the power logic of AdcSystem, AhrsSystem, AoaSystem, and RadarAltimeterSystem when they are initialized with an undefined power source.
  • AoaSystem now publishes the new aoa_data_valid topic.
  • Added new PitchLimitIndicator component.
  • Updated HorizonDisplay to support rendering a pitch limit indicator.
  • Fixed an issue with TcasRaPitchCueLayer where cues were incorrectly positioned if the clipping bounds were not symmetrical around the projection center.
  • RollIndicator now supports rendering an arbitrary number of additional components on the roll scale using the new RollIndicatorScaleComponent interface.
  • Added new RollLimitIndicators component.
  • HorizonDisplay now supports configuration options for roll limit indicators.
  • GarminAutopilot now handles approach mode and NAV mode logic in a manner that is more consistent with real-world G3X and GFC autopilots.
  • GarminAutopilot now publishes approach mode and NAV mode state to LVars.
  • Added new GarminAPEvents interface and new GarminAPSimVarPublisher class.
  • GarminAPConfig now creates VOR/LOC, GS, and GP directors with arming/activation logic that is more consistent with real-world G3X and GFC autopilots.
  • Improved support for inhibiting alerts in the terrain system API.
  • Deprecated activateAlert() and deactivateAlert() in TerrainSystemAlertController.
  • Added new FmsUtils.createEmptyFlightPhase() and FmsUtils.createEmptyApproachDetails() methods.
  • Added new GarminGlideslopeDeviationModule class, which implements the TAWS glideslope/glidepath deviation (GSD) alert.
  • Added options to terrain system modules for configuring debounce and hysteresis for triggering alerts.
  • Fixed an issue with loading published approaches using Fms where it sometimes would incorrectly connect the approach transition to final approach segment.
  • Fixed an issue where DynamicList::forEachComponent() was not providing correct indexes to the iterator when only iterating through visible items and there were hidden items in the list.
  • Added a new GarminUnitType utility class.
  • Added additional members to the UnitsFuelSettingMode enum to cover more fuel types.

G1000

  • [Breaking Change] Refactored NumericConfig to resolve to factory functions that return objects implementing the new NumericConfigResult interface.
  • Added support for defining the value of a SpeedConfig using an arbitrary event bus topic.

G3000

  • [Breaking Change] Refactored NumericConfig to resolve to factory functions that return objects implementing the new NumericConfigResult interface.
  • Added new G3000CASDisplay2, G3000CASMessageCount2, G3000CASScrollBar, and G3000FullCASDisplay2 components.
  • Deprecated G3000CASDisplay, CASMessageCount, and G3000FullCASDisplay.
  • Added panel.xml configuration options to render the new CAS displays ("Version 2") to the PFD.
  • Adjusted the default PFD CAS display positionin...
Read more

MSFS Avionics Framework v2.1.1

19 May 14:36

Choose a tag to compare

SDK

  • Added new TerrainProfileLoader class.
  • Added additional PI constants to MathUtils.
  • Added a new LambertConformalConicProjection class.
  • Fixed an issue where ApproachUtils.toEmptyIdentifier() did not reset the suffix to the empty string.
  • Added new methods ApproachUtils.getIdentifier() and ApproachUtils.identifierEquals().
  • Reduced the likelihood of ChartsClient.getIndexForAirport() and ChartsClient.getChartPages() returning incorrect data.
  • ChartsClient no longer inappropriately spams the console with messages about unknown requests.
  • The Promise returned by ChartsClient.initializeChartView() now only resolves once the chart view is fully initialized.
  • Added support to FlightPathCalculator for defining a custom data provider for retrieving data such as airplane state.
  • Deprecated AirportUtils.tryGetRegionCode() and AirportUtils.getElevation().
  • Added new area units UnitType.
  • [Breaking Change] When constructing flight path leg calculators, a FlightPathCalculatorFacilityCache is now required instead of a Map<string, Facility>.
  • FlightPathCalculator and associated classes now support the use of facilities with ICAO values that cannot be converted to V1 strings.
  • Fixed an issue where HeadingToAltitudeLegCalculator and HeadingToManualLegCalculator were writing incorrect heading values to calculated flight path vectors.
  • Fixed several issues in SmoothingPathCalculator that caused it to inappropriately overwrite the FPA values of direct and manual constraints.
  • Fixed the syncing of vertical data by FlightPlanner so that the act of removing an FPA value from flight plan leg vertical data is not lost during the sync.
  • Added additional fuel-related units to UnitType.
  • Added new UnitType.createFuelWeightUnit() method.
  • Added a new Kilograms member to the SimVarValueType enum.
  • Deprecated the value getter/setter on UserSetting.
  • Added the ability to define validation logic when loading values into settings using UserSettingSaveManager.
  • Fixed an issue where DefaultUserSettingManager would still sync setting values from other instruments when the keepLocal option was set to true.
  • Deprecated UserSettingManager::whenSettingChanged().
  • Added new KgPerCubicMeter member to SimVarValueType.
  • CasSystem now supports activating alerts that are initially acknowledged.
  • Deprecated the old form of CasAlertTransporter.create() in favor of a new overload that takes an options object.
  • Added new RegisteredSimVar interface and RegisteredSimVarUtils class.
  • Added new LLA_PBH, PBH, PIDStruct, and XYZ members to SimVarValueType.
  • Added support to FacilityLoader for using a facility cache that is shared across instruments.
  • MapAirspaceLayer, MapNearestWaypointsLayer, MapSystemFlightPlanLayer, and MapSystemWaypointsLayer can now take a facility loader as an optional prop.
  • The following MapSystemBuilder steps now pass the facility loader saved to the map context under the MapSystemKeys.FacilityLoader key (if one exists) to the appropriate layers added by these steps: withNearestWaypoints(), withFlightPlan(), withAirspaces().
  • Added a new liveView property to ChartView.
  • [Breaking Change] ChartView's isAlive and id properties are now readonly.
  • Added support to HEventPublisher for parameterized H events.
  • ThrottleLeverManager now supports the THROTTLE_IDLE key event (and related single-engine variants).
  • ThrottleLeverManager will now by default treat all single-engine throttle key events as if they applied to all engines when the VR GROUP INTERACTION ON SimVar is true.
  • Added new isVrGroupInteractionOn() methods to ThrottleLeverManager and ThrottleKeyEventHandlerController.
  • Added a new AtomicSequenceUtils class, which can be used to get a generator of sequential integers that is safe from race conditions.

GarminSDK

  • GarminHeadingSyncManager now properly handles the AP_HDG_CURRENT_HDG_SET key event.
  • Added support for TAWS flight into terrain (FIT) alerting. This type of alerting is handled by the new GarminFlightIntoTerrainModule class.
  • Added a new GarminChartDisplay component that displays charts.
  • WaypointInfoStore now provides the correct region text for all airports.
  • Deprecated the useRegionFallbackForAirport option in WaypointInfoStoreOptions.
  • Added new BaroTransitionAlertManager class, which manages the state of a set of barometric transition alerts.
  • Added support to Altimeter for barometric transition alerts.
  • Fixed an issue where DynamicList::forEachComponent() was not providing correct indexes to the iterator when only iterating through visible items and there were hidden items in the list.
  • NavdataComputer now publishes whether the LNAV is nominally tracking a constant heading instead of a track for the current and next legs. These data are published to the lnavdata_is_steer_heading and lnavdata_next_is_steer_heading event bus topics.
  • Added a new isCourseHeading property to NavReferenceBase.
  • Added a new GarminUnitType utility class.
  • Added additional members to the UnitsFuelSettingMode enum to cover more fuel types.
  • Added new allowRnpArApproaches option to GarminPrimaryFlightPlanRouteLoader.
  • Added a new option to Fms to specify the facility loader to use.
  • MapWaypointsLayer and MapProcedurePreviewLayer can now take a facility loader as an optional prop.
  • The following GarminMapBuilder steps now pass the facility loader saved to the map context under the MapSystemKeys.FacilityLoader key (if one exists) to the appropriate layers added by these steps: waypoints(), procPreview().
  • NextGenConnextMapBuilder, NextGenHsiMapBuilder, NextGenNavMapBuilder, NextGenNearestMapBuilder, NextGenProcMapBuilder, NextGenWaypointMapBuilder, and TrafficMapBuilder now support an option to specify the facility loader to use when building a map.

G3000

  • Added panel.xml support for configuring TAWS FIT alerting.
  • An instance of G3000BacklightPublisher is now added to the backplane of all instruments by default.
  • Changed default map airplane icon to a more appropriate generic airplane icon.
  • GtcList's class prop now supports ToggleableClassNameRecord.
  • Fixed a memory leak in GtcWaypointButton.
  • Added a panel.xml configuration option to specify the label text for the FMS navigation source as either "FMS" (default) or "GPS".
  • Fixed the index assigned to the FMS position system instance created for PFD 2.
  • Adjusted the default split mode message count limits for the PFD CAS display to guarantee that the display will not encroach upon other PFD elements.
  • Added a new renderWindow property to GtcList.
  • Added data-checklist attributes to various elements of the PFD AFCS status box.
  • Fixed the WT_G3000_ESP_Adjust_Input_Incr_Param_From_TAS model behavior template to be compatible with version 2 model behaviors.
  • Added panel.xml configuration support for a double-OAT display in the PFD bottom info panel.

G3X Touch

  • Added panel.xml support for configuring the fuel type used by the G3X. By default, the G3X will now use the fuel density given by the FUEL WEIGHT PER GALLON SimVar.
  • An instance of ElectricalPublisher is now added to the backplane on every instrument.
  • Added a new radiosDataProvider property to the plugin binder.
  • Adjusted the styling of focused UiTouchSlider components to have a thicker highlighted border by default.
  • Added logic to UiListItem to ensure that its designated focusable child component (if one exists) is always focused when the list item is focused and the child can be focused.
  • UiListDialog now supports programmatically setting the width of the dialog via the new dialogWidth option in UiListDialogParams.
  • Added a new G3XLoadingIcon component.
  • G3XNavMapBuilder, G3XNearestMapBuilder, G3XProcPreviewMapBuilder, G3XTrafficMapBuilder, and G3XWaypointMapBuilder now support an option to specify the facility loader to use when building a map.

MSFS Avionics Framework v2.0.7

07 Mar 19:18

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

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

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

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

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

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