VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
DtBaseMountingController Class Reference

DtBaseMountingController is a controller that generates the azimuth and elevation controls needed to manipulate a weapon mount to the a desired azimuth and elevation.

It expects to control an azimuth and/or elevation mount actuator(s).

Uses Descriptor Type: DtComponentDescriptor

Inheritance diagram for DtBaseMountingController:
Inheritance graph
[legend]

Public Member Functions

 DtBaseMountingController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtBaseMountingController ()
 
virtual bool postAddComponentsInit ()
 
virtual const chartype () const
 
virtual DtOutputPortGroupmountingControlPortGroup ()
 
virtual DtInputPortGroupazimuthInfoPortGroup ()
 
virtual DtInputPortGroupelevationInfoPortGroup ()
 
virtual void tick ()
 
virtual void reorientMounting ()
 
virtual void findDesiredAzimuthAndElevation ()
 
virtual bool desiredOrientationIsInRange (double &azimuthOutOfRangeBy, double &elevationOutOfRangeBy, double additionalAzimuthMargin=0.0, double additionalElevationMargin=0.0)
 
virtual bool azimuthIsInRange (double azimuth, double &outofRangeBy, double additionalMargin=0.0)
 
virtual bool elevationIsInRange (double elevation, double &outofRangeBy, double additionalMargin=0.0)
 
virtual bool createAzimuthPort ()
 
virtual
DtConstrainedAnalogOutputPort
azimuthPort () const
 
virtual bool createElevationPort ()
 
virtual
DtConstrainedAnalogOutputPort
elevationPort () const
 
virtual bool createAzimuthInfoPorts ()
 
virtual bool createElevationInfoPorts ()
 
virtual double approximateMountSwing (double angleChange, double maxRate)
 
virtual void setDesiredAzimuth (DtReal desiredAzimuth)
 
virtual DtReal desiredAzimuth ()
 
virtual void setDesiredElevation (DtReal desiredElevation)
 
virtual DtReal desiredElevation ()
 
- Public Member Functions inherited from DtControllerComponent
 DtControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtControllerComponent ()
 
virtual bool init ()
 
virtual DtSimRadioradio ()
 
virtual void taskNotify (const DtSimTask &task)
 
virtual void clearTask ()
 
virtual void enableTaskTypes ()
 
virtual void disableTaskTypes ()
 
- Public Member Functions inherited from DtSimComponent
 DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtSimComponent ()
 
virtual void setParentSystem (DtComponentSystem *system)
 
DtComponentSystemparentSystem () const
 
virtual void registerAttributeFunctions ()
 
virtual void preFirstTickInit ()
 
virtual void postTick ()
 
virtual void timedTick ()
 
virtual void setMinTickPeriod (double minTickPeriod)
 
virtual double minTickPeriod () const
 
virtual void setMinTickPeriodVariance (double minTickPeriodVariance)
 
virtual double minTickPeriodVariance () const
 
virtual void setNextTickTime (double nextTickTime)
 
virtual double nextTickTime () const
 
virtual double calculateNextTickTime () const
 
virtual double calculateFirstTickTime () const
 
virtual void setEntity (DtLocalObject *entity)
 
virtual DtSimComponentnextComponent ()
 
virtual DtSimComponentprevComponent ()
 
virtual void setListItem (DtListItem *item)
 
virtual DtListItem * listItem ()
 
virtual void putData (std::string &fp, int indentLevel=0)
 
virtual DtlObjPtr getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 
virtual void addInputPort (DtInputPort *port)
 
virtual void removeInputPort (DtInputPort *port)
 
virtual DtInputPortlookupInputPort (const DtString &portName)
 
virtual DtList inputPortList () const
 
virtual void addOutputPort (DtOutputPort *port)
 
virtual void removeOutputPort (DtOutputPort *port)
 
virtual DtOutputPortlookupOutputPort (const DtString &portName)
 
virtual DtList outputPortList () const
 
virtual void addInputPortGroup (DtInputPortGroup *group)
 
virtual void removeInputPortGroup (DtInputPortGroup *group)
 
virtual DtInputPortGrouplookupInputPortGroup (const DtString &groupName)
 
virtual DtList inputPortGroupList () const
 
virtual void addOutputPortGroup (DtOutputPortGroup *group)
 
virtual void removeOutputPortGroup (DtOutputPortGroup *group)
 
virtual DtOutputPortGrouplookupOutputPortGroup (const DtString &groupName)
 
virtual DtList outputPortGroupList () const
 
virtual int priority () const
 
virtual void setPriority (int priority)
 
double dT () const
 
virtual void setDT (double deltaT)
 
virtual void setComponentDescriptor (DtComponentDescriptor *componentDescriptor)
 
virtual const
DtComponentDescriptor
componentDescriptor () const
 
virtual bool tickWhileDestroyed () const
 
DtVrfProcessStateRepositoryManagerpsrManager ()
 
virtual const DtSymbolStringcomponentFullName () const
 
DtPhysicalWorldphysicalWorld ()
 
const DtPhysicalWorldphysicalWorld () const
 
const DtAttachedTerrainterrainAttachedTo () const
 
DtLocalObjectentity ()
 
const DtLocalObjectentity () const
 
DtSimulationServicessimulationServices ()
 
const DtSimulationServicessimulationServices () const
 
const Coordinate_SystemcoordinateSystem () const
 
virtual bool taskVisualizationsActive () const
 
virtual bool taskVisualizationsEnabled () const
 
makVrf::DtTaskVisualizationMaptaskVisualizations ()
 
virtual void enable ()
 
virtual void disable ()
 
virtual bool isEnabled ()
 
virtual void setIsEnabled (bool yesNo)
 
virtual DtOutputStream & objectConsoleDebug (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleVerbose (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleInfo (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleWarn (const DtString &channel="") const
 
virtual DtOutputStream & objectConsoleError (const DtString &channel="") const
 
virtual int notifyLevel () const
 
virtual DtSimResourceManagerresourceManager ()
 
virtual const
DtSimResourceManager
resourceManager () const
 
VRF4API_METHOD const
DtSimulationServices
simManager () const
 
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 
bool operator== (const DtReaderWriter &) const
 
bool operator!= (const DtReaderWriter &rhs)
 
virtual ~DtReaderWriter ()
 
virtual void putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 
virtual void postPutSelf ()
 
virtual void prePutSelf ()
 
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
virtual void postGetSelf ()
 
virtual void preGetSelf ()
 
virtual void writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 
virtual DtSymbolString name () const
 
virtual void addAlias (const DtSymbolString &alias)
 
virtual void addAlias (const DtString &alias)
 
virtual bool hasAlias (const DtSymbolString &alias)
 
virtual const aliasContaineraliases () const
 
virtual void setReadonly (bool flag)
 
bool isReadonly () const
 
virtual void reset ()
 
virtual int alignment () const
 
virtual bool variableIsBound () const
 
virtual void unbindVariable ()
 
virtual void setName (const DtString &)
 
virtual const charreaderWriterType () const
 
virtual const charxmlType () const
 
virtual DtString prettyPrint () const
 
std::string debugText () const
 
virtual void bindVariables (DtVariableBindingsList variableBindings)
 
virtual std::list
< DtVariableNameType
unboundVariables () const
 
bool invalid () const
 
virtual bool hasChild (const DtReaderWriter *p) const
 
virtual bool hasVariableReference () const
 
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 
virtual void recordUpdateTime () const
 
virtual bool wasUpdatedSince (DtTime t) const
 
virtual bool changedSinceLastChecked ()
 
virtual bool peekChangedSinceLastChecked () const
 
virtual void setValueSpecified (bool specified, bool recurse=false)
 
virtual bool valueSpecified () const
 
virtual bool isVariableReference () const
 
virtual void setIsVariableReference (bool value)
 
virtual void clearAllVariableReferenceFlags ()
 
virtual DtSymbolString variableName () const
 
virtual void setVariableName (const DtSymbolString variableName)
 
virtual const DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () const
 
virtual bool toXml (const DtFilename &) const
 
virtual bool fromXml (const DtString &)
 
virtual bool fromXmlFile (const DtFilename &)
 
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
 
virtual void putData (DtEnvironmentSP, DtEnvValueSP value) const
 
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 
virtual void getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 
virtual void getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList())
 
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 

Static Public Member Functions

static DtSimComponentcreator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
- Static Public Member Functions inherited from DtSimComponent
static DtSimComponentFactoryfactory ()
 
static void setFactory (DtSimComponentFactory *factory)
 
static DtSimComponentcreateComponent (const DtString &name, const DtString &type, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentSystem *parentSystem, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
static void addSimComponentCreatorFcn (const DtString &type, DtSimComponentCreatorFcn fcn)
 
static VRF4API_METHOD
DtSimComponent
MarkThreadSafe (DtSimComponent *comp)
 
- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 

Protected Member Functions

virtual double angleErrorGivenRotationLimits (double currentAngle, double desiredAngle, double allowedRotationCenter, double allowedRotationRange)
 
virtual bool createPortGroups ()
 
virtual bool createPorts ()
 
 DtBaseMountingController ()
 
 DtBaseMountingController (const DtBaseMountingController &orig)
 
const DtBaseMountingControlleroperator= (const DtBaseMountingController &orig)
 
- Protected Member Functions inherited from DtControllerComponent
 DtControllerComponent ()
 
 DtControllerComponent (const DtControllerComponent &orig)
 
const DtControllerComponentoperator= (const DtControllerComponent &orig)
 
virtual void onRestore ()
 
virtual void initializeTargetingControlTableFromDescriptor (const DtReaderWriter *)
 
virtual void setRadio (DtSimRadio *radio)
 
virtual void sendCapableSetsAndTasks ()
 
- Protected Member Functions inherited from DtSimComponent
virtual double computeCurrentTime ()
 
bool testInvariant () const
 
DtVrfProcessStateRepositorycreateComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true)
 
virtual void updateTaskVisualizations ()
 
virtual void destroyTaskVisualizations ()
 
virtual void destroyTaskVisualization (const DtString &name)
 
virtual
makVrf::DtPointTaskVisualizationPtr 
pointTaskVisualization (const DtString &name)
 
virtual
makVrf::DtLineTaskVisualizationPtr 
lineTaskVisualization (const DtString &name)
 
virtual
makVrf::DtAreaTaskVisualizationPtr 
areaTaskVisualization (const DtString &name)
 
virtual
makVrf::DtTextTaskVisualizationPtr 
textTaskVisualization (const DtString &name)
 
double calculateNextTaskVisTickTime () const
 
DtVrfObjectStateRepositorylocalStateRepository ()
 
const DtVrfObjectStateRepositorylocalStateRepository () const
 
void addSimObjectPredicateCallback (DtSimObjectReference, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0)
 
void removeSimObjectPredicateCallback (const DtSimObject *, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0)
 
void invokeSimObjectPredicateCallbacks ()
 
virtual void clearPredicateCallbacks ()
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 

Protected Attributes

makVrf::DtArticulatedPartStateRepositorymyAzimuthMountPart
 
makVrf::DtArticulatedPartStateRepositorymyElevationMountPart
 
makVrf::DtArticulatedPartStateRepositorymyChildSimBody
 
DtReal myDesiredAzimuth
 
DtReal myDesiredElevation
 
DtReal myAngleApproxMargin
 
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
 
Ports and Port Groups
DtInputPortGroupmyAzimuthInfoPortGroup
 
DtAnalogInputPortmyNominalAzimuthPort
 
DtAnalogInputPortmyAzimuthRangePort
 
DtAnalogInputPortmyMaxAzimuthRatePort
 
DtIntegerInputPortmyAzimuthPartTypePort
 
DtInputPortGroupmyElevationInfoPortGroup
 
DtAnalogInputPortmyNominalElevationPort
 
DtAnalogInputPortmyElevationRangePort
 
DtAnalogInputPortmyMaxElevationRatePort
 
DtIntegerInputPortmyElevationPartTypePort
 
DtOutputPortGroupmyMountingControlPortGroup
 
DtConstrainedAnalogOutputPortmyAzimuthPort
 
DtConstrainedAnalogOutputPortmyElevationPort
 
- Protected Attributes inherited from DtControllerComponent
DtSimRadiomyRadio
 
bool myTaskTypesEnabled
 
bool myInitialized
 
- Protected Attributes inherited from DtSimComponent
DtLocalObjectmyEntity
 
DtComponentSystemmySystem
 
DtListItem * myListItem
 
DtInputPortMap myInputPortList
 
DtOutputPortMap myOutputPortList
 
DtInputPortGroupMap myInputPortGroupList
 
DtOutputPortGroupMap myOutputPortGroupList
 
int myPriority
 
double myMinTickPeriod
 
double myMinTickPeriodVariance
 
double myNextTickTime
 
double myLastTickSimTime
 
double myDT
 
bool myIsEnabled
 
bool myFirstTick
 
const DtComponentDescriptormyComponentDescriptor
 
std::list
< DtVrfProcessStateRepository * > 
myComponentPsrs
 
bool myTickEveryFrame
 
makVrf::DtTaskVisualizationMap myTaskVisualizations
 
double myNextTaskVisTickTime
 
DtSymbolString myFullComponentName
 
DtSimulationServicesmySimServices
 
DtPredicateCallbackManager myPredicateCallbackManager
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 

Additional Inherited Members

- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString
aliasContainer
 
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
 
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
 
typedef std::vector< DtFilename > SearchPaths
 
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
 
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()
 
- Protected Types inherited from DtSimComponent
typedef std::map< DtString,
DtInputPort * > 
DtInputPortMap
 
typedef std::map< DtString,
DtOutputPort * > 
DtOutputPortMap
 
typedef std::map< DtString,
DtInputPortGroup * > 
DtInputPortGroupMap
 
typedef std::map< DtString,
DtOutputPortGroup * > 
DtOutputPortGroupMap
 
- Static Protected Attributes inherited from DtSimComponent
static DtSimComponentFactorymyFactory
 
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
 
static DtGetSelfCallbackInfo thePostGetSelfCallback
 
static DtPutSelfCallbackInfo thePrePutSelfCallback
 
static const DtVariableBindingsList theEmptyVariableBindingsList
 
static bool theCreatorFcnSet
 
static DtReaderWriterFactorytheFactory
 
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Constructor & Destructor Documentation

DtBaseMountingController::DtBaseMountingController ( const DtString name,
DtLocalObject owner,
DtSimulationServices simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)

Parameters
nameReader writer name of this component.
ownerThe DtLocalObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
virtual DtBaseMountingController::~DtBaseMountingController ( )
virtual

destructor

DtBaseMountingController::DtBaseMountingController ( )
protected

default constructor; not implemented

DtBaseMountingController::DtBaseMountingController ( const DtBaseMountingController orig)
protected

copy constructor; not implemented

Member Function Documentation

virtual bool DtBaseMountingController::postAddComponentsInit ( )
virtual

Overridden to activate myMountingControlPortGroup.

Reimplemented from DtControllerComponent.

virtual const char* DtBaseMountingController::type ( ) const
virtual

Returns a string identifies the class type of component. Type values are defined in compTypes.h. DtSimComponent creation functions are registered with the DtSimComponentFactory using the type values as the key. Warning: this function should always return the same pointer and it should be valid forever. This means the data should be static.

Returns
DtBaseMountingControllerType

Implements DtControllerComponent.

Reimplemented in DtMountingController.

virtual DtOutputPortGroup* DtBaseMountingController::mountingControlPortGroup ( )
virtual

Returns myMountingControlPortGroup.

virtual DtInputPortGroup* DtBaseMountingController::azimuthInfoPortGroup ( )
virtual

Returns myAzimuthInfoPortGroup.

virtual DtInputPortGroup* DtBaseMountingController::elevationInfoPortGroup ( )
virtual

Returns myAzimuthInfoPortGroup.

virtual void DtBaseMountingController::tick ( )
virtual

Calculate new control values.

Reimplemented from DtSimComponent.

virtual void DtBaseMountingController::reorientMounting ( )
virtual

Spin the mounting to point toward the desired targetPoint or desiredAzimuth/desiredElevation. Takes the current orientation of myChildSimBody (the DtSimBody part that has the combined azimuth and elevation orientation of the mounting), and generates the azimuth and elevation steering input needed to maneuver the mounting toward the desired azimuth and elevation. It obtains the orientation of the mount point in body coordinates of the entity, from myChildSimBody. These Euler angles give the current azimuth and elevation settings of the mount point. It then calls the static functions DtMountingAzimuthActuator::computeDeltaOutsideAzimuthRange(), and DtMountingElevationActuator::computeDeltaOutsideElevationRange(), to determine the extent to which the current orientation is off-target. If the azimuth or elevation angular extent returned is zero, the corresponding port value is set to zero. If not, the function is called to generate a control input, given the amount the angle is off approximateMountSwing() by, and the maximum angular rate at which it can swing. It sets the control input for the port with the value returned by approximateMountSwing().

virtual void DtBaseMountingController::setDesiredAzimuth ( DtReal  desiredAzimuth)
virtual

Set an azimuth you want this mounting to point towards. This azimuth is relative to the body.

virtual DtReal DtBaseMountingController::desiredAzimuth ( )
virtual

Set an azimuth you want this mounting to point towards. This azimuth is relative to the body.

virtual void DtBaseMountingController::setDesiredElevation ( DtReal  desiredElevation)
virtual

Set an elevation you want this mounting to point towards. This elevation is relative to the body.

virtual DtReal DtBaseMountingController::desiredElevation ( )
virtual

Set an elevation you want this mounting to point towards. This elevation is relative to the body.

virtual void DtBaseMountingController::findDesiredAzimuthAndElevation ( )
virtual

Base fn (should be overridden): set desired az and el from parameter inputs.

Reimplemented in DtMountingController.

virtual bool DtBaseMountingController::desiredOrientationIsInRange ( double azimuthOutOfRangeBy,
double elevationOutOfRangeBy,
double  additionalAzimuthMargin = 0.0,
double  additionalElevationMargin = 0.0 
)
virtual

Returns true if the desired azimuth and elevation are within the range that this mounting can do. If it's out of range, the method returns false and puts the outOfRangeBy amounts into the appropriate "out" params. The params for additionalMargin allows the caller to broaden the acceptable azimuth and elevation range by the passed in values.

virtual bool DtBaseMountingController::azimuthIsInRange ( double  azimuth,
double outofRangeBy,
double  additionalMargin = 0.0 
)
virtual

Returns true if the specified azimuth angle is within the range that this mounting can do. If it's out of range, the method returns false and populates the outOfRangeBy amount. The param for additionalMargin allows the caller to broaden the acceptable azimuth range by the passed in value.

virtual bool DtBaseMountingController::elevationIsInRange ( double  elevation,
double outofRangeBy,
double  additionalMargin = 0.0 
)
virtual

Returns true if the specified elevation angle is within the range that this mounting can do. If it's out of range, the method returns false and populates the outOfRangeBy amount. The param for additionalMargin allows the caller to broaden the acceptable elevation range by the passed in value.

virtual bool DtBaseMountingController::createAzimuthPort ( )
virtual

These are called in init to create the ports used to communicate with the actuator.

virtual DtConstrainedAnalogOutputPort* DtBaseMountingController::azimuthPort ( ) const
virtual
virtual bool DtBaseMountingController::createElevationPort ( )
virtual
virtual DtConstrainedAnalogOutputPort* DtBaseMountingController::elevationPort ( ) const
virtual
virtual bool DtBaseMountingController::createAzimuthInfoPorts ( )
virtual

creates the ports used by myAzimuthInfoPortGroup

virtual bool DtBaseMountingController::createElevationInfoPorts ( )
virtual

creates the ports used by myElevationInfoPortGroup

virtual double DtBaseMountingController::approximateMountSwing ( double  angleChange,
double  maxRate 
)
virtual

Determine how fast a mounting should swing given the angle it must travel through (angleChange) and the maxRate of its transit. Takes as input the amount of angle to be changed and the maximum angular rate of change, and returns a value between -1.0 and 1.0, representing the scaled rate at which the angle should change. It computes this value to be the amount of angular change desired, divided by the maximum angular rate times the current frame duration, dT, for example:

Returns
angleChange / (maxRate * dT());
static DtSimComponent* DtBaseMountingController::creator ( const DtString name,
DtLocalObject owner,
DtSimulationServices simManager,
DtComponentDescriptor desc = 0,
DtReaderWriterRegistry parentRegistry = 0 
)
static

Parameters
nameReader writer name of this component.
ownerThe DtLocalObject that owns this component
simManagerThe simulation manager (provides access to terrain, message interface, simulation clock).
descThe component descriptor used to initialize this component.
parentRegistryPointer to the parent reader writer registry (the containing object that reads/writes this object).
Returns
New instance of this class.
virtual double DtBaseMountingController::angleErrorGivenRotationLimits ( double  currentAngle,
double  desiredAngle,
double  allowedRotationCenter,
double  allowedRotationRange 
)
protectedvirtual

Compute the angle error from the current angle to the desired, and then adjust the difference to go the right way around to get to the desired angle–either the shortest way, or if there is a range limit in that direction, then the other way. The allowed rotation range is specified by a center angle and a range. If the desired angle is not in the region of allowed rotation, return the angle of the nearest stop. A rotation range of 2 pi is taken to mean free, continuous rotation.

virtual bool DtBaseMountingController::createPortGroups ( )
protectedvirtual

Overridden to create mounting port groups.

Reimplemented from DtSimComponent.

virtual bool DtBaseMountingController::createPorts ( )
protectedvirtual

Overridden to create mounting ports.

Reimplemented from DtSimComponent.

const DtBaseMountingController& DtBaseMountingController::operator= ( const DtBaseMountingController orig)
protected

assignment operator; not implemented

Member Data Documentation

DtInputPortGroup* DtBaseMountingController::myAzimuthInfoPortGroup
protected

Input Port Group Name: azimuth-info
Input Port Group Description: Used to get azimuth information from the actuator.

DtAnalogInputPort* DtBaseMountingController::myNominalAzimuthPort
protected

Input Port Name: nominal-azimuth
Input Port Description: Nominal azimuth value.
Input Port Range:
Input Port Default Value:
Input Group Parent: azimuth-info.

DtAnalogInputPort* DtBaseMountingController::myAzimuthRangePort
protected

Input Port Name: azimuth-range
Input Port Description: Azimuth sweep range.
Input Port Range:
Input Port Default Value:
Input Group Parent: azimuth-info.

DtAnalogInputPort* DtBaseMountingController::myMaxAzimuthRatePort
protected

Input Port Name: azimuth-rate
Input Port Description: Max azimuth rate.
Input Port Range:
Input Port Default Value:
Input Group Parent: azimuth-info.

DtIntegerInputPort* DtBaseMountingController::myAzimuthPartTypePort
protected

Input Port Name: azimuth-part-type
Input Port Description: Type of articulated part.
Input Port Range:
Input Port Default Value:
Input Group Parent: azimuth-info.

DtInputPortGroup* DtBaseMountingController::myElevationInfoPortGroup
protected

Input Port Group Name: elevation-info
Input Port Group Description: Used to get elevation information from the actuator.

DtAnalogInputPort* DtBaseMountingController::myNominalElevationPort
protected

Input Port Name: nominal-elevation Input Port Description: Nominal elevation value.
Input Port Range:
Input Port Default Value:
Input Group Parent: elevation-info.

DtAnalogInputPort* DtBaseMountingController::myElevationRangePort
protected

Input Port Name: elevation-range Input Port Description: Elevation sweep range
Input Port Range:
Input Port Default Value:
Input Group Parent: elevation-info.

DtAnalogInputPort* DtBaseMountingController::myMaxElevationRatePort
protected

Input Port Name: elevation-rate Input Port Description: Max elevation rate
Input Port Range:
Input Port Default Value:
Input Group Parent: elevation-info.

DtIntegerInputPort* DtBaseMountingController::myElevationPartTypePort
protected

Input Port Name: elevation-part-type Input Port Description: Type of articulated part
Input Port Range:
Input Port Default Value:
Input Group Parent: elevation-info.

DtOutputPortGroup* DtBaseMountingController::myMountingControlPortGroup
protected

Output Port Group Name: mounting-control
Output Port Group Description: Accepts output from the missile launcher controller and indirect fire controller.

DtConstrainedAnalogOutputPort* DtBaseMountingController::myAzimuthPort
protected

Output Port Name: azimuth Output Port Description: A fraction of the actuator's maximum slew rate at which the actuator should turn.
Output Port Range: -1. to 1.
Output Port Default Value:
Output Group Parent: mounting-control.

DtConstrainedAnalogOutputPort* DtBaseMountingController::myElevationPort
protected

Output Port Name: elevation Output Port Description: A fraction of the actuator's maximum slew rate at which the actuator should turn.
Output Port Range: -1. to 1.
Output Port Default Value:
Output Group Parent: mounting-control.

makVrf::DtArticulatedPartStateRepository* DtBaseMountingController::myAzimuthMountPart
protected
makVrf::DtArticulatedPartStateRepository* DtBaseMountingController::myElevationMountPart
protected
makVrf::DtArticulatedPartStateRepository* DtBaseMountingController::myChildSimBody
protected
DtReal DtBaseMountingController::myDesiredAzimuth
protected

Desired azimuth angle relative to the body.

DtReal DtBaseMountingController::myDesiredElevation
protected

Desired elevation angle relative to the body.

DtReal DtBaseMountingController::myAngleApproxMargin
protected

To prevent endless fine adjustments to the azimuth and elevation we'll use a constant margin to determine when the azimuth and elevation are close enough.

DtPlatformLocalObjectFacade DtBaseMountingController::myPlatformLocalObjectFacade
protected

Member to allow for access to platform specific data.


The documentation for this class was generated from the following file:

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)