10 #include <matrix/vlMath.h>
11 #include <tbb/spin_mutex.h>
12 #include <tbb/tbb_thread.h>
13 #include <tbb/atomic.h>
14 #include <tbb/compat/condition_variable>
17 #include <tbb/spin_mutex.h>
59 virtual void startMonitoring(
const DtUUID&,
bool radarCoverage2D =
true,
bool radarCoverage3D =
true,
int responseId = 0);
62 virtual void stopMonitoring(
const DtUUID&);
65 virtual void terrainClosed();
67 virtual void setSliceMonitorTimeout(
double d);
70 return mySliceMonitorTimeout;
76 const DtVector& start,
const DtVector& end,
bool altitudeMSL,
double highResRadius);
79 virtual void processSimObjectDeleted(
const DtSimObject* msg);
84 static void radarCoverageInformationCallback(
DtSimMessage* msg,
void* usr);
92 virtual void processRadarCoverage();
94 virtual void sendInitialRadarCoverage(RadarCoverage& coverage,
int coverageType,
int responseId = 0)
const;
96 virtual void sendRadarCoverageResults(
const RadarCoverageData&,
const DtSensorFanWalker*,
int coverageType,
int responseId = 0)
const;
100 virtual void cancelRadarCoverage(RadarCoverage& radar,
int coverageType,
bool reset =
true);
101 virtual void startRadarCoverageCalculations(RadarCoverage& radar,
int coverageType);
104 static void settingConsumerCallback(
const DtSettingsObject* settingsObject,
void* usr);
105 virtual void processSettingsConsumer(
const DtSettingsObject* settingsObject);
107 virtual PendingRadarCoverageRequest initializeRadarCoverageCalculation2D(
const RadarCoverageRequest&);
108 virtual PendingRadarCoverageRequest initializeRadarCoverageCalculation3D(
const RadarCoverageRequest&);
109 virtual void removeRadarCoverageCalculation(
const DtUUID& uuid,
const DtString& radarName,
int coverageType);
110 virtual bool processPendingIntersection(PendingRadarCoverageRequest& pending);
111 virtual void clearAllCalculations();
112 virtual void initializeAzimuthAndElevation(
const RadarCoverageData& coverage,
113 double& azimuthStart,
double& azimuthEnd,
double& elevationStart,
double& elevationEnd)
const;
115 virtual bool coverageCancelled(
const DtUUID&,
int flag);
130 : azimuthSweepMinimum(0)
131 , azimuthSweepMaximum(M_2PI)
132 , elevationSweepMinimum(0.)
133 , elevationSweepMaximum(M_PI_2)
134 , azimuthSampleRate(M_DEG2RAD)
135 , elevationSampleRate(M_DEG2RAD)
137 , highResRadius(1000)
139 , uuid(
DtUUID::nullUUID())
144 : azimuthSweepMinimum(orig.azimuthSweepMinimum)
145 , azimuthSweepMaximum(orig.azimuthSweepMaximum)
146 , elevationSweepMinimum(orig.elevationSweepMinimum)
147 , elevationSweepMaximum(orig.elevationSweepMaximum)
148 , radarName(orig.radarName)
149 , azimuthSampleRate(orig.azimuthSampleRate)
150 , elevationSampleRate(orig.elevationSampleRate)
151 , postSpacing(orig.postSpacing)
152 , highResRadius(orig.highResRadius)
153 , radarRange(orig.radarRange)
156 , currentPosition(orig.currentPosition)
157 , currentOrientation(orig.currentOrientation)
181 , movementDelta(1000.)
182 , orientationDelta(M_DEG2RAD)
183 , radarCoverageWaitTime(2.0)
191 , movementDelta(orig.movementDelta)
192 , orientationDelta(orig.orientationDelta)
193 , radarCoverage2D(orig.radarCoverage2D)
194 , radarCoverage3D(orig.radarCoverage3D)
195 , radarCoverageWaitTime(orig.radarCoverageWaitTime)
196 , requestTime(orig.requestTime)
212 , removeOnNextRefresh(false)
216 : referenceCount(orig.referenceCount)
217 , vrfObject(orig.vrfObject)
218 , removeOnNextRefresh(orig.removeOnNextRefresh)
219 , radars(orig.radars)
UUID is a unique ID wrapper class.
Definition: uuid.h:59
double radarCoverageWaitTime
Definition: radarCoverageMonitor.h:202
tbb::mutex ConditionMutex
Definition: radarCoverageMonitor.h:237
double elevationSweepMinimum
Definition: radarCoverageMonitor.h:164
Condition myRadarCoverageCondition
Definition: radarCoverageMonitor.h:239
bool myAltitudeMSL
Definition: radarCoverageMonitor.h:265
int coverageType
Definition: radarCoverageMonitor.h:273
bool myReset3D
Definition: radarCoverageMonitor.h:269
bool cancel
Definition: radarCoverageMonitor.h:259
DtTaitBryan currentOrientation
Definition: radarCoverageMonitor.h:171
double radarRange
Definition: radarCoverageMonitor.h:161
boost::signals2::connection simObjectDeletedConnection
Definition: radarCoverageMonitor.h:226
std::map< DtUUID, PendingRadarCoverageRequests > PendingRadarCoverageRequestsMap
Definition: radarCoverageMonitor.h:279
DtRadarCoverageAltitudeSettings myRadarCoverageAltitudeSettings
Definition: radarCoverageMonitor.h:266
double azimuthSweepMaximum
Definition: radarCoverageMonitor.h:163
DtVector currentPosition
Definition: radarCoverageMonitor.h:170
RadarCoverageRequests myRadarCoverageRequests
Definition: radarCoverageMonitor.h:263
boost::shared_ptr< DtSensorFanWalker > radarCoverage2D
Definition: radarCoverageMonitor.h:204
tbb::interface5::condition_variable Condition
Definition: radarCoverageMonitor.h:236
Definition: radarCoverageMonitor.h:127
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
Definition: radarCoverageMonitor.h:32
DtObjectSensorDescriptor; descriptor for the DtObjectSensor component.
Definition: objectSensorDescriptor.h:28
DtSimInterfaceMessage is used to send a message to the front end or the back end. It derives from a s...
Definition: simInterfaceMessage.h:23
int referenceCount
Definition: radarCoverageMonitor.h:223
DtString radarName
Definition: radarCoverageMonitor.h:172
RadarCoverageData radarData
Definition: radarCoverageMonitor.h:274
std::vector< RadarCoverageResult > myRadarCoverageResults
Definition: radarCoverageMonitor.h:253
double highResRadius
Definition: radarCoverageMonitor.h:169
std::vector< RadarCoverage > radars
Definition: radarCoverageMonitor.h:228
Monitoring(const Monitoring &orig)
Definition: radarCoverageMonitor.h:215
MonitoringMap myMonitoringMap
Definition: radarCoverageMonitor.h:232
Definition: settingsObject.h:27
Definition: radarCoverageAltitudeSettings.h:35
tbb::spin_mutex myRadarCoverageAdditionMutex
Definition: radarCoverageMonitor.h:244
double postSpacing
Definition: radarCoverageMonitor.h:168
RadarCoverageData(const RadarCoverageData &orig)
Definition: radarCoverageMonitor.h:143
double azimuthSweepMinimum
Definition: radarCoverageMonitor.h:162
DtSensorFanWalker * walker
Definition: radarCoverageMonitor.h:275
tbb::interface5::unique_lock< ConditionMutex > ConditionLock
Definition: radarCoverageMonitor.h:238
RadarCoverage(const RadarCoverage &orig)
Definition: radarCoverageMonitor.h:188
double mySliceMonitorTimeout
Definition: radarCoverageMonitor.h:281
int coverageType
Definition: radarCoverageMonitor.h:249
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSimulationServices * mySimulationServices
Definition: radarCoverageMonitor.h:125
int coverageType
Definition: radarCoverageMonitor.h:258
RadarCoverageData()
Definition: radarCoverageMonitor.h:129
File: simMsg.h.
Definition: simMessage.h:35
double elevationSweepMaximum
Definition: radarCoverageMonitor.h:165
DtUUID uuid
Definition: radarCoverageMonitor.h:173
tbb::spin_mutex myMonitoringMapMutex
Definition: radarCoverageMonitor.h:283
std::map< DtString, std::vector< PendingRadarCoverageRequest > > PendingRadarCoverageRequests
Definition: radarCoverageMonitor.h:278
double sliceMonitorTimeout() const
Definition: radarCoverageMonitor.h:68
double elevationSampleRate
Definition: radarCoverageMonitor.h:167
Definition: radarCoverageMonitor.h:177
tbb::atomic< bool > myShutdownRadarCoverageThreadFlag
Definition: radarCoverageMonitor.h:241
Definition: radarCoverageMonitor.h:246
DtSensorFanWalker * walker
Definition: radarCoverageMonitor.h:250
RadarCoverageData radar
Definition: radarCoverageMonitor.h:257
RadarCoverageData radarData
Definition: radarCoverageMonitor.h:248
double orientationDelta
Definition: radarCoverageMonitor.h:201
RadarCoverage()
Definition: radarCoverageMonitor.h:179
double azimuthSampleRate
Definition: radarCoverageMonitor.h:166
std::vector< RadarCoverageRequest > RadarCoverageRequests
Definition: radarCoverageMonitor.h:262
PendingRadarCoverageRequestsMap myPendingRadarCoverageRequests
Definition: radarCoverageMonitor.h:280
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
ConditionMutex myRadarCoverageConditionMutex
Definition: radarCoverageMonitor.h:240
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:88
std::auto_ptr< tbb::tbb_thread > myRadarCoverageThread
Member variables used to interact with the radar coverage thread.
Definition: radarCoverageMonitor.h:235
boost::shared_ptr< DtSensorFanWalker > radarCoverage3D
Definition: radarCoverageMonitor.h:205
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: radarCoverageMonitor.h:271
Definition: sensorFanWalker.h:29
Definition: radarCoverageMonitor.h:255
bool myReset2D
Definition: radarCoverageMonitor.h:268
double movementDelta
Definition: radarCoverageMonitor.h:200
Definition: radarCoverageMonitor.h:208
Monitoring()
Definition: radarCoverageMonitor.h:210
voidpf uLong offset
Definition: ioapi.h:42
tbb::atomic< bool > myClearPendingIntersections
Definition: radarCoverageMonitor.h:242
DtVector offset
Definition: radarCoverageMonitor.h:174
double requestTime
Definition: radarCoverageMonitor.h:203
bool removeOnNextRefresh
Definition: radarCoverageMonitor.h:225
std::map< DtUUID, Monitoring > MonitoringMap
Definition: radarCoverageMonitor.h:231