|
WSF
|
A mode of the sensor. More...
#include <WsfAcousticSensor.hpp>


Public Member Functions | |
| AcousticMode (WsfScenario &aScenario) | |
| AcousticMode (const AcousticMode &aSrc) | |
| AcousticMode & | operator= (const AcousticMode &)=delete |
| ~AcousticMode () override | |
| WsfMode * | Clone () const override |
| Create an exact duplicate of this mode. | |
| bool | Initialize (double aSimTime) override |
| bool | ProcessInput (UtInput &aInput) override |
| bool | AttemptToDetect (double aSimTime, WsfPlatform *aTargetPtr, Settings &aSettings, WsfSensorResult &aResult) override |
| void | Deselect (double aSimTime) override |
| void | Select (double aSimTime) override |
| double | ApplyFilterWeighting (int aBand, WsfPlatform *aTargetPtr=nullptr, const int aFlag=0, const double aDoppler=0.0) |
| double | ComputeDopplerTerm (const WsfSensorResult &aResult) |
| void | ComputeIncidenceAngle (WsfSensorResult *aResultPtr, double &aAngle, double &aRange, double *aLoc) |
| double | AtmosphericAttenuation (const WsfSensorResult &aResult, double aFreq) |
| double | ComputeProbabilityOfDetection (double aSignal, double aNoise, double aThreshold) |
| double | GroundEffectAttenuation (WsfSensorResult *aResult, const double aFreq, const int aBandIndex) |
| 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) |
Public Attributes | |
| WsfEM_Antenna | mAntenna |
| WsfEM_Rcvr | mRcvr |
| double | mDetectionThreshold |
| Signal-To-Noise required for detection. | |
| bool | mVerbose |
| UtAtmosphere | mAtmosphere |
| Atmosphere model. | |
| AcousticTypes | mSensorType |
| std::vector< double > | mEffectiveFilterBandwidth |
| Array of effective filter bandwidths for each sensor. | |
| WsfAcousticSignature * | mThresholdPtr |
| Pointer to the threshold table. | |
| WsfStringId | cDEFAULT_ID |
| WsfStringId | mBackgroundNoiseStateId |
| Pointer to the background noise state. | |
| wsf::Terrain * | mTerrainPtr |
| Pointer to terrain. | |
Additional Inherited Members | |
| bool | InitializeReporting () |
| virtual void | SelectAlternateFrequency (double aSimTime, int aAltFreqId=-1) |
| void | SetCapabilities (unsigned int aFlags) |
| void | SetReportingFlags (unsigned int aFlags) |
| 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 |
| 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. | |
A mode of the sensor.
| WsfAcousticSensor::AcousticMode::AcousticMode | ( | WsfScenario & | aScenario | ) |
References WsfAcousticSensor::cACOUSTIC_HUMAN, WsfSensorMode::cALL, cDEFAULT_ID, WsfSensorMode::cFREQUENCY, WsfSensorMode::cPULSE_REPITITION_INTERVAL, WsfSensorMode::cPULSEWIDTH, mAntenna, mAtmosphere, mBackgroundNoiseStateId, mDetectionThreshold, mEffectiveFilterBandwidth, mRcvr, mSensorType, mTerrainPtr, mThresholdPtr, mVerbose, WsfSensorMode::SetCapabilities(), and WsfSensorMode::WsfSensorMode().
Referenced by AcousticMode(), Clone(), and operator=().
| WsfAcousticSensor::AcousticMode::AcousticMode | ( | const AcousticMode & | aSrc | ) |
|
override |
References mTerrainPtr.
| double WsfAcousticSensor::AcousticMode::ApplyFilterWeighting | ( | int | aIndex, |
| WsfPlatform * | aTargetPtr = nullptr, | ||
| const int | aFlag = 0, | ||
| const double | aDoppler = 0.0 ) |
Computes the filtered weights to account for human hearing
| aIndex | The 1/3 octave band frequency index |
| aTargetPtr | A pointer to the target platform |
| aFlag | = 1 if target signature, 0 if background |
| aDoppler | Doppler shift frequency adjustment |
References WsfAcousticSensor::GetCenterFreq(), WsfAcousticSensor::GetCenterFreqSize(), WsfSensorMode::GetSensor(), WsfAcousticSignature::GetValue(), mBackgroundNoiseStateId, WsfAcousticSensor::mSharePtr, and WsfAcousticSensor::WsfAcousticSensor().
Referenced by AttemptToDetect(), and operator=().
| double WsfAcousticSensor::AcousticMode::AtmosphericAttenuation | ( | const WsfSensorResult & | aResult, |
| double | aFreq ) |
Compute the atmospheric attenuation for the current interaction. and frequency
| aResult | The current interaction data. |
| aFreq | The current center band frequency |
References WsfEM_Interaction::LocationData::mAlt, mAtmosphere, WsfEM_Interaction::mRcvrLoc, and WsfEM_Interaction::mTgtLoc.
Referenced by AttemptToDetect(), and operator=().
|
overridevirtual |
Attempt to detect the specified target.
| aSimTime | [input] The current simulation time. |
| aTargetPtr | [input] The platform that will be attempted to be detected. |
| aSettings | [input] The sensor settings. |
| aResult | [output] The results of the detection attempt. |
Implements WsfSensorMode.
References ApplyFilterWeighting(), AtmosphericAttenuation(), WsfSensorResult::BeginGenericInteraction(), WsfSensorResult::BeginOneWayInteraction(), WsfEM_Interaction::CategoryIsSet(), WsfSensorResult::cCONCEALMENT, cDEFAULT_ID, ComputeDopplerTerm(), ComputeProbabilityOfDetection(), WsfEM_Interaction::cSIGNAL_LEVEL, WsfPlatformPart::DebugEnabled(), WsfAcousticSensor::GetCenterFreq(), WsfAcousticSensor::GetCenterFreqSize(), WsfPlatform::GetConcealmentFactor(), WsfObject::GetName(), WsfPlatformPart::GetPlatform(), WsfSensorMode::GetSensor(), WsfSensor::GetZoneAttenuationModifier(), GroundEffectAttenuation(), WsfEM_Interaction::MaskedByTerrain(), WsfEM_Interaction::mCheckedStatus, mDetectionThreshold, mEffectiveFilterBandwidth, WsfEM_Interaction::mFailedStatus, WsfEM_Interaction::mMaskingFactor, WsfSensorResult::mPd, WsfEM_Interaction::RelativeData::mRange, mRcvr, WsfEM_Interaction::mRcvrToTgt, WsfEM_Interaction::mSignalToNoise, mThresholdPtr, WsfEM_Interaction::mZoneAttenuationValue, WsfSensorComponent::PostAttemptToDetect(), WsfEM_Interaction::Print(), WsfSensorResult::Reset(), WsfEM_Interaction::SetCategory(), WsfEM_Interaction::SetReceiverBeamPosition(), and WsfPlatform::Update().
Referenced by operator=().
|
overridevirtual |
Create an exact duplicate of this mode.
Implements WsfSensorMode.
References AcousticMode(), and WsfMode::WsfMode().
Referenced by operator=().
| double WsfAcousticSensor::AcousticMode::ComputeDopplerTerm | ( | const WsfSensorResult & | aResult | ) |
Computes the divisor for freq_flight = freq_static / dopplerTerm
| aResult | Reference to the current interaction data. |
References WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::GetTarget(), WsfEM_Interaction::LocationData::mAlt, mAtmosphere, WsfEM_Interaction::mRcvrLoc, and WsfEM_Interaction::mTgtLoc.
Referenced by AttemptToDetect(), and operator=().
| void WsfAcousticSensor::AcousticMode::ComputeIncidenceAngle | ( | WsfSensorResult * | aResultPtr, |
| double & | aAngle, | ||
| double & | aRange, | ||
| double * | aLoc ) |
Computes the incidence angle of the vector from the ground reflection point to the target
| aResultPtr | Pointer to the current interaction data. |
| aAngle | [output] The incidence angle |
| aRange | [output] slant range from target to reflection point |
| aLoc | [output] WCS location of reflection point |
References WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::LocationData::mLat, WsfEM_Interaction::LocationData::mLocWCS, WsfEM_Interaction::LocationData::mLon, WsfEM_Interaction::mRcvrLoc, mTerrainPtr, and WsfEM_Interaction::mTgtLoc.
Referenced by GroundEffectAttenuation(), and operator=().
| double WsfAcousticSensor::AcousticMode::ComputeProbabilityOfDetection | ( | double | aSignal, |
| double | aNoise, | ||
| double | aThreshold ) |
Compute the probability of detection.
| aSignal | [input] The filtered target noise |
| aNoise | [input] The filtered background noise |
| aThreshold | [input] The signal-to-noise ratio required to generate a Pd = 0.5. |
Referenced by AttemptToDetect(), and operator=().
|
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 mRcvr.
Referenced by operator=().
| double WsfAcousticSensor::AcousticMode::GroundEffectAttenuation | ( | WsfSensorResult * | aResultPtr, |
| const double | aFreq, | ||
| const int | aIndex ) |
Computes the sound attenuation due to ground effect
| aResultPtr | Pointer to the current interaction data. |
| aFreq | The current 1/3 octave band center frequency |
| aIndex | The current 1/3 octave band center frequency index |
References WsfEnvironment::cBARREN, ComputeIncidenceAngle(), WsfEnvironment::cURBAN, WsfEnvironment::cWETLAND_FORESTED, WsfEnvironment::cWETLAND_NONFORESTED, WsfAcousticSensor::GetCenterFreq(), WsfAcousticSensor::GetCenterFreqSize(), WsfSensorMode::GetSensor(), WsfEM_Interaction::LocationData::mAlt, mAtmosphere, WsfEM_Interaction::RelativeData::mAz, WsfEM_Interaction::LocationData::mLocWCS, WsfEM_Interaction::RelativeData::mRange, WsfEM_Interaction::mRcvrLoc, WsfEM_Interaction::mTgtLoc, and WsfEM_Interaction::mTgtToRcvr.
Referenced by AttemptToDetect(), and operator=().
|
overridevirtual |
Initialize the sensor mode.
| aSimTime | The current simulation time. |
Reimplemented from WsfSensorMode.
References WsfAcousticSensor::cACOUSTIC_HUMAN, WsfPlatformPart::DebugEnabled(), WsfSensorMode::GetSensor(), WsfSensorMode::Initialize(), mAntenna, mEffectiveFilterBandwidth, WsfSensorMode::mMaximumRange, mRcvr, WsfSensorMode::mSensorPtr, mSensorType, mTerrainPtr, and ok.
Referenced by operator=().
|
delete |
|
overridevirtual |
Reimplemented from WsfMode.
References mAntenna, mAtmosphere, mBackgroundNoiseStateId, mDetectionThreshold, mRcvr, mVerbose, and WsfSensorMode::ProcessInput().
Referenced by operator=().
|
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 mRcvr.
Referenced by operator=().
| WsfStringId WsfAcousticSensor::AcousticMode::cDEFAULT_ID |
Referenced by AcousticMode(), AcousticMode(), and AttemptToDetect().
| WsfEM_Antenna WsfAcousticSensor::AcousticMode::mAntenna |
Referenced by AcousticMode(), AcousticMode(), Initialize(), and ProcessInput().
| UtAtmosphere WsfAcousticSensor::AcousticMode::mAtmosphere |
Atmosphere model.
Referenced by AcousticMode(), AcousticMode(), AtmosphericAttenuation(), ComputeDopplerTerm(), GroundEffectAttenuation(), and ProcessInput().
| WsfStringId WsfAcousticSensor::AcousticMode::mBackgroundNoiseStateId |
Pointer to the background noise state.
Referenced by AcousticMode(), AcousticMode(), ApplyFilterWeighting(), and ProcessInput().
| double WsfAcousticSensor::AcousticMode::mDetectionThreshold |
Signal-To-Noise required for detection.
Referenced by AcousticMode(), AcousticMode(), AttemptToDetect(), and ProcessInput().
| std::vector<double> WsfAcousticSensor::AcousticMode::mEffectiveFilterBandwidth |
Array of effective filter bandwidths for each sensor.
Referenced by AcousticMode(), AcousticMode(), AttemptToDetect(), and Initialize().
| WsfEM_Rcvr WsfAcousticSensor::AcousticMode::mRcvr |
Referenced by AcousticMode(), AcousticMode(), AttemptToDetect(), Deselect(), Initialize(), ProcessInput(), and Select().
| AcousticTypes WsfAcousticSensor::AcousticMode::mSensorType |
Referenced by AcousticMode(), AcousticMode(), and Initialize().
| wsf::Terrain* WsfAcousticSensor::AcousticMode::mTerrainPtr |
Pointer to terrain.
Referenced by AcousticMode(), AcousticMode(), ComputeIncidenceAngle(), Initialize(), and ~AcousticMode().
| WsfAcousticSignature* WsfAcousticSensor::AcousticMode::mThresholdPtr |
Pointer to the threshold table.
Referenced by AcousticMode(), AcousticMode(), and AttemptToDetect().
| bool WsfAcousticSensor::AcousticMode::mVerbose |
Referenced by AcousticMode(), AcousticMode(), and ProcessInput().