VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
radarObjectSensor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
16 
17 class DtVrfEmitterSystem;
20 class DtSimMessage;
21 class DtVrfObjectMessage;
23 
24 namespace makVrf
25 {
26  struct DtTrackJamBeamInfo;
27  class DtIffStateComponent;
28 }
29 
46 {
47 private:
50 
53  orig);
54 
56  const DtRadarObjectSensor & operator=(const
57  DtRadarObjectSensor & orig);
58 
59 public:
61 
63  {
64  JammingEffectNone = 0,
65  JammingEffectDisable = 1,
66  JammingEffectHideSource = 2
67  };
68 
71  DtRadarObjectSensor(const DtString& name,
72  DtLocalObject* owner,
73  DtSimulationServices* simManager,
74  DtComponentDescriptor* desc = 0,
75  DtReaderWriterRegistry* parentRegistry = 0);
76 
78  virtual ~DtRadarObjectSensor() override;
79 
80  virtual bool init() override;
81 
84  virtual const char* type() const override;
85 
87  virtual int sensorType() const override;
88 
91  virtual void preFirstTickInit() override;
92 
101  virtual void tick() override;
102 
105  virtual void setSensorEnabled(bool enabled) override;
106 
108  virtual DtRadarObjectSensorPSR* getPSR();
109 
116  static DtReaderWriter* provideIsEmitterOn(void* ctrlr);
118 
122  static DtSimComponent * creator(const DtString& name,
123  DtLocalObject* owner,
124  DtSimulationServices* simManager,
125  DtComponentDescriptor* desc = 0,
126  DtReaderWriterRegistry* parentRegistry = 0);
127 
128 protected:
129 
139  virtual double EwAttackEffect(const double attack, const double defense) const;
140 
144  virtual double sensitivityModifier() const override;
145 
147  virtual const char* defaultPSRType() const override;
148 
152  virtual void createAndInitEmitterSystem();
153 
155  virtual void destroyEmitterSystem();
156 
159  static void setEmitterRequestCallback(DtSimMessage *msg, void * usrData);
160 
163  virtual void processSetEmitterRequestMessage(DtSimMessage *msg);
164 
165  static void setRadarModeRequestCallback(DtSimMessage* msg, void* usrData);
166  virtual void processSetRadarModeRequestMessage(DtSimMessage *msg);
167 
168  static void requestRadarModesAdminCallback(const DtVrfObjectMessage* msg, void* usr);
169  virtual void processRequestRadarModesAdmin(const DtUUID& receiver,
170  const DtUUID& sender,
171  const DtVrfObjectMessage* msg);
172 
175  static void setSectorBlankingCallback(DtSimMessage *msg, void * usrData);
176 
178  virtual void processSetSectorBlankingMessage(DtSimMessage *msg);
179 
182  virtual void setEmitterSystemOn(bool onOff);
183 
184 
186  virtual void processObjects() override;
187 
189  virtual bool detectObject(DtSimObjectReference object,
190  DtRwSensorContactInfo* contactInfo) override;
191 
193  virtual ContinueDetectingResult continueDetectingObject(DtSimObjectReference object,
194  DtRwSensorContactInfo* contactInfo, bool& contactInfoModified) override;
195 
198  virtual void setTrackTargetsFromContactList();
199 
202  virtual DtJammingEffect jammingEffectFromBeam(const makVrf::DtTrackJamBeamInfo& beamInfo) const;
203  virtual void calculateJammingEffects();
204 
207  virtual double calculatePowerDensity(const makVrf::DtTrackJamBeamInfo& beamInfo) const;
208 
210  virtual int determineForceType(const DtSimObject* object, DtRwSensorContactInfo* contactInfo) override;
211 
213  virtual bool detectIff(const makVrf::DtIffStateComponent& iff) const;
214 
216  virtual bool isObjectInSectorBlanking(const DtSimObject* object) const;
217 
218  virtual void updateJamTaskVisualizations(const std::set<DtSimObjectReference>& jammingEntities);
219 
220  virtual bool taskVisualizationsActive() const override;
221 
222 protected:
223 
226 
228 
231  std::set<DtUUID> myHiddenTargets;
232 
233  std::map<DtUUID, makVrf::DtLineTaskVisualizationPtr> myJamTaskVisLines;
234 
235 
236 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
const DtSignatureObjectSensor & operator=(const DtSignatureObjectSensor &orig)
assignment operator; not implemented
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual const char * defaultPSRType() const override
virtual bool taskVisualizationsActive() const
Returns true if task visualizations are currently active for this component. Default behavior is to r...
DtJammingEffect
Definition: radarObjectSensor.h:62
Definition: readerWriter.h:85
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
virtual int determineForceType(const DtSimObject *object, DtRwSensorContactInfo *contactInfo)
Determines the force type for this object based on the sensor contact info for it. Currently just uses the detection-level-to-set-force-type parameter from the sensor descriptor to determine at which identification level we would be able to know the force type of the object.
Definition: readerWriterRegistry.h:39
virtual void setSensorEnabled(bool enabled) override
Enables or disables this sensor.
This class represents the data gathered by a sensor about a particular single sensor contact...
Definition: rwSensorContactInfo.h:68
DtVrfEmitterSystem * myEmitterSystem
Definition: radarObjectSensor.h:225
bool mySystemFullyJammed
Definition: radarObjectSensor.h:229
DtRadarObjectSensorPSR * myRadarSensorPSR
Definition: radarObjectSensor.h:227
const DtRadarObjectSensorDescriptor * myRadarObjectSensorDescriptor
Definition: radarObjectSensor.h:224
DtVrfEmitterSystem manages a VR-Link emitter system publisher, and sets all the values associated wit...
Definition: vrfEmitterSystem.h:40
std::map< DtUUID, makVrf::DtLineTaskVisualizationPtr > myJamTaskVisLines
Definition: radarObjectSensor.h:233
virtual void tick() override
Overridden from base class to update myLocalSensorPosition (using localSensorPosition()) at the start...
A sensor component which uses the VR-Forces Sensor Signature model for detecting object.
Definition: signatureObjectSensor.h:41
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
DtRadarObjectSensor extends the DtSignatureObjectSensor with the capability of publishing an emitter ...
Definition: radarObjectSensor.h:45
File: simMsg.h.
Definition: simMessage.h:35
Definition: stateDataManager.h:55
Process State Repositor for the DtRadarObjectSensor component.
Definition: radarObjectSensorPSR.h:22
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
virtual bool init() override
Calls createPSR(), createDetectableObjectList(), createAndInitSensorMonitor() and initSensorGeometry(...
virtual const char * type() const override
Returns a string identifies the class type of component. Type values are defined in compTypes...
virtual void processObjects()
Checks detectability of each of the detectable objects. This is done by calling continueDetectingObje...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:89
std::set< DtUUID > myHiddenTargets
Targets hidden by jamming.
Definition: radarObjectSensor.h:231
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:80
The central class of a DtLocalObject for all communications to and from the object. This class manages all communications on a specific DtLocalObject, though both simulation internal communication, and communication though the simulated radios of the object. All communication is done though the use of the DtVrfObjectMessage class and its subclasses. Callbacks can be registered on this interface which will be called on receipt of a message by this entity. Messages can be sent from this entity by using the message sending functions. These messages may be sent though the SimInternal message mechanism, or the radio message system. Radios will not exist until createRadiosFromDescriptorList() or createRadiosFromDescriptorList(const DtRadioDescriptorList&amp; descList) is called.
Definition: vrfObjectCommunicationInterface.h:40
virtual void preFirstTickInit() override
Initializes the component before it is ticked for the first time. It is called by timedTick if myFirs...
virtual bool detectObject(DtSimObjectReference object, DtRwSensorContactInfo *contactInfo) override
Returns true if object is detected. Calls apparentSignature to determine what the object&#39;s signature ...
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: iffStateComponent.h:83
virtual int sensorType() const override
Returns the enumerated type of this sensor. It is based on the sensor domain string. &quot;radar&quot; maps to DtSenorTypeRadar. &quot;visual&quot; maps to DtSensorTypeVisual. &quot;sonar&quot; maps to DtSensorTypeSonar. &quot;infrared&quot; maps to DtSensorTypeInfrared. Anything else maps to DtSensorTypeUnknown.
DtRadarObjectSensorDescriptor; descriptor for the DtRadarObjectSensor component.
Definition: radarObjectSensorDescriptor.h:27
virtual ContinueDetectingResult continueDetectingObject(DtSimObjectReference object, DtRwSensorContactInfo *contactInfo, bool &contactInfoModified) override
Same as detectObject except it is checking for objects we had previously detected. In this case the amount of time that this object has been detected by the sensor will be factored in when determining the identification level. Again returns true if the object is still detected and the contact info is updated. If there were changes in the contact info, contactInfoModified will be true.
virtual double sensitivityModifier() const
The modifier for this sensor&#39;s sensitivity. A function of internal and external state. Includes modifiers for [aggregate] state properties for Posture and MOPP. Override this for sensor-specific modifiers.
A locally simulated VRF object.
Definition: localObject.h:98

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)