|
WSF
|
#include <WsfBeamDirector.hpp>


Public Types | |
| enum | Type { cSCANNING = 0 , cLOCKED = 1 , cLOCKED_WAITING_FOR_CUE = 2 , cCUED = 3 , cBREAKLOCK = 4 , cNUM_STATES = 5 , cUNDEFINED = 999 } |
Public Member Functions | |
| WsfBeamDirectorMode ()=default | |
| WsfBeamDirectorMode (const WsfBeamDirectorMode &aSrc) | |
| WsfBeamDirectorMode & | operator= (const WsfBeamDirectorMode &)=delete |
| ~WsfBeamDirectorMode () override | |
| WsfSensorMode * | Clone () const override |
| Create an exact duplicate of this mode. | |
| bool | ProcessInput (UtInput &aInput) override |
| bool | Initialize (double aSimTime) override |
| void | SetTrack (const WsfTrack &aTrack) |
| bool | IsImaging () const |
| bool | IsTracking () const |
| WsfTrack & | GetTrack () |
| int | GetType () const |
| void | PointAtTargetUpdate (double aSimTime) |
| Update the pointing at a given track by using a kinematic update. | |
| const std::set< WsfStringId > & | GetTargetsInFOV () const |
| bool | AttemptToDetect (double aSimTime, WsfPlatform *aTargetPtr, WsfSensor::Settings &aSettings, WsfSensorResult &aResult) override |
| void | Deselect (double aSimTime) override |
| void | Select (double aSimTime) override |
| const WsfImage & | GetImage () |
| const WsfImage::Object * | GetImageObject () const |
| const WsfTrack & | GetTrack () const |
| void | Update (double aSimTime) |
| double | GetMaxRange () const |
| Get the maximum range for this sensor. | |
| WsfEM_Xmtr & | GetEM_Xmtr () |
| WsfEM_Xmtr & | GetEM_Xmtr (unsigned int aIndex) |
| WsfEM_Rcvr & | GetEM_Rcvr () |
| WsfEM_Rcvr & | GetEM_Rcvr (unsigned int aIndex) |
| Public Member Functions inherited from WsfSensorMode | |
| WsfSensorMode () | |
| WsfSensorMode (const WsfSensorMode &aSrc) | |
| WsfSensorMode & | operator= (const WsfSensorMode &aRhs) |
| ~WsfSensorMode () override | |
| WsfPlatform * | GetPlatform () const |
| Return the pointer to the platform to which the associated sensor is attached. | |
| WsfSensor * | GetSensor () const |
| Return the pointer to the sensor with which this mode is associated. | |
| const WsfScenario & | GetScenario () const |
| WsfSimulation * | GetSimulation () const |
| bool | ProcessInput (UtInput &aInput) override |
| size_t | GetOnSuccessModeIndex () const |
| size_t | GetOnFailureModeIndex () const |
| int | GetMessageLength () const |
| Return the logical length (int bits) of report messages that originate from this sensor mode. | |
| int | GetMessagePriority () const |
| Return the priority of report messages that originate from this sensor mode. | |
| void | UpdateTrackPosition (WsfTrack *aTrackPtr, WsfSensorResult &aResult, const double aTgtLocationWCS[3]) |
| WsfSensor::SlewMode | GetCueMode () const |
| virtual size_t | GetBeamCount () const |
| virtual WsfSensorBeam * | GetBeamEntry (size_t aIndex) |
| virtual double | GetAltFreqSelectDelay () const |
| virtual void | ScheduleAltFreqChange (double aSimTime, int aAltFreqId=-1) |
| virtual bool | IsAltFreqChangeScheduled () const |
| virtual double | GetLastAltFreqSelectTime () const |
| virtual bool | IsFrequencyAgile () const |
| virtual void | ApplyMeasurementErrors (WsfSensorResult &aResult) |
| virtual WSF_DEPRECATED void | ComputeMeasurementErrors (WsfSensorResult &aResult, double &aAzError, double &aElError, double &aRangeError, double &aRangeRateError) final |
| virtual void | InitializeTrack (double aSimTime, WsfTrack *&aTrackPtr) |
| virtual void | UpdateSensorCueingLimits () |
| virtual void | UpdateTrack (double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| virtual void | UpdateTrackReportingFlags (double aSimTime, WsfTrack *aTrackPtr) |
| virtual bool | WithinDetectionRange (double aSimTime, WsfPlatform *aTargetPtr) |
| double | GetMaximumRange () const |
| Return the optimistic maximum range of the sensor mode. | |
| int | GetMaximumRequestCount () const |
| Return the maximum number of cued-search or tracking requests the mode can support. | |
| bool | DisablesSearch () const |
| Does using this mode prevent this or any other mode from searching? | |
| bool | CanSearchWhileTrack () const |
| Can this mode continue to search while it is also performing tracking requests. | |
| double | GetFrameTime () const |
| void | SetFrameTime (double aFrameTime) |
| double | GetRevisitTime () const |
| double | GetDwellTime () const |
| double | GetRequiredPd () const |
| double | EstablishTrackProbability () const |
| double | MaintainTrackProbability () const |
| int | HitsToEstablishTrack () const |
| The number of hits (M) within the window (N) that are required to establish a track. | |
| int | EstablishTrackWindow () const |
| The window size (N) for establishing a track. | |
| int | HitsToMaintainTrack () const |
| The number of hits (M) within the window (N) that are required to maintain a track. | |
| int | MaintainTrackWindow () const |
| The window size (N) for maintaining a track. | |
| unsigned int | EstablishTrackMask () const |
| unsigned int | MaintainTrackMask () const |
| double | GetTrackQuality () const |
| unsigned int | GetReportingFlags () const |
| Accessors for the reporting flags. | |
| bool | ReportsLocation () const |
| bool | ReportsVelocity () const |
| bool | ReportsRange () const |
| bool | ReportsBearing () const |
| bool | ReportsElevation () const |
| bool | ReportsRangeRate () const |
| bool | ReportsSide () const |
| bool | ReportsType () const |
| bool | ReportsIFF_Status () const |
| bool | ReportsSignalToNoise () const |
| bool | ReportsFrequency () const |
| bool | ReportsPulseWidth () const |
| bool | ReportsPulseRepititionInterval () const |
| const wsf::SensorErrorModelBase * | GetErrorModel () const |
| wsf::SensorErrorModelBase * | GetErrorModel () |
| void | SetErrorModel (std::unique_ptr< wsf::SensorErrorModelBase > aErrorModelPtr) |
| virtual WSF_DEPRECATED double | GetAzErrorStdDev () final |
| virtual WSF_DEPRECATED double | GetElErrorStdDev () final |
| virtual WSF_DEPRECATED double | GetRangeErrorStdDev () final |
| virtual WSF_DEPRECATED double | GetRangeRateErrorStdDev () final |
| virtual WSF_DEPRECATED void | SetAzErrorStdDev (double aAzErrorStdDev) final |
| virtual WSF_DEPRECATED void | SetElErrorStdDev (double aElErrorStdDev) final |
| virtual WSF_DEPRECATED void | SetRangeErrorStdDev (double aRangeErrorStdDev) final |
| virtual WSF_DEPRECATED void | SetRangeRateErrorStdDev (double aRangeRateErrorStdDev) final |
| Public Member Functions inherited from WsfMode | |
| WsfMode () | |
| ~WsfMode () override=default | |
| size_t | GetModeIndex () const |
| Return the index of this mode within its associated mode list. | |
| bool | IsSelected () const |
| Returns 'true' if the mode is selected. | |
| Public Member Functions inherited from WsfNamed | |
| WsfNamed () | |
| WsfNamed (WsfStringId aName) | |
| WsfNamed (const WsfNamed &)=default | |
| WsfNamed & | operator= (const WsfNamed &)=default |
| virtual | ~WsfNamed ()=default |
| const std::string & | GetName () const |
| WsfStringId | GetNameId () const |
| void | SetName (WsfStringId aName) |
Protected Member Functions | |
| void | PointAtWCS (double aSimTime, double aPointAtWCS[3]) |
| void | CreateTrackFromResult (double aSimTime, const WsfSensorResult &aResult, WsfPlatform *aTargetPtr) |
| void | CreateImageFromResult (double aSimTime, const WsfSensorResult &aResult, WsfPlatform *aTargetPtr) |
| bool | InitializeReporting () |
| virtual void | SelectAlternateFrequency (double aSimTime, int aAltFreqId=-1) |
| void | SetCapabilities (unsigned int aFlags) |
| void | SetReportingFlags (unsigned int aFlags) |
Protected Attributes | |
| WsfEM_Xmtr | mTransmitter = WsfEM_Xmtr(WsfEM_Xmtr::cXF_SENSOR) |
| WsfEM_Antenna | mXcvrAntenna = WsfEM_Antenna() |
| WsfEM_Rcvr | mReceiver = WsfEM_Rcvr(WsfEM_Rcvr::cRF_SENSOR) |
| WsfSensor * | mSensorPtr |
| Pointer to the sensor with which the mode is associated. | |
| WsfPlatform * | mPlatformPtr |
| Pointer to the platform with which the sensor is associated. | |
| double | mMaximumRange |
| double | mAzCueRate |
| double | mElCueRate |
| double | mMinAzCue |
| double | mMaxAzCue |
| double | mMinElCue |
| double | mMaxElCue |
| WsfSensor::SlewMode | mCueMode |
| int | mMaximumRequestCount |
| bool | mCanSearchWhileTrack |
| bool | mDisablesSearch |
| double | mFrameTime |
| double | mRevisitTime |
| double | mDwellTime |
| double | mRequiredPd |
| double | mEstablishTrackProbability |
| When the M/N establish track criteria is met, this is the probability that a track will be established. | |
| double | mMaintainTrackProbability |
| int | mHitsToEstablishTrack |
| The number of hits (M) within the window (N) that are required to establish a track. | |
| int | mEstablishTrackWindow |
| The window size (N) for establishing a track. | |
| unsigned int | mEstablishTrackMask |
| int | mHitsToMaintainTrack |
| The number of hits (M) within the window (N) that are required to maintain a track. | |
| int | mMaintainTrackWindow |
| The window size (N) for maintaining a track. | |
| unsigned int | mMaintainTrackMask |
| double | mTrackQuality |
| Base line track quality (0..1]. | |
| double | mAzErrorStdDev |
| double | mElErrorStdDev |
| double | mRangeErrorStdDev |
| double | mRangeRateErrorStdDev |
| Range rate error standard deviation. | |
| ut::CloneablePtr< wsf::SensorErrorModelBase > | mErrorModelPtr {nullptr} |
| The model that calculates and applies errors to sensor detection results. | |
| WsfStringId | mOnSuccessModeName |
| size_t | mOnSuccessModeIndex |
| WsfStringId | mOnFailureModeName |
| size_t | mOnFailureModeIndex |
| int | mMessageLength |
| The length of messages originating from this sensor mode. | |
| int | mMessagePriority |
| The priority of messages originating from this sensor mode. | |
| WsfSpatialDomain | mReportsSpatialDomain |
| ReportingFlags | mReportingFlags |
| ReportingFlags | mCapabilitiesFlags |
Additional Inherited Members | |
| static const unsigned int | cNONE = 0 |
| The following are flags/masks meant to be combined and used in the SetCapabilities method. | |
| static const unsigned int | cLOCATION = 1 |
| static const unsigned int | cVELOCITY = 2 |
| static const unsigned int | cRANGE = 4 |
| static const unsigned int | cBEARING = 8 |
| static const unsigned int | cELEVATION = 16 |
| static const unsigned int | cRANGE_RATE = 32 |
| static const unsigned int | cSIDE = 64 |
| static const unsigned int | cTYPE = 128 |
| static const unsigned int | cIFF_STATUS = 256 |
| static const unsigned int | cSIGNAL_TO_NOISE = 512 |
| static const unsigned int | cFREQUENCY = 1024 |
| static const unsigned int | cPULSEWIDTH = 2048 |
| static const unsigned int | cPULSE_REPITITION_INTERVAL = 4096 |
| static const unsigned int | cSTATE_COVARIANCE = 8192 |
| static const unsigned int | cOTHER = 16384 |
| static const unsigned int | cALL = 0xFFFFFFFF |
| Catch-all for anything other than the above. | |
|
default |
References WsfBeamDirectorMode().
Referenced by Clone(), operator=(), WsfBeamDirectorMode(), and WsfBeamDirectorMode().
| WsfBeamDirector::WsfBeamDirectorMode::WsfBeamDirectorMode | ( | const WsfBeamDirectorMode & | aSrc | ) |
References mReceiver, mTransmitter, mXcvrAntenna, WsfBeamDirectorMode(), and WsfSensorMode::WsfSensorMode().
|
override |
|
overridevirtual |
Attempt to detect another platform.
This provides the common interface used to determine if a sensor can detect another platform. The base class implementation simply invokes the mode-specific AttemptsToDetect method for the currently selected mode.
| aSimTime | [input] The current simulation time. |
| aTargetPtr | [input] The target to attempt to detect. |
| aSettings | [input] A Settings object that indicates the operational settings to be used for the detection attempt. |
| aResult | [output] A Result object that contains detailed information about the result detection attempt. |
See the base class for documentation of the arguments and return value.
Implements WsfSensorMode.
References WsfSensorResult::BeginTwoWayInteraction(), WsfSensorResult::cCONCEALMENT, WsfPlatform::Comment(), WsfEM_Interaction::cRCVR_ANGLE_LIMITS, CreateImageFromResult(), CreateTrackFromResult(), cSCANNING, cWSF_COMPONENT_INTERSECT_MESH, WsfPlatformPart::DebugEnabled(), WsfComponentListT< COMPONENT_TYPE >::FindComponentByRole(), WsfAuxDataEnabled::GetAuxDataConst(), WsfComponentList::GetComponent(), WsfPlatform::GetConcealmentFactor(), WsfBeamDirector::GetMaxRange(), WsfSensor::GetModeIndex(), WsfObject::GetName(), WsfObject::GetNameId(), WsfPlatformPart::GetPlatform(), WsfSensorMode::GetSensor(), WsfBeamDirector::GetTargetOffset(), WsfIntersectMesh::GetTargetOffsetName(), WsfIntersectProcessor::GetTargetOffsetName(), WsfObject::GetTypeId(), WsfOpticalSignature::GetValue(), WsfIntersectMesh::Intersect(), WsfIntersectProcessor::Intersect(), WsfBeamDirector::IsImaging(), WsfArticulatedPart::IsSlewing(), WsfBeamDirector::IsTracking(), WsfEM_Interaction::MaskedByTerrain(), WsfEM_Interaction::RelativeData::mAz, WsfEM_Interaction::mCheckedStatus, WsfEM_Interaction::RelativeData::mEl, WsfEM_Interaction::mFailedStatus, WsfSensorResult::mMeasurement, WsfSensorResult::mModeIndex, WsfEM_Interaction::mOpticalSig, WsfEM_Interaction::mOpticalSigAz, WsfEM_Interaction::mOpticalSigEl, WsfSensorResult::mPd, WsfEM_Interaction::RelativeData::mRange, WsfEM_Interaction::mRcvrToTgt, mReceiver, mTransmitter, mXcvrAntenna, PointAtTargetUpdate(), WsfSensorComponent::PostAttemptToDetect(), WsfEM_Interaction::Print(), WsfSensorResult::Reset(), success, WsfIntersectMesh::TargetOffsetExists(), WsfIntersectProcessor::TargetOffsetExists(), and WsfBeamDirector::WsfBeamDirector().
|
inlineoverridevirtual |
Create an exact duplicate of this mode.
Implements WsfSensorMode.
References WsfBeamDirectorMode(), and WsfSensorMode::WsfSensorMode().
|
protected |
|
protected |
References WsfPlatformPart::DebugEnabled(), WsfPlatform::GetIndex(), WsfObject::GetName(), WsfObject::GetNameId(), WsfSensorMode::GetSensor(), and WsfSensorResult::mMeasurement.
Referenced by AttemptToDetect().
|
overridevirtual |
The mode is being deselected. The specific implementation should perform whatever actions are associated with deselecting the mode (e.g.: deactivating transmitters or receivers).
| aSimTime | [input] The current simulation time. |
Implements WsfSensorMode.
References WsfSensorMode::GetSensor(), mReceiver, mTransmitter, WsfBeamDirector::SetCue(), and WsfBeamDirector::WsfBeamDirector().
|
inline |
References mReceiver.
|
inline |
References mReceiver.
|
inline |
References mTransmitter.
|
inline |
References mTransmitter.
| const WsfImage & WsfBeamDirector::WsfBeamDirectorMode::GetImage | ( | ) |
References WsfSensorMode::GetSensor().
|
inline |
|
inline |
Get the maximum range for this sensor.
References mXcvrAntenna.
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Initialize the sensor mode.
| aSimTime | The current simulation time. |
Reimplemented from WsfSensorMode.
References WsfSensorMode::cBEARING, WsfSensorMode::cELEVATION, WsfSensorMode::cLOCATION, WsfSensorMode::cRANGE, WsfSensorMode::cTYPE, cUNDEFINED, WsfSensorMode::cVELOCITY, WsfPlatformPart::DebugEnabled(), WsfObject::GetName(), WsfSensorMode::GetSensor(), WsfPlatformPart::GetSimulation(), WsfSensorMode::Initialize(), WsfSensorMode::mMaximumRequestCount, mReceiver, WsfSensorMode::mSensorPtr, mTransmitter, mXcvrAntenna, ok, and WsfSensorMode::SetCapabilities().
|
inline |
References cCUED, cLOCKED, and cLOCKED_WAITING_FOR_CUE.
|
inline |
References cBREAKLOCK, and cSCANNING.
|
delete |
References WsfBeamDirectorMode().
| void WsfBeamDirector::WsfBeamDirectorMode::PointAtTargetUpdate | ( | double | aSimTime | ) |
Update the pointing at a given track by using a kinematic update.
References WsfPlatformPart::DebugEnabled(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfSimulation::GetPlatformByIndex(), WsfSensorMode::GetSensor(), WsfPlatformPart::GetSimulation(), WsfBeamDirector::PointAtWCS(), and WsfPlatform::Update().
Referenced by AttemptToDetect().
|
protected |
A private method whereby we hide the details of pointing. Pointing the lidar works differently from the SimpleSensor. We choose to orient the sensor explicitly, either to the scan center to simulate scanning, or to the target center to simulate tracking. This arrangement results in a better visual display.
References WsfSensorMode::GetSensor(), WsfBeamDirector::PointAtWCS(), and WsfBeamDirector::WsfBeamDirector().
|
overridevirtual |
Reimplemented from WsfMode.
References cCUED, cLOCKED, cSCANNING, mReceiver, mTransmitter, mXcvrAntenna, and WsfSensorMode::ProcessInput().
|
overridevirtual |
The mode is being activated. The specific implementation should perform whatever actions are associated with selecting the mode (e.g.: activating transmitters or receivers).
| aSimTime | [input] The current simulation time. |
Implements WsfSensorMode.
References cCUED, cLOCKED, WsfPlatform::Comment(), cSCANNING, WsfPlatformPart::DebugEnabled(), WsfBeamDirector::GetCue(), WsfObject::GetName(), WsfObject::GetNameId(), WsfPlatformPart::GetPlatform(), WsfSensorMode::GetSensor(), WsfTrack::GetTargetName(), GetTrack(), mReceiver, mTransmitter, WsfPlatformPart::SendMessage(), WsfSensor::StartTracking(), and WsfBeamDirector::WsfBeamDirector().
|
inline |
| void WsfBeamDirector::WsfBeamDirectorMode::Update | ( | double | aSimTime | ) |
|
protected |
Referenced by AttemptToDetect(), Deselect(), GetEM_Rcvr(), GetEM_Rcvr(), Initialize(), ProcessInput(), Select(), Update(), and WsfBeamDirectorMode().
|
protected |
Referenced by AttemptToDetect(), Deselect(), GetEM_Xmtr(), GetEM_Xmtr(), Initialize(), ProcessInput(), Select(), Update(), and WsfBeamDirectorMode().
|
protected |
Referenced by AttemptToDetect(), GetMaxRange(), Initialize(), ProcessInput(), Update(), and WsfBeamDirectorMode().