|
| | WsfDefaultSensorTracker (WsfScenario &aScenario) |
| | ~WsfDefaultSensorTracker () override |
| WsfSensorTracker * | Clone () const override |
| | Clone this tracker.
|
| unsigned int | GetActiveTrackCount () const override |
| | Return the number of tracks being maintained by the sensor.
|
| void | GetActiveTrackList (WsfTrackList &aActiveTrackList) override |
| | Return the active tracks the sensor is maintaining.
|
| unsigned int | GetMaximumTrackCount () const override |
| | Return the maximum number of tracks that can be maintained by the sensor.
|
| bool | GetTargetState (double aSimTime, const WsfTrackId &aRequestId, TargetState &aTargetState) override |
| void | GetRequestDataForTarget (size_t aObjectId, WsfTrackId &aRequestId, size_t &aModeIndex, WsfTrackId &aTrackId) const override |
| bool | Initialize (double aSimTime, WsfSensor *aSensorPtr, WsfSensorScheduler *aSchedulerPtr) override |
| bool | ProcessInput (UtInput &aInput) override |
| void | SchedulerModeChange (double aSimTime, const WsfTrackId &aRequestId, size_t aObjectId, WsfPlatform *aTargetPtr, WsfStringId aNewModeName) override |
| void | StopTracking (double aSimTime, const WsfTrackId &aRequestId) override |
| virtual void | TargetBlocked (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, unsigned int aObjectId) |
| bool | TargetDeleted (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId) override |
| void | TargetDetected (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) override |
| bool | TargetSkipped (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId) override |
| void | TargetUndetected (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) override |
| void | TurnOff (double aSimTime) override |
| WsfScenario * | GetScenario () const |
| | WsfSensorTracker () |
| virtual | ~WsfSensorTracker ()=default |
| bool | DebugEnabled () const |
| | Returns 'true' if debugging is enabled for the tracker.
|
| virtual void | TargetBlocked (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId) |
| virtual void | TurnOn (double aSimTime) |
| WsfSensor * | GetSensor () const |
| WsfSimulation * | GetSimulation () const |
|
| | WsfDefaultSensorTracker (const WsfDefaultSensorTracker &aSrc) |
| WsfDefaultSensorTracker & | operator= (const WsfDefaultSensorTracker &)=delete |
| void | CheckForAutoModeSwitch (double aSimTime, size_t aObjectId, WsfPlatform *aTargetPtr, size_t aNewModeIndex) |
| virtual void | DropTrack (double aSimTime, State *aStatePtr) |
| bool | SwitchMode (double aSimTime, State *aStatePtr, size_t aNewModeIndex) |
| void | ProcessSensorDetectionChanged (double aSimTime, const State &aState, unsigned int aStatus) |
| | WsfSensorTracker (const WsfSensorTracker &aSrc) |
| | Copy constructor (for Clone()).
|
| WsfSensorTracker & | operator= (const WsfSensorTracker &aSrc)=delete |
| ut::Random & | GetRandom () const |
| bool | AllowTrackingP (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfTrack *aTrackPtr, WsfSensorResult &aResult) |
| | A convenience method for tracker implementations to ask components if an object should be allowed to tracked.
|
| void | DropTrackP (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *&aTrackPtr) |
| void | InitializeTrackP (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *&aTrackPtr) |
| void | UpdateTrackP (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
A 'perfect' sensor tracker.
This class provides the implementation for the default sensor tracker. It assumes perfect correlation (the track for a given platform is a direct product of only detections for that platform).
| bool WsfDefaultSensorTracker::TargetDeleted |
( |
double | aSimTime, |
|
|
const Settings & | aSettings, |
|
|
const WsfTrackId & | aRequestId, |
|
|
size_t | aObjectId ) |
|
overridevirtual |
Process a target object that has been deleted (or turned off)
- Parameters
-
| aSimTime | The current simulation time. |
| aSettings | The settings/options for the tracker update. |
| aRequestId | If non-zero, the associated sensor scheduler request ID. |
| aObjectId | A unique identifier of the object that is trying to be blocked. For a platform this should be its platform ID. For other objects it should be their unique ID. |
- Returns
- 'true' if the target is no longer being tracked or 'false' if it is still being tracked. The caller should continue to call this method until the track is dropped.
- Note
- This routine may call WsfSensor::DropTrack() (or its derived class implementation) to drop a track.
Reimplemented from WsfSensorTracker.
References WsfUtil::CountBitsOn(), WsfSensorTrackerSettings::cSUPPRESS_DETECTION_CHANGE_MESSAGES, WsfSensorTrackerSettings::cSUPPRESS_TRACKING_CRITERIA, WsfSensorResult::cTARGET_DELETED, DropTrack(), WsfSensorTracker::DropTrackP(), WsfSensorMode::HitsToMaintainTrack(), WsfSensorMode::MaintainTrackMask(), WsfDefaultSensorTracker::State::mDetectionHistory, WsfDefaultSensorTracker::State::mModeIndex, mModeList, WsfSensorTrackerSettings::mOptions, WsfSensorTracker::mSensorPtr, mStateList, WsfDefaultSensorTracker::State::mTrackPtr, and ProcessSensorDetectionChanged().
Process a successful detection attempt.
This routine should be called whenever a detection attempt is successful. The tracker can do things like correlation and track maintenance.
- Parameters
-
| aSimTime | The current simulation time. |
| aSettings | The settings/options for the tracker update. |
| aRequestId | If non-zero, the associated sensor scheduler request ID. |
| aObjectId | A unique identifier of the object that is trying to be blocked. For a platform this should be its platform ID. For other objects it should be their unique ID. |
| aTargetPtr | The platform that owns the object that is trying to be detected. |
| aResult | The detection result structure that contains the data about the detection attempt. |
- Note
- This routine may call WsfSensor::InitializeTrack() and WsfSensor::UpdateTrack() (or their derived class implementations) to initialize or update a track.
Update the filter and report the result in aResult.mMeasurement.
Reimplemented from WsfSensorTracker.
References WsfSensorTracker::AllowTrackingP(), WsfTrack::cFILTERED_SENSOR, CheckForAutoModeSwitch(), WsfUtil::CountBitsOn(), WsfSensorTrackerSettings::cSUPPRESS_DETECTION_CHANGE_MESSAGES, WsfSensorTrackerSettings::cSUPPRESS_TRACKING_CRITERIA, WsfTrack::cUNFILTERED_SENSOR, DropTrack(), WsfSensorTracker::DropTrackP(), WsfSensorMode::EstablishTrackMask(), WsfSensorMode::EstablishTrackProbability(), WsfPlatform::GetIndex(), WsfSensorMode::GetOnFailureModeIndex(), WsfSensorMode::GetOnSuccessModeIndex(), WsfSensorTracker::GetRandom(), WsfFilter::GetResidualCovariance(), WsfSensorMode::GetSensor(), WsfSensorTracker::GetSimulation(), WsfFilter::GetStateCovariance(), WsfTrack::GetTrackId(), WsfSensorMode::GetTrackQuality(), WsfSensorMode::HitsToEstablishTrack(), WsfFilter::Initialize(), WsfSensorTracker::InitializeTrackP(), WsfTrackId::IsNull(), mActiveTrackCount, WsfSensorMode::MaintainTrackProbability(), WsfDefaultSensorTracker::State::mDetectionHistory, WsfDefaultSensorTracker::State::mFailuresUntilDrop, mFilterPtr, WsfDefaultSensorTracker::State::mFilterPtr, WsfDefaultSensorTracker::State::mLockonTime, WsfSensorResult::mMeasurement, WsfDefaultSensorTracker::State::mModeIndex, WsfSensorResult::mModeIndex, mModeList, WsfDefaultSensorTracker::State::mModeSwitchActive, WsfSensorTrackerSettings::mOptions, WsfDefaultSensorTracker::State::mRequestId, WsfSensorTracker::mSensorPtr, mStateList, WsfDefaultSensorTracker::State::mTrackPtr, WsfFilter::Reset(), WsfObserver::SensorDetectionChanged(), WsfAssociationMessage::SetAssociatedId(), WsfTrack::SetResidualCovariance(), WsfAssociationMessage::SetSubjectId(), WsfTrack::SetTrackQuality(), WsfTrack::SetTrackType(), SwitchMode(), WsfFilter::Update(), and WsfSensorTracker::UpdateTrackP().
| bool WsfDefaultSensorTracker::TargetSkipped |
( |
double | aSimTime, |
|
|
const Settings & | aSettings, |
|
|
const WsfTrackId & | aRequestId, |
|
|
size_t | aObjectId ) |
|
overridevirtual |
Process a skipped detection chance.
This is called when a detection chance is bypassed. This is most likely caused when a tracking mode is activated that precludes searching.
- Parameters
-
| aSimTime | The current simulation time. |
| aSettings | The settings/options for the tracker update. |
| aRequestId | If non-zero, the associated sensor scheduler request ID. |
| aObjectId | A unique identifier of the object that is trying to be blocked. For a platform this should be its platform ID. For other objects it should be their unique ID. |
- Returns
- 'true' if the target is no longer being tracked and 'false' if the target is still being tracked. The caller should continue to call this method until the track is dropped.
- Note
- This routine may call WsfSensor::DropTrack() (or its derived class implementation) to drop a track.
Reimplemented from WsfSensorTracker.
References WsfUtil::CountBitsOn(), WsfSensorTrackerSettings::cSUPPRESS_TRACKING_CRITERIA, DropTrack(), WsfSensorTracker::DropTrackP(), WsfSensorMode::HitsToMaintainTrack(), WsfSensorMode::MaintainTrackMask(), WsfDefaultSensorTracker::State::mDetectionHistory, WsfDefaultSensorTracker::State::mModeIndex, mModeList, WsfSensorTrackerSettings::mOptions, WsfSensorTracker::mSensorPtr, mStateList, and WsfDefaultSensorTracker::State::mTrackPtr.
Process an unsuccessful detection attempt.
This routine should be called whenever a detection attempt is unsuccessful. The tracker can do things like update a detection history and drop tracks.
- Parameters
-
| aSimTime | The current simulation time. |
| aSettings | The settings/options for the tracker update. |
| aRequestId | If non-zero, the associated sensor scheduler request ID. |
| aObjectId | A unique identifier of the object that is trying to be blocked. For a platform this should be its platform ID. For other objects it should be their unique ID. |
| aTargetPtr | The platform that owns the object that is trying to be detected. |
| aResult | The detection result structure that contains the data about the detection attempt. |
- Note
- This routine may call WsfSensor::DropTrack() (or its derived class implementation) to drop a track.
Reimplemented from WsfSensorTracker.
References CheckForAutoModeSwitch(), WsfSensorTrackerSettings::cSUPPRESS_DETECTION_CHANGE_MESSAGES, DropTrack(), WsfSensorTracker::DropTrackP(), WsfSensorMode::EstablishTrackMask(), WsfSensorMode::EstablishTrackWindow(), WsfPlatform::GetIndex(), WsfSensorMode::GetOnFailureModeIndex(), WsfFilter::GetPredictedResidualCovariance(), WsfFilter::GetPredictedStateCovariance(), WsfFilter::GetResidualCovariance(), WsfSensorMode::GetSensor(), WsfSensorTracker::GetSimulation(), WsfFilter::GetStateCovariance(), WsfSensorMode::HitsToEstablishTrack(), WsfSensorMode::HitsToMaintainTrack(), WsfSensorMode::MaintainTrackWindow(), WsfDefaultSensorTracker::State::mDetectionHistory, WsfDefaultSensorTracker::State::mFailuresUntilDrop, WsfDefaultSensorTracker::State::mFilterPtr, WsfSensorResult::mMeasurement, WsfDefaultSensorTracker::State::mModeIndex, WsfSensorResult::mModeIndex, mModeList, WsfDefaultSensorTracker::State::mModeSwitchActive, WsfSensorTrackerSettings::mOptions, WsfSensorTracker::mSensorPtr, mStateList, WsfDefaultSensorTracker::State::mTrackPtr, WsfFilter::NoDetectUpdate(), WsfObserver::SensorDetectionChanged(), WsfTrack::SetResidualCovariance(), SwitchMode(), and WsfSensorTracker::UpdateTrackP().