The DtSurfaceEntityPilotController provides basic movement capabilities for surface entities and creates the ports needed to control surface entity actuators.
End User Description: DtSurfaceEntityPilotController (surfEntPltCtl.h) provides elements that are common to all controllers which perform movement tasks for surface entities.
DtSurfaceEntityPilotController creates the throttle and rudder output ports used by all the surface entity movement controllers and provides accessors for them.
The most important control functions offered by the DtSurfaceEntityPilotController are sailTo() and driftTo(), both of which provide actuator inputs to move a ship to a given location at a given speed. The difference between the two is that driftTo() attempts to judge when to cut the throttle in order to drift to a stop at the given location, whereas sailTo() will accelerate to and maintain the given speed at all times.
DtSurfaceEntityPilotController also offers a function called emergencyStop() which will use reverse thrust in an attempt to stop the ship as quickly as possible. Some of the movement controllers will call this function when they overshoot a target.
The control functions listed in the previous paragraphs use three functions to determine the port input values they need to use. For rudder control, calculateControlForTurn() determines how much rudder to apply to turn to a given angle based on the current speed. For throttle control, there are two versions of calculateControlForThrottle(). Both use a speed parameter to determine how much throttle to apply, however one also takes a distance parameter which prevents the controller from using too much throttle when trying to drift to a stop at the given distance.
Uses Descriptor Type: DtSurfaceEntityPilotControllerDescriptor
|
| | DtSurfaceEntityPilotController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtSurfaceEntityPilotController () |
| |
| virtual const char * | type () const |
| |
| virtual bool | init () |
| |
| virtual void | tick () |
| |
| virtual void | clearTask () |
| |
| virtual bool | createSurfaceControlPortGroup () |
| |
virtual
DtVrfMovingObjectStateRepository * | getSR () |
| |
| | DtSingleTaskControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *compDesc=nullptr, DtReaderWriterRegistry *parentRegistry=nullptr) |
| |
| virtual | ~DtSingleTaskControllerComponent () |
| |
| virtual void | postTick () override |
| |
| virtual bool | beginProcessingTask (const DtTaskMessage &task, DtSimTaskStatePtr taskState) override |
| |
| virtual void | taskNotify (const DtSimTask &task) override |
| |
| virtual void | taskComplete (bool success=true) |
| |
| virtual void | suspendTask () |
| |
| virtual int | sendSubtask (DtSimTask &task) |
| |
| virtual void | clearSubtask (int subtaskId) |
| |
| virtual void | addPendingSubtaskId (int subtaskId) |
| |
| virtual bool | findPendingSubtaskId (int subtaskId) |
| |
| virtual bool | isSubtasked () const |
| |
| virtual void | removePendingSubtaskId (int subtaskId) |
| |
| virtual void | removeAllPendingSubtaskIds () |
| |
| virtual std::vector< int > | currentPendingSubstaskIds () const |
| |
| virtual DtSubtaskStatusEntry * | subtaskStatus (int subtaskId) |
| |
| virtual void | clearCurrentTaskMessage () |
| |
| virtual DtTaskMessage * | currentTaskMessage () const |
| |
| virtual DtSimTaskStatePtr | currentTaskState () const |
| |
| virtual void | giveUpTask () |
| |
| virtual bool | taskActive (int taskId) const override |
| |
| virtual bool | clearTopLevelTasks () override |
| |
| virtual void | clearConflictingTopLevelTasks (const DtSimTaskMessageType &conflictType) override |
| |
| virtual void | clearTasksByType (const DtSimTaskMessageType &taskType) override |
| |
| virtual void | clearTaskById (int taskId) override |
| |
| virtual DtSuspendedTaskInfo * | suspendTaskById (int taskId) override |
| |
| virtual DtSuspendedTaskInfo * | suspendSubtaskById (int taskId, int subtaskId) override |
| |
virtual std::list
< DtTaskMessage * > | currentTaskMessages () const |
| |
| virtual DtTaskWithTaskStateListPtr | topLevelTasks () const override |
| |
| virtual void | disable () override |
| |
| | DtTaskControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *compDesc=nullptr, DtReaderWriterRegistry *parentRegistry=nullptr) |
| |
| virtual | ~DtTaskControllerComponent () |
| |
| virtual AcceptLevel | acceptTask (const DtTaskMessage &task) |
| |
| virtual bool | showCurrentTaskInGui () const |
| |
| virtual void | setRadio (DtSimRadio *radio) override |
| |
| virtual void | registerTaskMsgCallbacks () |
| |
| virtual void | addTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtTaskMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | addTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | removeTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | removeTaskProcessorCallback (const DtSimTaskMessageType &taskType, DtTaskMessageCallbackFcn fcn, void *usr) |
| |
| virtual void | enable () override |
| |
| virtual void | sendTaskCanceled (DtTaskMessage *taskMsg) |
| |
| virtual bool | taskVisualizationsActive () const override |
| |
| virtual void | setTasked (bool tasked) |
| |
| virtual bool | tasked () const |
| |
| | DtControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtControllerComponent () |
| |
| virtual DtSimRadio * | radio () |
| |
| virtual void | enableTaskTypes () |
| |
| virtual void | enableScritedTask (const DtString &scriptId) |
| |
| virtual void | disableTaskTypes () |
| |
| | DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtSimComponent () |
| |
| virtual void | setParentSystem (DtComponentSystem *system) |
| |
| DtComponentSystem * | parentSystem () const |
| |
| virtual void | registerAttributeFunctions () |
| |
| virtual void | preFirstTickInit () |
| |
| virtual void | timedTick () |
| |
| virtual void | setMinTickPeriod (double minTickPeriod, double minTickPeriodVariance) |
| |
| virtual void | setupFirstTickTime () |
| |
| virtual void | setEntity (DtLocalObject *entity) |
| |
| virtual DtSimComponent * | nextComponent () |
| |
| virtual DtSimComponent * | prevComponent () |
| |
| 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 DtInputPort * | lookupInputPort (const DtString &portName) |
| |
| virtual DtList | inputPortList () const |
| |
| virtual void | addOutputPort (DtOutputPort *port) |
| |
| virtual void | removeOutputPort (DtOutputPort *port) |
| |
| virtual DtOutputPort * | lookupOutputPort (const DtString &portName) |
| |
| virtual DtList | outputPortList () const |
| |
| virtual void | addInputPortGroup (DtInputPortGroup *group) |
| |
| virtual void | removeInputPortGroup (DtInputPortGroup *group) |
| |
| virtual DtInputPortGroup * | lookupInputPortGroup (const DtString &groupName) |
| |
| virtual DtList | inputPortGroupList () const |
| |
| virtual void | addOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual void | removeOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual DtOutputPortGroup * | lookupOutputPortGroup (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 |
| |
| DtVrfProcessStateRepositoryManager * | psrManager () |
| |
| virtual const DtSymbolString & | componentFullName () const |
| |
| DtPhysicalWorld * | physicalWorld () |
| |
| const DtPhysicalWorld * | physicalWorld () const |
| |
| const DtAttachedTerrain * | terrainAttachedTo () const |
| |
| DtLocalObject * | entity () |
| |
| const DtLocalObject * | entity () const |
| |
| DtSimulationServices * | simulationServices () |
| |
| const DtSimulationServices * | simulationServices () const |
| |
| const Coordinate_System * | coordinateSystem () const |
| |
| virtual void | isClutterChanged () |
| |
| virtual bool | taskVisualizationsEnabled () const |
| |
| makVrf::DtTaskVisualizationMap & | taskVisualizations () |
| |
| 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 DtSimResourceManager & | resourceManager () |
| |
virtual const
DtSimResourceManager & | resourceManager () const |
| |
VRF4API_METHOD const
DtSimulationServices * | simManager () const |
| |
| | 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 DtReaderWriter & | operator= (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 aliasContainer & | aliases () 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 char * | readerWriterType () const |
| |
| virtual const char * | xmlType () 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 | 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 DtReaderWriter * | defaultRWValue () const |
| |
| virtual DtReaderWriter * | defaultRWValue () |
| |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| const DtReaderWriterRegistry & | registry () const |
| |
| DtReaderWriterRegistry & | registry () |
| |
| virtual DtPropertyInterface * | property () |
| |
| virtual const DtPropertyInterface * | property () const |
| |
| virtual DtString | toXml () const |
| |
| virtual DtRwVariableBindings * | generateVariableBindings () 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) |
| |
|
| virtual void | moveToWithFinalSpeed (const DtVector &localDestination, const double cruiseSpeed, const double finalSpeed) |
| |
| virtual void | moveToWithFinalSpeed (const double goalHeading, const double cruiseSpeed, const double finalSpeed) |
| |
| virtual void | turn (double desiredRate) |
| |
| virtual void | turn (double desiredRate, double desiredHeading) |
| |
| virtual void | immediateNormalStop () |
| |
| virtual double | calculateControlForTurn (double yawAngle, double desiredRate) |
| |
| virtual double | calculateNormalAcceleration (double cruiseSpeed, double distance, double turnAngle, double finalSpeed) |
| |
| virtual double | calculateNormalAcceleration (double desiredSpeed) |
| |
| virtual double | limitedAcceleration (double desiredAcceleration, double desiredSpeed) |
| |
| virtual double | followerAcceleration (double dT, double distance, double maxDeceleration, double followerSpeed, double leaderSpeed) |
| |
| virtual bool | createPortGroups () |
| |
| virtual bool | createPorts () |
| |
| virtual void | lookupAndCacheProcessSR () |
| |
| virtual bool | postAddComponentsInit () |
| |
| virtual bool | decideToGiveUpTask () const |
| |
| DtPlatformLocalObjectFacade & | platformLocalObjectFacade () |
| |
| | DtSurfaceEntityPilotController () |
| |
| | DtSurfaceEntityPilotController (const DtSurfaceEntityPilotController &orig) |
| |
const
DtSurfaceEntityPilotController & | operator= (const DtSurfaceEntityPilotController &orig) |
| |
| virtual void | clearPendingSubtasks () |
| |
| virtual void | clearSubtasksByType (const DtSimTaskMessageType &taskType) |
| |
| virtual void | cleanupInactiveSubtaskStatus () |
| |
| virtual void | suspendSubtasksOfTask (int taskId, DtSuspendedTaskInfo *suspendInfo) |
| |
| virtual void | suspendSubtaskOfTask (int taskId, int subtaskId, DtSuspendedTaskInfo *suspendInfo) |
| |
| virtual DtSimTaskMessageType | remapScriptId (const DtSimTaskMessageType &) const |
| |
| | DtControllerComponent () |
| |
| | DtControllerComponent (const DtControllerComponent &orig) |
| |
| const DtControllerComponent & | operator= (const DtControllerComponent &orig) |
| |
| virtual void | onRestore () |
| |
| virtual void | initializeTargetingControlTableFromDescriptor (const DtReaderWriter *) |
| |
| virtual void | sendCapableSetsAndTasks () |
| |
| virtual void | setupTimedTickLogic (double minTickPeriod, double minTickPeriodVariance) |
| |
| virtual double | computeCurrentTime () |
| |
| bool | testInvariant () const |
| |
| DtVrfProcessStateRepository * | createComponentPsr (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 |
| |
| DtVrfObjectStateRepository * | localStateRepository () |
| |
| const DtVrfObjectStateRepository * | localStateRepository () const |
| |
| DtPropertyInterface * | cachedNextFrameStateProperty (DtPropertyInterface **prop, const DtString &propName) |
| |
| template<typename ValType > |
| void | setCachedNextFrameStatePropertyValue (DtPropertyInterface **prop, const DtString &propName, ValType value) |
| |
| const DtPropertyInterface * | cachedCurrentFrameStateProperty (const DtPropertyInterface **prop, const DtString &propName) const |
| |
| template<typename ValType > |
| bool | getCachedCurrentFrameStatePropertyValue (const DtPropertyInterface **prop, const DtString &propName, ValType &value) 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 () |
| |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
| |