12#ifndef WSFPHYSICALSCANSENSORSCHEDULER_HPP
13#define WSFPHYSICALSCANSENSORSCHEDULER_HPP
15#include "wsf_export.h"
21#include "UtOptional.hpp"
27 using SearchListSortFn = std::function<bool(
size_t,
size_t)>;
34 static std::unique_ptr<WsfSensorScheduler>
ObjectFactory(
const std::string& aTypeName);
48 void RemoveTarget(
double aSimTime,
size_t aTargetIndex)
override;
56 void TurnOff(
double aSimTime)
override;
58 void TurnOn(
double aSimTime)
override;
128 std::string mTypeName{
"physical_scan"};
129 ut::optional<double> mInitialHeading{ut::nullopt};
130 SearchListSortFn mSearchListSort;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfPhysicalScanSensorScheduler.hpp:26
~WsfPhysicalScanSensorScheduler() override=default
size_t mLastExplicitModeIndex
The last mode explicitly selected (i.e.: via WsfSensor::SelectMode).
Definition WsfPhysicalScanSensorScheduler.hpp:76
void ModeDeselected(double aSimTime, WsfStringId aModeNameId) override
Definition WsfPhysicalScanSensorScheduler.cpp:157
void ModeSelected(double aSimTime, WsfStringId aModeNameId) override
Definition WsfPhysicalScanSensorScheduler.cpp:168
bool Initialize(double aSimTime, WsfSensor *aSensorPtr, WsfSensorTracker *aTrackerPtr) override
Definition WsfPhysicalScanSensorScheduler.cpp:83
std::vector< size_t > mSearchModeIndex
Definition WsfPhysicalScanSensorScheduler.hpp:80
std::map< size_t, SearchModeData > mSearchModeDataMap
Definition WsfPhysicalScanSensorScheduler.hpp:115
bool SelectTarget(double aSimTime, double &aNextSimTime, size_t &aTargetIndex, WsfTrackId &aRequestId, WsfSensor::Settings &aSettings) override
Definition WsfPhysicalScanSensorScheduler.cpp:199
std::vector< WsfSensorMode * > mModeList
The pointers to the sensor modes, indexed by mode index.
Definition WsfPhysicalScanSensorScheduler.hpp:73
WsfPhysicalScanSensorScheduler & operator=(const WsfPhysicalScanSensorScheduler &)=delete
std::queue< SensorTarget > mSensorTargetQueue
A queue of platform indices representing targets in the sensor's current FOV angle.
Definition WsfPhysicalScanSensorScheduler.hpp:103
bool ProcessInput(UtInput &aInput) override
Definition WsfPhysicalScanSensorScheduler.cpp:70
WsfPhysicalScanSensorScheduler()=default
void RemoveTarget(double aSimTime, size_t aTargetIndex) override
Definition WsfPhysicalScanSensorScheduler.cpp:189
double GetInitialHeading() const
Definition WsfPhysicalScanSensorScheduler.hpp:62
bool mSearchAllowed
'true' if search chances can be processed.
Definition WsfPhysicalScanSensorScheduler.hpp:83
void CheckSearchModeAvailability()
Check if the current mode selections provide for the ability to process search chances.
Definition WsfPhysicalScanSensorScheduler.cpp:365
void ResetSearchList()
Definition WsfPhysicalScanSensorScheduler.cpp:451
double mSensorUpdateInterval
The value of UpdateInterval defined by user at run-time in the input files.
Definition WsfPhysicalScanSensorScheduler.hpp:106
void TurnOn(double aSimTime) override
Definition WsfPhysicalScanSensorScheduler.cpp:333
static std::unique_ptr< WsfSensorScheduler > ObjectFactory(const std::string &aTypeName)
Definition WsfPhysicalScanSensorScheduler.cpp:55
double mLastUpdate
Definition WsfPhysicalScanSensorScheduler.hpp:120
void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr) override
Definition WsfPhysicalScanSensorScheduler.cpp:175
void TurnOff(double aSimTime) override
Definition WsfPhysicalScanSensorScheduler.cpp:318
WsfSensorScheduler * Clone() const override
Definition WsfPhysicalScanSensorScheduler.cpp:65
WsfSensorScheduler()
Definition WsfSensorScheduler.cpp:26
Definition WsfSensorTracker.hpp:75
Definition WsfSensor.hpp:133
Definition WsfSensor.hpp:92
Definition WsfTrackId.hpp:33
Definition WsfPhysicalScanSensorScheduler.hpp:109
double mLastUpdate
Definition WsfPhysicalScanSensorScheduler.hpp:110
double mSensorPieSize
Definition WsfPhysicalScanSensorScheduler.hpp:111
double mCurrentSensorHeading
The size of the angle centered around the sensor heading.
Definition WsfPhysicalScanSensorScheduler.hpp:112
SensorTarget(size_t aTargetIndex, size_t aModeIndex)
Definition WsfPhysicalScanSensorScheduler.hpp:92
size_t mModeIndex
Definition WsfPhysicalScanSensorScheduler.hpp:99
SensorTarget()
Definition WsfPhysicalScanSensorScheduler.hpp:87
size_t mTargetIndex
Definition WsfPhysicalScanSensorScheduler.hpp:98