MSFS Avionics Framework 0.5.0
·
7 commits
to main
since this release
SDK
- [Breaking Change]
isFlightDirectorOn
andisFlightDirectorCoPilotOn
are now read-only outsideAPStateManager
. Use thesetFlightDirector()
method instead. - [Breaking Change] Added new
FMS_LOC
member toAPLateralModes
enum and newcreateFmsLocLateralDirector()
method toAPConfig
interface. - [Breaking Change]
NavComInstrument
no longer creates its own instance ofNavComSimVarPublisher
. - [Breaking Change]
NavProcessor
no longer creates its own instance ofNavProcSimVarPublisher
. - [Breaking Change]
APRadioNavInstrument
no longer creates its own instance ofNavProcSimVarPublisher
. - [Breaking Change]
APLvlDirector
now requires anAPValues
object to be passed to its constructor. - [Breaking Change] The
isToGaMode
option forAPLvlDirector
is now specified via an options object. - [Breaking Change] Changed the
ap_master_[engage/disengage]
andap_yd_[engage/disengage]
, and topics toap_master_[on/off]
andap_yd_[on/off]
, respectively. - [Breaking Change]
AbstractAutothrottle
now usesMultiExpSmoother
for smoothing speed and engine power. - [Breaking Change] Added new cross-track error parameter to
APNavDirectorInterceptFunc
. - Added new
getCurrentClimbConstraint()
,getNextDescentConstraintIndex()
,getNextClimbConstraintIndex()
, andgetNextMaprConstraintIndex()
methods toVNavUtils
. - Added new
AuralAlertSystemWarningAdapter
class. - Added new
autoEngageFd
andinitializeStateManagerOnFirstFlightPlanSync
options toAPConfig
. - Added new optional
drivePitch
anddriveBank
properties to thePlaneDirector
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 toAdcEvents
, providing ambient air density in slugs per cubic foot. - Added
SLUG
andKNOT_PER_SEC
units toUnitType
. - Added density and force units to
UnitType
. - Added
asUnit
utility toNumberUnitSubject
for creating a constant conversion to another unit. BasicAvionicsSystem
now supports binding power state to subscribables.- Added new
MathUtils.SQRT3
andMathUtils.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()
, andprojectCameraRelativeCoordinates()
methods toHorizonProjection
. - 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 variousVecMath
classes. - The various
VecSubject
classes now considerNaN
to be equal to itself. - Added new
HPA
,PercentOver100
,MetersPerSecondSquared
, andMillimetersWater
members toSimVarValueType
enum. - Added new
autobrake_switch_pos
andautobrake_active
topics toBrakeEvents
. - Added new
simRate
topic toClockEvents
. - 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 areboolean
orSubscribable<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 arestring
, orSubscribable<string>
. - Added type checking for JSX
ref
,style
, andclass
props on native HTML elements. - Fixed a bug where
AbstractNearestSubscription
would notify removals with the incorrect array index. - Added new
nav_radial_error
topic toNavProcSimVars
. - Fixed a bug where
SmoothingPathCalculator
did not write target altitudes to smoothed flat constraints. - Added new
SubscribableMapFunctions.or()
,SubscribableMapFunctions.and()
, andSubscribableMapFunctions.nor()
methods. - Added new
MathUtils.ceil()
andMathUtils.floor()
methods. - Added new
vectorAnticipationBankRate
anddisableAutoSuspendAtMissedApproachPoint
options toLNavDirectorOptions
. - Added new
verticalAngle
property toFlightPlanLeg
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
, andDateTimeFormatter
. 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
, orDateTimeFormatter
. - Added new
copyFrom()
method toFlightPlan
. - Added new indexed
payload_station_weight
topic toWeightBalanceEvents
. 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 toPidController
. PidController
no longer calculates an infinite/NaN derivative term whendt
is 0.NavComSimVarPublisher
now publishes all the topics that are published byNavProcSimVarPublisher
.- 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 setsAPValues.lateralActive
toAPLateralMode.NONE
andAPValues.verticalActive
toAPVerticalMode.NONE
when the lateral and vertical directors assigned to theNONE
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 aToggleableClassNameRecord
. - Added new
FSComponent.addCssClassesToRecord()
function. SmoothingPathCalculatorOptions
now has all optional properties.- Fixed an issue where
GNSSPublisher
was publishing incorrect values to thezulu_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
'sdrive()
method now takes in optional args to override timestamp and servo rate.- Added new
simRate
property toAPValues
. - All lateral autopilot directors now use
driveBank()
instead ofsetBank()
and support custom bank rates. APHdgDirector
andAPTrkDirector
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 to2 * Math.PI
. This brings it in line with the behavior ofCanvasRenderingContext2D
'sarc()
method.- Added new
AiPilotEvents
interface andAiPilotPublisher
class. - Added new
ap_disengage_status
topic toAPEvents
. - Added arbitrary index support to the
ap_heading_selected
,ap_altitude_selected
,ap_vs_selected
,ap_fpa_selected
,ap_ias_selected
, andap_mach_selected
topics inAPEvents
. - The
keyEventManager
property inAPStateManager
is now protected instead of private. - Added new
SubscribableMap
interface andMapSubject
class. - Fixed bugs where
CasRegistrationManager
andAuralAlertRegistrationManager
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()
andFlightPathUtils.getGreatCircleTangentToVector()
methods. - Fixed
SwitchLabel
so that the caret won't turn green when on the left side. - Added new
lskNotHandledThrowValue
,textInputFieldDisallowedDeleteThrowValue
andtextInputFieldParseFailThrowValue
options toFmcScreenOptions
. - Added new
MultiExpSmoother
class. - Added new
AmbientPublisher
class. - Added new
anti_ice_structural_ice_pct
topic toAntiIceEvents
. - Added new
lnav_is_awaiting_calc
topic toLNavEvents
. - Added new
getNextDescentConstraintIndex()
,getNextClimbConstraintIndex()
, andgetNextMaprConstraintIndex()
methods toVNavUtils
. - Added a pitch limit to
APVNavPathDirector
. - Added new optional
showTerminalWaypoints
parameter toNearestIntersectionSearchSession.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
andAPBackCourseDirector
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 usesTcasRaCommandDataProvider
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
andFmsPositionSystemSelector
. GarminObsDirector
now usesdriveBank()
instead ofsetBank()
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 toGarminVNavUtils
. - 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 andDefaultTcasRaCommandDataProvider
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 nowNavIndicatorsCollection
. - Renamed
CAS
toG3000FullCasDisplay
. It is still exported under theCAS
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
andG3000BacklightUtils
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 ofGtcDualKnobState
. - 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.