|
WSF
|
#include <WsfSensorComponent.hpp>


Public Types | |
| using | TrackerSettings = WsfSensorTrackerSettings |
| Public Types inherited from WsfComponentT< WsfSensor > | |
| typedef WsfSensor | ParentType |
| This is needed to support the WsfComponentList template. | |
Utility methods. | |
| WsfSensor * | GetSensor () const |
| WsfPlatform * | GetPlatform () const |
| WsfSimulation * | GetSimulation () const |
Generic methods. | |
Actual sensor model implementations do not need to worry about calling these directly because they are required to call base class methods that end up calling these methods. (e.g. WsfRadarSensor::ProcessInput calls WsfSensor::ProcessInput). These always have the same argument lists as the routine from which they are called. | |
| virtual bool | ProcessModeInput (UtInput &aInput, WsfSensorMode &aSensorMode) |
| virtual bool | ProcessBeamInput (UtInput &aInput, WsfSensorBeam &aSensorBeam) |
| virtual void | PlatformAdded (double aSimTime, WsfPlatform *aPlatformPtr) |
| virtual void | PlatformDeleted (WsfPlatform *aPlatformPtr) |
| virtual void | SelectMode (double aSimTime, WsfStringId aModeNameId) |
| virtual void | DeselectMode (double aSimTime, WsfStringId aModeNameId) |
| virtual void | TurnOn (double aSimTime) |
| virtual void | TurnOff (double aSimTime) |
| virtual bool | Initialize (double aSimTime) |
| virtual bool | Initialize2 (double aSimTime) |
| virtual bool | PreInitialize (double aSimTime) |
| virtual bool | ProcessInput (UtInput &aInput) |
Model-specific methods. | |
Actual sensor models (e.g. WsfRadarSensor, WsfGeometricSensor, etc.) must place calls in their code because there is no common location from where these methods could be called. See the static wrapper methods below. | |
| virtual void | AttemptToDetect (double aSimTime, WsfSensorResult &aResult) |
| Extends the sensor-model implementation of AttemptToDetect. | |
| virtual void | PostAttemptToDetect (double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| virtual void | ComputeSphericalMeasurementErrors (const WsfSensorResult &aResult, wsf::SphericalMeasurementErrors &aErrors) const |
| virtual void | PrePerformScheduledDetections (double aSimTime) |
| virtual void | PostPerformScheduledDetections (double aSimTime) |
| virtual void | UpdateTrack (double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
Track maintenance. | |
These are called by derived implementations of WsfSensorTracker prior to performing the indicated function. They are more or less in order of call. | |
| virtual bool | TrackerAllowTracking (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfTrack *aTrackPtr, WsfSensorResult &aResult) |
| virtual void | TrackerInitializeTrack (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *&aTrackPtr) |
| virtual void | TrackerUpdateTrack (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| virtual void | TrackerDropTrack (double aSimTime, const TrackerSettings &aSettings, const WsfTrackId &aRequestId, size_t aObjectId, WsfSensorMode *aModePtr, WsfTrack *aTrackPtr) |
Model-specific wrapper methods. | |
These wrap the model-specific methods so specific models only need to have one line inserted into their code where component effects need to be evaluated. | |
| static void | AttemptToDetect (WsfSensor &aSensor, double aSimTime, WsfSensorResult &aResult) |
| Convenience method to call AttemptToDetect on all the components. | |
| static bool | PostAttemptToDetect (WsfSensor &aSensor, double aSimTime, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| static WSF_DEPRECATED void | ComputeMeasurementErrors (WsfSensor &aSensor, WsfSensorResult &aResult, double &aAzError, double &aElError, double &aRangeError, double &aRangeRateError) |
| (DEPRECATED) Convenience method to call ComputeMeasurementErrors on all the components. | |
| static void | ComputeSphericalMeasurementErrors (WsfSensor &aSensor, const WsfSensorResult &aResult, wsf::SphericalMeasurementErrors &aErrors) |
| Convenience method to call ComputeSphericalMeasurementErrors on all the components. | |
| static void | PrePerformScheduledDetections (WsfSensor &aSensor, double aSimTime) |
| Convenience method to call PrePerformScheduledDetections on all the components. | |
| static void | PostPerformScheduledDetections (WsfSensor &aSensor, double aSimTime) |
| Convenience method to call PostPerformScheduledDetections on all the components. | |
| static void | UpdateTrack (WsfSensor &aSensor, double aSimTime, WsfTrack *aTrackPtr, WsfPlatform *aTargetPtr, WsfSensorResult &aResult) |
| Convenience method to call UpdateTrack on all the components. | |
Additional Inherited Members | |
| Public Member Functions inherited from WsfComponentT< WsfSensor > | |
| WsfComponentT () | |
| WsfComponentT & | operator= (const WsfComponentT &) noexcept |
| ~WsfComponentT () override=default | |
| virtual void | ComponentParentChanged (ParentType *aParentPtr) |
| ParentType * | GetComponentParent () const |
| void | SetComponentParent (ParentType *aParentPtr) |
| Public Member Functions inherited from WsfComponent | |
| virtual | ~WsfComponent ()=default |
| virtual WsfComponent * | CloneComponent () const =0 |
| virtual WsfStringId | GetComponentName () const =0 |
| virtual const int * | GetComponentRoles () const =0 |
| virtual void * | QueryInterface (int aRole)=0 |
| virtual int | GetComponentInitializationOrder () const |
| template<typename T> | |
| bool | QueryInterfaceT (T *&aRolePtr) |
| bool | ComponentHasRole (int aRole) |
| Returns true if the component has the specified role. | |
| virtual void | PreInput () |
A abstract base class for sensor extension components. Components can be added to implement additional functionality beyond what is provided by a specific model. The responsibilities of a derived class include: -) Implementing the 'required interface' methods as defined in WsfComponent. -) Implementing any desired 'common framework' methods defined in WsfComponent. -) Implementing any desired methods as defined below. -) Implementing the specific capabilities required by the derived class.
|
inlinevirtual |
Extends the sensor-model implementation of AttemptToDetect.
Reimplemented in WsfCTD_SensorComponent, and WsfEW_SensorComponent.
Referenced by WsfSAR_Sensor::SAR_Mode::AttemptToDetect(), and WsfSurfaceWaveRadarSensor::RadarMode::AttemptToDetect().
|
static |
Convenience method to call AttemptToDetect on all the components.
References WsfSensor::GetComponents(), and WsfComponentList::HasComponents().
|
static |
(DEPRECATED) Convenience method to call ComputeMeasurementErrors on all the components.
References WsfSensor::GetComponents(), WsfComponentList::HasComponents(), wsf::SphericalMeasurementErrors::mAzError, wsf::SphericalMeasurementErrors::mElError, wsf::SphericalMeasurementErrors::mRangeError, and wsf::SphericalMeasurementErrors::mRangeRateError.
|
inlinevirtual |
Modify or compute spherical measurement errors for any sensor error model that produces spherical sensor errors (see WsfStandardSensorErrorModel).
Reimplemented in WsfEW_SensorComponent.
Referenced by wsf::StandardSensorErrorModel::ComputeMeasurementErrors(), WsfPassiveSensor::PassiveMode::PassiveErrorModel::ComputeMeasurementErrors(), and WsfSensorMode::ComputeMeasurementErrors().
|
static |
Convenience method to call ComputeSphericalMeasurementErrors on all the components.
References WsfSensor::GetComponents(), and WsfComponentList::HasComponents().
|
inlinevirtual |
Reimplemented in WsfCTD_SensorComponent, and WsfEW_SensorComponent.
| WsfPlatform * WsfSensorComponent::GetPlatform | ( | ) | const |
References WsfComponentT< WsfSensor >::GetComponentParent(), and WsfPlatformPart::GetPlatform().
Referenced by WsfEW_SensorComponent::AttemptToDetectFalseTarget().
|
inline |
References WsfComponentT< PARENT_TYPE >::GetComponentParent().
Referenced by WsfEW_SensorComponent::AttemptToDetectFalseTarget(), WsfTRIMSIM_SensorComponent::CorrectForAltitude(), WsfEW_SensorComponent::EW_Beam::DetectJamStrobes(), WsfCTD_SensorComponent::Initialize(), WsfEW_SensorComponent::Initialize(), WsfExclusionSensorComponent::Initialize(), WsfMoonLOS_SensorComponent::Initialize(), WsfSolarElevationAtTargetSensorComponent::Initialize(), WsfSolarIlluminationComponent::Initialize(), WsfExclusionSensorComponent::PostAttemptToDetect(), WsfMoonLOS_SensorComponent::PostAttemptToDetect(), WsfSolarElevationAtTargetSensorComponent::PostAttemptToDetect(), WsfSolarIlluminationComponent::PostAttemptToDetect(), WsfTRIMSIM_SensorComponent::PostAttemptToDetect(), WsfEW_SensorComponent::PrePerformScheduledDetections(), WsfEW_SensorComponent::EW_Mode::UpdateFalseTargetInteractors(), and WsfTRIMSIM_SensorComponent::UpdateTrack().
| WsfSimulation * WsfSensorComponent::GetSimulation | ( | ) | const |
References WsfComponentT< WsfSensor >::GetComponentParent(), and WsfPlatformPart::GetSimulation().
Referenced by WsfCTD_SensorComponent::AttemptToDetect(), WsfExclusionSensorComponent::PostAttemptToDetect(), WsfMoonLOS_SensorComponent::PostAttemptToDetect(), WsfSolarElevationAtTargetSensorComponent::PostAttemptToDetect(), WsfSolarIlluminationComponent::PostAttemptToDetect(), and WsfCTD_SensorComponent::TrackerAllowTracking().
|
virtual |
Perform phase 1 initialization. This is called by WsfPlatform::Initialize() during phase 1 initialization of the platform. The component should complete validation of input data that could not be done by ProcessInput, as well as any other functions to prepare for simulation use (subject to the next paragraph).
The order in which components are initialized is defined by GetComponentInitializationOrder. In general a component implementation of this method should not be dependent on the state of another component, i.e.: it should not assume that the other components Initialize() method has been called. If such a dependency exists one should use Initialize2() if possible, or specify a value GetComponentInitializationOrder to force things to initialize in a particular order.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
Reimplemented in WsfSolarElevationAtTargetSensorComponent, and WsfSolarIlluminationComponent.
|
virtual |
Perform phase 2 initialization. This is called by WsfPlatform::Initialize() during phase 2 of platform initialization. This method is typically used when a component may have some dependency on another component having completed its phase 1 initialization. The component should be ready for use in the simulation upon completion of this method.
The order in which components are initialized is defined by GetComponentInitializationOrder.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
|
inlinevirtual |
Reimplemented in WsfCTD_SensorComponent.
|
inlinevirtual |
Reimplemented in WsfCTD_SensorComponent.
|
inlinevirtual |
Extends the sensor-model implementation of AttemptToDetect with post detection by the sensor.
Reimplemented in WsfCTD_SensorComponent, WsfExclusionSensorComponent, WsfMoonLOS_SensorComponent, WsfSolarElevationAtTargetSensorComponent, WsfSolarIlluminationComponent, and WsfTRIMSIM_SensorComponent.
Referenced by WsfAcousticSensor::AcousticMode::AttemptToDetect(), WsfBeamDirector::WsfBeamDirectorMode::AttemptToDetect(), WsfCompositeSensor::CompositeMode::AttemptToDetect(), WsfGeometricSensor::GeometricMode::AttemptToDetect(), WsfLADAR_Sensor::LADAR_Mode::AttemptToDetect(), WsfOpticalSensor::OpticalMode::AttemptToDetect(), WsfOTH_RadarSensor::OTH_Mode::AttemptToDetect(), WsfPassiveSensor::PassiveMode::AttemptToDetect(), WsfRadarSensor::RadarMode::AttemptToDetect(), WsfSAR_Sensor::SAR_Mode::AttemptToDetect(), WsfSOSM_Sensor::SOSM_Mode::AttemptToDetect(), WsfSurfaceWaveRadarSensor::RadarMode::AttemptToDetect(), and WsfEOIR_IRST_SensorMode::EndDetectionAttempt().
|
static |
Convenience method to call PostAttemptToDetect on all the components.
| aSensor | [input] The sensor for which to loop all PostAttemptToDetect calls. |
| aSimTime | [input] The current simulation time. |
| aTargetPtr | [input] The platform under detection. |
| aResult | [input/output] The results from the sensor detection causing the track update. |
References WsfSensorResult::Detected(), WsfSensor::GetComponents(), and WsfComponentList::HasComponents().
|
inlinevirtual |
Extends WsfSensor::PerformScheduledDetections Called by models just after exiting the loop.
Reimplemented in WsfEW_SensorComponent.
Referenced by WsfRadarSensor::PerformScheduledDetections().
|
static |
Convenience method to call PostPerformScheduledDetections on all the components.
References WsfSensor::GetComponents(), and WsfComponentList::HasComponents().
|
virtual |
Perform pre-initializion function. This is called by WsfPlatform::Initialize prior to actually initializing the components on a platform (i.e.: calling Initialize and Initialize2 for each component). The primary reason for this method is to allow components to add other components that will then be subsequently initialized. The component may examine the component list and add components, but it must not assume ANYTHING about the actual state of the component.
| aSimTime | The current simulation time. |
Reimplemented from WsfComponent.
|
inlinevirtual |
Extends WsfSensor::PerformScheduledDetections. Called by models just before entering the loop.
Reimplemented in WsfEW_SensorComponent.
Referenced by WsfRadarSensor::PerformScheduledDetections().
|
static |
Convenience method to call PrePerformScheduledDetections on all the components.
References WsfSensor::GetComponents(), and WsfComponentList::HasComponents().
|
inlinevirtual |
Reimplemented in WsfCTD_SensorComponent, and WsfEW_SensorComponent.
|
virtual |
Evaluate the current input command and determine if it is one processed by the component. The component should get the current command from the input stream and determine if it is one that it recognizes. If it does not recognize the command then it should leave the command in the input stream and return false. If it does recognize the command then it should process the command and return true. If invalid arguments are encountered then it should throw an exception.
| aInput | The input stream. |
| UtInput::ExceptionBase | if an invalid input was encountered. |
Reimplemented from WsfComponent.
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in WsfCTD_SensorComponent, and WsfEW_SensorComponent.
|
inlinevirtual |
Called when WsfSensorTracker::TargetDetected receives a detection.
| aSimTime | The current simulation time. |
| aSettings | The 'aSettings' argument from the calling 'Target...' method. |
| aRequestId | The 'aRequestId' argument from the calling 'Target...' method. |
| aObjectId | The 'aObjectId' argument from the calling 'Target...' method. |
| aTrackPtr | Pointer to the current track if one exists (can be null). |
| aResult | The results from the sensor detection. Return true to allow track update/creation to proceed with the current detection. If false the detection will be ignored and any existing track will be dropped. |
Reimplemented in WsfCTD_SensorComponent, and WsfEW_SensorComponent.
|
inlinevirtual |
Called from an implementation of the WsfSensorTracker 'Target...' methods when they want to drop a track.
| aSimTime | The current simulation time. |
| aSettings | The 'aSettings' argument from the calling 'Target...' method. |
| aRequestId | The 'aRequestId' argument from the calling 'Target...' method. |
| aObjectId | The 'aObjectId' argument from the calling 'Target...' method. |
| aModePtr | The sensor mode last used in updating the track. |
| aTrackPtr | The track to be dropped. |
Reimplemented in WsfCTD_SensorComponent, and WsfEW_SensorComponent.
Referenced by WsfSensorTracker::DropTrackP().
|
inlinevirtual |
Called from an implementation of the WsfSensorTracker 'Target...' methods when they want to initiate a track.
| aSimTime | The current simulation time. |
| aSettings | The 'aSettings' argument from the calling 'Target...' method. |
| aRequestId | The 'aRequestId' argument from the calling 'Target...' method. |
| aObjectId | The 'aObjectId' argument from the calling 'Target...' method. |
| aModePtr | The sensor mode used in creating the track. |
| aTrackPtr | Updated with the pointer to the created track. |
Reimplemented in WsfEW_SensorComponent.
Referenced by WsfSensorTracker::InitializeTrackP().
|
inlinevirtual |
Called from an implementation of the WsfSensorTracker 'Target...' methods when they want to update a track.
| aSimTime | The current simulation time. |
| aSettings | The 'aSettings' argument from the calling 'Target...' method. |
| aRequestId | The 'aRequestId' argument from the calling 'Target...' method. |
| aObjectId | The 'aObjectId' argument from the calling 'Target...' method. |
| aModePtr | The sensor mode used in updating the track. |
| aTrackPtr | The track to be updated. |
| aTargetPtr | The platform representing the updated track. |
| aResult | The results from the sensor detection causing the track update. |
Reimplemented in WsfEW_SensorComponent.
Referenced by WsfSensorTracker::UpdateTrackP().
|
inlinevirtual |
Reimplemented in WsfCTD_SensorComponent.
|
inlinevirtual |
|
inlinevirtual |
Reimplemented in WsfEW_SensorComponent, and WsfTRIMSIM_SensorComponent.
Referenced by WsfSensorMode::UpdateTrack().
|
static |
Convenience method to call UpdateTrack on all the components.
References WsfSensor::GetComponents(), and WsfComponentList::HasComponents().