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();
70 const DtVector& start,
const DtVector& end,
bool altitudeMSL,
double highResRadius);
73 virtual void processSimObjectDeleted(
const DtSimObject* msg);
78 static void radarCoverageInformationCallback(
DtSimMessage* msg,
void* usr);
86 virtual void processRadarCoverage();
88 virtual void sendInitialRadarCoverage(
RadarCoverage& coverage,
int coverageType,
int responseId = 0)
const;
94 virtual void cancelRadarCoverage(
RadarCoverage& radar,
int coverageType,
bool reset =
true);
95 virtual void startRadarCoverageCalculations(
RadarCoverage& radar,
int coverageType);
98 static void settingConsumerCallback(
const DtSettingsObject* settingsObject,
void* usr);
99 virtual void processSettingsConsumer(
const DtSettingsObject* settingsObject);
103 virtual void removeRadarCoverageCalculation(
const DtUUID& uuid,
const DtString& radarName,
int coverageType);
105 virtual void clearAllCalculations();
107 double& azimuthStart,
double& azimuthEnd,
double& elevationStart,
double& elevationEnd)
const;
109 virtual bool coverageCancelled(
const DtUUID&,
int flag);
124 : azimuthSweepMinimum(0)
125 , azimuthSweepMaximum(M_2PI)
126 , elevationSweepMinimum(0.)
127 , elevationSweepMaximum(M_PI_2)
128 , azimuthSampleRate(M_DEG2RAD)
129 , elevationSampleRate(M_DEG2RAD)
131 , highResRadius(1000)
133 , uuid(
DtUUID::nullUUID())
138 : azimuthSweepMinimum(orig.azimuthSweepMinimum)
139 , azimuthSweepMaximum(orig.azimuthSweepMaximum)
140 , elevationSweepMinimum(orig.elevationSweepMinimum)
141 , elevationSweepMaximum(orig.elevationSweepMaximum)
142 , radarName(orig.radarName)
143 , azimuthSampleRate(orig.azimuthSampleRate)
144 , elevationSampleRate(orig.elevationSampleRate)
145 , postSpacing(orig.postSpacing)
146 , highResRadius(orig.highResRadius)
147 , radarRange(orig.radarRange)
149 , offset(orig.offset)
150 , currentPosition(orig.currentPosition)
151 , currentOrientation(orig.currentOrientation)
175 , movementDelta(1000.)
176 , orientationDelta(M_DEG2RAD)
177 , radarCoverageWaitTime(2.0)
185 , movementDelta(orig.movementDelta)
186 , orientationDelta(orig.orientationDelta)
187 , radarCoverage2D(orig.radarCoverage2D)
188 , radarCoverage3D(orig.radarCoverage3D)
189 , radarCoverageWaitTime(orig.radarCoverageWaitTime)
190 , requestTime(orig.requestTime)
206 , removeOnNextRefresh(false)
210 : referenceCount(orig.referenceCount)
211 , vrfObject(orig.vrfObject)
212 , removeOnNextRefresh(orig.removeOnNextRefresh)
213 , radars(orig.radars)
UUID is a unique ID wrapper class.
Definition: rwUUID.h:226
double radarCoverageWaitTime
Definition: radarCoverageMonitor.h:196
tbb::mutex ConditionMutex
Definition: radarCoverageMonitor.h:231
double elevationSweepMinimum
Definition: radarCoverageMonitor.h:158
Condition myRadarCoverageCondition
Definition: radarCoverageMonitor.h:233
bool myAltitudeMSL
Definition: radarCoverageMonitor.h:259
int coverageType
Definition: radarCoverageMonitor.h:267
bool myReset3D
Definition: radarCoverageMonitor.h:263
bool cancel
Definition: radarCoverageMonitor.h:253
DtTaitBryan currentOrientation
Definition: radarCoverageMonitor.h:165
double radarRange
Definition: radarCoverageMonitor.h:155
boost::signals2::connection simObjectDeletedConnection
Definition: radarCoverageMonitor.h:220
std::map< DtUUID, PendingRadarCoverageRequests > PendingRadarCoverageRequestsMap
Definition: radarCoverageMonitor.h:273
DtRadarCoverageAltitudeSettings myRadarCoverageAltitudeSettings
Definition: radarCoverageMonitor.h:260
double azimuthSweepMaximum
Definition: radarCoverageMonitor.h:157
DtVector currentPosition
Definition: radarCoverageMonitor.h:164
RadarCoverageRequests myRadarCoverageRequests
Definition: radarCoverageMonitor.h:257
boost::shared_ptr< DtSensorFanWalker > radarCoverage2D
Definition: radarCoverageMonitor.h:198
tbb::interface5::condition_variable Condition
Definition: radarCoverageMonitor.h:230
Definition: radarCoverageMonitor.h:121
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:27
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:217
DtString radarName
Definition: radarCoverageMonitor.h:166
RadarCoverageData radarData
Definition: radarCoverageMonitor.h:268
std::vector< RadarCoverageResult > myRadarCoverageResults
Definition: radarCoverageMonitor.h:247
double highResRadius
Definition: radarCoverageMonitor.h:163
std::vector< RadarCoverage > radars
Definition: radarCoverageMonitor.h:222
Monitoring(const Monitoring &orig)
Definition: radarCoverageMonitor.h:209
MonitoringMap myMonitoringMap
Definition: radarCoverageMonitor.h:226
Definition: settingsObject.h:27
Definition: radarCoverageAltitudeSettings.h:35
tbb::spin_mutex myRadarCoverageAdditionMutex
Definition: radarCoverageMonitor.h:238
double postSpacing
Definition: radarCoverageMonitor.h:162
RadarCoverageData(const RadarCoverageData &orig)
Definition: radarCoverageMonitor.h:137
double azimuthSweepMinimum
Definition: radarCoverageMonitor.h:156
DtSensorFanWalker * walker
Definition: radarCoverageMonitor.h:269
tbb::interface5::unique_lock< ConditionMutex > ConditionLock
Definition: radarCoverageMonitor.h:232
RadarCoverage(const RadarCoverage &orig)
Definition: radarCoverageMonitor.h:182
int coverageType
Definition: radarCoverageMonitor.h:243
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSimulationServices * mySimulationServices
Definition: radarCoverageMonitor.h:119
int coverageType
Definition: radarCoverageMonitor.h:252
RadarCoverageData()
Definition: radarCoverageMonitor.h:123
File: simMsg.h.
Definition: simMessage.h:35
double elevationSweepMaximum
Definition: radarCoverageMonitor.h:159
DtUUID uuid
Definition: radarCoverageMonitor.h:167
tbb::spin_mutex myMonitoringMapMutex
Definition: radarCoverageMonitor.h:276
std::map< DtString, std::vector< PendingRadarCoverageRequest > > PendingRadarCoverageRequests
Definition: radarCoverageMonitor.h:272
double elevationSampleRate
Definition: radarCoverageMonitor.h:161
Definition: radarCoverageMonitor.h:171
tbb::atomic< bool > myShutdownRadarCoverageThreadFlag
Definition: radarCoverageMonitor.h:235
Definition: radarCoverageMonitor.h:240
DtSensorFanWalker * walker
Definition: radarCoverageMonitor.h:244
RadarCoverageData radar
Definition: radarCoverageMonitor.h:251
RadarCoverageData radarData
Definition: radarCoverageMonitor.h:242
double orientationDelta
Definition: radarCoverageMonitor.h:195
RadarCoverage()
Definition: radarCoverageMonitor.h:173
double azimuthSampleRate
Definition: radarCoverageMonitor.h:160
std::vector< RadarCoverageRequest > RadarCoverageRequests
Definition: radarCoverageMonitor.h:256
PendingRadarCoverageRequestsMap myPendingRadarCoverageRequests
Definition: radarCoverageMonitor.h:274
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:89
ConditionMutex myRadarCoverageConditionMutex
Definition: radarCoverageMonitor.h:234
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:79
std::auto_ptr< tbb::tbb_thread > myRadarCoverageThread
Member variables used to interact with the radar coverage thread.
Definition: radarCoverageMonitor.h:229
boost::shared_ptr< DtSensorFanWalker > radarCoverage3D
Definition: radarCoverageMonitor.h:199
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: radarCoverageMonitor.h:265
Definition: sensorFanWalker.h:29
Definition: radarCoverageMonitor.h:249
bool myReset2D
Definition: radarCoverageMonitor.h:262
double movementDelta
Definition: radarCoverageMonitor.h:194
Definition: radarCoverageMonitor.h:202
Monitoring()
Definition: radarCoverageMonitor.h:204
voidpf uLong offset
Definition: ioapi.h:42
tbb::atomic< bool > myClearPendingIntersections
Definition: radarCoverageMonitor.h:236
DtVector offset
Definition: radarCoverageMonitor.h:168
double requestTime
Definition: radarCoverageMonitor.h:197
bool removeOnNextRefresh
Definition: radarCoverageMonitor.h:219
std::map< DtUUID, Monitoring > MonitoringMap
Definition: radarCoverageMonitor.h:225