msfs-avionics-mirror

MSFS Avionics Source Code Mirror

OTHER License

Downloads
6K
Stars
92
Committers
4

Bot releases are hidden (Show)

msfs-avionics-mirror - MSFS Avionics Framework 0.7.1 Latest Release

Published by mattnischan 9 months ago

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-mirror - MSFS Avionics Framework 0.7.0

Published by mattnischan 11 months ago

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-mirror - MSFS Avionics Framework 0.6.0

Published by mattnischan about 1 year ago

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-mirror - MSFS Avionics Framework 0.5.0

Published by mattnischan over 1 year ago

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 MapSystemWaypointsLayer was not initializing its nearest search filters properly.
  • Added new radial error topics to NavRadioEvents.
  • AbstractAutothrottle now supports targeting acceleration in lieu of directly targeting indicated airspeed.
  • Fixed a bug where APNavDirector and APBackCourseDirector would not deactivate from an active state when CDI source was not NAV if the nav-to-nav manager reported that LOC mode could be armed.
  • Fixed a bug in AeroMath.isaPressure() where the pressure returned at or below the minimum altitude was incorrect.
  • Adjusted AeroMath.isaPressure() so that the returned pressure values no longer have small discontinuities near the breakpoints for the different atmosphere layer boundaries.
  • Added new AeroMath.isaAltitude() method.
  • Fixed a bug where APFPADirector would activate with an erroneous target value.
  • Added new optional parameter to APVSDirector to allow specifying which increment to round to when getting the current vertical speed to set the selected vertical speed.
  • GameStateProvider now debounces any ingame events it gets by 2 frames before notifying subscribers, which should prevent erroneous ingame notifications after loading and before briefing starts.
  • APGSDirectorOptions now allows customization of desired closure rate, desired VS target, and min/max VS target.

GarminSDK

  • [Breaking Change] Refactored various PFD horizon display components.
  • [Breaking Change] Removed TCAS data from VsiDataProvider.
  • [Breaking Change] VerticalSpeedIndicator now uses TcasRaCommandDataProvider to get TCAS RA data.
  • CASDisplay now supports dynamic message counts.
  • Fixed bugs with pausing/resuming WindDataProvider before it is initialized.
  • Fixed a bug where MinimumsAlerter considered the radar altimeter system to be off-line when its state was undefined.
  • Fixed several issues in GpsReceiverSelector and FmsPositionSystemSelector.
  • GarminObsDirector now uses driveBank() instead of setBank() and supports custom bank rates.
  • GarminAPConfig now generates a HDG director that supports turn direction locking by default (reversal threshold of 331 degrees).
  • Added additional options to GarminAPConfigDirectorOptions for configuring default pitch/bank servo rates and HDG director turn reversal threshold.
  • GarminVNavManager2 is no longer forced into climb tracking mode when in the departure segment.
  • RollIndicator now supports ground/sky pointer options.
  • Added new getTocBocDetails() method to GarminVNavUtils.
  • Fixed various logic in GarminVNavManager2 around calculating the active VNAV waypoint.
  • Fixed a bug where GarminVNavManager2 would not calculate TOC/BOC details for missed approach constraints when the missed approach was manually activated before LNAV sequenced into the missed approach segment.
  • Fixed a bug where GarminVNavManager2 would not disarm/deactivate PATH when the VNAV tracking phase switched to a phase that did not allow tracking the descent path.
  • MapWaypointsLayer now displays RNAV-type intersections.
  • Added new TcasRaCommandDataProvider interface and DefaultTcasRaCommandDataProvider class.
  • HorizonDisplay now supports displaying TCAS RA pitch cues.

G3000

  • [Breaking Change] The MFD no longer parses a CasConfig object from panel.xml.
  • [Breaking Change] Changed NavIndicators to an interface. The implementing class is now NavIndicatorsCollection.
  • Renamed CAS to G3000FullCasDisplay. It is still exported under the CAS alias for backwards compatibility.
  • The <PfdLayout> panel.xml tag now supports inheritance and can be defined in global scope.
  • Added additional PFD layout panel.xml options to specify the use of the navigation status, NAV/DME info, and wind banners individually. The use-banners option is now an alias for setting all individual banner options.
  • Added the ability to customize what appears in the left-most position on the PFD bottom panel via panel.xml.
  • Fixed positioning and default message counts for PFD CAS displays to be compatible with the various PFD layout options.
  • Defined standard screen backlight simvars.
  • Added new G3000BacklightPublisher and G3000BacklightUtils classes.
  • Added GtcService instance to the GTC plugin binder.
  • Added support for GTC plugins to override the behavior of knob states, label bar text, and (non-view specific) interaction event handling.
  • Deprecated GtcDualKnobRotationState in favor of GtcDualKnobState.
  • Added facility loader and flight path calculator to all plugin binders.
  • Added nav indicators to GTC plugin binder.
  • A G3000GtcViewContext object is now passed to GTC plugins' registerViews() method. The object contains references to items used to create the base G3000 package's GTC views.
  • Added support for dual-cue flight directors.
  • Added panel.xml config option for displaying the PFD roll arc.
  • Added a panel.xml config option for roll indicator ground/sky pointer style.
  • Added missing exports for flight plan text inset-related classes.
msfs-avionics-mirror - MSFS Avionics Framework 0.4.0

Published by mattnischan over 1 year ago

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 negative values correctly.
  • Added useMinusSign and forceSign options to DurationDisplay.
  • Added new TcasAdvisoryDataProvider class.
  • The event_bus_topic_first_sub topic is no longer cached.
  • Added new imperial gallon fuel per hour unit (UnitType.IGPH_FUEL).
  • Add Waypoint data field type support.
  • MapWaypointRendererIconFactory and MapWaypointRendererLabelFactory are now allowed to return null.
  • Added surface type property to OneWayRunway.
  • RunwayUtils.getSurfaceCategory() now accepts OneWayRunway or RunwaySurfaceType as arguments.
  • Added new methods to RunwayUtils: getRunwayPairNameString(), getRunwayNumberPrimary(), and getRunwayNumberSecondary().
  • Fixed a bug in PatternPathStream where it would sometimes render a pattern past the end of a path.
  • Added new AirportUtils.tryGetRegionCode() method.
  • The pipe() method on Subscribable now supports map functions that accept the current value of the pipe's target subscribable as a second argument.
  • Fixed SubscribableMapFunctions.atFrequency().
  • Added new GPSSatComputer class.
  • MapOwnAirplaneLayer now supports dynamic icon size.
  • Added new ap_toga_hold topic to APEvents.
  • FacilityRepository now supports removing facilities by ICAO.
  • Added new event bus topics to FacilityRepositoryEvents for adding and removing facilities from FacilityRepository.
  • Added new engine fuel pump topics, more fuel tank topics, and fuel tank selector topics to EngineEvents.
  • Added new methods to FacilityUtils and UserFacilityUtils.
  • Added new size() method to FacilityRepository.
  • Added new antipode() method to GeoPointInterface.
  • Added new approach_supports_gp topic to VNavDataEvents to replace the old gp_available topic.
  • Fixed several bugs with flight path angle calculation and path smoothing in SmoothingPathCalculator.
  • Added new methods to VNavUtils.
  • Added new topics related to TOC/BOC to VNavEvents.
  • Fixed various logic in SmoothingPathCalculator related to VNAV-ineligible legs.
  • Added new IntersectionFacilityUtils class.
  • NearestIntersectionSubscription now supports the option to filter out terminal intersections when they duplicate a non-terminal intersection.
  • Added new FSComponent.shallowDestroy() utility function.
  • Added new MathUtils.lerpVector() method.
  • Added new properties to OneWayRunway: lighting, gradient, width, and elevationEnd.
  • DefaultUserSettingManager now attempts to reconcile existing setting state on other instruments on initialization instead of always initializing to the default setting values.
  • Added new LerpVectorLookupTable class.
  • Added support for the VIS facility type in FacilityRepository.
  • Added new AllExceptVisual facility search type.
  • Added additional ADF and marker beacon topics to NavComSimVars events.
  • LNavDirector now handles vector anticipation without sequencing to the next vector early.
  • Added new lnav_tracking_state topic to LNavEvents.
  • Added new LNavUtils class.
  • Resetting ArcTurnController will now also reset its smoothing filter.
  • Added support for changing the rate at which LinearServo drives a value after instantiation.
  • All lateral AP directors now scale their bank servo rates with sim rate.
  • Added new FlightPathUtils.getVectorTurnDirection() and FlightPathUtils.getVectorTurnRadius() methods.
  • Added new vnav_set_default_fpa topic to VNavControlEvents.
  • SmoothingPathCalculator now supports setting default FPA through vnav_set_default_fpa topic.
  • Autopilot now forces armed vertical modes to deactivate when the glidepath director activates.
  • Added new verticalDirectFpa property to VerticalFlightPlan.
  • Added new optional fpa property to SetVnavDirectToData.
  • Added additional Wait functions.
  • Fixed a bug where sometimes unsuspending while on a leg with an ingress transition would cause LNavDirector to track an inappropriate vector.
  • Fixed a bug with LNavDirector where it was impossible to manually suspend (including activating OBS mode) a leg that previously had an end-of-leg suspend applied to it.
  • RunwayUtils.getRunwayFacilityIcao() can now accept an airport ICAO as its first argument in place of an airport facility.
  • Changed the tracking logic of APGSDirector and APGPDirector to reduce oscillations at high ground speeds.
  • SmoothingPathCalculator now supports an optional function to define which altitude constraints to include in VNAV calculations.
  • Fixed a bug where CF leg flight path calculations would sometimes generate unreasonable starting turns.
  • Added new VNavUtils.getNextMaprTargetConstraint() method.
  • FlightPlanner no longer publishes the fplCalculated topic if the flight plan was deleted while calculate was running.
  • Autopilot now allows the VNAV manager to disarm FLC mode.
  • Changed the default behavior of APAltCapDirector to perform better with higher vertical speeds during capture.
  • Added additional TcasOperatingMode enum members: Off, Failed, and Test.
  • BingComponent, SynVisComponent, and MapSystem now supports the new JS Bing map terrain color API added in SU10.
  • BingComponent.createEarthColorsArray() now takes additional optional arguments defining the elevation range and number of terrain color steps to generate. The defaults will generate an array equivalent to the old implementation.
  • Added new method BingComponent.rgbToHexaColor().
  • BingComponent, MapBingLayer, and MapSystem now support custom weather colors.
  • Added new getRegionCode() and getRegionIdent() methods to NearestContext.
  • MapOwnAirplaneIconModule and MapOwnAirplaneLayer now support customizable icon orientations.
  • Added new MapOwnAirplaneIconOrientationController class for use with MapSystem.
  • APNavDirector now supports a configuration option to skip arming.
  • LNavDirector now supports a configuration option to skip arming.
  • Added new topics for actual (as opposed to indicated) plane attitude values (heading, pitch, roll) to AhrsEvents.
  • The fuel_total and fuel_total_weight topics now always provide (usable + unusable) fuel.
  • Added new fuel_usable_total and fuel_usable_total_weight topics to EngineEvents that provide usable fuel quantities.
  • AltitudeSelectManager now supports an option to transform intercepted SET events into INC/DEC (this was the default behavior, but now it can be disabled).
  • AltitudeSelectManager now supports optional custom altitude stops when incrementing/decrementing.
  • AltitudeSelectManager now supports pause/resume/reset logic.
  • DefaultUserSettingManager can now be instantiated as instrument-local manager. Instrument-local managers do not sync their setting values to or from other instruments.
  • The published is-tracking state of LNavDirector is now false if there is no valid vector for it to track.
  • LNavDirector now automatically unsuspends sequencing when there is no leg for it to track.
  • SynVisComponent now supports an optional delay before binding a Bing map on initialization.
  • Fixed a bug where FSComponent.visitNodes() could try to visit null/undefined nodes.
  • SimVarPublisher will now immediately publish a value if publishing is active when a topic is first subscribed to.
  • Added a new CssTransform API for generating CSS transform strings.
  • Added new subjects to MapDataIntegrityModule for tracking attitude and ADC data integrity.
  • MapBindingsController now supports multi-source bindings.
  • MapAltitudeArcLayer now hides the arc if GPS or ADC data are not available.
  • NumberFormatter now supports string caching via option.
  • Fixed several bugs in InterceptGreatCircleToPointBuilder that would cause it to calculate looping paths when not appropriate.
  • Added new trim angle topics to ControlSurfacesEvents.
  • Fixed the initial course selection logic for DF leg flight path calculations.
  • FacilityUtils.isFacilityType() now correctly handles intersection facilities with VOR/NDB ICAO strings.
  • DefaultFacilityWaypointCache now separates intersection facilities with VOR/NDB ICAO strings from their VOR/NDB counterparts.
  • Fixed a bug where MapProjection could enter an unrecoverable internal state when attempting to display large ranges near the poles.
  • Added new MapRotation enum member Undefined. MapRotationController will not set any specific rotation for this new mode.
  • Refactored the internals of SmoothingPathCalculator to make the class extensible.
  • Added the AeroMath utility class.
  • Added support for global plugins.
  • Added a new optional parameter shouldResync to the EventBus constructor to control whether the bus asks for all previously published and cached topics to be resynced to the new instance.
  • Added new WeightBalanceEvents interface, which defines weight and balance-related event topics, and its associated publisher WeightBalanceSimvarPublisher.
  • Added new Rankine temperature unit (UnitType.RANKINE).
  • Added length property to VerticalFlightPlan.
  • Fixed a bug where VNavUtils.getTocBocDetails() would not calculate a BOC if the climb would start once the last climb constraint was sequenced.
  • APFLCDirector now accepts an optional constructor argument to define whether to set the target FLC speed to the current IAS when the director is activated.
  • Added new GameVarPublisher class.
  • Added new fuel_center topic to EngineEvents.
  • Added new topics for slat data to ControlSurfacesEvents.
  • The useBuffer prop is no longer required to be true for MapCachedCanvasLayer.
  • Added new ApproachUtils class.
  • Added new getNextMaprTargetAltitude(), getNextClimbTargetAltitude(), getNextDescentTargetAltitude(), getNextDescentTargetConstraint() methods to VNavUtils.
  • Added new FuelSystemEvents interface, which defines fuel system-related event topics, and its associated publisher FuelSystemSimVarPublisher.
  • Added new BrakeEvents interface, which defines brake-related event topics, and its associated publisher BrakeSimvarPublisher.
  • Added new HydraulicsEvents interface, which defines hydraulics-related event topics, and its associated publisher HydraulicsPublisher.
  • Added new forEachSubscribedTopic() method to EventBus.
  • Added support for SimVarPublisher to accept topics with arbitrary indexes.
  • Refactored SoundServer to provide expanded functionality.
  • Added new CasSystem class and related supporting classes.
  • Added new AuralAlertSystem class and related supporting classes.
  • Added new ArrayUtils.shallowCopy() method.
  • Added new optional altitudeHoldDefaultAltitude property to APConfig to define the default altitude hold value to set during autopilot initialization.
  • Added new ambient_density topic to AdcEvents.
  • Added new slug weight unit (UnitType.SLUG).
  • Added new Density member to UnitFamily enum.
  • Added new density units (UnitType.SLUG_PER_FT3 and UnitType.KG_PER_M3).
  • Added new autopilot directors: APFPADirector, APHdgHoldDirector, APNoneDirector, APTogaPitchDirector, APTrkDirector, APTrkHoldDirector.
  • Added new AbstractAutothrottle, JetAutothrottle, and TurbopropAutothrottle classes.
  • Added new FlightTimerInstrument class and related supporting classes.
  • Added new topics for NAV3 and NAV4 radios to NavRadioEvents.
  • Added optional precision parameter to getLatDmsStr() and getLonDmsStr() in DmsFormatter.
  • Added reset() method to LinearServo.
  • Added support for the defaultLateralMode and defaultVerticalMode properties in APConfig to accept functions that return the desired default modes in place of static modes.
  • Added new DmsFormatter2 utility class.
  • Added new RadioFrequencyFormatter utility class.
  • Added new UUID utility class.
  • Added new API for implementing FMC/CDU-style instruments.

msfs-garminsdk

  • [Breaking Change] WeatherRadar now supports custom colors and gain.
  • [Breaking Change] GarminAPConfig now accepts an optional argument in its constructor to define configuration options for various directors.
  • [Breaking Change] Removed the BAROMETRIC, AP_NAV_SELECT_SET, and TOGGLE_GPS_DRIVES_NAV1 key intercepts from GarminAPStateManager.
  • [Breaking Change] The navigation data bar VSR field no longer supports GarminVNavManager.
  • [Breaking Change] Added new isPowered() and setPowered() methods to the TrafficSystem interface.
  • FmsUtils.buildVisualApproach() will now calculate the correct altitude constraint for the faf for any requested distance from the runway.
  • Fms.emptyPrimaryFlightPlan() and Fms.invertFlightPlan() no longer create off-route direct-to's.
  • Fixed a bug where removing a flight plan segment with Fms could sometimes throw an uncaught error.
  • Added new Fms.cancelDirectTo() method for canceling the active direct-to.
  • Added new GarminVNavUtils.shouldUseConstraint() method.
  • Added new GarminGoAroundManager class to handle things that should happen when GA mode is activated.
  • Added new MapTerrainWxSettingCompatManager class.
  • Added custom color support for Garmin map NEXRAD/Connext overlays.
  • Fixed several bugs in Fms where the flight plan would become corrupted when inserting an airway using an entry leg that is the target of a direct-to, or when removing an airway entry leg that is the target of a direct-to.
  • Enabled sub-pixel text positioning for MapRangeCompassLayer and HorizonLine.
  • MapTrackVectorLayer now hides the track vector if GPS or ADC data or both heading and attitude data are not available.
  • Fixed a bug where inserting a waypoint into an airway segment that immediately followed the departure or another airway segment would sometimes corrupt the flight plan.
  • Fixed a bug where inserting a hold into an airway would corrupt the flight plan.
  • Added new editHold() method to Fms to handle editing existing holds in the flight plan.
  • GarminFacilityWaypointCache now separates intersection facilities with VOR/NDB ICAO strings from their VOR/NDB counterparts.
  • Added new vnav_tracking_phase topic to VNavDataEvents.
  • Added new GarminVNavManager2 class to replace the old GarminVNavManager, which is now considered to be deprecated.
  • Added new VNavDataProvider interface and associated implementing class DefaultVNavDataProvider to provide a common interface from which to consume VNAV data.
  • Fixed a bug in Fms where on-route direct-to's were sometimes created with incorrect initial course and turn direction.
  • Improved the method by which Fms retrieves approach frequencies.
  • Added an optional isVisual parameter to FmsUtils.getApproaches().
  • Added new avionics systems classes: AoaSystem, FmsPositionSystem, GpsReceiverSystem, MarkerBeaconSystem, TrafficAvionicsSystem.
  • Added new classes for rendering various G3000/NXi-style PFD elements, including the AoA indicator, AFCS status box, HSI, marker beacon indicator, minimums display, navigation status box, vertical speed indicator, and wind display.
  • Added new classes for implementing a G3000/NXi-style softkey menu system.
  • Added new ImgTouchButton class.
  • Added new BgImgTouchButton class.
  • Added new TouchPad class.
  • Added new TouchSlider class.
  • Added new GarminTimerManager class.
  • Added new WaypointAlertComputer class.
  • Added new MinimumsDataProvider interface associated implementing class DefaultMinimumsDataProvider to provide a common interface from which to consume minimums data.
  • Added new WindDataProvider interface associated implementing class DefaultWindDataProvider to provide a common interface from which to consume computed wind data.
  • Added new CASDisplay class.
msfs-avionics-mirror - MSFS Avionics Framework - 0.3.0

Published by mattnischan about 2 years ago

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-mirror - MSFS Avionics Framework - 0.2.0

Published by mattnischan over 2 years ago

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.
  • [Breaking Change] Renamed APEvent topics to achieve a more consistent naming scheme.
  • [Breaking Change] XPDRInstrument now supports an arbitrary number of transponders. All transponder-related sim var event topics are now indexed.
  • [Breaking Change] Renamed NavEventsExtentions to NavRadioEvents and redefined the event topic names.
  • Added PressurizationPublisher.
  • Added RAT temperature to ADCPublisher.
  • Added ISA temperature to ADCPublisher.
  • Added ap_yd_engage and ap_yd_disengage events to APEvents for processing yaw director events.
  • ADC now publishes mach_number.
  • Added a set_signal_strength event to NavCom.
  • Added new topics for engine starter and combustions SimVars to EngineEvents.
  • Added kias to mach conversion factor event to ADCEvents.
  • Added new DecisionHeightManager class to handle the new DH/DA logic added in SU8, with unit switching capabilities.
  • Added pressure altitude ADC event.
  • Added new BaseInstrumentPublisher class.
  • Added nav_radio_active_mag_var event to NavRadioEvents.
  • Added support for course sync events to NavProcessor and NPConfig.

math

  • [Breaking Change] Transform2D.reflection() was renamed to Transform2D.toReflection().
  • [Breaking Change] Added new ReadonlyFloat64Array type and changed the vector math, geo, flight path calc, and map codebases to use ReadonlyFloat64Array where appropriate.
  • Added some pi-related constants to MathUtils.
  • Added lerp() method to MathUtils.
  • Added acceleration unit types.
  • Added new Transform3D class.
  • Fixed a bug in Transform2D with setting origin points in the .toTranslate/Scale/Rotation/Reflection methods.
  • Added new VecNMath class.

navigation

  • [Breaking Change] Renamed FacilityRespository to FacilityRepository.
  • [Breaking Change] The name, flags, and verticalData fields in LegDefinition are now readonly (including the fields inside verticalData, except for fpa, because it is a calculated field. This was done so that people won't change these fields expecting the changes to get picked up automatically. LegDefinitions should be mostly treated as immutable, and changes should only go through the appropriate FlightPlan functions, such as addLeg, removeLeg, and setVerticalData.
  • [Breaking Change] Changed name of FacilitySearchType.None to FacilitySearchType.All.
  • Added several runway length properties to OneWayRunway.
  • Added getAssociatedAirportIdent() static function to ICAO class.
  • FacilityRepository now maintains a k-d tree of user facilities.
  • FacilityLoader now supports nearest search for user facilities.
  • Created AdaptiveNearestSubscription to automatically size nearest subscriptions.
    • Renamed NearestSubscription to AbstractNearestSubscription.
    • Exposed NearestSubscripton as an interface rather than abstract class.
  • Added support for additional filtering via callback into NearestWaypointSubscription.
  • Added filter callback argument to NearestAirportSubscription constructor.

settings

  • Added new DeferredUserSettingManager class.
  • UserSetting now implements MutableSubscribable interface.

sub

  • Subscribable interface now requires an isSubscribable property.
  • Added ability to bind style attribute to ObjectSubject in JSX.
  • Added MutableSubscribable interface, which Subject, ComputedSubject, and ObjectSubject all implement.
  • AbstractSubscribable now implements the .map() method.
  • ComputedSubject now properly supports removing subs during a notify.
  • Added the ability to pipe values from a Subscribable to a MutableSubscribable.
  • Added new SubscribableSet interface and SetSubject class.
  • Added support for binding CSS class attribute to SubscribableSet via JSX.

traffic

  • [Breaking Change] Refactored TCAS to support resolution advisories.
  • TCAS now publishes TA/RA intruder counts.

utils

  • [Breaking Change] Moved SortedMappedSubscribableArray to the utils/datastructures/ directory.
  • Added new LerpLookupTable class.
  • Added new KdTree and GeoKdTree classes.

Miscellaneous

  • [Breaking Change] Substantially re-organized the SDK file structure.
    • Moved all math and geo-related files to their own top-level directories.
    • Moved all Subscribable and Subject-related files formerly found in utils/ to the sub/ top-level directory.
    • AbstractSubscribable and MappedSubject were moved into their own files.
    • Reorganized the utils/ directory, with some files moving to other locations and others placed into sub-directories.
    • Renamed the ui/ top-level directory to graphics/.
    • Moved HardwareUiControl.ts and HardwareUiControlList.ts to components/controls/.
    • Removed all files in the former ui/map/ directory.
    • Removed utils/Units.ts from the SDK. Please use the API found in math/NumberUnit.ts instead.
msfs-avionics-mirror - MSFS Avionics Framework - 0.1.0

Published by mattnischan over 2 years ago

Initial MSFS Avionics Framework release.