WSF
WsfSensorProcessor.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2016 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSENSORPROCESSOR_HPP
13#define WSFSENSORPROCESSOR_HPP
14
15#include "wsf_export.h"
16
17#include <mutex>
18#include <vector>
19
20class UtScriptTypes;
21#include "UtScriptExtension.hpp"
22
23class WsfPlatform;
24#include "WsfProcessor.hpp"
25class WsfScenario;
26class WsfSensor;
27#include "WsfStringId.hpp"
28class WsfTrack;
29
36
38{
39public:
41 ~WsfSensorProcessor() override = default;
42
44
45 WsfProcessor* Clone() const override = 0;
46 bool Initialize(double aSimTime) override;
47 bool ProcessInput(UtInput& aInput) override;
48 void PlatformAdded(double aSimTime, WsfPlatform* aPlatformPtr) override;
49 void PlatformDeleted(WsfPlatform* aPlatformPtr) override;
51
52 virtual bool AddSensor(WsfStringId aPlatformNameId, WsfStringId aSensorNameId);
53 virtual bool RemoveSensor(WsfStringId aPlatformNameId, WsfStringId aSensorNameId);
54
55 static void RegisterScriptMethods(UtScriptTypes& aScriptTypes);
56
57protected:
60
62 virtual bool SensorAdded(WsfSensor* aSensorPtr) = 0;
63 virtual bool SensorRemoved(WsfSensor* aSensorPtr) = 0;
64
66
67 virtual void TrackUpdated(double aSimTime, WsfSensor* aSensorPtr, WsfTrack* aTrackPtr);
68
69 virtual void TrackDropped(double aSimTime, const WsfTrack& aTrack);
70
71
72 void SendTrackUpdateMessage(double aSimTime, WsfSensor* aSensorPtr, const WsfTrack* aTrackPtr);
74
75 std::recursive_mutex mIncomingMutex;
76
77private:
79 std::vector<std::pair<WsfStringId, WsfStringId>> mSensors;
80
82 int mMessageLength;
84 int mMessagePriority;
85};
86
87class WsfSensorProcessorScriptExtensions : public UtScriptExtension
88{
89public:
91 bool AddExtClassMethods(const std::string& aClassName, const std::string& aBaseName, UtScriptTypes* aScriptTypesPtr) override;
92};
93
94#endif
UtStringId WsfStringId
WsfStringId – the same thing as UtStringId.
Definition WsfStringId.hpp:23
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual void PlatformDeleted(WsfPlatform *aPlatformPtr)
Definition WsfPlatformPart.cpp:343
virtual void PlatformAdded(double aSimTime, WsfPlatform *aPlatformPtr)
Definition WsfPlatformPart.cpp:333
Platforms represent a entity within the simulation.
Definition WsfPlatform.hpp:115
bool Initialize(double aSimTime) override
Definition WsfProcessor.cpp:86
WsfProcessor(const WsfScenario &aScenario)
Definition WsfProcessor.cpp:25
bool ProcessInput(UtInput &aInput) override
Definition WsfProcessor.cpp:132
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSensorProcessor.hpp:88
~WsfSensorProcessorScriptExtensions() override=default
bool AddExtClassMethods(const std::string &aClassName, const std::string &aBaseName, UtScriptTypes *aScriptTypesPtr) override
Definition WsfSensorProcessor.cpp:379
std::recursive_mutex mIncomingMutex
Definition WsfSensorProcessor.hpp:75
~WsfSensorProcessor() override=default
virtual void TrackDropped(double aSimTime, const WsfTrack &aTrack)
Definition WsfSensorProcessor.cpp:295
WsfSensorProcessor & operator=(const WsfSensorProcessor &aRhs)=delete
virtual bool SensorAdded(WsfSensor *aSensorPtr)=0
Clear any data or lists maintained by inheriting classes.
void SendTrackUpdateMessage(double aSimTime, WsfSensor *aSensorPtr, const WsfTrack *aTrackPtr)
Definition WsfSensorProcessor.cpp:304
WsfSensorProcessor(WsfScenario &aScenario)
Definition WsfSensorProcessor.cpp:34
static void RegisterScriptMethods(UtScriptTypes &aScriptTypes)
Definition WsfSensorProcessor.cpp:367
virtual bool RemoveSensor(WsfStringId aPlatformNameId, WsfStringId aSensorNameId)
Definition WsfSensorProcessor.cpp:206
virtual void TrackUpdated(double aSimTime, WsfSensor *aSensorPtr, WsfTrack *aTrackPtr)
Definition WsfSensorProcessor.cpp:268
WsfProcessor * Clone() const override=0
virtual bool AddSensor(WsfStringId aPlatformNameId, WsfStringId aSensorNameId)
Definition WsfSensorProcessor.cpp:149
virtual bool SensorRemoved(WsfSensor *aSensorPtr)=0
Definition WsfSensor.hpp:92
An object that represents an 'track' (perception) of something.
Definition WsfTrack.hpp:120
Copyrights Multiple, All Rights Reserved