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

#include <CDSS.h>

Public Member Functions

 CDSS (CDSSCore &cdsscore)
 
 CDSS (CDCylinder &cdCyl)
 
 CDSS (CDCylinder &cdCyl, double filterTm, const std::string &ut)
 
 CDSS (double D, const std::string &ud, double H, const std::string &uh)
 
 CDSS (WCV_TAUMOD &wcv_TAUMOD)
 
void setFilterTime (double filter)
 
 CDSS (const CDSS &cdss)
 
CDSSoperator= (const CDSS &cdss)
 
bool lossOfSeparation (const Position &sop, const Velocity &vo, const Position &sip, const Velocity &vi) const
 
bool detection (const Position &sop, const Velocity &vo, const Position &sip, const Velocity &vi, double T, const std::string &ut)
 
bool conflict (const Position &so, const Velocity &vo, const Position &si, const Velocity &vi, double B, double T) const
 
double getTimeIn (const std::string &ut) const
 
double getCriticalTime (const std::string &ut) const
 
double getTimeOut (const std::string &ut) const
 
CDSSCoregetCorePtr ()
 
std::string toString ()
 

Static Public Member Functions

static CDSS makeCyl (const std::string &cyid, double D, const std::string &ud, double H, const std::string &uh)
 
static CDSS mkCyl (const std::string &cyid, double D, double H, double filter)
 
static CDSS mkTauMOD (const std::string &id, double DTHR, double ZTHR, double TTHR, double TCOA)
 

Private Attributes

CDSSCore cdsscore
 

Detailed Description

The Class CDSS. This is a dedicated class that only uses the CD3D (CDCylinder) detection algorithm. The more general form is CDSSCore, which may utilize arbitrary Detection3D detection algorithms.

Usage: CDSS cdss = new CDSS(); cdss.setDistance(5,"NM") cdss.setHeight(950,"ft") boolean det = cdss.detection(so,vo,si,vi,T);

Constructor & Destructor Documentation

◆ CDSS() [1/3]

larcfm::CDSS::CDSS ( CDCylinder cdCyl)

Create a cylindrical CDSS object from a CDCylinder object

Parameters
cdCylCDCylinder with detection parameters

◆ CDSS() [2/3]

larcfm::CDSS::CDSS ( double  D,
const std::string &  ud,
double  H,
const std::string &  uh 
)

Create a cylindrical CDSS with D,H parameters

Parameters
Dwidth of the protection zone
udunits of D
Hheight of the protection zone
uhunits of H

◆ CDSS() [3/3]

larcfm::CDSS::CDSS ( const CDSS cdss)

Copy constructor

Member Function Documentation

◆ conflict()

bool larcfm::CDSS::conflict ( const Position so,
const Velocity vo,
const Position si,
const Velocity vi,
double  B,
double  T 
) const

Determines if two aircraft are in conflict within a given lookahed time (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Tlookahead time in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [0,T].

Determines if two aircraft are in conflict within a given lookahed time (internal units). This function DOES NOT compute time interval of conflict.

Parameters
sthe relative position of the aircraft
vothe velocity of the ownship
vithe velocity of the intruder
Tlookahead time in internal units [s] (T > 0)
Returns
true, if the aircraft are in conflict in the interval [0,T].

◆ detection()

bool larcfm::CDSS::detection ( const Position sop,
const Velocity vo,
const Position sip,
const Velocity vi,
double  T,
const std::string &  ut 
)

Detects a conflict that lasts more than filter time within a given lookahed time and computes the time interval of conflict (internal units). If timeIn() == 0, after this function is called then aircraft is in loss of separation.

Parameters
sothe position of the ownship
vothe velocity of the ownship
sithe position of the intruder
vithe velocity of the intruder
Tthe lookahead time in internal units ut (T > 0)
Returns
true, if there is a conflict that last more than the filter time in the interval [0,T].

◆ getCriticalTime()

double larcfm::CDSS::getCriticalTime ( const std::string &  ut) const

Return the critical time for the conflict, as determined by the core detection algorithm. This is generally not the traditional time of closest approach.

◆ getTimeIn()

double larcfm::CDSS::getTimeIn ( const std::string &  ut) const

Time to loss of separation in explicit units.

Parameters
utthe explicit units of time
Returns
the time to loss of separation in explicit units [ut]. If time is negative then there is no conflict.

◆ getTimeOut()

double larcfm::CDSS::getTimeOut ( const std::string &  ut) const

Time to recovery of loss of separation in explicit units.

Parameters
utthe explicit units of time
Returns
the time to recovery of loss of separation in explicit units [ut].

Time to recovery of loss of separation in explicit units.

Parameters
utthe explicit units of time
Returns
the time to recovery of loss of separation in explicit units [ut]. If timeOut is zero then there is no conflict. If timeOut is negative then, timeOut is infinite.

◆ lossOfSeparation()

bool larcfm::CDSS::lossOfSeparation ( const Position sop,
const Velocity vo,
const Position sip,
const Velocity vi 
) const

Determines if two aircraft are in loss of separation. This function DOES NOT compute time interval of conflict.

Parameters
sothe position of the ownship
vovelocity of ownship
sithe position of the intruder
vivelocity of intruder
Returns
true, if the aircraft are in loss of separation.

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