|
WSF
|
#include <WsfSensorTracker.hpp>
Classes | |
| class | TargetState |
| A nested class that defines the data returned by GetTargetState. More... | |
Public Types | |
| using | Settings = WsfSensorTrackerSettings |
Public Member Functions | |
| WsfSensorTracker () | |
| virtual | ~WsfSensorTracker ()=default |
| virtual WsfSensorTracker * | Clone () const |
| Clone this tracker. | |
| bool | DebugEnabled () const |
| Returns 'true' if debugging is enabled for the tracker. | |
| virtual unsigned int | GetActiveTrackCount () const |
| Return the number of tracks being maintained by the sensor. | |
| virtual void | GetActiveTrackList (WsfTrackList &aActiveTrackList) |
| Return the active tracks the sensor is maintaining. | |
| virtual unsigned int | GetMaximumTrackCount () const |
| Return the maximum number of tracks that can be maintained by the sensor. | |
| virtual bool | GetTargetState (double aSimTime, const WsfTrackId &aRequestId, TargetState &aTargetState) |
| virtual void | GetRequestDataForTarget (size_t aObjectId, WsfTrackId &aRequestId, size_t &aModeIndex, WsfTrackId &aTrackId) const |
| virtual bool | Initialize (double aSimTime, WsfSensor *aSensorPtr, WsfSensorScheduler *aSchedulerPtr) |
| virtual bool | ProcessInput (UtInput &aInput) |
| virtual void | SchedulerModeChange (double aSimTime, const WsfTrackId &aRequestId, size_t aObjectId, WsfPlatform *aTargetPtr, WsfStringId aNewModeName) |
| virtual void | StopTracking (double aSimTime, const WsfTrackId &aRequestId) |
| virtual void | TargetBlocked (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId) |
| virtual bool | TargetDeleted (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId) |
| virtual void | TargetDetected (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| virtual bool | TargetSkipped (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId) |
| virtual void | TargetUndetected (double aSimTime, const Settings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| virtual void | TurnOff (double aSimTime) |
| virtual void | TurnOn (double aSimTime) |
| WsfSensor * | GetSensor () const |
| WsfSimulation * | GetSimulation () const |
Protected Member Functions | |
| 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) |
Protected Attributes | |
| WsfSensor * | mSensorPtr |
| The sensor to which the tracker is attached. | |
| WsfSensorScheduler * | mSchedulerPtr |
A class that takes sensor detections and maintains tracks.
The sensor tracker is called by the sensor detection logic to report the results of detection attempts. The tracker will take the result and initiate, update and drop tracks.
| WsfSensorTracker::WsfSensorTracker | ( | ) |
|
virtualdefault |
References Clone(), and WsfSensorTracker().
|
protected |
Copy constructor (for Clone()).
References mSchedulerPtr, mSensorPtr, and WsfSensorTracker().
|
protected |
A convenience method for tracker implementations to ask components if an object should be allowed to tracked.
References WsfSensorTrackerSettings::cSUPPRESS_ALLOW_TRACKING_CHECK, WsfSensorTrackerSettings::mOptions, and mSensorPtr.
Referenced by operator=(), and WsfDefaultSensorTracker::TargetDetected().
|
virtual |
Clone this tracker.
Reimplemented in WsfDefaultSensorTracker.
References WsfSensorTracker().
Referenced by ~WsfSensorTracker().
|
inline |
Returns 'true' if debugging is enabled for the tracker.
Referenced by WsfDefaultSensorTracker::SwitchMode().
|
protected |
A convenience method for tracker implementations for dropping a track. This will invoke either WsfSensor::DropTrack or the component represented by the settings. Note that this is purely a notification. The track must be dropped by the caller.
References WsfComponentListT< COMPONENT_TYPE >::FindComponentByRole(), WsfSensorTrackerSettings::mComponentRole, mSensorPtr, and WsfSensorComponent::TrackerDropTrack().
Referenced by operator=(), WsfDefaultSensorTracker::TargetBlocked(), WsfDefaultSensorTracker::TargetDeleted(), WsfDefaultSensorTracker::TargetDetected(), WsfDefaultSensorTracker::TargetSkipped(), and WsfDefaultSensorTracker::TargetUndetected().
|
virtual |
Return the number of tracks being maintained by the sensor.
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
Return the active tracks the sensor is maintaining.
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
Return the maximum number of tracks that can be maintained by the sensor.
Reimplemented in WsfDefaultSensorTracker.
|
protected |
References WsfSimulation::GetRandom(), and GetSimulation().
Referenced by operator=(), and WsfDefaultSensorTracker::TargetDetected().
|
virtual |
Get the request ID particular target.
| aObjectId | The index of the target of interest. |
| aRequestId | The scheduler request ID for the target of interest. |
| aModeIndex | The mode index of the target request. |
| aTrackId | The track Id of the request, 'null' if not found. |
Reimplemented in WsfDefaultSensorTracker.
References WsfTrackId::Null().
|
inline |
References mSensorPtr.
Referenced by WsfDefaultSensorTracker::ProcessSensorDetectionChanged(), and WsfDefaultSensorTracker::TargetBlocked().
| WsfSimulation * WsfSensorTracker::GetSimulation | ( | ) | const |
|
virtual |
Get the current perceived state of a particular target.
| aSimTime | The current simulation time. |
| aRequestId | The scheduler request ID. |
| aTargetState | The returned target state data (valid only if the function return value is 'true'). |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
Initialize the tracker.
| aSimTime | The current simulation time. |
| aSensorPtr | The pointer to the sensor that owns this tracker. |
| aSchedulerPtr | The pointer to the sensor scheduler that is associated with the sensor. |
Reimplemented in WsfDefaultSensorTracker.
References mSchedulerPtr, and mSensorPtr.
Referenced by WsfDefaultSensorTracker::Initialize().
|
protected |
A convenience method for tracker implementations for initializing a track. This will invoke either WsfSensorMode::InitializeTrack or the component represented by the settings.
References WsfComponentListT< COMPONENT_TYPE >::FindComponentByRole(), WsfSensorMode::InitializeTrack(), WsfSensorTrackerSettings::mComponentRole, mSensorPtr, and WsfSensorComponent::TrackerInitializeTrack().
Referenced by operator=(), and WsfDefaultSensorTracker::TargetDetected().
|
protecteddelete |
References AllowTrackingP(), DropTrackP(), GetRandom(), InitializeTrackP(), UpdateTrackP(), and WsfSensorTracker().
|
virtual |
Process tracker input.
Reimplemented in WsfDefaultSensorTracker.
Referenced by WsfDefaultSensorTracker::ProcessInput().
|
virtual |
The scheduler is changing the mode for the indicated object.
This method is called by the scheduler to indicate it is changing the mode.
| aSimTime | The current simulation time. |
| aRequestId | If non-zero, the associated sensor scheduler request ID. |
| aObjectId | A unique identifier of the object that is trying to be detected. For a platform this should be its platform ID and for other objects it should be their unique ID. |
| aTargetPtr | The platform that owns the object that is trying to be detected. |
| aNewModeName | The name (ID) of the new mode. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
A request has been made to stop a tracking request.
| aSimTime | The current simulation time. |
| aRequestId | The request Id. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
Request that a target be 'blocked'.
An external component may call this to indicate that a target is 'block'. Its function is to immediately drop any track associated with the target.
| 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. |
|
virtual |
Process a target object that has been deleted (or turned off)
| 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. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
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.
| 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. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
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.
| 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. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
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.
| 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. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
The associated sensor is being turned off.
| aSimTime | The current simulation time. |
Reimplemented in WsfDefaultSensorTracker.
|
virtual |
The associated sensor is being turned on.
| aSimTime | The current simulation time. |
|
protected |
A convenience method for tracker implementations for updating a track. This will invoke either WsfSensorMode::UpdateTrack or the component represented by the settings.
References WsfComponentListT< COMPONENT_TYPE >::FindComponentByRole(), WsfSensorTrackerSettings::mComponentRole, mSensorPtr, WsfSensorComponent::TrackerUpdateTrack(), and WsfSensorMode::UpdateTrack().
Referenced by operator=(), WsfDefaultSensorTracker::TargetDetected(), and WsfDefaultSensorTracker::TargetUndetected().
|
protected |
The scheduler that is attached to the sensor. This scheduler will be notified of any track updates that are associated with a particular request.
Referenced by WsfDefaultSensorTracker::CheckForAutoModeSwitch(), Initialize(), WsfSensorTracker(), and WsfSensorTracker().
|
protected |
The sensor to which the tracker is attached.
Referenced by AllowTrackingP(), WsfDefaultSensorTracker::DropTrack(), DropTrackP(), GetSensor(), GetSimulation(), Initialize(), InitializeTrackP(), WsfDefaultSensorTracker::ProcessSensorDetectionChanged(), WsfDefaultSensorTracker::SchedulerModeChange(), WsfDefaultSensorTracker::SwitchMode(), WsfDefaultSensorTracker::TargetDeleted(), WsfDefaultSensorTracker::TargetDetected(), WsfDefaultSensorTracker::TargetSkipped(), WsfDefaultSensorTracker::TargetUndetected(), UpdateTrackP(), WsfSensorTracker(), and WsfSensorTracker().