VR-Forces 4.10 Class Documentation
 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 
15 #include "vrfutil/rwColor.h"
16 #include "vrfutil/scriptGeometry.h"
17 
18 class DtAnalogOutputPort;
19 class DtAnalogInputPort;
20 class DtIntegerInputPort;
22 class DtStringInputPort;
23 class DtStringOutputPort;
24 class DtVectorOutputPort;
25 class DtVectorInputPort;
32 class DtEvent;
33 
39  public DtBindableLuaComponent<DtSensorGimbalController>
40 {
41 
42 public:
43 
47  DtVrfObject* owner,
48  DtSimManager* simManager,
49  DtComponentDescriptor* desc = 0,
50  DtReaderWriterRegistry* parentRegistry = 0);
51 
53  virtual ~DtSensorGimbalController();
54 
55  virtual bool init();
56 
57  virtual bool postAddComponentsInit();
58 
61  virtual const char* type() const;
62 
63  virtual void tick();
64 
66 
67  static void setAimGimbalCallback(DtSimMessage * msg, void * usr);
68  virtual void processSetAimGimbal(DtSimMessage* msg);
70 
72 
73  static void setZoomSensorCallback(DtSimMessage * msg, void * usr);
74  virtual void processSetZoomSensor(DtSimMessage* msg);
76 
80 
81  static void setManualControlCallback(DtSimMessage * msg, void * usr);
82  virtual void processSetManualControl(DtSimMessage* msg);
84 
86 
87  static void setFieldOfViewColorCallback(DtSimMessage * msg, void * usr);
88  virtual void processSetFieldOfViewColor(DtSimMessage* msg);
90 
92 
93  static void setLasingCallback(DtSimMessage * msg, void * usr);
94  virtual void processSetLasing(DtSimMessage* msg);
96 
98 
99  static void laseTargetTaskCallback(DtSimMessage *msg, void * usrData);
100  virtual void processLaseTargetTaskMessage(DtSimMessage *msg);
102 
104 
105  static void laseLocationTaskCallback(DtSimMessage *msg, void * usrData);
106  virtual void processLaseLocationTaskMessage(DtSimMessage *msg);
108 
110 
111  virtual void setGimbalControlCallback(const DtEvent&);
112  virtual void processGimbalControl(DtSensorFieldOfViewControlInter* ctrlInter);
114 
116 
117 
119  virtual bool isUnderManualControl() const;
120 
122  virtual std::string mode() const;
123 
125  virtual double orientation(double& elevation) const;
126 
128  virtual DtLocation3D lookingAt() const;
129 
131 
134  virtual void bindLuaFunctions(lua_State* L);
135  virtual void bindLuaGlobals(lua_State* L);
136 
140  static DtSimComponent * creator(const DtString& name,
141  DtVrfObject* owner,
142  DtSimManager* simManager,
143  DtComponentDescriptor* desc = 0,
144  DtReaderWriterRegistry* parentRegistry = 0);
145 
146 protected:
148  virtual bool targetPoint(const DtTaitBryan& orientation, DtVector& location) const;
149  virtual DtVector localEyepoint() const;
150 
152  virtual bool createPortGroups();
153 
155  virtual bool createPorts();
156 
158  virtual DtSensorGimbalControllerPSR* createPSR();
159 
162  virtual void restoreDefaultAiming();
163 
165  virtual void aimSensorAtPoint(const DtVector& worldLocation);
166 
168  virtual void trackObject(const DtVrfObject* objectToTrack);
169 
172  virtual void aimSensorAtAngle(double azimuth, double elevation);
173 
177  virtual void scanSensor();
178 
182  virtual void searchAndTrackObject(const DtVrfObject* objectToTrack);
183 
185  virtual void currentPositionAzimuthAndElevation(DtVector& offset, double& az, double& el) const;
186 
188  virtual void currentWorldLocationAndOrientation(DtVector& location, DtTaitBryan& orientation) const;
189 
191  virtual DtArticulatedPartStateRepository* gimbalAzimuthPart();
192  virtual const DtArticulatedPartStateRepository* gimbalAzimuthPart() const;
193 
195  virtual DtArticulatedPartStateRepository* gimbalElevationPart();
196  virtual const DtArticulatedPartStateRepository* gimbalElevationPart() const;
197 
200  virtual bool findLocationOfSensorAiming(const DtVector& sensorLocation,
201  const DtTaitBryan& orientation, DtVector& aimingPoint) const;
202 
204  virtual const DtVrfObject* getLasingTarget();
205 
206  virtual void calcAndSetPortValues(const DtString& functionGroup, const DtString& function, double value, bool repeat);
207  virtual void joystickConnected();
208  virtual void joystickDisconnected();
209 
211  static DtRwColor randomFieldOfViewColor();
212 
213 private:
214 
217 
220  DtSensorGimbalController & orig);
221 
224  const DtSensorGimbalController & orig);
225 
226 protected:
227 
229 
231 
234 
237 
241 
243 
245 
246 
251 
259 
267 
272 
278 
284 
290 
296 
303 
310 
317 
324 
330 
336 
342 
348 
354 
362 
369 };
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual bool postAddComponentsInit()
Called after all components have been created, initialized and added to the component manager...
Definition: simComponent.h:146
DtSensorGimbalControllerPSR * myProcessState
Definition: sensorGimbalController.h:230
Instances of DtStringOutputPort are output ports through which data producers can send a DtString obj...
Definition: stringIOPort.h:52
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtInputPortGroup * myGimbalLimitsPortGroup
Input Port Group Name: gimbal-limits Input Port Group Description: Allows the actuator to communicate...
Definition: sensorGimbalController.h:271
DtAnalogInputPort * myMaxAzimuthPort
Input Port Name: max-azimuth Input Port Description: The maximum azimuth at which the gimbal can aim...
Definition: sensorGimbalController.h:283
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
bool myJoystickConnected
Definition: sensorGimbalController.h:242
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.
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:309
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:42
DtIntegerOutputPort * myElevationRotationRatePercentagePort
Output Port Name: elevation-rotation-rate-percentage Output Port Description: Percentage of maximum r...
Definition: sensorGimbalController.h:316
DtAnalogInputPort * myMaxElevationPort
Input Port Name: max-elevation Input Port Description: The maximum elevation at which the gimbal can ...
Definition: sensorGimbalController.h:295
Definition: readerWriterRegistry.h:39
virtual const char * type() const =0
Returns a string identifies the class type of component.
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:289
DtIntegerOutputPort * myAzimuthRotationRatePercentagePort
Output Port Name: azimuth-rotation-rate-percentage Output Port Description: Percentage of maximum rot...
Definition: sensorGimbalController.h:323
Definition: events.h:49
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:329
DtOrientationInputPort * myOrientationInputPort
Input Port Name: orientation Input Port Description: Specifies the orientation of the sensor relative...
Definition: sensorGimbalController.h:258
DtAnalogOutputPort * myZoomLevelPort
Output Port Name: zoom-level Output Port Description: Current zoom level.
Definition: sensorGimbalController.h:347
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:367
DtAnalogOutputPort * myOrderedElevationPort
Output Port Name: ordered-elevation Output Port Description: Elevation at which to attempt to aim the...
Definition: sensorGimbalController.h:302
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:277
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:27
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:238
virtual void tick()
This gives the thread of control to the component.
DtSensorGimbalControllerDescriptor * mySensorGimbalDescriptor
Definition: sensorGimbalController.h:228
DtVectorOutputPort * myTargetLocationPort
Output Port Name: target-location Output Port Description: Location the sensor is targeting...
Definition: sensorGimbalController.h:335
The DtArticulatedPartStateRepository class is used to represent articulated parts for an entity...
Definition: articulatedPartStateRepository.h:29
DtJoystickControllerInterface & operator=(const DtJoystickControllerInterface &orig)
assignment operator; not implemented.
DtTaitBryan myWorldOrientationForAimingPoint
Definition: sensorGimbalController.h:239
virtual bool createPorts()
Called by init.
DtBooleanOutputPort * myLaserOnPort
Output Port Name: laser-on Output Port Description: Indicates whether the laser attached to this gimb...
Definition: sensorGimbalController.h:361
This class is responsible for controlling the aiming of a sensor on a gimbal.
Definition: sensorGimbalController.h:37
DtInputPortGroup * mySensorOffsetInputPortGroup
Input Port Group Name: sensor-offset Input Port Group Description: Allows the actuator to communicate...
Definition: sensorGimbalController.h:250
virtual bool createPortGroups()
Called by init.
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:67
bool myDataNeededForAimingPoint
Whether the data is not yet loaded to find the aiming point.
Definition: sensorGimbalController.h:233
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.
Definition: inputPortGroup.h:32
const char int mode
Definition: ioapi.h:38
DtIntegerOutputPort * myTrackingModePort
Output Port Name: tracking-mode Output Port Description: Tracking mode of the sensor.
Definition: sensorGimbalController.h:341
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.
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
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.
Definition: joystickControllerInterface.h:23
DtSensorGimbalControllerPSR is a process state repository which holds state variables for the DtSenso...
Definition: sensorGimbalControllerPSR.h:23
DtVectorInputPort * myPositionInputPort
Input Port Name: position Input Port Description: Specifies the position of the sensor in body coordi...
Definition: sensorGimbalController.h:266
DtIntegerOutputPort * myFieldOfViewColorPort
Output Port Name: field-of-view-color Output Port Description: Color of the sensor&#39;s field of view...
Definition: sensorGimbalController.h:353
A location3D is a point in space, i.e. a geocentric coordinate.
Definition: scriptGeometry.h:22

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)