ICAROUS
All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Modules Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
larcfm::Daidalus Class Reference

#include <Daidalus.h>

Inheritance diagram for larcfm::Daidalus:
larcfm::GenericStateBands larcfm::ErrorReporter larcfm::GenericBands

Public Member Functions

 Daidalus ()
 
 Daidalus (const Alerter &alerter)
 
 Daidalus (const Detection3D *det, double T)
 
void set_DO_365A (bool type=true, bool sum=true)
 
void set_DO_365B (bool type=true, bool sum=true)
 
void set_Buffered_WC_DO_365 (bool type)
 
void set_CD3D ()
 
void set_TCASII ()
 
const TrafficStategetOwnshipState () const
 
const TrafficStategetAircraftStateAt (int idx) const
 
void setOwnshipState (const std::string &id, const Position &pos, const Velocity &vel, double time)
 
void setOwnshipState (const std::string &id, const Position &pos, const Velocity &vel)
 
int addTrafficState (const std::string &id, const Position &pos, const Velocity &vel, double time)
 
int addTrafficState (const std::string &id, const Position &pos, const Velocity &vel)
 
int aircraftIndex (const std::string &name) const
 
void resetOwnship (const std::string &id)
 
bool removeTrafficAircraft (const std::string &name)
 
void linearProjection (double offset)
 
bool hasOwnship () const
 
bool hasTraffic () const
 
int numberOfAircraft () const
 
int lastTrafficIndex () const
 
bool isLatLon () const
 
double getCurrentTime () const
 
double getCurrentTime (const std::string &u) const
 
const VelocitygetWindVelocityTo () const
 
Velocity getWindVelocityFrom () const
 
void setWindVelocityTo (const Velocity &wind_vector)
 
void setWindVelocityFrom (const Velocity &nwind_vector)
 
void setNoWind ()
 
void setAlerterIndex (int ac_idx, int alerter_idx)
 
void setAlerter (int ac_idx, const std::string &alerter)
 
int alerterIndexBasedOnAlertingLogic (int ac_idx)
 
int mostSevereAlertLevel (int ac_idx)
 
void setHorizontalPositionUncertainty (int ac_idx, double s_EW_std, double s_NS_std, double s_EN_std)
 
void setHorizontalPositionUncertainty (int ac_idx, double s_EW_std, double s_NS_std, double s_EN_std, const std::string &u)
 
void setVerticalPositionUncertainty (int ac_idx, double sz_std)
 
void setVerticalPositionUncertainty (int ac_idx, double sz_std, const std::string &u)
 
void setHorizontalVelocityUncertainty (int ac_idx, double v_EW_std, double v_NS_std, double v_EN_std)
 
void setHorizontalVelocityUncertainty (int ac_idx, double v_EW_std, double v_NS_std, double v_EN_std, const std::string &u)
 
void setVerticalSpeedUncertainty (int ac_idx, double vz_std)
 
void setVerticalSpeedUncertainty (int ac_idx, double vz_std, const std::string &u)
 
void resetUncertainty (int ac_idx)
 
const UrgencyStrategygetUrgencyStrategy () const
 
void setUrgencyStrategy (const UrgencyStrategy *strat)
 
TrafficState mostUrgentAircraft ()
 
void horizontalContours (std::vector< std::vector< Position > > &blobs, int ac_idx, int alert_level=0)
 
void horizontalContours (std::vector< std::vector< Position > > &blobs, int ac_idx, BandsRegion::Region region)
 
void horizontalHazardZone (std::vector< Position > &haz, int ac_idx, bool loss, bool from_ownship, int alert_level=0)
 
void horizontalHazardZone (std::vector< Position > &haz, int ac_idx, bool loss, bool from_ownship, BandsRegion::Region region)
 
int numberOfAlerters () const
 
const AlertergetAlerterAt (int i) const
 
int getAlerterIndex (std::string id) const
 
void clearAlerters ()
 
int addAlerter (const Alerter &alerter)
 
double getLookaheadTime () const
 
double getLookaheadTime (const std::string &u) const
 
double getLeftHorizontalDirection () const
 
double getLeftHorizontalDirection (const std::string &u) const
 
double getRightHorizontalDirection () const
 
double getRightHorizontalDirection (const std::string &u) const
 
double getMinHorizontalSpeed () const
 
double getMinHorizontalSpeed (const std::string &u) const
 
double getMaxHorizontalSpeed () const
 
double getMaxHorizontalSpeed (const std::string &u) const
 
double getMinVerticalSpeed () const
 
double getMinVerticalSpeed (const std::string &u) const
 
double getMaxVerticalSpeed () const
 
double getMaxVerticalSpeed (const std::string &u) const
 
double getMinAltitude () const
 
double getMinAltitude (const std::string &u) const
 
double getMaxAltitude () const
 
double getMaxAltitude (const std::string &u) const
 
double getBelowRelativeHorizontalSpeed () const
 
double getBelowRelativeHorizontalSpeed (const std::string &u) const
 
double getAboveRelativeHorizontalSpeed () const
 
double getAboveRelativeHorizontalSpeed (const std::string &u) const
 
double getBelowRelativeVerticalSpeed () const
 
double getBelowRelativeVerticalSpeed (const std::string &u) const
 
double getAboveRelativeVerticalSpeed () const
 
double getAboveRelativeVerticalSpeed (const std::string &u) const
 
double getBelowRelativeAltitude () const
 
double getBelowRelativeAltitude (const std::string &u) const
 
double getAboveRelativeAltitude () const
 
double getAboveRelativeAltitude (const std::string &u) const
 
double getHorizontalDirectionStep () const
 
double getHorizontalDirectionStep (const std::string &u) const
 
double getHorizontalSpeedStep () const
 
double getHorizontalSpeedStep (const std::string &u) const
 
double getVerticalSpeedStep () const
 
double getVerticalSpeedStep (const std::string &u) const
 
double getAltitudeStep () const
 
double getAltitudeStep (const std::string &u) const
 
double getHorizontalAcceleration () const
 
double getHorizontalAcceleration (const std::string &u) const
 
double getVerticalAcceleration () const
 
double getVerticalAcceleration (const std::string &u) const
 
double getTurnRate () const
 
double getTurnRate (const std::string &u) const
 
double getBankAngle () const
 
double getBankAngle (const std::string &u) const
 
double getVerticalRate () const
 
double getVerticalRate (std::string u) const
 
double getHorizontalNMAC () const
 
double getHorizontalNMAC (const std::string &u) const
 
double getVerticalNMAC () const
 
double getVerticalNMAC (const std::string &u) const
 
double getRecoveryStabilityTime () const
 
double getRecoveryStabilityTime (const std::string &u) const
 
double getHysteresisTime () const
 
double getHysteresisTime (const std::string &u) const
 
double getPersistenceTime () const
 
double getPersistenceTime (const std::string &u) const
 
bool isEnabledBandsPersistence () const
 
void setBandsPersistence (bool flag)
 
void enableBandsPersistence ()
 
void disableBandsPersistence ()
 
double getPersistencePreferredHorizontalDirectionResolution () const
 
double getPersistencePreferredHorizontalDirectionResolution (const std::string &u) const
 
double getPersistencePreferredHorizontalSpeedResolution () const
 
double getPersistencePreferredHorizontalSpeedResolution (const std::string &u) const
 
double getPersistencePreferredVerticalSpeedResolution () const
 
double getPersistencePreferredVerticalSpeedResolution (const std::string &u) const
 
double getPersistencePreferredAltitudeResolution () const
 
double getPersistencePreferredAltitudeResolution (const std::string &u) const
 
int getAlertingParameterM () const
 
int getAlertingParameterN () const
 
double getMinHorizontalRecovery () const
 
double getMinHorizontalRecovery (const std::string &u) const
 
double getMinVerticalRecovery () const
 
double getMinVerticalRecovery (const std::string &u) const
 
void setLookaheadTime (double t)
 
void setLookaheadTime (double t, const std::string &u)
 
void setLeftHorizontalDirection (double val)
 
void setLeftHorizontalDirection (double val, const std::string &u)
 
void setRightHorizontalDirection (double val)
 
void setRightHorizontalDirection (double val, const std::string &u)
 
void setMinHorizontalSpeed (double val)
 
void setMinHorizontalSpeed (double val, const std::string &u)
 
void setMaxHorizontalSpeed (double val)
 
void setMaxHorizontalSpeed (double val, const std::string &u)
 
void setMinVerticalSpeed (double val)
 
void setMinVerticalSpeed (double val, const std::string &u)
 
void setMaxVerticalSpeed (double val)
 
void setMaxVerticalSpeed (double val, const std::string &u)
 
void setMinAltitude (double val)
 
void setMinAltitude (double val, const std::string &u)
 
void setMaxAltitude (double val)
 
void setMaxAltitude (double val, const std::string &u)
 
void setBelowRelativeHorizontalSpeed (double val)
 
void setBelowRelativeHorizontalSpeed (double val, std::string u)
 
void setAboveRelativeHorizontalSpeed (double val)
 
void setAboveRelativeHorizontalSpeed (double val, const std::string &u)
 
void setBelowRelativeVerticalSpeed (double val)
 
void setBelowRelativeVerticalSpeed (double val, const std::string &u)
 
void setAboveRelativeVerticalSpeed (double val)
 
void setAboveRelativeVerticalSpeed (double val, const std::string &u)
 
void setBelowRelativeAltitude (double val)
 
void setBelowRelativeAltitude (double val, const std::string &u)
 
void setAboveRelativeAltitude (double val)
 
void setAboveRelativeAltitude (double val, const std::string &u)
 
void setBelowToMinRelativeHorizontalSpeed ()
 
void setAboveToMaxRelativeHorizontalSpeed ()
 
void setBelowToMinRelativeVerticalSpeed ()
 
void setAboveToMaxRelativeVerticalSpeed ()
 
void setBelowToMinRelativeAltitude ()
 
void setAboveToMaxRelativeAltitude ()
 
void disableRelativeHorizontalSpeedBands ()
 
void disableRelativeVerticalSpeedBands ()
 
void disableRelativeAltitude ()
 
void setHorizontalDirectionStep (double val)
 
void setHorizontalDirectionStep (double val, const std::string &u)
 
void setHorizontalSpeedStep (double val)
 
void setHorizontalSpeedStep (double val, const std::string &u)
 
void setVerticalSpeedStep (double val)
 
void setVerticalSpeedStep (double val, const std::string &u)
 
void setAltitudeStep (double val)
 
void setAltitudeStep (double val, const std::string &u)
 
void setHorizontalAcceleration (double val)
 
void setHorizontalAcceleration (double val, const std::string &u)
 
void setVerticalAcceleration (double val)
 
void setVerticalAcceleration (double val, const std::string &u)
 
void setTurnRate (double val)
 
void setTurnRate (double val, const std::string &u)
 
void setBankAngle (double val)
 
void setBankAngle (double val, const std::string &u)
 
void setVerticalRate (double val)
 
void setVerticalRate (double val, const std::string &u)
 
void setHorizontalNMAC (double val)
 
void setHorizontalNMAC (double val, const std::string &u)
 
void setVerticalNMAC (double val)
 
void setVerticalNMAC (double val, const std::string &u)
 
void setRecoveryStabilityTime (double t)
 
void setRecoveryStabilityTime (double t, const std::string &u)
 
void setHysteresisTime (double val)
 
void setPersistenceTime (double val)
 
void setPersistenceTime (double val, const std::string &u)
 
void setHysteresisTime (double val, const std::string &u)
 
void setPersistencePreferredHorizontalDirectionResolution (double val)
 
void setPersistencePreferredHorizontalDirectionResolution (double val, const std::string &u)
 
void setPersistencePreferredHorizontalSpeedResolution (double val)
 
void setPersistencePreferredHorizontalSpeedResolution (double val, const std::string &u)
 
void setPersistencePreferredVerticalSpeedResolution (double val)
 
void setPersistencePreferredVerticalSpeedResolution (double val, const std::string &u)
 
void setPersistencePreferredAltitudeResolution (double val)
 
void setPersistencePreferredAltitudeResolution (double val, const std::string &u)
 
void setAlertingMofN (int m, int n)
 
void setMinHorizontalRecovery (double val)
 
void setMinHorizontalRecovery (double val, const std::string &u)
 
void setMinVerticalRecovery (double val)
 
void setMinVerticalRecovery (double val, const std::string &u)
 
bool isEnabledConflictCriteria ()
 
void setConflictCriteria (bool flag)
 
void enableConflictCriteria ()
 
void disableConflictCriteria ()
 
bool isEnabledRecoveryCriteria ()
 
void setRecoveryCriteria (bool flag)
 
void enableRecoveryCriteria ()
 
void disableRecoveryCriteria ()
 
void setRepulsiveCriteria (bool flag)
 
void enableRepulsiveCriteria ()
 
void disableRepulsiveCriteria ()
 
bool isEnabledRecoveryHorizontalDirectionBands ()
 
bool isEnabledRecoveryHorizontalSpeedBands ()
 
bool isEnabledRecoveryVerticalSpeedBands ()
 
bool isEnabledRecoveryAltitudeBands ()
 
void setRecoveryBands (bool flag)
 
void enableRecoveryBands ()
 
void disableRecoveryBands ()
 
void setRecoveryHorizontalDirectionBands (bool flag)
 
void setRecoveryHorizontalSpeedBands (bool flag)
 
void setRecoveryVerticalSpeedBands (bool flag)
 
void setRecoveryAltitudeBands (bool flag)
 
bool isEnabledCollisionAvoidanceBands ()
 
void setCollisionAvoidanceBands (bool flag)
 
void enableCollisionAvoidanceBands ()
 
void disableCollisionAvoidanceBands ()
 
double getCollisionAvoidanceBandsFactor () const
 
void setCollisionAvoidanceBandsFactor (double val)
 
double getHorizontalPositionZScore () const
 
void setHorizontalPositionZScore (double val)
 
double getHorizontalVelocityZScoreMin () const
 
void setHorizontalVelocityZScoreMin (double val)
 
double getHorizontalVelocityZScoreMax () const
 
void setHorizontalVelocityZScoreMax (double val)
 
double getHorizontalVelocityZDistance () const
 
double getHorizontalVelocityZDistance (std::string u) const
 
void setHorizontalVelocityZDistance (double val)
 
void setHorizontalVelocityZDistance (double val, const std::string &u)
 
double getVerticalPositionZScore () const
 
void setVerticalPositionZScore (double val)
 
double getVerticalSpeedZScore () const
 
void setVerticalSpeedZScore (double val)
 
double getHorizontalContourThreshold () const
 
double getHorizontalContourThreshold (std::string u) const
 
void setHorizontalContourThreshold (double val)
 
void setHorizontalContourThreshold (double val, const std::string &u)
 
bool isActiveDTALogic ()
 
bool isActiveDTASpecialManeuverGuidance ()
 
bool isDisabledDTALogic () const
 
bool isEnabledDTALogicWithHorizontalDirRecovery () const
 
bool isEnabledDTALogicWithoutHorizontalDirRecovery () const
 
void disableDTALogic ()
 
void enableDTALogicWithHorizontalDirRecovery ()
 
void enableDTALogicWithoutHorizontalDirRecovery ()
 
const PositiongetDTAPosition () const
 
void setDTALatitude (double lat)
 
void setDTALatitude (double lat, const std::string &ulat)
 
void setDTALongitude (double lon)
 
void setDTALongitude (double lon, const std::string &ulon)
 
double getDTARadius () const
 
double getDTARadius (const std::string &u) const
 
void setDTARadius (double val)
 
void setDTARadius (double val, const std::string &u)
 
double getDTAHeight () const
 
double getDTAHeight (const std::string &u) const
 
void setDTAHeight (double val)
 
void setDTAHeight (double val, const std::string &u)
 
int getDTAAlerter () const
 
void setDTAAlerter (int alerter)
 
void setAlertingLogic (bool ownship_centric)
 
void setOwnshipCentricAlertingLogic ()
 
void setIntruderCentricAlertingLogic ()
 
bool isAlertingLogicOwnshipCentric () const
 
BandsRegion::Region getCorrectiveRegion () const
 
void setCorrectiveRegion (BandsRegion::Region val)
 
int correctiveAlertLevel (int alerter_idx)
 
int maxAlertLevel () const
 
void setInstantaneousBands ()
 
void setKinematicBands (bool type)
 
void disableHysteresis ()
 
bool loadFromFile (const std::string &file)
 
bool saveToFile (const std::string &file)
 
void setDaidalusParameters (const DaidalusParameters &parameters)
 
void setParameterData (const ParameterData &p)
 
const ParameterData getParameterData ()
 
std::string getUnitsOf (const std::string &key) const
 
void setAbsoluteHorizontalDirectionBands (double min, double max)
 
void setAbsoluteHorizontalDirectionBands (double min, double max, const std::string &u)
 
const DaidalusCoregetCore ()
 
void clearHysteresis ()
 
void clear ()
 
void reset ()
 
void conflictBandsAircraft (std::vector< std::string > &acs, int region)
 
void conflictBandsAircraft (std::vector< std::string > &acs, BandsRegion::Region region)
 
Interval timeIntervalOfConflict (int region)
 
Interval timeIntervalOfConflict (BandsRegion::Region region)
 
int horizontalDirectionBandsLength ()
 
void forceHorizontalDirectionBandsComputation ()
 
Interval horizontalDirectionIntervalAt (int i)
 
Interval horizontalDirectionIntervalAt (int i, const std::string &u)
 
BandsRegion::Region horizontalDirectionRegionAt (int i)
 
int indexOfHorizontalDirection (double dir)
 
int indexOfHorizontalDirection (double dir, const std::string &u)
 
BandsRegion::Region regionOfHorizontalDirection (double dir)
 
BandsRegion::Region regionOfHorizontalDirection (double dir, const std::string &u)
 
double lastTimeToHorizontalDirectionManeuver (const TrafficState &ac)
 
double lastTimeToHorizontalDirectionManeuver (int ac_idx)
 
double lastTimeToHorizontalDirectionManeuver (int ac_idx, const std::string &u)
 
RecoveryInformation horizontalDirectionRecoveryInformation ()
 
void peripheralHorizontalDirectionBandsAircraft (std::vector< std::string > &acs, int region)
 
void peripheralHorizontalDirectionBandsAircraft (std::vector< std::string > &acs, BandsRegion::Region region)
 
double horizontalDirectionResolution (bool dir)
 
double horizontalDirectionResolution (bool dir, const std::string &u)
 
double horizontalDirectionRawResolution (bool dir)
 
double horizontalDirectionRawResolution (bool dir, const std::string &u)
 
bool preferredHorizontalDirectionRightOrLeft ()
 
int horizontalSpeedBandsLength ()
 
void forceHorizontalSpeedBandsComputation ()
 
Interval horizontalSpeedIntervalAt (int i)
 
Interval horizontalSpeedIntervalAt (int i, const std::string &u)
 
BandsRegion::Region horizontalSpeedRegionAt (int i)
 
int indexOfHorizontalSpeed (double gs)
 
int indexOfHorizontalSpeed (double gs, const std::string &u)
 
BandsRegion::Region regionOfHorizontalSpeed (double gs)
 
BandsRegion::Region regionOfHorizontalSpeed (double gs, const std::string &u)
 
double lastTimeToHorizontalSpeedManeuver (const TrafficState &ac)
 
double lastTimeToHorizontalSpeedManeuver (int ac_idx)
 
double lastTimeToHorizontalSpeedManeuver (int ac_idx, const std::string &u)
 
RecoveryInformation horizontalSpeedRecoveryInformation ()
 
void peripheralHorizontalSpeedBandsAircraft (std::vector< std::string > &acs, int region)
 
void peripheralHorizontalSpeedBandsAircraft (std::vector< std::string > &acs, BandsRegion::Region region)
 
double horizontalSpeedResolution (bool dir)
 
double horizontalSpeedResolution (bool dir, const std::string &u)
 
double horizontalSpeedRawResolution (bool dir)
 
double horizontalSpeedRawResolution (bool dir, const std::string &u)
 
bool preferredHorizontalSpeedUpOrDown ()
 
int verticalSpeedBandsLength ()
 
void forceVerticalSpeedBandsComputation ()
 
Interval verticalSpeedIntervalAt (int i)
 
Interval verticalSpeedIntervalAt (int i, const std::string &u)
 
BandsRegion::Region verticalSpeedRegionAt (int i)
 
int indexOfVerticalSpeed (double vs)
 
int indexOfVerticalSpeed (double vs, const std::string &u)
 
BandsRegion::Region regionOfVerticalSpeed (double vs)
 
BandsRegion::Region regionOfVerticalSpeed (double vs, const std::string &u)
 
double lastTimeToVerticalSpeedManeuver (const TrafficState &ac)
 
double lastTimeToVerticalSpeedManeuver (int ac_idx)
 
double lastTimeToVerticalSpeedManeuver (int ac_idx, const std::string &u)
 
RecoveryInformation verticalSpeedRecoveryInformation ()
 
void peripheralVerticalSpeedBandsAircraft (std::vector< std::string > &acs, int region)
 
void peripheralVerticalSpeedBandsAircraft (std::vector< std::string > &acs, BandsRegion::Region region)
 
double verticalSpeedResolution (bool dir)
 
double verticalSpeedResolution (bool dir, const std::string &u)
 
double verticalSpeedRawResolution (bool dir)
 
double verticalSpeedRawResolution (bool dir, const std::string &u)
 
bool preferredVerticalSpeedUpOrDown ()
 
int altitudeBandsLength ()
 
void forceAltitudeBandsComputation ()
 
Interval altitudeIntervalAt (int i)
 
Interval altitudeIntervalAt (int i, const std::string &u)
 
BandsRegion::Region altitudeRegionAt (int i)
 
int indexOfAltitude (double alt)
 
int indexOfAltitude (double alt, const std::string &u)
 
BandsRegion::Region regionOfAltitude (double alt)
 
BandsRegion::Region regionOfAltitude (double alt, const std::string &u)
 
double lastTimeToAltitudeManeuver (const TrafficState &ac)
 
double lastTimeToAltitudeManeuver (int ac_idx)
 
double lastTimeToAltitudeManeuver (int ac_idx, const std::string &u)
 
RecoveryInformation altitudeRecoveryInformation ()
 
void peripheralAltitudeBandsAircraft (std::vector< std::string > &acs, int region)
 
void peripheralAltitudeBandsAircraft (std::vector< std::string > &acs, BandsRegion::Region region)
 
double altitudeResolution (bool dir)
 
double altitudeResolution (bool dir, const std::string &u)
 
double altitudeRawResolution (bool dir)
 
double altitudeRawResolution (bool dir, const std::string &u)
 
bool preferredAltitudeUpOrDown ()
 
int alertLevel (int ac_idx, int turning, int accelerating, int climbing)
 
int alertLevel (int ac_idx)
 
ConflictData violationOfAlertThresholds (int ac_idx, int alert_level)
 
ConflictData violationOfAlertThresholds (int ac_idx, BandsRegion::Region region)
 
ConflictData violationOfCorrectiveThresholds (int ac_idx)
 
double timeToCorrectiveVolume (int ac_idx)
 
BandsRegion::Region regionOfAlertLevel (int ac_idx, int alert_level)
 
int alertLevelOfRegion (int ac_idx, int region)
 
int alertLevelOfRegion (int ac_idx, BandsRegion::Region region)
 
double currentHorizontalSeparation (int ac_idx) const
 
double currentHorizontalSeparation (int ac_idx, const std::string &u) const
 
double currentVerticalSeparation (int ac_idx) const
 
double currentVerticalSeparation (int ac_idx, const std::string &u) const
 
double horizontalClosureRate (int ac_idx) const
 
double horizontalClosureRate (int ac_idx, const std::string &u) const
 
double verticalClosureRate (int ac_idx) const
 
double verticalClosureRate (int ac_idx, const std::string &u) const
 
double predictedHorizontalMissDistance (int ac_idx) const
 
double predictedHorizontalMissDistance (int ac_idx, const std::string &u) const
 
double predictedVerticalMissDistance (int ac_idx) const
 
double predictedVerticalMissDistance (int ac_idx, const std::string &u) const
 
double timeToHorizontalClosestPointOfApproach (int ac_idx) const
 
double timeToHorizontalClosestPointOfApproach (int ac_idx, const std::string &u) const
 
double distanceAtHorizontalClosestPointOfApproach (int ac_idx) const
 
double distanceAtHorizontalClosestPointOfApproach (int ac_idx, const std::string &u) const
 
double timeToCoAltitude (int ac_idx) const
 
double timeToCoAltitude (int ac_idx, const std::string &u) const
 
double modifiedTau (int ac_idx, double DMOD) const
 
double modifiedTau (int ac_idx, double DMOD, const std::string &DMODu, const std::string &u) const
 
std::string outputStringAircraftStates () const
 
std::string rawString () const
 
std::string toString () const
 
std::string outputStringInfo ()
 
std::string outputStringAlerting ()
 
std::string outputStringDirectionBands ()
 
std::string outputStringHorizontalSpeedBands ()
 
std::string outputStringVerticalSpeedBands ()
 
std::string outputStringAltitudeBands ()
 
std::string outputStringLastTimeToManeuver ()
 
std::string outputString ()
 
std::string toPVS (bool parameters)
 
std::string toPVS ()
 
bool hasError () const
 
bool hasMessage () const
 
std::string getMessage ()
 
std::string getMessageNoClear () const
 
virtual void setOwnship (const std::string &id, const Position &pos, const Velocity &vel)
 
virtual void setOwnship (const Position &pos, const Velocity &vel)
 
void addTraffic (const std::string &id, const Position &pos, const Velocity &vel)
 
void addTraffic (const Position &pos, const Velocity &vel)
 
int alerting (int ac_idx)
 
virtual void setMaxGroundSpeed (double gs, const std::string &unit)
 
virtual double getMaxGroundSpeed (const std::string &unit) const
 
virtual int trackLength ()
 
virtual Interval track (int i, const std::string &unit)
 
virtual BandsRegion::Region trackRegion (int i)
 
virtual BandsRegion::Region regionOfTrack (double trk, const std::string &unit)
 
virtual int groundSpeedLength ()
 
virtual Interval groundSpeed (int i, const std::string &unit)
 
virtual BandsRegion::Region groundSpeedRegion (int i)
 
virtual BandsRegion::Region regionOfGroundSpeed (double gs, const std::string &unit)
 
virtual int verticalSpeedLength ()
 
virtual Interval verticalSpeed (int i, const std::string &unit)
 
virtual BandsRegion::Region verticalSpeedRegion (int i)
 

Static Public Member Functions

static std::string release ()
 

Private Member Functions

void stale_bands ()
 

Private Attributes

ErrorLog error
 
DaidalusCore core_
 
DaidalusDirBands hdir_band_
 
DaidalusHsBands hs_band_
 
DaidalusVsBands vs_band_
 
DaidalusAltBands alt_band_
 

Detailed Description

Objects of class "Daidalus" compute the conflict bands using kinematic single-maneuver projections of the ownship and linear preditions of (multiple) traffic aircraft positions. The bands consist of ranges of guidance maneuvers: direction angles, horizontal speeds, vertical speeds, and altitude.

An assumption of the bands information is that the traffic aircraft do not maneuver. If the ownship immediately executes a NONE guidance maneuver, then the new path is conflict free (within a lookahead time of the parameter). If the ownship immediately executes a NEAR/MID/FAR guidance maneuver and no traffic aircraft maneuvers, then there will corresponding alert within the corresponding alerting level thresholds.

If recovery bands are set and the ownship is in a violation path, loss of separation recovery bands and recovery times are computed for each type of maneuver. If the ownship immediately executes a RECOVERY guidance maneuver, then the new path is conflict-free after the recovery time. Furthermore, the recovery time is the minimum time for which there exists a kinematic conflict-free maneuver in the future.

Note that in the case of geodetic coordinates this version of bands performs an internal projection of the coordinates and velocities into the Euclidean frame (see Util/Projection). Accuracy may be reduced if the traffic plans involve any segments longer than Util.Projection.projectionConflictRange(lat,acc), and an error will be logged if the distance between traffic and ownship exceeds Util.Projection.projectionMaxRange() at any point in the lookahead range.

Disclaimers: The formal proofs of the core algorithms use real numbers, however these implementations use floating point numbers, so numerical differences could result. In addition, the geodetic computations include certain inaccuracies, especially near the poles.

The basic usage is

Daidalus daa = new Daidalus();
daa.loadFromFile(<configurationfile>);

...
daa.setOwnshipState(position of ownship, velocity of ownship);
daa.addTrafficState(position of (one) traffic aircraft, velocity of traffic);
daa.addTrafficState(position of (another) traffic aircraft, velocity of traffic);
...add other traffic aircraft...

for (int i = 0; i < daa.horizontalDirectionBandsLength(); i++ ) {
   interval = daa.horizontalDirectionIntervalAt(i);
   lower_ang = intrval.low;
   upper_ang = intrval.up;
   regionType = daa.horizontalDirectionRegionAt(i);
   ..do something with this information..
}

...similar for horizontal speed and vertical speed...

Constructor & Destructor Documentation

◆ Daidalus() [1/3]

larcfm::Daidalus::Daidalus ( )

Construct an empty Daidalus object. NOTE: This object doesn't have any alert configured. Alerters can be configured either programmatically, set_DO_365B() or via a configuration file with the method loadFromFile(configurationfile)

◆ Daidalus() [2/3]

larcfm::Daidalus::Daidalus ( const Alerter alerter)

Construct a Daidalus object with initial alerter.

◆ Daidalus() [3/3]

larcfm::Daidalus::Daidalus ( const Detection3D det,
double  T 
)

Construct a Daidalus object with the default parameters and one alerter with the given detector and T (in seconds) as the alerting time, early alerting time, and lookahead time.

Member Function Documentation

◆ addAlerter()

int larcfm::Daidalus::addAlerter ( const Alerter alerter)

Add alerter (if id of alerter already exists, replaces alerter with new one). Return index of added alerter

Add alert thresholds

◆ addTraffic() [1/2]

void larcfm::Daidalus::addTraffic ( const Position pos,
const Velocity vel 
)
inline

@Deprecated Use addTrafficState instead Add traffic state at current time. If it's the first aircraft, this aircraft is set as the ownship. Name of aircraft is AC_n, where n is the index of the aicraft

Parameters
posAircraft's position
velAircraft's ground velocity Same function as addTrafficState, but it doesn't return index of added traffic.

◆ addTraffic() [2/2]

void larcfm::Daidalus::addTraffic ( const std::string &  id,
const Position pos,
const Velocity vel 
)
inlinevirtual

@Deprecated Add traffic state at current time. If it's the first aircraft, this aircraft is set as the ownship.

Parameters
idAircraft's identifier
posAircraft's position
velAircraft's ground velocity Same function as addTrafficState, but it doesn't return index of added traffic. This is neeeded for compatibility with GenericBands

Implements larcfm::GenericStateBands.

◆ addTrafficState() [1/2]

int larcfm::Daidalus::addTrafficState ( const std::string &  id,
const Position pos,
const Velocity vel 
)

Add traffic state at current time. If it's the first aircraft, this aircraft is set as the ownship.

Parameters
idAircraft's identifier
posAircraft's position
velAircraft's ground velocity
Returns
Aircraft's index

◆ addTrafficState() [2/2]

int larcfm::Daidalus::addTrafficState ( const std::string &  id,
const Position pos,
const Velocity vel,
double  time 
)

Add traffic state at given time. If time is different from current time, traffic state is projected, past or future, into current time. If it's the first aircraft, this aircraft is set as the ownship.

Parameters
idAircraft's identifier
posAircraft's position
velAircraft's ground velocity
timeTime stamp of aircraft's state
Returns
Aircraft's index

◆ aircraftIndex()

int larcfm::Daidalus::aircraftIndex ( const std::string &  name) const

Get index of aircraft with given name. Return -1 if no such index exists

◆ alerterIndexBasedOnAlertingLogic()

int larcfm::Daidalus::alerterIndexBasedOnAlertingLogic ( int  ac_idx)

Return alert index used for the traffic aircraft at index ac_idx. The alert index depends on alerting logic. If ownship centric, it returns the alert index of ownship. Otherwise, it returns the alert index of the traffic aircraft at ac_idx.

◆ alerting()

int larcfm::Daidalus::alerting ( int  ac_idx)
inline

@Deprecated Use alertLevel instead

◆ alertLevel() [1/2]

int larcfm::Daidalus::alertLevel ( int  ac_idx)

Computes alert level of ownship and aircraft at index idx. The number 0 means no alert. A negative number means that aircraft index is not valid.

◆ alertLevel() [2/2]

int larcfm::Daidalus::alertLevel ( int  ac_idx,
int  turning,
int  accelerating,
int  climbing 
)

Computes alerting type of ownship and aircraft at index ac_idx for current aircraft states. The number 0 means no alert. A negative number means that aircraft index is not valid. When the alerter object has been configured to consider ownship maneuvers, i.e., using spread values, the alerting logic could also use information about the ownship turning, accelerating, and climbing status as follows:

  • turning < 0: ownship is turning left, turning > 0: ownship is turning right, turning = 0: do not make any turning assumption about the ownship.
  • accelerating < 0: ownship is decelerating, accelerating > 0: ownship is accelerating, accelerating = 0: do not make any accelerating assumption about the ownship.
  • climbing < 0: ownship is descending, climbing > 0: ownship is climbing, climbing = 0: do not make any climbing assumption about the ownship.

◆ alertLevelOfRegion() [1/2]

int larcfm::Daidalus::alertLevelOfRegion ( int  ac_idx,
BandsRegion::Region  region 
)
Returns
alert_level corresponding to a given region for a particular aircraft. This function first finds the alerter for this aircraft, based on ownship/intruder-centric logic, then returns the configured region for the region. It returns -1 if the aircraft or its alerter are invalid.

◆ alertLevelOfRegion() [2/2]

int larcfm::Daidalus::alertLevelOfRegion ( int  ac_idx,
int  region 
)
Returns
alert_level corresponding to a given region for a particular aircraft. This function first finds the alerter for this aircraft, based on ownship/intruder-centric logic, then returns the configured region for the region. It returns -1 if the aircraft or the alert level are invalid. 0 = NONE, 1 = FAR, 2 = MID, 3 = NEAR.

◆ altitudeBandsLength()

int larcfm::Daidalus::altitudeBandsLength ( )
Returns
the number of altitude band intervals, negative if the ownship has not been set.

◆ altitudeIntervalAt() [1/2]

Interval larcfm::Daidalus::altitudeIntervalAt ( int  i)
Returns
the i-th interval, in internal units [m], of the computed altitude bands.
Parameters
iindex

◆ altitudeIntervalAt() [2/2]

Interval larcfm::Daidalus::altitudeIntervalAt ( int  i,
const std::string &  u 
)
Returns
the i-th interval, in specified units [u], of the computed altitude bands.
Parameters
iindex
uunits

◆ altitudeRawResolution() [1/2]

double larcfm::Daidalus::altitudeRawResolution ( bool  dir)

Compute altitude raw resolution maneuver for given direction. Raw resolution is the resolution without persistence @parameter dir is up (true)/down (false) of ownship current altitude

Returns
altitude resolution in internal units [m] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ altitudeRawResolution() [2/2]

double larcfm::Daidalus::altitudeRawResolution ( bool  dir,
const std::string &  u 
)

Compute altitude raw resolution maneuver for given direction. Raw resolution is the resolution without persistence @parameter dir is up (true)/down (false) of ownship current altitude @parameter u units

Returns
altitude resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ altitudeRecoveryInformation()

RecoveryInformation larcfm::Daidalus::altitudeRecoveryInformation ( )
Returns
recovery information for altitude speed bands.

◆ altitudeRegionAt()

BandsRegion::Region larcfm::Daidalus::altitudeRegionAt ( int  i)
Returns
the i-th region of the computed altitude bands.
Parameters
iindex

◆ altitudeResolution() [1/2]

double larcfm::Daidalus::altitudeResolution ( bool  dir)

Compute altitude resolution maneuver for given direction. @parameter dir is up (true)/down (false) of ownship current altitude

Returns
altitude resolution in internal units [m] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ altitudeResolution() [2/2]

double larcfm::Daidalus::altitudeResolution ( bool  dir,
const std::string &  u 
)

Compute altitude resolution maneuver for given direction. @parameter dir is up (true)/down (false) of ownship current altitude @parameter u units

Returns
altitude resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ clear()

void larcfm::Daidalus::clear ( )
virtual

Clear ownship and traffic state data from this object. IMPORTANT: This method reset cache and hysteresis parameters.

Implements larcfm::GenericBands.

◆ clearAlerters()

void larcfm::Daidalus::clearAlerters ( )

Clear all alert thresholds

◆ clearHysteresis()

void larcfm::Daidalus::clearHysteresis ( )

Clear hysteresis data

◆ conflictBandsAircraft() [1/2]

void larcfm::Daidalus::conflictBandsAircraft ( std::vector< std::string > &  acs,
BandsRegion::Region  region 
)

Compute in acs list of aircraft identifiers contributing to conflict bands for given conflict bands region.

◆ conflictBandsAircraft() [2/2]

void larcfm::Daidalus::conflictBandsAircraft ( std::vector< std::string > &  acs,
int  region 
)

Compute in acs list of aircraft identifiers contributing to conflict bands for given conflict bands region. 1 = FAR, 2 = MID, 3 = NEAR.

◆ correctiveAlertLevel()

int larcfm::Daidalus::correctiveAlertLevel ( int  alerter_idx)
Parameters
alerter_idxIndice of an alerter (starting from 1)
Returns
corrective level of alerter at alerter_idx. The corrective level is the first alert level that has a region equal to or more severe than corrective_region. Return -1 if alerter_idx is out of range of if there is no corrective alert level for this alerter.

◆ currentHorizontalSeparation() [1/2]

double larcfm::Daidalus::currentHorizontalSeparation ( int  ac_idx) const

Returns current horizontal separation, in internal units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ currentHorizontalSeparation() [2/2]

double larcfm::Daidalus::currentHorizontalSeparation ( int  ac_idx,
const std::string &  u 
) const

Returns current horizontal separation, in given units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ currentVerticalSeparation() [1/2]

double larcfm::Daidalus::currentVerticalSeparation ( int  ac_idx) const

Returns current vertical separation, in internal units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ currentVerticalSeparation() [2/2]

double larcfm::Daidalus::currentVerticalSeparation ( int  ac_idx,
const std::string &  u 
) const

Returns current vertical separation, in given units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ disableBandsPersistence()

void larcfm::Daidalus::disableBandsPersistence ( )

Disable bands persistence

◆ disableCollisionAvoidanceBands()

void larcfm::Daidalus::disableCollisionAvoidanceBands ( )

Disable collision avoidance bands.

◆ disableConflictCriteria()

void larcfm::Daidalus::disableConflictCriteria ( )

Disable repulsive criteria for conflict bands.

◆ disableDTALogic()

void larcfm::Daidalus::disableDTALogic ( )

Disable DAA Terminal Area (DTA) logic

◆ disableHysteresis()

void larcfm::Daidalus::disableHysteresis ( )

Disable hysteresis parameters

◆ disableRecoveryBands()

void larcfm::Daidalus::disableRecoveryBands ( )

Disable all recovery bands for direction, horizontal speed, vertical speed, and altitude.

◆ disableRecoveryCriteria()

void larcfm::Daidalus::disableRecoveryCriteria ( )

Disable repulsive criteria for recovery bands.

◆ disableRelativeAltitude()

void larcfm::Daidalus::disableRelativeAltitude ( )

Disable relative altitude bands

◆ disableRelativeHorizontalSpeedBands()

void larcfm::Daidalus::disableRelativeHorizontalSpeedBands ( )

Disable relative horizontal speed bands

◆ disableRelativeVerticalSpeedBands()

void larcfm::Daidalus::disableRelativeVerticalSpeedBands ( )

Disable relative vertical speed bands

◆ disableRepulsiveCriteria()

void larcfm::Daidalus::disableRepulsiveCriteria ( )

Disable repulsive criteria for conflict and recovery bands.

◆ distanceAtHorizontalClosestPointOfApproach() [1/2]

double larcfm::Daidalus::distanceAtHorizontalClosestPointOfApproach ( int  ac_idx) const

Returns distance, in internal units, at horizontal closest point of approach with aircraft at index ac_idx, assuming straight line trajectory. If aircraft are diverging, the returned distance is current horizontal separation. Returns NaN if aircraft index is not valid

◆ distanceAtHorizontalClosestPointOfApproach() [2/2]

double larcfm::Daidalus::distanceAtHorizontalClosestPointOfApproach ( int  ac_idx,
const std::string &  u 
) const

Returns distance, in given units, at horizontal closest point of approach with aircraft at index ac_idx, assuming straight line trajectory. If aircraft are diverging, the returned distance is current horizontal separation. Returns NaN if aircraft index is not valid

◆ enableBandsPersistence()

void larcfm::Daidalus::enableBandsPersistence ( )

Enable bands persistence

◆ enableCollisionAvoidanceBands()

void larcfm::Daidalus::enableCollisionAvoidanceBands ( )

Enable collision avoidance bands.

◆ enableConflictCriteria()

void larcfm::Daidalus::enableConflictCriteria ( )

Enable repulsive criteria for conflict bands.

◆ enableDTALogicWithHorizontalDirRecovery()

void larcfm::Daidalus::enableDTALogicWithHorizontalDirRecovery ( )

Enable DAA Terminal Area (DTA) logic with horizontal direction recovery guidance, i.e., horizontal direction recovery is fully enabled, but vertical recovery blocks down resolutions when alert is higher than corrective. NOTE: When DTA logic is enabled, DAIDALUS automatically switches to DTA alerter and to special maneuver guidance, when aircraft enters DTA volume (depending on ownship- vs intruder-centric logic).

◆ enableDTALogicWithoutHorizontalDirRecovery()

void larcfm::Daidalus::enableDTALogicWithoutHorizontalDirRecovery ( )

Enable DAA Terminal Area (DTA) logic withou horizontal direction recovery guidance, i.e., horizontal direction recovery is disabled and vertical recovery blocks down resolutions when alert is higher than corrective. NOTE: When DTA logic is enabled, DAIDALUS automatically switches to DTA alerter and to special maneuver guidance, when aircraft enters DTA volume (depending on ownship- vs intruder-centric logic).

◆ enableRecoveryBands()

void larcfm::Daidalus::enableRecoveryBands ( )

Enable all recovery bands for direction, horizontal speed, vertical speed, and altitude.

◆ enableRecoveryCriteria()

void larcfm::Daidalus::enableRecoveryCriteria ( )

Enable repulsive criteria for recovery bands.

◆ enableRepulsiveCriteria()

void larcfm::Daidalus::enableRepulsiveCriteria ( )

Enable repulsive criteria for conflict and recovery bands.

◆ forceAltitudeBandsComputation()

void larcfm::Daidalus::forceAltitudeBandsComputation ( )

Force computation of altitude bands. Usually, bands are only computed when needed. This method forces the computation of altitude bands (this method is included mainly for debugging purposes).

◆ forceHorizontalDirectionBandsComputation()

void larcfm::Daidalus::forceHorizontalDirectionBandsComputation ( )

Force computation of direction bands. Usually, bands are only computed when needed. This method forces the computation of direction bands (this method is included mainly for debugging purposes).

◆ forceHorizontalSpeedBandsComputation()

void larcfm::Daidalus::forceHorizontalSpeedBandsComputation ( )

Force computation of horizontal speed bands. Usually, bands are only computed when needed. This method forces the computation of horizontal speed bands (this method is included mainly for debugging purposes).

◆ forceVerticalSpeedBandsComputation()

void larcfm::Daidalus::forceVerticalSpeedBandsComputation ( )

Force computation of vertical speed bands. Usually, bands are only computed when needed. This method forces the computation of vertical speed bands (this method is included mainly for debugging purposes).

◆ getAboveRelativeAltitude() [1/2]

double larcfm::Daidalus::getAboveRelativeAltitude ( ) const
Returns
Altitude in internal units (above current value) for the computation of relative bands

◆ getAboveRelativeAltitude() [2/2]

double larcfm::Daidalus::getAboveRelativeAltitude ( const std::string &  u) const
Returns
Altitude in given units (above current value) for the computation of relative bands

◆ getAboveRelativeHorizontalSpeed() [1/2]

double larcfm::Daidalus::getAboveRelativeHorizontalSpeed ( ) const
Returns
Horizontal speed in internal units (above current value) for the computation of relative bands

◆ getAboveRelativeHorizontalSpeed() [2/2]

double larcfm::Daidalus::getAboveRelativeHorizontalSpeed ( const std::string &  u) const
Returns
Horizontal speed in given units (above current value) for the computation of relative bands

◆ getAboveRelativeVerticalSpeed() [1/2]

double larcfm::Daidalus::getAboveRelativeVerticalSpeed ( ) const
Returns
Vertical speed in internal units (above current value) for the computation of relative bands

◆ getAboveRelativeVerticalSpeed() [2/2]

double larcfm::Daidalus::getAboveRelativeVerticalSpeed ( const std::string &  u) const
Returns
Vertical speed in given units (above current value) for the computation of relative bands

◆ getAircraftStateAt()

const TrafficState & larcfm::Daidalus::getAircraftStateAt ( int  idx) const

Returns state of aircraft at index idx

◆ getAlerterAt()

const Alerter & larcfm::Daidalus::getAlerterAt ( int  i) const

Return alerter at index i (starting from 1).

◆ getAlerterIndex()

int larcfm::Daidalus::getAlerterIndex ( std::string  id) const

Return index of alerter with a given name. Return 0 if it doesn't exist

◆ getAlertingParameterM()

int larcfm::Daidalus::getAlertingParameterM ( ) const
Returns
Alerting parameter m of "M of N" strategy

◆ getAlertingParameterN()

int larcfm::Daidalus::getAlertingParameterN ( ) const
Returns
Alerting parameter m of "M of N" strategy
Alerting parameter n of "M of N" strategy

◆ getAltitudeStep() [1/2]

double larcfm::Daidalus::getAltitudeStep ( ) const
Returns
step size for altitude bands in internal units [m]

◆ getAltitudeStep() [2/2]

double larcfm::Daidalus::getAltitudeStep ( const std::string &  u) const
Returns
step size for altitude bands in specified units [u].

◆ getBankAngle() [1/2]

double larcfm::Daidalus::getBankAngle ( ) const
Returns
bank angle in internal units [rad].

◆ getBankAngle() [2/2]

double larcfm::Daidalus::getBankAngle ( const std::string &  u) const
Returns
bank angle in specified units [u].

◆ getBelowRelativeAltitude() [1/2]

double larcfm::Daidalus::getBelowRelativeAltitude ( ) const
Returns
Altitude in internal units (below current value) for the computation of relative bands

◆ getBelowRelativeAltitude() [2/2]

double larcfm::Daidalus::getBelowRelativeAltitude ( const std::string &  u) const
Returns
Altitude in given units (below current value) for the computation of relative bands

◆ getBelowRelativeHorizontalSpeed() [1/2]

double larcfm::Daidalus::getBelowRelativeHorizontalSpeed ( ) const
Returns
Horizontal speed in internal units (below current value) for the computation of relative bands

◆ getBelowRelativeHorizontalSpeed() [2/2]

double larcfm::Daidalus::getBelowRelativeHorizontalSpeed ( const std::string &  u) const
Returns
Horizontal speed in given units (below current value) for the computation of relative bands

◆ getBelowRelativeVerticalSpeed() [1/2]

double larcfm::Daidalus::getBelowRelativeVerticalSpeed ( ) const
Returns
Vertical speed in internal units (below current value) for the computation of relative bands

◆ getBelowRelativeVerticalSpeed() [2/2]

double larcfm::Daidalus::getBelowRelativeVerticalSpeed ( const std::string &  u) const
Returns
Vertical speed in given units (below current value) for the computation of relative bands

◆ getCollisionAvoidanceBandsFactor()

double larcfm::Daidalus::getCollisionAvoidanceBandsFactor ( ) const
Returns
get factor for computing collision avoidance bands. Factor value is in (0,1]

◆ getCore()

const DaidalusCore & larcfm::Daidalus::getCore ( )

Return core object of bands. For expert users only DO NOT USE IT, UNLESS YOU KNOW WHAT YOU ARE DOING. EXPERT USE ONLY !!!

◆ getCorrectiveRegion()

BandsRegion::Region larcfm::Daidalus::getCorrectiveRegion ( ) const

Get corrective region for calculation of resolution maneuvers and bands saturation.

◆ getCurrentTime() [1/2]

double larcfm::Daidalus::getCurrentTime ( ) const

Return currrent time in seconds. Current time is the time of the ownship.

◆ getCurrentTime() [2/2]

double larcfm::Daidalus::getCurrentTime ( const std::string &  u) const

Return currrent time in specified units. Current time is the time of the ownship.

◆ getDTAAlerter()

int larcfm::Daidalus::getDTAAlerter ( ) const

Get DAA Terminal Area (DTA) alerter

◆ getDTAHeight() [1/2]

double larcfm::Daidalus::getDTAHeight ( ) const

Get DAA Terminal Area (DTA) height (internal units)

◆ getDTAHeight() [2/2]

double larcfm::Daidalus::getDTAHeight ( const std::string &  u) const

Get DAA Terminal Area (DTA) height in given units

◆ getDTAPosition()

const Position & larcfm::Daidalus::getDTAPosition ( ) const

Get DAA Terminal Area (DTA) position (lat/lon)

◆ getDTARadius() [1/2]

double larcfm::Daidalus::getDTARadius ( ) const

Get DAA Terminal Area (DTA) radius (internal units)

◆ getDTARadius() [2/2]

double larcfm::Daidalus::getDTARadius ( const std::string &  u) const

Get DAA Terminal Area (DTA) radius in given units

◆ getHorizontalAcceleration() [1/2]

double larcfm::Daidalus::getHorizontalAcceleration ( ) const
Returns
horizontal acceleration for horizontal speed bands to value in internal units [m/s^2].

◆ getHorizontalAcceleration() [2/2]

double larcfm::Daidalus::getHorizontalAcceleration ( const std::string &  u) const
Returns
horizontal acceleration for horizontal speed bands to value in specified units [u].

◆ getHorizontalContourThreshold() [1/2]

double larcfm::Daidalus::getHorizontalContourThreshold ( ) const

Get horizontal contour threshold, specified in internal units [rad] as an angle to the left/right of current aircraft direction. A value of 0 means only conflict contours. A value of pi means all contours.

◆ getHorizontalContourThreshold() [2/2]

double larcfm::Daidalus::getHorizontalContourThreshold ( std::string  u) const

Get horizontal contour threshold, specified in given units [u] as an angle to the left/right of current aircraft direction. A value of 0 means only conflict contours. A value of pi means all contours.

◆ getHorizontalDirectionStep() [1/2]

double larcfm::Daidalus::getHorizontalDirectionStep ( ) const
Returns
step size for direction bands in internal units [rad].

◆ getHorizontalDirectionStep() [2/2]

double larcfm::Daidalus::getHorizontalDirectionStep ( const std::string &  u) const
Returns
step size for direction bands in specified units [u].

◆ getHorizontalNMAC() [1/2]

double larcfm::Daidalus::getHorizontalNMAC ( ) const
Returns
horizontal NMAC distance in internal units [m].

◆ getHorizontalNMAC() [2/2]

double larcfm::Daidalus::getHorizontalNMAC ( const std::string &  u) const
Returns
horizontal NMAC distance in specified units [u].

◆ getHorizontalPositionZScore()

double larcfm::Daidalus::getHorizontalPositionZScore ( ) const
Returns
get z-score (number of standard deviations) for horizontal position

◆ getHorizontalSpeedStep() [1/2]

double larcfm::Daidalus::getHorizontalSpeedStep ( ) const
Returns
step size for horizontal speed bands in internal units [m/s].

◆ getHorizontalSpeedStep() [2/2]

double larcfm::Daidalus::getHorizontalSpeedStep ( const std::string &  u) const
Returns
step size for horizontal speed bands in specified units [u].

◆ getHorizontalVelocityZDistance() [1/2]

double larcfm::Daidalus::getHorizontalVelocityZDistance ( ) const
Returns
Distance (in internal units) at which h_vel_z_score scales from min to max as range decreases

◆ getHorizontalVelocityZDistance() [2/2]

double larcfm::Daidalus::getHorizontalVelocityZDistance ( std::string  u) const
Returns
Distance (in given units) at which h_vel_z_score scales from min to max as range decreases

◆ getHorizontalVelocityZScoreMax()

double larcfm::Daidalus::getHorizontalVelocityZScoreMax ( ) const
Returns
get max z-score (number of standard deviations) for horizontal velocity

◆ getHorizontalVelocityZScoreMin()

double larcfm::Daidalus::getHorizontalVelocityZScoreMin ( ) const
Returns
get min z-score (number of standard deviations) for horizontal velocity

◆ getHysteresisTime() [1/2]

double larcfm::Daidalus::getHysteresisTime ( ) const
Returns
hysteresis time in seconds.

◆ getHysteresisTime() [2/2]

double larcfm::Daidalus::getHysteresisTime ( const std::string &  u) const
Returns
hysteresis time in specified units [u].

◆ getLeftHorizontalDirection() [1/2]

double larcfm::Daidalus::getLeftHorizontalDirection ( ) const
Returns
left direction in radians [0 - pi] [rad] from current ownship's direction

◆ getLeftHorizontalDirection() [2/2]

double larcfm::Daidalus::getLeftHorizontalDirection ( const std::string &  u) const
Returns
left direction in specified units [0 - pi] [u] from current ownship's direction

◆ getLookaheadTime() [1/2]

double larcfm::Daidalus::getLookaheadTime ( ) const
Returns
lookahead time in seconds.

◆ getLookaheadTime() [2/2]

double larcfm::Daidalus::getLookaheadTime ( const std::string &  u) const
virtual
Returns
lookahead time in specified units [u].

Implements larcfm::GenericBands.

◆ getMaxAltitude() [1/2]

double larcfm::Daidalus::getMaxAltitude ( ) const
Returns
maximum altitude for altitude bands in internal units [m]

◆ getMaxAltitude() [2/2]

double larcfm::Daidalus::getMaxAltitude ( const std::string &  u) const
Returns
maximum altitude for altitude bands in specified units [u].

◆ getMaxGroundSpeed()

virtual double larcfm::Daidalus::getMaxGroundSpeed ( const std::string &  unit) const
inlinevirtual

@Deprecated Use getMaxHorizontalSpeed instead

Implements larcfm::GenericBands.

◆ getMaxHorizontalSpeed() [1/2]

double larcfm::Daidalus::getMaxHorizontalSpeed ( ) const
Returns
maximum horizontal speed for horizontal speed bands in internal units [m/s].

◆ getMaxHorizontalSpeed() [2/2]

double larcfm::Daidalus::getMaxHorizontalSpeed ( const std::string &  u) const
Returns
maximum horizontal speed for horizontal speed bands in specified units [u].

◆ getMaxVerticalSpeed() [1/2]

double larcfm::Daidalus::getMaxVerticalSpeed ( ) const
Returns
maximum vertical speed for vertical speed bands in internal units [m/s].

◆ getMaxVerticalSpeed() [2/2]

double larcfm::Daidalus::getMaxVerticalSpeed ( const std::string &  u) const
virtual
Returns
maximum vertical speed for vertical speed bands in specified units [u].

Implements larcfm::GenericBands.

◆ getMessage()

std::string larcfm::Daidalus::getMessage ( )
virtual

Return a string representation of any errors or warnings. Calling this method will clear any messages and reset both the error and warning status to none.

Returns
error and warning messages. If there are no messages, an empty string is returned.

Implements larcfm::ErrorReporter.

◆ getMessageNoClear()

std::string larcfm::Daidalus::getMessageNoClear ( ) const
virtual

Return a string representation of any errors or warnings. Calling this method will not clear the error or warning status (i.e., hasError() will return the same value before and after this call.)

Returns
error and warning messages. If there are no messages, an empty string is returned.

Implements larcfm::ErrorReporter.

◆ getMinAltitude() [1/2]

double larcfm::Daidalus::getMinAltitude ( ) const
Returns
minimum altitude for altitude bands in internal units [m]

◆ getMinAltitude() [2/2]

double larcfm::Daidalus::getMinAltitude ( const std::string &  u) const
Returns
minimum altitude for altitude bands in specified units [u].

◆ getMinHorizontalRecovery() [1/2]

double larcfm::Daidalus::getMinHorizontalRecovery ( ) const
Returns
minimum horizontal separation for recovery bands in internal units [m].

◆ getMinHorizontalRecovery() [2/2]

double larcfm::Daidalus::getMinHorizontalRecovery ( const std::string &  u) const

Return minimum horizontal separation for recovery bands in specified units [u]

◆ getMinHorizontalSpeed() [1/2]

double larcfm::Daidalus::getMinHorizontalSpeed ( ) const
Returns
minimum horizontal speed for horizontal speed bands in internal units [m/s].

◆ getMinHorizontalSpeed() [2/2]

double larcfm::Daidalus::getMinHorizontalSpeed ( const std::string &  u) const
Returns
minimum horizontal speed for horizontal speed bands in specified units [u].

◆ getMinVerticalRecovery() [1/2]

double larcfm::Daidalus::getMinVerticalRecovery ( ) const
Returns
minimum vertical separation for recovery bands in internal units [m].

◆ getMinVerticalRecovery() [2/2]

double larcfm::Daidalus::getMinVerticalRecovery ( const std::string &  u) const

Return minimum vertical separation for recovery bands in specified units [u].

◆ getMinVerticalSpeed() [1/2]

double larcfm::Daidalus::getMinVerticalSpeed ( ) const
Returns
minimum vertical speed for vertical speed bands in internal units [m/s].

◆ getMinVerticalSpeed() [2/2]

double larcfm::Daidalus::getMinVerticalSpeed ( const std::string &  u) const
Returns
minimum vertical speed for vertical speed bands in specified units [u].

◆ getOwnshipState()

const TrafficState & larcfm::Daidalus::getOwnshipState ( ) const

Returns state of ownship.

◆ getPersistencePreferredAltitudeResolution() [1/2]

double larcfm::Daidalus::getPersistencePreferredAltitudeResolution ( ) const
Returns
persistence for preferred altitude resolution in internal units

◆ getPersistencePreferredAltitudeResolution() [2/2]

double larcfm::Daidalus::getPersistencePreferredAltitudeResolution ( const std::string &  u) const
Returns
persistence for preferred altitude resolution in given units

◆ getPersistencePreferredHorizontalDirectionResolution() [1/2]

double larcfm::Daidalus::getPersistencePreferredHorizontalDirectionResolution ( ) const
Returns
persistence for preferred horizontal direction resolution in internal units

◆ getPersistencePreferredHorizontalDirectionResolution() [2/2]

double larcfm::Daidalus::getPersistencePreferredHorizontalDirectionResolution ( const std::string &  u) const
Returns
persistence for preferred horizontal direction resolution in given units

◆ getPersistencePreferredHorizontalSpeedResolution() [1/2]

double larcfm::Daidalus::getPersistencePreferredHorizontalSpeedResolution ( ) const
Returns
persistence for preferred horizontal speed resolution in internal units

◆ getPersistencePreferredHorizontalSpeedResolution() [2/2]

double larcfm::Daidalus::getPersistencePreferredHorizontalSpeedResolution ( const std::string &  u) const
Returns
persistence for preferred horizontal speed resolution in given units

◆ getPersistencePreferredVerticalSpeedResolution() [1/2]

double larcfm::Daidalus::getPersistencePreferredVerticalSpeedResolution ( ) const
Returns
persistence for preferred vertical speed resolution in internal units

◆ getPersistencePreferredVerticalSpeedResolution() [2/2]

double larcfm::Daidalus::getPersistencePreferredVerticalSpeedResolution ( const std::string &  u) const
Returns
persistence for preferred vertical speed resolution in given units

◆ getPersistenceTime() [1/2]

double larcfm::Daidalus::getPersistenceTime ( ) const
Returns
alerting persistence time in seconds.

◆ getPersistenceTime() [2/2]

double larcfm::Daidalus::getPersistenceTime ( const std::string &  u) const
Returns
alerting persistence time in specified units [u].

◆ getRecoveryStabilityTime() [1/2]

double larcfm::Daidalus::getRecoveryStabilityTime ( ) const
Returns
recovery stability time in seconds. Recovery bands are computed at time of first conflict-free region plus this time.

◆ getRecoveryStabilityTime() [2/2]

double larcfm::Daidalus::getRecoveryStabilityTime ( const std::string &  u) const
Returns
recovery stability time in specified Units:: Recovery bands are computed at time of first conflict-free region plus this time.

◆ getRightHorizontalDirection() [1/2]

double larcfm::Daidalus::getRightHorizontalDirection ( ) const
Returns
right direction in radians [0 - pi] [rad] from current ownship's direction

◆ getRightHorizontalDirection() [2/2]

double larcfm::Daidalus::getRightHorizontalDirection ( const std::string &  u) const
Returns
right direction in specified units [0 - pi] [u] from current ownship's direction

◆ getTurnRate() [1/2]

double larcfm::Daidalus::getTurnRate ( ) const
Returns
turn rate in internal units [rad/s].

◆ getTurnRate() [2/2]

double larcfm::Daidalus::getTurnRate ( const std::string &  u) const
Returns
turn rate in specified units [u].

◆ getUnitsOf()

std::string larcfm::Daidalus::getUnitsOf ( const std::string &  key) const

Get std::string units of parameters key

◆ getUrgencyStrategy()

const UrgencyStrategy * larcfm::Daidalus::getUrgencyStrategy ( ) const
Returns
strategy for computing most urgent aircraft.

◆ getVerticalAcceleration() [1/2]

double larcfm::Daidalus::getVerticalAcceleration ( ) const
Returns
constant vertical acceleration for vertical speed and altitude bands in internal [m/s^2] units

◆ getVerticalAcceleration() [2/2]

double larcfm::Daidalus::getVerticalAcceleration ( const std::string &  u) const
Returns
constant vertical acceleration for vertical speed and altitude bands in specified units

◆ getVerticalNMAC() [1/2]

double larcfm::Daidalus::getVerticalNMAC ( ) const
Returns
vertical NMAC distance in internal units [m].

◆ getVerticalNMAC() [2/2]

double larcfm::Daidalus::getVerticalNMAC ( const std::string &  u) const
Returns
vertical NMAC distance in specified units [u].

◆ getVerticalPositionZScore()

double larcfm::Daidalus::getVerticalPositionZScore ( ) const
Returns
get z-score (number of standard deviations) for vertical position

◆ getVerticalRate() [1/2]

double larcfm::Daidalus::getVerticalRate ( ) const
Returns
the vertical climb/descend rate for altitude bands in internal units [m/s]

◆ getVerticalRate() [2/2]

double larcfm::Daidalus::getVerticalRate ( std::string  u) const
Returns
the vertical climb/descend rate for altitude bands in specified units [u].

◆ getVerticalSpeedStep() [1/2]

double larcfm::Daidalus::getVerticalSpeedStep ( ) const
Returns
step size for vertical speed bands in internal units [m/s].

◆ getVerticalSpeedStep() [2/2]

double larcfm::Daidalus::getVerticalSpeedStep ( const std::string &  u) const
Returns
step size for vertical speed bands in specified units [u].

◆ getVerticalSpeedZScore()

double larcfm::Daidalus::getVerticalSpeedZScore ( ) const
Returns
get z-score (number of standard deviations) for vertical velocity

◆ getWindVelocityFrom()

Velocity larcfm::Daidalus::getWindVelocityFrom ( ) const

Get wind velocity specified in the From direction

◆ getWindVelocityTo()

const Velocity & larcfm::Daidalus::getWindVelocityTo ( ) const

Get wind velocity specified in the TO direction

◆ groundSpeed()

virtual Interval larcfm::Daidalus::groundSpeed ( int  i,
const std::string &  unit 
)
inlinevirtual

@Deprecated Use horizontalSpeedIntervalAt instead

Implements larcfm::GenericBands.

◆ groundSpeedLength()

virtual int larcfm::Daidalus::groundSpeedLength ( )
inlinevirtual

@Deprecated Use horizontalSpeedBandsLength instead

Implements larcfm::GenericBands.

◆ groundSpeedRegion()

virtual BandsRegion::Region larcfm::Daidalus::groundSpeedRegion ( int  i)
inlinevirtual

@Deprecated Use horizontalSpeedRegionAt instead

Implements larcfm::GenericBands.

◆ hasError()

bool larcfm::Daidalus::hasError ( ) const
virtual

Does this object have an error?

Returns
true if there is an error.

Implements larcfm::ErrorReporter.

◆ hasMessage()

bool larcfm::Daidalus::hasMessage ( ) const
virtual

Does this object have an error or a warning?

Returns
true if there is an error or warning.

Implements larcfm::ErrorReporter.

◆ hasOwnship()

bool larcfm::Daidalus::hasOwnship ( ) const
Returns
true if ownship has been set

◆ hasTraffic()

bool larcfm::Daidalus::hasTraffic ( ) const
Returns
true if at least one traffic has been set

◆ horizontalClosureRate() [1/2]

double larcfm::Daidalus::horizontalClosureRate ( int  ac_idx) const

Returns horizontal closure rate, in internal units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ horizontalClosureRate() [2/2]

double larcfm::Daidalus::horizontalClosureRate ( int  ac_idx,
const std::string &  u 
) const

Returns current closure rate, in given units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ horizontalContours() [1/2]

void larcfm::Daidalus::horizontalContours ( std::vector< std::vector< Position > > &  blobs,
int  ac_idx,
BandsRegion::Region  region 
)

Computes horizontal contours contributed by aircraft at index idx, for given region. A contour is a list of points in counter-clockwise direction representing a polygon. Last point should be connected to first one. The computed polygon should only be used for display purposes since it's merely an approximation of the actual contours defined by the violation and detection methods.

Parameters
blobslist of horizontal contours returned by reference.
ac_idxis the index of the aircraft used to compute the contours.
regionis the region used to compute detection.

◆ horizontalContours() [2/2]

void larcfm::Daidalus::horizontalContours ( std::vector< std::vector< Position > > &  blobs,
int  ac_idx,
int  alert_level = 0 
)

Computes horizontal contours contributed by aircraft at index idx, for given alert level. A contour is a list of points in counter-clockwise direction representing a polygon. Last point should be connected to first one. The computed polygon should only be used for display purposes since it's merely an approximation of the actual contours defined by the violation and detection methods.

Parameters
blobslist of horizontal contours returned by reference.
ac_idxis the index of the aircraft used to compute the contours.
alert_levelis the alert level used to compute detection. The value 0 indicate the alert level of the corrective region.

◆ horizontalDirectionBandsLength()

int larcfm::Daidalus::horizontalDirectionBandsLength ( )
Returns
the number of horizontal direction bands negative if the ownship has not been set

◆ horizontalDirectionIntervalAt() [1/2]

Interval larcfm::Daidalus::horizontalDirectionIntervalAt ( int  i)
Returns
the i-th interval, in internal units [rad], of the computed direction bands.
Parameters
iindex

◆ horizontalDirectionIntervalAt() [2/2]

Interval larcfm::Daidalus::horizontalDirectionIntervalAt ( int  i,
const std::string &  u 
)
Returns
the i-th interval, in specified units [u], of the computed direction bands.
Parameters
iindex
uunits

◆ horizontalDirectionRawResolution() [1/2]

double larcfm::Daidalus::horizontalDirectionRawResolution ( bool  dir)

Compute horizontal direction raw resolution maneuver for a given direction. Raw resolution is the resolution without persistence @parameter dir is right (true)/left (false) of ownship current direction

Returns
direction resolution in internal units [rad] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no resolution to the right, and negative infinity if there is no resolution to the left.

◆ horizontalDirectionRawResolution() [2/2]

double larcfm::Daidalus::horizontalDirectionRawResolution ( bool  dir,
const std::string &  u 
)

Compute horizontal direction raw resolution maneuver for a given direction. Raw resolution is the resolution without persistence @parameter dir is right (true)/left (false) of ownship current direction @parameter u units

Returns
direction resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no resolution to the right, and negative infinity if there is no resolution to the left.

◆ horizontalDirectionRecoveryInformation()

RecoveryInformation larcfm::Daidalus::horizontalDirectionRecoveryInformation ( )
Returns
recovery information for horizontal direction bands.

◆ horizontalDirectionRegionAt()

BandsRegion::Region larcfm::Daidalus::horizontalDirectionRegionAt ( int  i)
Returns
the i-th region of the computed direction bands.
Parameters
iindex

◆ horizontalDirectionResolution() [1/2]

double larcfm::Daidalus::horizontalDirectionResolution ( bool  dir)

Compute horizontal direction resolution maneuver for a given direction. @parameter dir is right (true)/left (false) of ownship current direction

Returns
direction resolution in internal units [rad] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no resolution to the right, and negative infinity if there is no resolution to the left.

◆ horizontalDirectionResolution() [2/2]

double larcfm::Daidalus::horizontalDirectionResolution ( bool  dir,
const std::string &  u 
)

Compute horizontal direction resolution maneuver for a given direction. @parameter dir is right (true)/left (false) of ownship current direction @parameter u units

Returns
direction resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no resolution to the right, and negative infinity if there is no resolution to the left.

◆ horizontalHazardZone() [1/2]

void larcfm::Daidalus::horizontalHazardZone ( std::vector< Position > &  haz,
int  ac_idx,
bool  loss,
bool  from_ownship,
BandsRegion::Region  region 
)

Computes horizontal hazard zone around aircraft at index ac_idx, for given region. A hazard zone is a list of points in counter-clockwise direction representing a polygon. Last point should be connected to first one.

Parameters
hazhazard zone returned by reference.
ac_idxis the index of the aircraft used to compute the contours.
losstrue means that the polygon represents the hazard zone. Otherwise, the polygon represents the hazard zone with an alerting time.
from_ownshiptrue means ownship point of view. Otherwise, the hazard zone is computed from the intruder's point of view.
regionis the region used to compute detection. NOTE: The computed polygon should only be used for display purposes since it's merely an approximation of the actual hazard zone defined by the violation and detection methods.

◆ horizontalHazardZone() [2/2]

void larcfm::Daidalus::horizontalHazardZone ( std::vector< Position > &  haz,
int  ac_idx,
bool  loss,
bool  from_ownship,
int  alert_level = 0 
)

Computes horizontal hazard zone around aircraft at index ac_idx, for given alert level. A hazard zone is a list of points in counter-clockwise direction representing a polygon. Last point should be connected to first one.

Parameters
hazhazard zone returned by reference.
ac_idxis the index of the aircraft used to compute the contours.
losstrue means that the polygon represents the hazard zone. Otherwise, the polygon represents the hazard zone with an alerting time.
from_ownshiptrue means ownship point of view. Otherwise, the hazard zone is computed from the intruder's point of view.
alert_levelis the alert level used to compute detection. The value 0 indicate the alert level of the corrective region. NOTE: The computed polygon should only be used for display purposes since it's merely an approximation of the actual hazard zone defined by the violation and detection methods.

◆ horizontalSpeedBandsLength()

int larcfm::Daidalus::horizontalSpeedBandsLength ( )
Returns
the number of horizontal speed band intervals, negative if the ownship has not been set

◆ horizontalSpeedIntervalAt() [1/2]

Interval larcfm::Daidalus::horizontalSpeedIntervalAt ( int  i)
Returns
the i-th interval, in internal units [m/s], of the computed horizontal speed bands.
Parameters
iindex

◆ horizontalSpeedIntervalAt() [2/2]

Interval larcfm::Daidalus::horizontalSpeedIntervalAt ( int  i,
const std::string &  u 
)
Returns
the i-th interval, in specified units [u], of the computed horizontal speed bands.
Parameters
iindex
uunits

◆ horizontalSpeedRawResolution() [1/2]

double larcfm::Daidalus::horizontalSpeedRawResolution ( bool  dir)

Compute horizontal speed raw resolution maneuver. Raw resolution is the resolution without persistence @parameter dir is up (true)/down (false) of ownship current horizontal speed

Returns
horizontal speed resolution in internal units [m/s] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ horizontalSpeedRawResolution() [2/2]

double larcfm::Daidalus::horizontalSpeedRawResolution ( bool  dir,
const std::string &  u 
)

Compute horizontal speed raw resolution maneuver for corrective region. Raw resolution is the resolution without persistence @parameter dir is up (true)/down (false) of ownship current horizontal speed @parameter u units

Returns
horizontal speed resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ horizontalSpeedRecoveryInformation()

RecoveryInformation larcfm::Daidalus::horizontalSpeedRecoveryInformation ( )
Returns
recovery information for horizontal speed bands.

◆ horizontalSpeedRegionAt()

BandsRegion::Region larcfm::Daidalus::horizontalSpeedRegionAt ( int  i)
Returns
the i-th region of the computed horizontal speed bands.
Parameters
iindex

◆ horizontalSpeedResolution() [1/2]

double larcfm::Daidalus::horizontalSpeedResolution ( bool  dir)

Compute horizontal speed resolution maneuver. @parameter dir is up (true)/down (false) of ownship current horizontal speed

Returns
horizontal speed resolution in internal units [m/s] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ horizontalSpeedResolution() [2/2]

double larcfm::Daidalus::horizontalSpeedResolution ( bool  dir,
const std::string &  u 
)

Compute horizontal speed resolution maneuver for corrective region. @parameter dir is up (true)/down (false) of ownship current horizontal speed @parameter u units

Returns
horizontal speed resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ indexOfAltitude() [1/2]

int larcfm::Daidalus::indexOfAltitude ( double  alt)
Returns
the range index of a given altitude specified internal units [m]
Parameters
alt[m]

◆ indexOfAltitude() [2/2]

int larcfm::Daidalus::indexOfAltitude ( double  alt,
const std::string &  u 
)
Returns
the range index of a given altitude specified in given units [u]
Parameters
alt[u]
uUnits

◆ indexOfHorizontalDirection() [1/2]

int larcfm::Daidalus::indexOfHorizontalDirection ( double  dir)
Returns
the index of a given direction specified in internal units [rad]
Parameters
dir[rad]

◆ indexOfHorizontalDirection() [2/2]

int larcfm::Daidalus::indexOfHorizontalDirection ( double  dir,
const std::string &  u 
)
Returns
the index of a given direction specified in given units [u]
Parameters
dir[u]
uUnits

◆ indexOfHorizontalSpeed() [1/2]

int larcfm::Daidalus::indexOfHorizontalSpeed ( double  gs)
Returns
the range index of a given horizontal speed specified in internal units [m/s]
Parameters
gs[m/s]

◆ indexOfHorizontalSpeed() [2/2]

int larcfm::Daidalus::indexOfHorizontalSpeed ( double  gs,
const std::string &  u 
)
Returns
the range index of a given horizontal speed specified in given units [u]
Parameters
gs[u]
uUnits

◆ indexOfVerticalSpeed() [1/2]

int larcfm::Daidalus::indexOfVerticalSpeed ( double  vs)
Returns
the region of a given vertical speed specified in internal units [m/s]
Parameters
vs[m/s]

◆ indexOfVerticalSpeed() [2/2]

int larcfm::Daidalus::indexOfVerticalSpeed ( double  vs,
const std::string &  u 
)
Returns
the region of a given vertical speed specified in given units [u]
Parameters
vs[u]
uUnits

◆ isActiveDTALogic()

bool larcfm::Daidalus::isActiveDTALogic ( )

Return true if DTA logic is active at current time

◆ isActiveDTASpecialManeuverGuidance()

bool larcfm::Daidalus::isActiveDTASpecialManeuverGuidance ( )

Return true if DTA special maneuver guidance is active at current time

◆ isAlertingLogicOwnshipCentric()

bool larcfm::Daidalus::isAlertingLogicOwnshipCentric ( ) const
Returns
true if alerting/guidance logic is ownship centric.

◆ isDisabledDTALogic()

bool larcfm::Daidalus::isDisabledDTALogic ( ) const

Return true if DAA Terminal Area (DTA) logic is disabled.

◆ isEnabledBandsPersistence()

bool larcfm::Daidalus::isEnabledBandsPersistence ( ) const
Returns
true if guidance persistence is enabled
true if bands persistence is enabled

◆ isEnabledCollisionAvoidanceBands()

bool larcfm::Daidalus::isEnabledCollisionAvoidanceBands ( )
Returns
true if collision avoidance bands are enabled.

◆ isEnabledConflictCriteria()

bool larcfm::Daidalus::isEnabledConflictCriteria ( )
Returns
true if repulsive criteria is enabled for conflict bands.

◆ isEnabledDTALogicWithHorizontalDirRecovery()

bool larcfm::Daidalus::isEnabledDTALogicWithHorizontalDirRecovery ( ) const

Return true if DAA Terminal Area (DTA) logic is enabled with horizontal direction recovery guidance. If true, horizontal direction recovery is fully enabled, but vertical recovery blocks down resolutions when alert is higher than corrective. NOTE: When DTA logic is enabled, DAIDALUS automatically switches to DTA alerter and to special maneuver guidance, when aircraft enters DTA volume (depending on ownship- vs intruder-centric logic).

◆ isEnabledDTALogicWithoutHorizontalDirRecovery()

bool larcfm::Daidalus::isEnabledDTALogicWithoutHorizontalDirRecovery ( ) const

Return true if DAA Terminal Area (DTA) logic is enabled without horizontal direction recovery guidance. If true, horizontal direction recovery is disabled and vertical recovery blocks down resolutions when alert is higher than corrective. NOTE: When DTA logic is enabled, DAIDALUS automatically switches to DTA alerter and to special maneuver guidance, when aircraft enters DTA volume (depending on ownship- vs intruder-centric logic).

◆ isEnabledRecoveryAltitudeBands()

bool larcfm::Daidalus::isEnabledRecoveryAltitudeBands ( )
Returns
true if recovery altitude bands are enabled.

◆ isEnabledRecoveryCriteria()

bool larcfm::Daidalus::isEnabledRecoveryCriteria ( )
Returns
true if repulsive criteria is enabled for recovery bands.

◆ isEnabledRecoveryHorizontalDirectionBands()

bool larcfm::Daidalus::isEnabledRecoveryHorizontalDirectionBands ( )
Returns
true if recovery direction bands are enabled.

◆ isEnabledRecoveryHorizontalSpeedBands()

bool larcfm::Daidalus::isEnabledRecoveryHorizontalSpeedBands ( )
Returns
true if recovery horizontal speed bands are enabled.

◆ isEnabledRecoveryVerticalSpeedBands()

bool larcfm::Daidalus::isEnabledRecoveryVerticalSpeedBands ( )
Returns
true if recovery vertical speed bands are enabled.

◆ isLatLon()

bool larcfm::Daidalus::isLatLon ( ) const
virtual

Returns whether the aircraft positions are specified in latitude/longitude or Euclidean coordinates. If the ownship has not been set, then this value is undefined.

Implements larcfm::GenericBands.

◆ lastTimeToAltitudeManeuver() [1/3]

double larcfm::Daidalus::lastTimeToAltitudeManeuver ( const TrafficState ac)

Return last time to altitude maneuver, in seconds, for ownship with respect to traffic aircraft ac. Return NaN if the ownship is not in conflict with aircraft ac within lookahead time. Return negative infinity if there is no time to maneuver.

◆ lastTimeToAltitudeManeuver() [2/3]

double larcfm::Daidalus::lastTimeToAltitudeManeuver ( int  ac_idx)

Return last time to altitude maneuver, in seconds, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToAltitudeManeuver() [3/3]

double larcfm::Daidalus::lastTimeToAltitudeManeuver ( int  ac_idx,
const std::string &  u 
)

Return last time to altitude maneuver, in given units, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToHorizontalDirectionManeuver() [1/3]

double larcfm::Daidalus::lastTimeToHorizontalDirectionManeuver ( const TrafficState ac)

Return last time to direction maneuver, in seconds, for ownship with respect to traffic aircraft ac. Return NaN if the ownship is not in conflict with aircraft ac within lookahead time. Return negative infinity if there is no time to maneuver.

◆ lastTimeToHorizontalDirectionManeuver() [2/3]

double larcfm::Daidalus::lastTimeToHorizontalDirectionManeuver ( int  ac_idx)

Return last time to horizontal direction maneuver, in seconds, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToHorizontalDirectionManeuver() [3/3]

double larcfm::Daidalus::lastTimeToHorizontalDirectionManeuver ( int  ac_idx,
const std::string &  u 
)

Return last time to horizontal direction maneuver, in given units, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToHorizontalSpeedManeuver() [1/3]

double larcfm::Daidalus::lastTimeToHorizontalSpeedManeuver ( const TrafficState ac)

Return last time to horizontal speed maneuver, in seconds, for ownship with respect to traffic aircraft ac. Return NaN if the ownship is not in conflict with aircraft ac within lookahead time. Return negative infinity if there is no time to maneuver.

◆ lastTimeToHorizontalSpeedManeuver() [2/3]

double larcfm::Daidalus::lastTimeToHorizontalSpeedManeuver ( int  ac_idx)

Return last time to horizontal speed maneuver, in seconds, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToHorizontalSpeedManeuver() [3/3]

double larcfm::Daidalus::lastTimeToHorizontalSpeedManeuver ( int  ac_idx,
const std::string &  u 
)

Return last time to horizontal speed maneuver, in given units, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToVerticalSpeedManeuver() [1/3]

double larcfm::Daidalus::lastTimeToVerticalSpeedManeuver ( const TrafficState ac)

Return last time to vertical speed maneuver, in seconds, for ownship with respect to traffic aircraft ac. Return NaN if the ownship is not in conflict with aircraft ac within lookahead time. Return negative infinity if there is no time to maneuver.

◆ lastTimeToVerticalSpeedManeuver() [2/3]

double larcfm::Daidalus::lastTimeToVerticalSpeedManeuver ( int  ac_idx)

Return last time to vertical speed maneuver, in seconds, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTimeToVerticalSpeedManeuver() [3/3]

double larcfm::Daidalus::lastTimeToVerticalSpeedManeuver ( int  ac_idx,
const std::string &  u 
)

Return last time to vertical speed maneuver, in given units, for ownship with respect to traffic aircraft at index ac_idx. Return positive infinity if the ownship is not in conflict with aircraft within lookahead time. Return negative infinity if there is no time to maneuver. Return NaN if ac_idx is not a valid index.

◆ lastTrafficIndex()

int larcfm::Daidalus::lastTrafficIndex ( ) const
Returns
last traffic index. Every traffic aircraft has an index between 1 and lastTrafficIndex. The index 0 is reserved for the ownship. When lastTrafficIndex is 0, the ownship is set but no traffic aircraft has been set. When lastTrafficIndex is negative, ownship has not been set.

◆ linearProjection()

void larcfm::Daidalus::linearProjection ( double  offset)

Project ownship and traffic aircraft offset seconds in the future (if positive) or in the past (if negative) EXPERT USE ONLY !!!

Project ownship and traffic aircraft offset seconds in the future (if positive) or in the past (if negative) XPERT USE ONLY !!!

◆ loadFromFile()

bool larcfm::Daidalus::loadFromFile ( const std::string &  file)

Load parameters from file.

◆ maxAlertLevel()

int larcfm::Daidalus::maxAlertLevel ( ) const
Returns
maximum alert level for all alerters. Returns 0 if alerter list is empty.

◆ modifiedTau() [1/2]

double larcfm::Daidalus::modifiedTau ( int  ac_idx,
double  DMOD 
) const

Returns modified tau time, in seconds, for distance DMOD (given in internal units), with respect to aircraft at index ac_idx. If aircraft are diverging or DMOD is greater than current range, returns -1. Returns NaN if aircraft index is not valid or if vertical closure is 0

◆ modifiedTau() [2/2]

double larcfm::Daidalus::modifiedTau ( int  ac_idx,
double  DMOD,
const std::string &  DMODu,
const std::string &  u 
) const

Returns modified tau time, in given units, for distance DMOD (given in DMODu units), with respect to aircraft at index ac_idx. If aircraft are diverging or DMOD is greater than current range, returns -1. Returns NaN if aircraft index is not valid or if vertical closure is 0

◆ mostSevereAlertLevel()

int larcfm::Daidalus::mostSevereAlertLevel ( int  ac_idx)

Returns most severe alert level for a given aircraft. Returns 0 if either the aircraft or the alerter is undefined.

◆ mostUrgentAircraft()

TrafficState larcfm::Daidalus::mostUrgentAircraft ( )
Returns
most urgent aircraft.

◆ numberOfAircraft()

int larcfm::Daidalus::numberOfAircraft ( ) const
Returns
number of aircraft, including ownship.

◆ numberOfAlerters()

int larcfm::Daidalus::numberOfAlerters ( ) const

Return number of alerters.

◆ peripheralAltitudeBandsAircraft() [1/2]

void larcfm::Daidalus::peripheralAltitudeBandsAircraft ( std::vector< std::string > &  acs,
BandsRegion::Region  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral altitude bands for conflict bands region.

◆ peripheralAltitudeBandsAircraft() [2/2]

void larcfm::Daidalus::peripheralAltitudeBandsAircraft ( std::vector< std::string > &  acs,
int  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral altitude bands for conflict bands region. 1 = FAR, 2 = MID, 3 = NEAR

◆ peripheralHorizontalDirectionBandsAircraft() [1/2]

void larcfm::Daidalus::peripheralHorizontalDirectionBandsAircraft ( std::vector< std::string > &  acs,
BandsRegion::Region  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral horizontal direction bands for given conflict bands region.

◆ peripheralHorizontalDirectionBandsAircraft() [2/2]

void larcfm::Daidalus::peripheralHorizontalDirectionBandsAircraft ( std::vector< std::string > &  acs,
int  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral horizontal direction bands for given conflict bands region. 1 = FAR, 2 = MID, 3 = NEAR

◆ peripheralHorizontalSpeedBandsAircraft() [1/2]

void larcfm::Daidalus::peripheralHorizontalSpeedBandsAircraft ( std::vector< std::string > &  acs,
BandsRegion::Region  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral horizontal speed bands for given conflict bands region.

◆ peripheralHorizontalSpeedBandsAircraft() [2/2]

void larcfm::Daidalus::peripheralHorizontalSpeedBandsAircraft ( std::vector< std::string > &  acs,
int  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral horizontal speed bands for given conflict bands region. 1 = FAR, 2 = MID, 3 = NEAR

◆ peripheralVerticalSpeedBandsAircraft() [1/2]

void larcfm::Daidalus::peripheralVerticalSpeedBandsAircraft ( std::vector< std::string > &  acs,
BandsRegion::Region  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral vertical speed bands for conflict bands region.

◆ peripheralVerticalSpeedBandsAircraft() [2/2]

void larcfm::Daidalus::peripheralVerticalSpeedBandsAircraft ( std::vector< std::string > &  acs,
int  region 
)

Compute in acs list of aircraft identifiers contributing to peripheral vertical speed bands for conflict bands region. 1 = FAR, 2 = MID, 3 = NEAR

◆ predictedHorizontalMissDistance() [1/2]

double larcfm::Daidalus::predictedHorizontalMissDistance ( int  ac_idx) const

Returns predicted HMD, in internal units, with aircraft at index ac_idx (up to lookahead time), assuming straight line trajectory. Returns NaN if aircraft index is not valid

◆ predictedHorizontalMissDistance() [2/2]

double larcfm::Daidalus::predictedHorizontalMissDistance ( int  ac_idx,
const std::string &  u 
) const

Returns predicted HMD, in provided units, with aircraft at index ac_idx (up to lookahead time), assuming straight line trajectory. Returns NaN if aircraft index is not valid

◆ predictedVerticalMissDistance() [1/2]

double larcfm::Daidalus::predictedVerticalMissDistance ( int  ac_idx) const

Returns predicted VMD, in internal units, with aircraft at index ac_idx (up to lookahead time), assuming straight line trajectory. Returns NaN if aircraft index is not valid

◆ predictedVerticalMissDistance() [2/2]

double larcfm::Daidalus::predictedVerticalMissDistance ( int  ac_idx,
const std::string &  u 
) const

Returns predicted VMD, in provided units, with aircraft at index ac_idx (up to lookahead time), assuming straight line trajectory. Return NaN if aircraft index is not valid

◆ preferredAltitudeUpOrDown()

bool larcfm::Daidalus::preferredAltitudeUpOrDown ( )

Compute preferred altitude direction on resolution that is closer to current altitude. True: Climb, False: Descend.

◆ preferredHorizontalDirectionRightOrLeft()

bool larcfm::Daidalus::preferredHorizontalDirectionRightOrLeft ( )

Compute preferred horizontal direction based on resolution that is closer to current direction.

Returns
True: Right. False: Left.

◆ preferredHorizontalSpeedUpOrDown()

bool larcfm::Daidalus::preferredHorizontalSpeedUpOrDown ( )

Compute preferred horizontal speed direction on resolution that is closer to current horizontal speed. True: Increase speed, False: Decrease speed.

◆ preferredVerticalSpeedUpOrDown()

bool larcfm::Daidalus::preferredVerticalSpeedUpOrDown ( )

Compute preferred vertical speed direction based on resolution that is closer to current vertical speed. True: Increase speed, False: Decrease speed.

◆ regionOfAlertLevel()

BandsRegion::Region larcfm::Daidalus::regionOfAlertLevel ( int  ac_idx,
int  alert_level 
)
Returns
region corresponding to a given alert level for a particular aircraft. This function first finds the alerter for this aircraft, based on ownship/intruder-centric logic, then returns the configured region for the alerter level. It returns UNKNOWN if the aircraft or the alert level are invalid.

◆ regionOfAltitude() [1/2]

BandsRegion::Region larcfm::Daidalus::regionOfAltitude ( double  alt)
Returns
the region of a given altitude specified in internal units [m]
Parameters
alt[m]

◆ regionOfAltitude() [2/2]

BandsRegion::Region larcfm::Daidalus::regionOfAltitude ( double  alt,
const std::string &  u 
)
Returns
the region of a given altitude specified in given units [u]
Parameters
alt[u]
uUnits

◆ regionOfGroundSpeed()

virtual BandsRegion::Region larcfm::Daidalus::regionOfGroundSpeed ( double  gs,
const std::string &  unit 
)
inlinevirtual

@Deprecated Use regionOfHorizontalSpeed instead

Implements larcfm::GenericBands.

◆ regionOfHorizontalDirection() [1/2]

BandsRegion::Region larcfm::Daidalus::regionOfHorizontalDirection ( double  dir)
Returns
the region of a given direction specified in internal units [rad].
Parameters
dir[rad]

◆ regionOfHorizontalDirection() [2/2]

BandsRegion::Region larcfm::Daidalus::regionOfHorizontalDirection ( double  dir,
const std::string &  u 
)
Returns
the region of a given direction specified in given units [u]
Parameters
dir[u]
uUnits

◆ regionOfHorizontalSpeed() [1/2]

BandsRegion::Region larcfm::Daidalus::regionOfHorizontalSpeed ( double  gs)
Returns
the region of a given horizontal speed specified in internal units [m/s]
Parameters
gs[m/s]

◆ regionOfHorizontalSpeed() [2/2]

BandsRegion::Region larcfm::Daidalus::regionOfHorizontalSpeed ( double  gs,
const std::string &  u 
)
Returns
the region of a given horizontal speed specified in given units [u]
Parameters
gs[u]
uUnits

◆ regionOfTrack()

virtual BandsRegion::Region larcfm::Daidalus::regionOfTrack ( double  trk,
const std::string &  unit 
)
inlinevirtual

@Deprecated Use regionOfHorizontalDirection instead

Implements larcfm::GenericBands.

◆ regionOfVerticalSpeed() [1/2]

BandsRegion::Region larcfm::Daidalus::regionOfVerticalSpeed ( double  vs)
Returns
the region of a given vertical speed specified in internal units [m/s]
Parameters
vs[m/s]

◆ regionOfVerticalSpeed() [2/2]

BandsRegion::Region larcfm::Daidalus::regionOfVerticalSpeed ( double  vs,
const std::string &  u 
)
virtual
Returns
the region of a given vertical speed specified in given units [u]
Parameters
vs[u]
uUnits

Implements larcfm::GenericBands.

◆ release()

std::string larcfm::Daidalus::release ( )
static

Return release version string

◆ removeTrafficAircraft()

bool larcfm::Daidalus::removeTrafficAircraft ( const std::string &  name)

Remove traffic from the list of aircraft. Returns false if no aircraft was removed. Ownship cannot be removed. If traffic is at index i, the indices of aircraft at k > i, are shifted to k-1. EXPERT USE ONLY !!!

◆ reset()

void larcfm::Daidalus::reset ( )

Set cached values to stale conditions and clear hysteresis variables.

◆ resetOwnship()

void larcfm::Daidalus::resetOwnship ( const std::string &  id)

Exchange ownship aircraft with aircraft named id. EXPERT USE ONLY !!!

◆ resetUncertainty()

void larcfm::Daidalus::resetUncertainty ( int  ac_idx)

Reset all uncertainties of aircraft at index ac_idx

◆ saveToFile()

bool larcfm::Daidalus::saveToFile ( const std::string &  file)

Write parameters to file.

◆ set_DO_365A()

void larcfm::Daidalus::set_DO_365A ( bool  type = true,
bool  sum = true 
)

Set hysteresis parameters

Set SUM parameters

Set DTA parameters

◆ setAboveRelativeAltitude() [1/2]

void larcfm::Daidalus::setAboveRelativeAltitude ( double  val)

Set altitude in internal units (above current value) for the computation of relative bands

◆ setAboveRelativeAltitude() [2/2]

void larcfm::Daidalus::setAboveRelativeAltitude ( double  val,
const std::string &  u 
)

Set altitude in given units (above current value) for the computation of relative bands

◆ setAboveRelativeHorizontalSpeed() [1/2]

void larcfm::Daidalus::setAboveRelativeHorizontalSpeed ( double  val)

Set horizontal speed in internal units (above current value) for the computation of relative bands

◆ setAboveRelativeHorizontalSpeed() [2/2]

void larcfm::Daidalus::setAboveRelativeHorizontalSpeed ( double  val,
const std::string &  u 
)

Set horizontal speed in given units (above current value) for the computation of relative bands

◆ setAboveRelativeVerticalSpeed() [1/2]

void larcfm::Daidalus::setAboveRelativeVerticalSpeed ( double  val)

Set vertical speed in internal units (above current value) for the computation of relative bands

◆ setAboveRelativeVerticalSpeed() [2/2]

void larcfm::Daidalus::setAboveRelativeVerticalSpeed ( double  val,
const std::string &  u 
)

Set vertical speed in given units (above current value) for the computation of relative bands

◆ setAboveToMaxRelativeAltitude()

void larcfm::Daidalus::setAboveToMaxRelativeAltitude ( )

Set above value to max when computing altitude bands

◆ setAboveToMaxRelativeHorizontalSpeed()

void larcfm::Daidalus::setAboveToMaxRelativeHorizontalSpeed ( )

Set above value to max when computing horizontal speed bands

◆ setAboveToMaxRelativeVerticalSpeed()

void larcfm::Daidalus::setAboveToMaxRelativeVerticalSpeed ( )

Set above value to max when computing vertical speed bands

◆ setAbsoluteHorizontalDirectionBands() [1/2]

void larcfm::Daidalus::setAbsoluteHorizontalDirectionBands ( double  min,
double  max 
)

Set absolute min/max directions for bands computations. Directions are specified in internal units [rad]. Values are expected to be in [0 - 2pi)

◆ setAbsoluteHorizontalDirectionBands() [2/2]

void larcfm::Daidalus::setAbsoluteHorizontalDirectionBands ( double  min,
double  max,
const std::string &  u 
)

Set absolute min/max directions for bands computations. Directions are specified in given units [u]. Values are expected to be in [0 - 2pi) [u]

◆ setAlerter()

void larcfm::Daidalus::setAlerter ( int  ac_idx,
const std::string &  alerter 
)

Set alerter of the aircraft at ac_idx to alerter

Parameters
ac_idxAircraft index between 0 (ownship) and lastTrafficIndex(), inclusive
alerterAlerter identifier

◆ setAlerterIndex()

void larcfm::Daidalus::setAlerterIndex ( int  ac_idx,
int  alerter_idx 
)

Set alerter of the aircraft at ac_idx to alerter_idx

Parameters
ac_idxAircraft index between 0 (ownship) and lastTrafficIndex(), inclusive
alerter_idxAlerter index starting from 1. The value 0 means none.

◆ setAlertingLogic()

void larcfm::Daidalus::setAlertingLogic ( bool  ownship_centric)

Set alerting logic to the value indicated by ownship_centric. If ownship_centric is true, alerting and guidance logic will use the alerter in ownship. Alerter in every intruder will be disregarded. If ownship_centric is false, alerting and guidance logic will use the alerter in every intruder. Alerter in ownship will be disregarded.

◆ setAlertingMofN()

void larcfm::Daidalus::setAlertingMofN ( int  m,
int  n 
)
Returns
Alerting parameter m of "M of N" strategy

Set alerting parameters of M of N strategy

◆ setAltitudeStep() [1/2]

void larcfm::Daidalus::setAltitudeStep ( double  val)

Sets step size for altitude bands to value in internal units [m]

◆ setAltitudeStep() [2/2]

void larcfm::Daidalus::setAltitudeStep ( double  val,
const std::string &  u 
)

Sets step size for altitude bands to value in specified units [u].

◆ setBandsPersistence()

void larcfm::Daidalus::setBandsPersistence ( bool  flag)

Enable/disable bands persistence

◆ setBankAngle() [1/2]

void larcfm::Daidalus::setBankAngle ( double  val)

Sets bank angle for direction bands to value in internal units [rad]. As a side effect, this method resets the turn rate.

◆ setBankAngle() [2/2]

void larcfm::Daidalus::setBankAngle ( double  val,
const std::string &  u 
)

Sets bank angle for direction bands to value in specified units [u]. As a side effect, this method resets the turn rate.

◆ setBelowRelativeAltitude() [1/2]

void larcfm::Daidalus::setBelowRelativeAltitude ( double  val)

Set altitude in internal units (below current value) for the computation of relative bands

◆ setBelowRelativeAltitude() [2/2]

void larcfm::Daidalus::setBelowRelativeAltitude ( double  val,
const std::string &  u 
)

Set altitude in given units (below current value) for the computation of relative bands

◆ setBelowRelativeHorizontalSpeed() [1/2]

void larcfm::Daidalus::setBelowRelativeHorizontalSpeed ( double  val)

Set horizontal speed in internal units (below current value) for the computation of relative bands

◆ setBelowRelativeHorizontalSpeed() [2/2]

void larcfm::Daidalus::setBelowRelativeHorizontalSpeed ( double  val,
std::string  u 
)

Set horizontal speed in given units (below current value) for the computation of relative bands

◆ setBelowRelativeVerticalSpeed() [1/2]

void larcfm::Daidalus::setBelowRelativeVerticalSpeed ( double  val)

Set vertical speed in internal units (below current value) for the computation of relative bands

◆ setBelowRelativeVerticalSpeed() [2/2]

void larcfm::Daidalus::setBelowRelativeVerticalSpeed ( double  val,
const std::string &  u 
)

Set vertical speed in given units (below current value) for the computation of relative bands

◆ setBelowToMinRelativeAltitude()

void larcfm::Daidalus::setBelowToMinRelativeAltitude ( )

Set below value to min when computing altitude bands

◆ setBelowToMinRelativeHorizontalSpeed()

void larcfm::Daidalus::setBelowToMinRelativeHorizontalSpeed ( )

Set below value to min when computing horizontal speed bands

◆ setBelowToMinRelativeVerticalSpeed()

void larcfm::Daidalus::setBelowToMinRelativeVerticalSpeed ( )

Set below value to min when computing vertical speed bands

◆ setCollisionAvoidanceBands()

void larcfm::Daidalus::setCollisionAvoidanceBands ( bool  flag)

Enable/disable collision avoidance bands.

◆ setCollisionAvoidanceBandsFactor()

void larcfm::Daidalus::setCollisionAvoidanceBandsFactor ( double  val)
Returns
set factor for computing collision avoidance bands. Factor value is in (0,1]

◆ setConflictCriteria()

void larcfm::Daidalus::setConflictCriteria ( bool  flag)

Enable/disable repulsive criteria for conflict bands.

◆ setCorrectiveRegion()

void larcfm::Daidalus::setCorrectiveRegion ( BandsRegion::Region  val)

Set corrective region for calculation of resolution maneuvers and bands saturation.

◆ setDaidalusParameters()

void larcfm::Daidalus::setDaidalusParameters ( const DaidalusParameters parameters)

Set bands parameters

◆ setDTAAlerter()

void larcfm::Daidalus::setDTAAlerter ( int  alerter)

Set DAA Terminal Area (DTA) alerter

◆ setDTAHeight() [1/2]

void larcfm::Daidalus::setDTAHeight ( double  val)

Set DAA Terminal Area (DTA) height (internal units)

◆ setDTAHeight() [2/2]

void larcfm::Daidalus::setDTAHeight ( double  val,
const std::string &  u 
)

Set DAA Terminal Area (DTA) height in given units

◆ setDTALatitude() [1/2]

void larcfm::Daidalus::setDTALatitude ( double  lat)

Set DAA Terminal Area (DTA) latitude (internal units)

◆ setDTALatitude() [2/2]

void larcfm::Daidalus::setDTALatitude ( double  lat,
const std::string &  ulat 
)

Set DAA Terminal Area (DTA) latitude in given units

◆ setDTALongitude() [1/2]

void larcfm::Daidalus::setDTALongitude ( double  lon)

Set DAA Terminal Area (DTA) longitude (internal units)

◆ setDTALongitude() [2/2]

void larcfm::Daidalus::setDTALongitude ( double  lon,
const std::string &  ulon 
)

Set DAA Terminal Area (DTA) longitude in given units

◆ setDTARadius() [1/2]

void larcfm::Daidalus::setDTARadius ( double  val)

Set DAA Terminal Area (DTA) radius (internal units)

◆ setDTARadius() [2/2]

void larcfm::Daidalus::setDTARadius ( double  val,
const std::string &  u 
)

Set DAA Terminal Area (DTA) radius in given units

◆ setHorizontalAcceleration() [1/2]

void larcfm::Daidalus::setHorizontalAcceleration ( double  val)

Sets horizontal acceleration for horizontal speed bands to value in internal units [m/s^2].

◆ setHorizontalAcceleration() [2/2]

void larcfm::Daidalus::setHorizontalAcceleration ( double  val,
const std::string &  u 
)

Sets horizontal acceleration for horizontal speed bands to value in specified units [u].

◆ setHorizontalContourThreshold() [1/2]

void larcfm::Daidalus::setHorizontalContourThreshold ( double  val)

Set horizontal contour threshold, specified in internal units [rad] [0 - pi] as an angle to the left/right of current aircraft direction. A value of 0 means only conflict contours. A value of pi means all contours.

◆ setHorizontalContourThreshold() [2/2]

void larcfm::Daidalus::setHorizontalContourThreshold ( double  val,
const std::string &  u 
)

Set horizontal contour threshold, specified in given units [u] [0 - pi] as an angle to the left/right of current aircraft direction. A value of 0 means only conflict contours. A value of pi means all contours.

◆ setHorizontalDirectionStep() [1/2]

void larcfm::Daidalus::setHorizontalDirectionStep ( double  val)

Sets step size for direction bands in internal units [rad].

◆ setHorizontalDirectionStep() [2/2]

void larcfm::Daidalus::setHorizontalDirectionStep ( double  val,
const std::string &  u 
)

Sets step size for direction bands in specified units [u].

◆ setHorizontalNMAC() [1/2]

void larcfm::Daidalus::setHorizontalNMAC ( double  val)

Set horizontal NMAC distance to value in internal units [m].

◆ setHorizontalNMAC() [2/2]

void larcfm::Daidalus::setHorizontalNMAC ( double  val,
const std::string &  u 
)

Set horizontal NMAC distance to value in specified units [u].

◆ setHorizontalPositionUncertainty() [1/2]

void larcfm::Daidalus::setHorizontalPositionUncertainty ( int  ac_idx,
double  s_EW_std,
double  s_NS_std,
double  s_EN_std 
)

Set horizontal position uncertainty of aircraft at index ac_idx s_EW_std: East/West position standard deviation in internal units s_NS_std: North/South position standard deviation in internal units s_EN_std: East/North position standard deviation in internal units

◆ setHorizontalPositionUncertainty() [2/2]

void larcfm::Daidalus::setHorizontalPositionUncertainty ( int  ac_idx,
double  s_EW_std,
double  s_NS_std,
double  s_EN_std,
const std::string &  u 
)

Set horizontal position uncertainty of aircraft at index ac_idx s_EW_std: East/West position standard deviation in given units s_NS_std: North/South position standard deviation in given units s_EN_std: East/North position standard deviation in given units

◆ setHorizontalPositionZScore()

void larcfm::Daidalus::setHorizontalPositionZScore ( double  val)
Returns
set z-score (number of standard deviations) for horizontal position (non-negative value)

◆ setHorizontalSpeedStep() [1/2]

void larcfm::Daidalus::setHorizontalSpeedStep ( double  val)

Sets step size for horizontal speed bands to value in internal units [m/s].

◆ setHorizontalSpeedStep() [2/2]

void larcfm::Daidalus::setHorizontalSpeedStep ( double  val,
const std::string &  u 
)

Sets step size for horizontal speed bands to value in specified units [u].

◆ setHorizontalVelocityUncertainty() [1/2]

void larcfm::Daidalus::setHorizontalVelocityUncertainty ( int  ac_idx,
double  v_EW_std,
double  v_NS_std,
double  v_EN_std 
)

Set horizontal speed uncertainty of aircraft at index ac_idx v_EW_std: East/West position standard deviation in internal units v_NS_std: North/South position standard deviation in internal units v_EN_std: East/North position standard deviation in internal units

◆ setHorizontalVelocityUncertainty() [2/2]

void larcfm::Daidalus::setHorizontalVelocityUncertainty ( int  ac_idx,
double  v_EW_std,
double  v_NS_std,
double  v_EN_std,
const std::string &  u 
)

Set horizontal speed uncertainty of aircraft at index ac_idx v_EW_std: East/West position standard deviation in given units v_NS_std: North/South position standard deviation in given units v_EN_std: East/North position standard deviation in given units

◆ setHorizontalVelocityZDistance() [1/2]

void larcfm::Daidalus::setHorizontalVelocityZDistance ( double  val)
Returns
Set distance (in internal units) at which h_vel_z_score scales from min to max as range decreases

◆ setHorizontalVelocityZDistance() [2/2]

void larcfm::Daidalus::setHorizontalVelocityZDistance ( double  val,
const std::string &  u 
)
Returns
Set distance (in given units) at which h_vel_z_score scales from min to max as range decreases

◆ setHorizontalVelocityZScoreMax()

void larcfm::Daidalus::setHorizontalVelocityZScoreMax ( double  val)
Returns
set max z-score (number of standard deviations) for horizontal velocity (non-negative value)

◆ setHorizontalVelocityZScoreMin()

void larcfm::Daidalus::setHorizontalVelocityZScoreMin ( double  val)
Returns
set min z-score (number of standard deviations) for horizontal velocity (non-negative value)

◆ setHysteresisTime() [1/2]

void larcfm::Daidalus::setHysteresisTime ( double  val)

Set hysteresis time to value in seconds.

◆ setHysteresisTime() [2/2]

void larcfm::Daidalus::setHysteresisTime ( double  val,
const std::string &  u 
)

Set hysteresis time to value in specified units [u].

◆ setInstantaneousBands()

void larcfm::Daidalus::setInstantaneousBands ( )

Set instantaneous bands.

◆ setIntruderCentricAlertingLogic()

void larcfm::Daidalus::setIntruderCentricAlertingLogic ( )

Set alerting and guidance logic to intruder-centric. Alerting and guidance logic will use the alerter in every intruder. Alerter in ownship will be disregarded.

◆ setKinematicBands()

void larcfm::Daidalus::setKinematicBands ( bool  type)

Set kinematic bands. Set turn rate to 3 deg/s, when type is true; set turn rate to 1.5 deg/s when type is false;

◆ setLeftHorizontalDirection() [1/2]

void larcfm::Daidalus::setLeftHorizontalDirection ( double  val)

Set left direction to value in internal units [rad]. Value is expected to be in [0 - pi]

◆ setLeftHorizontalDirection() [2/2]

void larcfm::Daidalus::setLeftHorizontalDirection ( double  val,
const std::string &  u 
)

Set left direction to value in specified units [u]. Value is expected to be in [0 - pi]

◆ setLookaheadTime() [1/2]

void larcfm::Daidalus::setLookaheadTime ( double  t)

Sets lookahead time in seconds.

◆ setLookaheadTime() [2/2]

void larcfm::Daidalus::setLookaheadTime ( double  t,
const std::string &  u 
)
virtual

Set lookahead time to value in specified units [u].

Implements larcfm::GenericBands.

◆ setMaxAltitude() [1/2]

void larcfm::Daidalus::setMaxAltitude ( double  val)

Sets maximum altitude for altitude bands to value in internal units [m]

◆ setMaxAltitude() [2/2]

void larcfm::Daidalus::setMaxAltitude ( double  val,
const std::string &  u 
)

Sets maximum altitude for altitude bands to value in specified units [u].

◆ setMaxGroundSpeed()

virtual void larcfm::Daidalus::setMaxGroundSpeed ( double  gs,
const std::string &  unit 
)
inlinevirtual

@Deprecated Use setMaxHorizontalSpeed instead

Implements larcfm::GenericBands.

◆ setMaxHorizontalSpeed() [1/2]

void larcfm::Daidalus::setMaxHorizontalSpeed ( double  val)

Sets maximum horizontal speed for horizontal speed bands to value in internal units [m/s].

◆ setMaxHorizontalSpeed() [2/2]

void larcfm::Daidalus::setMaxHorizontalSpeed ( double  val,
const std::string &  u 
)

Sets maximum horizontal speed for horizontal speed bands to value in specified units [u].

◆ setMaxVerticalSpeed() [1/2]

void larcfm::Daidalus::setMaxVerticalSpeed ( double  val)

Sets maximum vertical speed for vertical speed bands to value in internal units [m/s].

◆ setMaxVerticalSpeed() [2/2]

void larcfm::Daidalus::setMaxVerticalSpeed ( double  val,
const std::string &  u 
)
virtual

Sets maximum vertical speed for vertical speed bands to value in specified units [u].

Implements larcfm::GenericBands.

◆ setMinAltitude() [1/2]

void larcfm::Daidalus::setMinAltitude ( double  val)

Sets minimum altitude for altitude bands to value in internal units [m]

◆ setMinAltitude() [2/2]

void larcfm::Daidalus::setMinAltitude ( double  val,
const std::string &  u 
)

Sets minimum altitude for altitude bands to value in specified units [u].

◆ setMinHorizontalRecovery() [1/2]

void larcfm::Daidalus::setMinHorizontalRecovery ( double  val)

Sets minimum horizontal separation for recovery bands in internal units [m].

◆ setMinHorizontalRecovery() [2/2]

void larcfm::Daidalus::setMinHorizontalRecovery ( double  val,
const std::string &  u 
)

Set minimum horizontal separation for recovery bands in specified units [u].

◆ setMinHorizontalSpeed() [1/2]

void larcfm::Daidalus::setMinHorizontalSpeed ( double  val)

Sets minimum horizontal speed for horizontal speed bands to value in internal units [m/s].

◆ setMinHorizontalSpeed() [2/2]

void larcfm::Daidalus::setMinHorizontalSpeed ( double  val,
const std::string &  u 
)

Sets minimum horizontal speed for horizontal speed bands to value in specified units [u].

◆ setMinVerticalRecovery() [1/2]

void larcfm::Daidalus::setMinVerticalRecovery ( double  val)

Sets minimum vertical separation for recovery bands in internal units [m].

◆ setMinVerticalRecovery() [2/2]

void larcfm::Daidalus::setMinVerticalRecovery ( double  val,
const std::string &  u 
)

Set minimum vertical separation for recovery bands in units

◆ setMinVerticalSpeed() [1/2]

void larcfm::Daidalus::setMinVerticalSpeed ( double  val)

Sets minimum vertical speed for vertical speed bands to value in internal units [m/s].

◆ setMinVerticalSpeed() [2/2]

void larcfm::Daidalus::setMinVerticalSpeed ( double  val,
const std::string &  u 
)

Sets minimum vertical speed for vertical speed bands to value in specified units [u].

◆ setNoWind()

void larcfm::Daidalus::setNoWind ( )

Set no wind velocity

◆ setOwnship() [1/2]

virtual void larcfm::Daidalus::setOwnship ( const Position pos,
const Velocity vel 
)
inlinevirtual

@Deprecated Use setOwnshipState instead. Set ownship state at time 0.0. Clear all traffic. Name of ownship will be "Ownship"

Parameters
posOwnship's position
velOwnship's ground velocity

◆ setOwnship() [2/2]

virtual void larcfm::Daidalus::setOwnship ( const std::string &  id,
const Position pos,
const Velocity vel 
)
inlinevirtual

@Deprecated Use setOwnshipState instead. Set ownship state at time 0.0. Clear all traffic.

Parameters
idOwnship's identified
posOwnship's position
velOwnship's ground velocity

Implements larcfm::GenericStateBands.

◆ setOwnshipCentricAlertingLogic()

void larcfm::Daidalus::setOwnshipCentricAlertingLogic ( )

Set alerting and guidance logic to ownship-centric. Alerting and guidance logic will use the alerter in ownship. Alerter in every intruder will be disregarded.

◆ setOwnshipState() [1/2]

void larcfm::Daidalus::setOwnshipState ( const std::string &  id,
const Position pos,
const Velocity vel 
)

Set ownship state at time 0.0. Clear all traffic.

Parameters
idOwnship's identifier
posOwnship's position
velOwnship's ground velocity

◆ setOwnshipState() [2/2]

void larcfm::Daidalus::setOwnshipState ( const std::string &  id,
const Position pos,
const Velocity vel,
double  time 
)

Set ownship state and current time. Clear all traffic.

Parameters
idOwnship's identifier
posOwnship's position
velOwnship's ground velocity
timeTime stamp of ownship's state

◆ setPersistencePreferredAltitudeResolution() [1/2]

void larcfm::Daidalus::setPersistencePreferredAltitudeResolution ( double  val)

Set persistence for preferred altitude resolution in internal units

◆ setPersistencePreferredAltitudeResolution() [2/2]

void larcfm::Daidalus::setPersistencePreferredAltitudeResolution ( double  val,
const std::string &  u 
)

Set persistence for preferred altitude resolution in given units

◆ setPersistencePreferredHorizontalDirectionResolution() [1/2]

void larcfm::Daidalus::setPersistencePreferredHorizontalDirectionResolution ( double  val)

Set persistence for preferred horizontal direction resolution in internal units

◆ setPersistencePreferredHorizontalDirectionResolution() [2/2]

void larcfm::Daidalus::setPersistencePreferredHorizontalDirectionResolution ( double  val,
const std::string &  u 
)

Set persistence for preferred horizontal direction resolution in given units

◆ setPersistencePreferredHorizontalSpeedResolution() [1/2]

void larcfm::Daidalus::setPersistencePreferredHorizontalSpeedResolution ( double  val)

Set persistence for preferred horizontal speed resolution in internal units

◆ setPersistencePreferredHorizontalSpeedResolution() [2/2]

void larcfm::Daidalus::setPersistencePreferredHorizontalSpeedResolution ( double  val,
const std::string &  u 
)

Set persistence for preferred horizontal speed resolution in given units

◆ setPersistencePreferredVerticalSpeedResolution() [1/2]

void larcfm::Daidalus::setPersistencePreferredVerticalSpeedResolution ( double  val)

Set persistence for preferred vertical speed resolution in internal units

◆ setPersistencePreferredVerticalSpeedResolution() [2/2]

void larcfm::Daidalus::setPersistencePreferredVerticalSpeedResolution ( double  val,
const std::string &  u 
)

Set persistence for preferred vertical speed resolution in given units

◆ setPersistenceTime() [1/2]

void larcfm::Daidalus::setPersistenceTime ( double  val)

Set alerting persistence time to value in seconds.

◆ setPersistenceTime() [2/2]

void larcfm::Daidalus::setPersistenceTime ( double  val,
const std::string &  u 
)

Set alerting persistence time to value in specified units [u].

◆ setRecoveryAltitudeBands()

void larcfm::Daidalus::setRecoveryAltitudeBands ( bool  flag)

Sets recovery bands flag for altitude bands to specified value.

◆ setRecoveryBands()

void larcfm::Daidalus::setRecoveryBands ( bool  flag)

Sets recovery bands flag for direction, horizontal speed, and vertical speed bands to specified value.

◆ setRecoveryCriteria()

void larcfm::Daidalus::setRecoveryCriteria ( bool  flag)

Enable/disable repulsive criteria for recovery bands.

◆ setRecoveryHorizontalDirectionBands()

void larcfm::Daidalus::setRecoveryHorizontalDirectionBands ( bool  flag)

Sets recovery bands flag for direction bands to specified value.

◆ setRecoveryHorizontalSpeedBands()

void larcfm::Daidalus::setRecoveryHorizontalSpeedBands ( bool  flag)

Sets recovery bands flag for horizontal speed bands to specified value.

◆ setRecoveryStabilityTime() [1/2]

void larcfm::Daidalus::setRecoveryStabilityTime ( double  t)

Sets recovery stability time in seconds. Recovery bands are computed at time of first conflict-free region plus this time.

◆ setRecoveryStabilityTime() [2/2]

void larcfm::Daidalus::setRecoveryStabilityTime ( double  t,
const std::string &  u 
)

Sets recovery stability time in specified units. Recovery bands are computed at time of first conflict-free region plus this time.

◆ setRecoveryVerticalSpeedBands()

void larcfm::Daidalus::setRecoveryVerticalSpeedBands ( bool  flag)

Sets recovery bands flag for vertical speed bands to specified value.

◆ setRepulsiveCriteria()

void larcfm::Daidalus::setRepulsiveCriteria ( bool  flag)

Enable/disable repulsive criteria for conflict and recovery bands.

◆ setRightHorizontalDirection() [1/2]

void larcfm::Daidalus::setRightHorizontalDirection ( double  val)

Set right direction to value in internal units [rad]. Value is expected to be in [0 - pi]

◆ setRightHorizontalDirection() [2/2]

void larcfm::Daidalus::setRightHorizontalDirection ( double  val,
const std::string &  u 
)

Set right direction to value in specified units [u]. Value is expected to be in [0 - pi]

◆ setTurnRate() [1/2]

void larcfm::Daidalus::setTurnRate ( double  val)

Sets turn rate for direction bands to value in internal units [rad/s]. As a side effect, this method resets the bank angle.

◆ setTurnRate() [2/2]

void larcfm::Daidalus::setTurnRate ( double  val,
const std::string &  u 
)

Sets turn rate for direction bands to value in specified units [u]. As a side effect, this method resets the bank angle.

◆ setUrgencyStrategy()

void larcfm::Daidalus::setUrgencyStrategy ( const UrgencyStrategy strat)

Set strategy for computing most urgent aircraft.

◆ setVerticalAcceleration() [1/2]

void larcfm::Daidalus::setVerticalAcceleration ( double  val)

Sets the constant vertical acceleration for vertical speed and altitude bands to value in internal units [m/s^2]

◆ setVerticalAcceleration() [2/2]

void larcfm::Daidalus::setVerticalAcceleration ( double  val,
const std::string &  u 
)

Sets the constant vertical acceleration for vertical speed and altitude bands to value in specified units [u].

◆ setVerticalNMAC() [1/2]

void larcfm::Daidalus::setVerticalNMAC ( double  val)

Set vertical NMAC distance to value in internal units [m].

◆ setVerticalNMAC() [2/2]

void larcfm::Daidalus::setVerticalNMAC ( double  val,
const std::string &  u 
)

Set vertical NMAC distance to value in specified units [u].

◆ setVerticalPositionUncertainty() [1/2]

void larcfm::Daidalus::setVerticalPositionUncertainty ( int  ac_idx,
double  sz_std 
)

Set vertical position uncertainty of aircraft at index ac_idx sz_std : Vertical position standard deviation in internal units

◆ setVerticalPositionUncertainty() [2/2]

void larcfm::Daidalus::setVerticalPositionUncertainty ( int  ac_idx,
double  sz_std,
const std::string &  u 
)

Set vertical position uncertainty of aircraft at index ac_idx sz_std : Vertical position standard deviation in given units

◆ setVerticalPositionZScore()

void larcfm::Daidalus::setVerticalPositionZScore ( double  val)
Returns
set z-score (number of standard deviations) for vertical position (non-negative value)

◆ setVerticalRate() [1/2]

void larcfm::Daidalus::setVerticalRate ( double  val)

Sets vertical rate for altitude bands to value in internal units [m/s]

◆ setVerticalRate() [2/2]

void larcfm::Daidalus::setVerticalRate ( double  val,
const std::string &  u 
)

Sets vertical rate for altitude bands to value in specified units [u].

◆ setVerticalSpeedStep() [1/2]

void larcfm::Daidalus::setVerticalSpeedStep ( double  val)

Sets step size for vertical speed bands to value in internal units [m/s].

◆ setVerticalSpeedStep() [2/2]

void larcfm::Daidalus::setVerticalSpeedStep ( double  val,
const std::string &  u 
)

Sets step size for vertical speed bands to value in specified units [u].

◆ setVerticalSpeedUncertainty() [1/2]

void larcfm::Daidalus::setVerticalSpeedUncertainty ( int  ac_idx,
double  vz_std 
)

Set vertical speed uncertainty of aircraft at index ac_idx vz_std : Vertical speed standard deviation in internal units

◆ setVerticalSpeedUncertainty() [2/2]

void larcfm::Daidalus::setVerticalSpeedUncertainty ( int  ac_idx,
double  vz_std,
const std::string &  u 
)

Set vertical speed uncertainty of aircraft at index ac_idx vz_std : Vertical speed standard deviation in given units

◆ setVerticalSpeedZScore()

void larcfm::Daidalus::setVerticalSpeedZScore ( double  val)
Returns
set z-score (number of standard deviations) for vertical velocity (non-negative value)

◆ setWindVelocityFrom()

void larcfm::Daidalus::setWindVelocityFrom ( const Velocity nwind_vector)

Set wind velocity specified in the From direction

Parameters
nwind_velocityWind velocity specified in From direction

◆ setWindVelocityTo()

void larcfm::Daidalus::setWindVelocityTo ( const Velocity wind_vector)

Set wind velocity specified in the TO direction

Parameters
wind_velocityWind velocity specified in TO direction

◆ timeIntervalOfConflict() [1/2]

Interval larcfm::Daidalus::timeIntervalOfConflict ( BandsRegion::Region  region)

Return time interval of violation for given conflict bands region

◆ timeIntervalOfConflict() [2/2]

Interval larcfm::Daidalus::timeIntervalOfConflict ( int  region)

Return time interval of violation for given conflict bands region 1 = FAR, 2 = MID, 3 = NEAR

◆ timeToCoAltitude() [1/2]

double larcfm::Daidalus::timeToCoAltitude ( int  ac_idx) const

Returns time, in seconds, to co-altitude with aircraft at index ac_idx, assuming straight line trajectory. If aircraft are diverging, returns negative time. If vertical closure is 0, returns negative infinite. Returns NaN if aircraft index is not valid or if vertical closure is 0.

◆ timeToCoAltitude() [2/2]

double larcfm::Daidalus::timeToCoAltitude ( int  ac_idx,
const std::string &  u 
) const

Returns time, in given units, to co-altitude with aircraft at index ac_idx, assuming straight line trajectory. If aircraft are diverging, returns negative value. Returns NaN if aircraft index is not valid or if vertical closure is 0

◆ timeToCorrectiveVolume()

double larcfm::Daidalus::timeToCorrectiveVolume ( int  ac_idx)
Returns
time to corrective volume, in seconds, between ownship and aircraft at index idx, for the corrective volume. The returned time is relative to current time. POSITIVE_INFINITY means no conflict within lookahead time. NaN means aircraft index is out of range.
Parameters
ac_idxis the index of the traffic aircraft

◆ timeToHorizontalClosestPointOfApproach() [1/2]

double larcfm::Daidalus::timeToHorizontalClosestPointOfApproach ( int  ac_idx) const

Returns time, in seconds, to horizontal closest point of approach with aircraft at index ac_idx, assuming straight line trajectory. If aircraft are diverging, the returned time is 0. Returns NaN if aircraft index is not valid

◆ timeToHorizontalClosestPointOfApproach() [2/2]

double larcfm::Daidalus::timeToHorizontalClosestPointOfApproach ( int  ac_idx,
const std::string &  u 
) const

Returns time, in given units, to horizontal closest point of approach with aircraft at index ac_idx, assuming straight line trajectory. If aircraft are diverging, the returned time is 0. Returns NaN if aircraft index is not valid

◆ toString()

std::string larcfm::Daidalus::toString ( ) const
virtual

Return a string representing this object.

Implements larcfm::GenericBands.

◆ track()

virtual Interval larcfm::Daidalus::track ( int  i,
const std::string &  unit 
)
inlinevirtual

@Deprecated Use horizontalDirectionIntervalAt instead

Implements larcfm::GenericBands.

◆ trackLength()

virtual int larcfm::Daidalus::trackLength ( )
inlinevirtual

@Deprecated Use horizontalDirectionBandsLength instead

Implements larcfm::GenericBands.

◆ trackRegion()

virtual BandsRegion::Region larcfm::Daidalus::trackRegion ( int  i)
inlinevirtual

@Deprecated Use horizontalDirectionRegionAt instead

Implements larcfm::GenericBands.

◆ verticalClosureRate() [1/2]

double larcfm::Daidalus::verticalClosureRate ( int  ac_idx) const

Returns vertical closure rate, in internal units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ verticalClosureRate() [2/2]

double larcfm::Daidalus::verticalClosureRate ( int  ac_idx,
const std::string &  u 
) const

Returns vertical closure rate, in given units, with aircraft at index ac_idx. Returns NaN if aircraft index is not valid

◆ verticalSpeed()

virtual Interval larcfm::Daidalus::verticalSpeed ( int  i,
const std::string &  unit 
)
inlinevirtual

@Deprecated Use verticalSpeedIntervalAt instead

Implements larcfm::GenericBands.

◆ verticalSpeedBandsLength()

int larcfm::Daidalus::verticalSpeedBandsLength ( )
Returns
the number of vertical speed band intervals, negative if the ownship has not been set

◆ verticalSpeedIntervalAt() [1/2]

Interval larcfm::Daidalus::verticalSpeedIntervalAt ( int  i)
Returns
the i-th interval, in internal units [m/s], of the computed vertical speed bands.
Parameters
iindex

◆ verticalSpeedIntervalAt() [2/2]

Interval larcfm::Daidalus::verticalSpeedIntervalAt ( int  i,
const std::string &  u 
)
Returns
the i-th interval, in specified units [u], of the computed vertical speed bands.
Parameters
iindex
uunits

◆ verticalSpeedLength()

virtual int larcfm::Daidalus::verticalSpeedLength ( )
inlinevirtual

@Deprecated Use verticalSpeedBandsLength instead

Implements larcfm::GenericBands.

◆ verticalSpeedRawResolution() [1/2]

double larcfm::Daidalus::verticalSpeedRawResolution ( bool  dir)

Compute vertical speed raw resolution maneuver for given direction. Raw resolution is the resolution without persistence @parameter dir is up (true)/down (false) of ownship current vertical speed

Returns
vertical speed resolution in internal units [m/s] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ verticalSpeedRawResolution() [2/2]

double larcfm::Daidalus::verticalSpeedRawResolution ( bool  dir,
const std::string &  u 
)

Compute vertical speed raw resolution maneuver for given direction. Raw resolution is the resolution without persistence @parameter dir is up (true)/down (false) of ownship current vertical speed @parameter u units

Returns
vertical speed resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ verticalSpeedRecoveryInformation()

RecoveryInformation larcfm::Daidalus::verticalSpeedRecoveryInformation ( )
Returns
recovery information for vertical speed bands.

◆ verticalSpeedRegion()

virtual BandsRegion::Region larcfm::Daidalus::verticalSpeedRegion ( int  i)
inlinevirtual

@Deprecated Use verticalSpeedRegionAt instead

Implements larcfm::GenericBands.

◆ verticalSpeedRegionAt()

BandsRegion::Region larcfm::Daidalus::verticalSpeedRegionAt ( int  i)
Returns
the i-th region of the computed vertical speed bands.
Parameters
iindex

◆ verticalSpeedResolution() [1/2]

double larcfm::Daidalus::verticalSpeedResolution ( bool  dir)

Compute vertical speed resolution maneuver for given direction. @parameter dir is up (true)/down (false) of ownship current vertical speed

Returns
vertical speed resolution in internal units [m/s] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ verticalSpeedResolution() [2/2]

double larcfm::Daidalus::verticalSpeedResolution ( bool  dir,
const std::string &  u 
)

Compute vertical speed resolution maneuver for given direction. @parameter dir is up (true)/down (false) of ownship current vertical speed @parameter u units

Returns
vertical speed resolution in specified units [u] in specified direction. Resolution maneuver is valid for lookahead time in seconds. Return NaN if there is no conflict, positive infinity if there is no up resolution, and negative infinity if there is no down resolution.

◆ violationOfAlertThresholds() [1/2]

ConflictData larcfm::Daidalus::violationOfAlertThresholds ( int  ac_idx,
BandsRegion::Region  region 
)

Detects violation of alert thresholds for a given region with an aircraft at index ac_idx. Conflict data provides time to violation and time to end of violation of alert thresholds of given alert level.

Parameters
ac_idxis the index of the traffic aircraft
regionregion used to compute detection.

◆ violationOfAlertThresholds() [2/2]

ConflictData larcfm::Daidalus::violationOfAlertThresholds ( int  ac_idx,
int  alert_level 
)

Detects violation of alert thresholds for a given alert level with an aircraft at index ac_idx. Conflict data provides time to violation and time to end of violation of alert thresholds of given alert level.

Parameters
ac_idxis the index of the traffic aircraft
alert_levelalert level used to compute detection. The value 0 indicate the alert volume of the corrective region.

◆ violationOfCorrectiveThresholds()

ConflictData larcfm::Daidalus::violationOfCorrectiveThresholds ( int  ac_idx)

Detects violation of corrective thresholds with an aircraft at index ac_idx. Conflict data provides time to violation and time to end of violation

Parameters
ac_idxis the index of the traffic aircraft

The documentation for this class was generated from the following files: