VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
sensorGimbalController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
16 #include "vrfutil/rwColor.h"
17 #include "vrfutil/scriptGeometry.h"
18 
19 namespace makVrf
20 {
21  class DtArticulatedPartStateRepository;
22 }
23 
24 class DtAnalogOutputPort;
25 class DtAnalogInputPort;
26 class DtIntegerInputPort;
28 class DtStringInputPort;
29 class DtStringOutputPort;
30 class DtVectorOutputPort;
31 class DtVectorInputPort;
38 
39 namespace makVrfEvents
40 {
41  class DtEvent;
42  class DtSensorFieldOfViewControlEvent;
43 }
44 
50  public DtBindableLuaComponent<DtSensorGimbalController>
51 {
52 
53 public:
54 
58  DtLocalObject* owner,
59  DtSimulationServices* simManager,
60  DtComponentDescriptor* desc = 0,
61  DtReaderWriterRegistry* parentRegistry = 0);
62 
64  virtual ~DtSensorGimbalController();
65 
66  virtual bool init();
67 
68  virtual bool postAddComponentsInit();
69 
72  virtual const char* type() const;
73 
74  virtual void tick();
75 
77 
78  static void setAimGimbalCallback(DtSimMessage * msg, void * usr);
79  virtual void processSetAimGimbal(DtSimMessage* msg);
81 
83 
84  static void setZoomSensorCallback(DtSimMessage * msg, void * usr);
85  virtual void processSetZoomSensor(DtSimMessage* msg);
87 
91 
92  static void setManualControlCallback(DtSimMessage * msg, void * usr);
93  virtual void processSetManualControl(DtSimMessage* msg);
95 
97 
98  static void setFieldOfViewColorCallback(DtSimMessage * msg, void * usr);
99  virtual void processSetFieldOfViewColor(DtSimMessage* msg);
101 
103 
104  static void setLasingCallback(DtSimMessage * msg, void * usr);
105  virtual void processSetLasing(DtSimMessage* msg);
107 
109 
110  static void laseTargetTaskCallback(DtSimMessage *msg, void * usrData);
111  virtual void processLaseTargetTaskMessage(DtSimMessage *msg);
113 
115 
116  static void laseLocationTaskCallback(DtSimMessage *msg, void * usrData);
117  virtual void processLaseLocationTaskMessage(DtSimMessage *msg);
119 
121 
122  virtual void setGimbalControlCallback(const makVrfEvents::DtEvent&);
123  virtual void processGimbalControl(const makVrfEvents::DtSensorFieldOfViewControlEvent* ctrlInter);
125 
127 
128 
130  virtual bool isUnderManualControl() const;
131 
133  virtual std::string mode() const;
134 
136  virtual double orientation(double& elevation) const;
137 
139  virtual DtLocation3D lookingAt() const;
140 
142 
145  virtual void bindLuaFunctions(lua_State* L);
146  virtual void bindLuaGlobals(lua_State* L);
147 
151  static DtSimComponent * creator(const DtString& name,
152  DtLocalObject* owner,
153  DtSimulationServices* simManager,
154  DtComponentDescriptor* desc = 0,
155  DtReaderWriterRegistry* parentRegistry = 0);
156 
157 protected:
159  virtual bool targetPoint(const DtTaitBryan& orientation, DtVector& location) const;
160  virtual DtVector localEyepoint() const;
161 
163  virtual bool createPortGroups();
164 
166  virtual bool createPorts();
167 
169  virtual DtSensorGimbalControllerPSR* createPSR();
170 
173  virtual void restoreDefaultAiming();
174 
176  virtual void aimSensorAtPoint(const DtVector& worldLocation);
177 
179  virtual void trackObject(const DtSimObject* objectToTrack);
180 
183  virtual void aimSensorAtAngle(double azimuth, double elevation);
184 
188  virtual void scanSensor();
189 
193  virtual void searchAndTrackObject(const DtSimObject* objectToTrack);
194 
196  virtual void currentPositionAzimuthAndElevation(DtVector& offset, double& az, double& el) const;
197 
199  virtual void currentWorldLocationAndOrientation(DtVector& location, DtTaitBryan& orientation) const;
200 
202  virtual makVrf::DtArticulatedPartStateRepository* gimbalAzimuthPart();
203  virtual const makVrf::DtArticulatedPartStateRepository* gimbalAzimuthPart() const;
204 
206  virtual makVrf::DtArticulatedPartStateRepository* gimbalElevationPart();
207  virtual const makVrf::DtArticulatedPartStateRepository* gimbalElevationPart() const;
208 
211  virtual bool findLocationOfSensorAiming(const DtVector& sensorLocation,
212  const DtTaitBryan& orientation, DtVector& aimingPoint) const;
213 
215  virtual DtSimObjectReference getLasingTarget();
216 
217  virtual void calcAndSetPortValues(const DtString& functionGroup, const DtString& function, double value, bool repeat);
218  virtual void joystickConnected();
219  virtual void joystickDisconnected();
220 
222  virtual double minAzimuth() const;
223 
225  virtual double maxAzimuth() const;
226 
228  virtual double minElevation() const;
229 
231  virtual double maxElevation() const;
232 
234  static DtRwColor randomFieldOfViewColor();
235 
236 private:
237 
240 
243  DtSensorGimbalController & orig);
244 
247  const DtSensorGimbalController & orig);
248 
249 protected:
250 
252 
254 
257 
260 
264 
266 
268 
269 
274 
282 
290 
295 
301 
307 
313 
319 
326 
333 
340 
347 
353 
359 
365 
371 
377 
385 
392 
395 };
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtSensorGimbalControllerPSR * myProcessState
Definition: sensorGimbalController.h:253
Instances of DtStringOutputPort are output ports through which data producers can send a DtString obj...
Definition: stringIOPort.h:52
Definition: sensorFieldOfViewControlEvent.h:15
DtInputPortGroup * myGimbalLimitsPortGroup
Input Port Group Name: gimbal-limits Input Port Group Description: Allows the actuator to communicate...
Definition: sensorGimbalController.h:294
DtAnalogInputPort * myMaxAzimuthPort
Input Port Name: max-azimuth Input Port Description: The maximum azimuth at which the gimbal can aim...
Definition: sensorGimbalController.h:306
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
bool myJoystickConnected
Definition: sensorGimbalController.h:265
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:20
virtual void bindLuaFunctions(lua_State *)=0
Override to bind lua functions.
The DtSimObjectReference is a shared pointer that can be used amongst many object for access to the u...
Definition: simObjectReference.h:26
Contains class declarations for DtStringInputPort, DtStringOutputPort, and DtStringPortData.
Definition: stringIOPort.h:27
DtAnalogOutputPort * myOrderedAzimuthPort
Output Port Name: ordered-azimuth Output Port Description: Azimuth at which to attempt to aim the gim...
Definition: sensorGimbalController.h:332
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
DtIntegerOutputPort * myElevationRotationRatePercentagePort
Output Port Name: elevation-rotation-rate-percentage Output Port Description: Percentage of maximum r...
Definition: sensorGimbalController.h:339
DtAnalogInputPort * myMaxElevationPort
Input Port Name: max-elevation Input Port Description: The maximum elevation at which the gimbal can ...
Definition: sensorGimbalController.h:318
Definition: readerWriterRegistry.h:39
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
Instances of DtSensorGimbalControllerDescriptor are used to specify the parameters for a DtSensorGimb...
Definition: sensorGimbalControllerDescriptor.h:18
Definition: bindableLuaComponent.h:53
Contains class declarations for DtIntegerInputPort, DtIntegerOutputPort, and DtIntegerPortData.
Definition: integerIOPort.h:25
DtAnalogInputPort * myMinElevationPort
Input Port Name: min-elevation Input Port Description: The minimum elevation at which the gimbal can ...
Definition: sensorGimbalController.h:312
DtIntegerOutputPort * myAzimuthRotationRatePercentagePort
Output Port Name: azimuth-rotation-rate-percentage Output Port Description: Percentage of maximum rot...
Definition: sensorGimbalController.h:346
Contains class declarations for DtVectorInputPort, DtVectorOutputPort, and DtVectorPortData.
Definition: vectorIOPort.h:27
DtStringOutputPort * myTargetObjectPort
Output Port Name: target-object Output Port Description: Name of the object the sensor is targeting...
Definition: sensorGimbalController.h:352
DtOrientationInputPort * myOrientationInputPort
Input Port Name: orientation Input Port Description: Specifies the orientation of the sensor relative...
Definition: sensorGimbalController.h:281
DtAnalogOutputPort * myZoomLevelPort
Output Port Name: zoom-level Output Port Description: Current zoom level. Output Port Range: 1...
Definition: sensorGimbalController.h:370
virtual void joystickDisconnected()=0
Called when joystick is disconnected for this controller.
DtEntityListInputPort * myTargetListPort
Input Port Name: target-list Input Port Description: Specifies the targets for the integrated laser...
Definition: sensorGimbalController.h:390
DtAnalogOutputPort * myOrderedElevationPort
Output Port Name: ordered-elevation Output Port Description: Elevation at which to attempt to aim the...
Definition: sensorGimbalController.h:325
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
Instances of DtAnalogOutputPort are input ports through which data producers can send real numbers...
Definition: analogIOPort.h:45
DtAnalogInputPort * myMinAzimuthPort
Input Port Name: min-azimuth Input Port Description: The minimum azimuth at which the gimbal can aim...
Definition: sensorGimbalController.h:300
Definition: event.h:13
virtual void joystickConnected()=0
Called when joystick is connected for this controller.
Instances of DtVectorOutputPort are output ports through which data producers can send a DtVector...
Definition: vectorIOPort.h:52
Contains class declarations for DtEntityListInputPort, DtEntityListOutputPort, and DtEntityListPortDa...
Definition: entListIOPort.h:29
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: sensorGimbalController.h:394
File: simMsg.h.
Definition: simMessage.h:35
DtVector myWorldLocationForAimingPoint
World location and orientation for determining the aiming point when data was not initially available...
Definition: sensorGimbalController.h:261
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
DtSensorGimbalControllerDescriptor * mySensorGimbalDescriptor
Definition: sensorGimbalController.h:251
DtVectorOutputPort * myTargetLocationPort
Output Port Name: target-location Output Port Description: Location the sensor is targeting...
Definition: sensorGimbalController.h:358
DtJoystickControllerInterface & operator=(const DtJoystickControllerInterface &orig)
assignment operator; not implemented.
DtTaitBryan myWorldOrientationForAimingPoint
World location and orientation for determining the aiming point when data was not initially available...
Definition: sensorGimbalController.h:262
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
DtBooleanOutputPort * myLaserOnPort
Output Port Name: laser-on Output Port Description: Indicates whether the laser attached to this gimb...
Definition: sensorGimbalController.h:384
This class is responsible for controlling the aiming of a sensor on a gimbal. Uses Descriptor Type: D...
Definition: sensorGimbalController.h:48
DtInputPortGroup * mySensorOffsetInputPortGroup
Input Port Group Name: sensor-offset Input Port Group Description: Allows the actuator to communicate...
Definition: sensorGimbalController.h:273
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
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
bool myDataNeededForAimingPoint
Whether the data is not yet loaded to find the aiming point.
Definition: sensorGimbalController.h:256
Input and output ports containing a DtTaitBryan.
Definition: orientationIOPort.h:26
Instances of DtSensorFieldOfViewControlInter are used to store state data for SensorFieldOfViewContro...
Definition: sensorFieldOfViewControlInterDIS.h:51
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtInputPortGroup is a data port group of a data consumer. It may contain any number of DtInputPorts a...
Definition: inputPortGroup.h:35
The DtArticulatedPartStateRepository class is used to represent articulated parts for an entity...
Definition: articulatedPartStateRepository.h:40
const char int mode
Definition: ioapi.h:38
DtIntegerOutputPort * myTrackingModePort
Output Port Name: tracking-mode Output Port Description: Tracking mode of the sensor. Output Port Range: Values specified by DtSensorTrackingMode enum Output Group Parent: .
Definition: sensorGimbalController.h:364
Contains class declarations for DtAnalogInputPort, DtAnalogOutputPort, and DtAnalogPortData.
Definition: analogIOPort.h:25
virtual void calcAndSetPortValues(const DtString &functionGroup, const DtString &function, double value, bool repeat)=0
Override to set.
Instances of DtIntegerOutputPort are output ports through which data producers can send integer value...
Definition: integerIOPort.h:45
virtual void bindLuaGlobals(lua_State *)=0
Override to bind lua globals.
voidpf uLong offset
Definition: ioapi.h:42
Will manage basic functionality of a joystick controller. Implement pure virtual functions to respons...
Definition: joystickControllerInterface.h:23
virtual bool postAddComponentsInit()
Calls enableTaskTypes()
DtSensorGimbalControllerPSR is a process state repository which holds state variables for the DtSenso...
Definition: sensorGimbalControllerPSR.h:24
DtVectorInputPort * myPositionInputPort
Input Port Name: position Input Port Description: Specifies the position of the sensor in body coordi...
Definition: sensorGimbalController.h:289
DtIntegerOutputPort * myFieldOfViewColorPort
Output Port Name: field-of-view-color Output Port Description: Color of the sensor&#39;s field of view...
Definition: sensorGimbalController.h:376
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
A location3D is a point in space, i.e. a geocentric coordinate.
Definition: scriptGeometry.h:22

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)