15#ifndef WSFUPLINKPROCESSOR_HPP
16#define WSFUPLINKPROCESSOR_HPP
20#include "UtCallbackHolder.hpp"
22#include "wsf_mil_export.h"
45 void AddUplinkPath(
const std::string& aSensorName,
const std::string& aCommName);
51 bool StartUplinking(
size_t aReceiverIndex,
size_t aTargetIndex = 0);
55 bool StopUplinking(
size_t aReceiverIndex);
61 unsigned int WeaponUplinkCount();
63 WsfPlatform* UplinkWeaponPlatform(
unsigned int aIndex);
87 double aLastSendTime);
89 void RemoveUplink(
unsigned int aTaskId);
91 void UplinkTrack(
double aSimTime,
const WsfTrack* aTrackPtr,
double aUplinkSendInterval,
bool aIsLocalTrack);
93 virtual void LocalTrackInitiated(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr,
const WsfTrack* aRawTrackPtr);
95 virtual void LocalTrackUpdated(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr,
const WsfTrack* aRawTrackPtr);
97 virtual void RawTrackReceived(
double aSimTime,
const WsfTrack* aRawTrackPtr);
99 virtual void LocalTrackCorrelation(
double aSimTime,
const WsfLocalTrack* aLocalTrackPtr,
const WsfTrackId& aRawTrackId);
107 UtScriptClass* CreateScriptClass(
const std::string& aClassName, UtScriptTypes* aScriptTypesPtr);
116 unsigned int mMaxSupportedUplinks;
126 using UplinkPathList = std::list<UplinkPath>;
127 using UplinkPathListIter = std::list<UplinkPath>::iterator;
128 UplinkPathList mUplinkPathList;
151 using TrackUplinkList = std::list<TrackUplink>;
152 TrackUplinkList mTrackUplinkList;
158 WsfTrackId mTaskTrackId;
161 WsfTrackId mLocalTrackId;
164 WsfTrackId mSensorTrackId;
167 WsfPlatform* mUplinkDestinationPtr;
170 wsf::comm::Comm* mCommPtr;
176 unsigned int mTaskId;
179 double mLastSendTime;
182 using UplinkList = std::vector<Uplink>;
183 UplinkList mUplinkList;
194 WsfTrackId mTaskTrackId;
198 size_t mPlatformIndex;
200 unsigned int mSerialNumber;
205 using ActiveWeaponList = std::list<ActiveWeapon>;
206 using ActiveWeaponListIter = std::list<ActiveWeapon>::iterator;
208 ActiveWeaponList mActiveWeaponList;
210 bool mLinkToSensorsOnInit;
211 double mUplinkSendInterval;
212 UtCallbackHolder mCallbacks;
221 void*
Create(
const UtScriptContext& aContext)
override;
222 void*
Clone(
void* aObjectPtr)
override;
223 void Destroy(
void* aObjectPtr)
override;
224 UtScriptContext*
GetContext(
void* aObjectPtr)
override;
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
Definition WsfLocalTrack.hpp:32
A base class for messages sent among simulation communication objects, processors and sensors.
Definition WsfMessage.hpp:33
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
WsfScriptProcessorClass(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfScriptProcessorClass.cpp:31
WsfProcessor * Clone() const override
Definition WsfScriptProcessor.cpp:97
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
UT_DECLARE_SCRIPT_METHOD(StartUplinking_1)
UT_DECLARE_SCRIPT_METHOD(IsUplinkingTo)
UT_DECLARE_SCRIPT_METHOD(UplinkCount)
UT_DECLARE_SCRIPT_METHOD(StartUplinking_2)
UT_DECLARE_SCRIPT_METHOD(UplinkPlatformEntry)
void Destroy(void *aObjectPtr) override
Definition WsfUplinkProcessor.cpp:773
UT_DECLARE_SCRIPT_METHOD(UplinkCapable)
UT_DECLARE_SCRIPT_METHOD(MaxSupportedUplinks)
UtScriptContext * GetContext(void *aObjectPtr) override
Definition WsfUplinkProcessor.cpp:779
void * Create(const UtScriptContext &aContext) override
Definition WsfUplinkProcessor.cpp:759
UT_DECLARE_SCRIPT_METHOD(StopUplinking)
WsfScriptUplinkProcessor(const std::string &aClassName, UtScriptTypes *aScriptTypesPtr)
Definition WsfUplinkProcessor.cpp:741
Definition WsfTrackId.hpp:33
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Definition WsfUplinkProcessor.hpp:31
WsfUplinkProcessor * Clone() const override
Definition WsfUplinkProcessor.hpp:38
unsigned int GetMaxSupportedUplinks()
Definition WsfUplinkProcessor.hpp:104
WsfUplinkProcessor(const WsfScenario &aScenario)
Definition WsfUplinkProcessor.cpp:30
WsfUplinkProcessor & operator=(const WsfUplinkProcessor &)=delete
static WsfUplinkProcessor * GetUplinkProcessor(WsfPlatform &aPlatform)
Definition WsfUplinkProcessor.cpp:667
void LinkToSensorsOnInit(bool val)
Definition WsfUplinkProcessor.hpp:47
void SetMaxUplinkCount(unsigned int aNumUplinks)
Definition WsfUplinkProcessor.hpp:103
bool IsUplinkPathListEmpty()
Definition WsfUplinkProcessor.hpp:74
~WsfUplinkProcessor() override=default
const char * GetScriptClassName() const override
Definition WsfUplinkProcessor.hpp:109
static bool HasUplinkProcessor(WsfPlatform &aPlatform)
Definition WsfUplinkProcessor.cpp:702
void ClearTrackUplinkList()
Definition WsfUplinkProcessor.hpp:78
void SetSendInterval(double aInterval)
Definition WsfUplinkProcessor.hpp:49
Definition WsfWeaponEngagement.hpp:43
Definition WsfComm.hpp:43