12#ifndef WSFTRACKPROCESSOR_HPP
13#define WSFTRACKPROCESSOR_HPP
15#include "wsf_export.h"
17#include <unordered_map>
19#include "UtCallbackHolder.hpp"
65 bool InitializeMemberData(
double aSimTime);
67 void ConnectCallbacks();
71 virtual void SendTrack(
double aSimTime,
const WsfTrack& aTrack);
73 virtual void SendTrack(
double aSimTime,
const WsfLocalTrack& aLocalTrack);
78 virtual void PerformTrackPurging(
double aSimTime);
79 virtual void PerformTrackHistoryPurging(
double aSimTime);
80 virtual void PerformTrackReporting(
double aSimTime);
90 virtual bool IsTrackReportable(
double aSimTime,
const WsfTrack* aTrackPtr);
92 virtual void NotifyPlatform(
double aSimTime,
const WsfTrack* aChangedTrackPtr,
int aChangedReason);
94 void ProcessInboundFilterBlock(UtInput& aInput);
96 void SelectNonMasterTrackProcessor();
98 virtual void SendTrackP(
double aSimTime,
const WsfTrack& aTrack);
100 virtual bool ShouldProcessInboundReport(
double aSimTime,
const WsfTrack& aTrack);
105 void CandidateTrackPromoted(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr);
107 void CurrentTargetChanged(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr);
109 void LocalTrackDropped(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr);
111 void LocalTrackInitiated(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr,
const WsfTrack* aRawTrackPtr);
113 void LocalTrackUpdated(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr,
const WsfTrack* aRawTrackPtr);
115 void RawTrackDropped(
double aSimTime,
const WsfTrack* aRawTrackPtr);
117 void RawTrackReceived(
double aSimTime,
const WsfTrack* aRawTrackPtr);
119 void SendTrackDropMessage(
double aSimTime,
const WsfTrack* aTrackPtr);
121 void SendTrackNotifyMessage(
double aSimTime,
const WsfTrack* aTrackPtr,
int aReason);
123 void SendTrackUpdateMessage(
double aSimTime,
const WsfTrack* aTrackPtr);
125 void TrackManagerChanged(
double aSimTime,
WsfTrackManager* aNewManagerPtr);
127 void WriteTrackDebugMessage(
double aSimTime,
const WsfTrack* aTrackPtr,
const std::string& aReason);
129 void SelectMasterTrackProcessor(UtInput& aInput);
131 void SelectNonMasterTrackProcessor(UtInput& aInput);
136 double mPurgeInterval;
137 double mTrackHistoryRetentionInterval;
141 double mImagePurgeMultiplier;
144 double mReportInterval;
146 bool mReportFusedTracks;
147 bool mReportCandidateTracks;
148 bool mReportRawTracks;
149 bool mReportUnchangedTracks;
150 bool mReportPassThrough;
151 bool mMasterTrackProcessor;
152 bool mTrackManagerTypeSelected;
154 bool mRejectCircularReports;
155 bool mRejectNonSensorReports;
157 bool mReportOnUpdate;
158 bool mUpdateOnReport;
159 bool mUpdateOnReportSet;
164 UtCallbackHolder mCallbacks;
170 UtScript* mIsTrackReportableScriptPtr;
175 using DroppedRawTrackList = std::unordered_map<WsfTrackId, double, WsfTrackId>;
176 DroppedRawTrackList mDroppedRawTrackList;
183 using LastReportTimeMap = std::unordered_map<WsfTrackId, double, WsfTrackId>;
184 LastReportTimeMap mLastReportTime;
222 double mReportInterval;
224 size_t mPlatformIndex;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
EventDisposition
Definition WsfEvent.hpp:37
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
const char * GetScriptClassName() const override
Definition WsfProcessor.cpp:63
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfScriptMessageHandler.hpp:42
WsfProcessor * Clone() const override
Definition WsfScriptProcessor.cpp:97
wsf::ExternalLinks mExternalLinks
The external recipients.
Definition WsfScriptProcessor.hpp:112
WsfScriptProcessor(const WsfScenario &aScenario)
Definition WsfScriptProcessor.cpp:30
bool Initialize(double aSimTime) override
Definition WsfScriptProcessor.cpp:104
bool ProcessInput(UtInput &aInput) override
Definition WsfScriptProcessor.cpp:186
bool ProcessMessage(double aSimTime, const WsfMessage &aMessage) override
Definition WsfScriptProcessor.cpp:300
Definition WsfTrackManager.hpp:62
EventDisposition Execute() override
Definition WsfTrackProcessor.cpp:1057
WsfTrackProcessor_PurgeTrackHistoryEvent()=default
WsfTrackProcessor * mProcessorPtr
Definition WsfTrackProcessor.hpp:198
WsfTrackProcessor_PurgeTracksEvent()=default
EventDisposition Execute() override
Definition WsfTrackProcessor.cpp:1030
double mPurgeInterval
Definition WsfTrackProcessor.hpp:197
size_t mPlatformIndex
Definition WsfTrackProcessor.hpp:199
WsfTrackProcessor_ReportTracksEvent()=default
EventDisposition Execute() override
Definition WsfTrackProcessor.cpp:1078
Definition WsfTrackProcessor.hpp:47
double GetPurgeInterval() const
Definition WsfTrackProcessor.hpp:82
bool GetReportRawTracks() const
Definition WsfTrackProcessor.hpp:84
double GetReportingInterval() const
Definition WsfTrackProcessor.hpp:81
WsfTrackProcessor(const WsfScenario &aScenario)
The default constructor.
Definition WsfTrackProcessor.cpp:44
wsf::ExternalLinks & GetExternalLinks()
Allow track reporting strategies to access the external links object.
Definition WsfTrackProcessor.hpp:63
WsfTrackManager & GetTrackManager() const
Return the track manager object referenced by this processor.
Definition WsfTrackProcessor.hpp:60
bool GetReportFusedTracks() const
Definition WsfTrackProcessor.hpp:83
WsfTrackProcessor & operator=(const WsfTrackProcessor &)=delete
bool IsMasterTrackManager() const
Definition WsfTrackProcessor.hpp:69
Definition WsfTrackReportingStrategy.hpp:28
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfExternalLinks.hpp:62