VR-Forces 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 | Private Member Functions
DtConvoyTaskController Class Reference

behavior for a ground vehicle aggregate entity to drive and follow each other on and off roads and routes

End User Description: The DtConvoyTaskController responds to convoy-related tasks. It executes convoy behavior for the aggregate as a whole by issuing radio messages to aggregate members to carry out the convoy-related task.

This controller may only be configured as a part of an entity that has a convoy-task-controller.

Developer Description: The DtConvoyTaskController class sends several messages as appropriate to its subordinates. The aggregate considers itself complete once it has received task complete reports from all of the subordinates participating in the task at the end of the road or route or path. Uses Descriptor Type: DtConvoyDescriptor

Inheritance diagram for DtConvoyTaskController:
Inheritance graph
[legend]

Public Member Functions

 DtConvoyTaskController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtConvoyTaskController ()
 
virtual bool init ()
 
virtual const chartype () const
 
virtual void clearTask ()
 
virtual void resetTask ()
 
virtual void registerTaskMsgCallbacks ()
 
virtual void preFirstTickInit ()
 
virtual void tick ()
 
virtual bool createPSR ()
 
virtual void updateTaskVisualizations ()
 
- Public Member Functions inherited from DtSingleTaskControllerComponent
 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< intcurrentPendingSubstaskIds () const
 
virtual DtSubtaskStatusEntrysubtaskStatus (int subtaskId)
 
virtual void clearCurrentTaskMessage ()
 
virtual DtTaskMessagecurrentTaskMessage () const
 
virtual DtSimTaskStatePtr currentTaskState () const
 
virtual bool decideToGiveUpTask () 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 DtSuspendedTaskInfosuspendTaskById (int taskId) override
 
virtual DtSuspendedTaskInfosuspendSubtaskById (int taskId, int subtaskId) override
 
virtual std::list
< DtTaskMessage * > 
currentTaskMessages () const
 
virtual DtTaskWithTaskStateListPtr topLevelTasks () const override
 
virtual void disable () override
 
- Public Member Functions inherited from DtTaskControllerComponent
 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 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
 
- Public Member Functions inherited from DtControllerComponent
 DtControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
virtual ~DtControllerComponent ()
 
virtual bool postAddComponentsInit () override
 
virtual DtSimRadioradio ()
 
virtual void enableTaskTypes ()
 
virtual void enableScritedTask (const DtString &scriptId)
 
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 timedTick ()
 
virtual void setMinTickPeriod (double minTickPeriod, double minTickPeriodVariance)
 
virtual void setupFirstTickTime ()
 
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 void isClutterChanged ()
 
virtual bool taskVisualizationsEnabled () const
 
makVrf::DtTaskVisualizationMaptaskVisualizations ()
 
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 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 void convoyTaskCallback (DtSimMessage *msg, void *usr)
 
static void taskCompleteReportCallback (const DtVrfObjectMessage *msg, void *usr)
 
static DtSimComponentcreator (const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
 
static void settingConsumerCallback (const DtSettingsObject *settingsObject, void *usr)
 
- Static Public Member Functions inherited from DtTaskControllerComponent
static void deprecatedTaskProcessorCallbackAdapter (DtSimMessage *msg, void *usr, DtSimTaskStatePtr taskState)
 
- 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 void onModifyVrfObject ()
 
virtual void onConvoyTask (DtSimMessage *msg)
 
virtual void onTaskComplete (const DtVrfObjectMessage *msg)
 
virtual void sendTaskToSubordinate (const DtSimTask &task, const DtUUID &subordinate)
 
virtual void sendSetToSubordinate (DtSetDataRequest &request, const DtUUID &subordinate)
 
virtual bool setupTask (const DtLocalObject *aggregate, const DtSimObject *destination, bool pathPlan)
 
virtual DtVector findAssemblyPoint (const DtSimObject *aggregate, const DtVector &destination, bool haveRails, const Coordinate_System *coordSys)
 
virtual bool setupSubordinates (const DtSimObject *aggregate, bool clearSubs, bool &leaderSet, double initialOrderedSpeed)
 
virtual bool setupSubordinates (const DtLocalObject *aggregate, bool clearSubs, bool &leaderSet, double initialOrderedSpeed)
 
virtual bool setupSubordinates (const std::list< DtSimObjectReference > &list, bool clearSubs, bool &leaderSet, double initialOrderedSpeed)
 
virtual void setupLeadOnDistance (int numberOfEntities, float distanceBetween)
 
virtual bool createDirectRailPath (const DtSimObject *leadEntity, const DtSimObject *destination)
 
virtual bool areSeparationDistancesWithinRange (const DtRwSimObjectReferenceList &subordinates, const float distance, const float tolerance, const Coordinate_System *coordSys)
 
virtual void setLeaderSpeed (const float speed)
 
virtual void resettingPhaseTick (bool retask=true)
 
virtual void startingPhaseTick ()
 
virtual void assemblingPhaseTick ()
 
virtual void convoyingPhaseTick ()
 
virtual void finishingPhaseTick ()
 
virtual DtVector findIntersectionOfLineAndCircle (const DtVector &centerPoint, const DtVector &endPoint, double radius, const Coordinate_System *coordSys) const
 
virtual bool taskEntityToMoveToAssemblyPt (const DtSimObject *entity, const DtVector &assemblyPoint, const Coordinate_System *coordSys)
 
virtual bool getEntityPathToEntry (const DtSimObject *entity, const DtVector &assemblyPoint, const Coordinate_System *coordSys)
 
virtual DtRailSegmentfindClosestEntryRail (const DtSimObject *aggregate, const double &radius, DtRailSegmentList *rails, int &railNumber, const Coordinate_System *coordSys) const
 
virtual bool isPointWithinRadius (const DtVector &center, double radius, const DtVector &point, const Coordinate_System *coordSys) const
 
virtual bool findPointOnRailOutsideSphere (const DtVector &center, const double &radius, const DtRailSegment *segment, DtVector &resultPoint, const Coordinate_System *coordSys) const
 
virtual bool updateConvoySubordinates (const DtSimObject *aggregate, std::vector< DtUUID > &tempList, bool recursive=false)
 
virtual bool updateConvoySubordinates (const DtLocalObject *aggregate, std::vector< DtUUID > &tempList, bool recursive=false)
 
virtual bool updateConvoySubordinates (const std::list< DtSimObjectReference > &, std::vector< DtUUID > &tempList, bool recursive=false)
 
virtual bool isEntityPartOfConvoy (const DtUUID &entity) const
 
virtual bool isEntityIndependentlyTasked (const DtSimObject *entity) const
 
virtual void setConvoyFollowing ()
 
virtual void destroyedPhaseTick ()
 
virtual void sendClearTask (const DtUUID &recipientName, const DtSimTaskMessageType &taskType)
 
double maxSearchRadius (const DtPoint &start, const DtPoint &end)
 
virtual bool startPathPlan (const DtSimObject *leadEntity, const DtSimObject *destination)
 
virtual bool pathPlanFinished ()
 
virtual DtVector groundClamp (const DtVector &point, DtGeodeticCoord &lastPoint) const
 
virtual void processSetting (const DtBoolSetting *setting)
 
- Protected Member Functions inherited from DtSingleTaskControllerComponent
virtual void clearPendingSubtasks ()
 
virtual void clearSubtasksByType (const DtSimTaskMessageType &taskType)
 
virtual void cleanupInactiveSubtaskStatus ()
 
- Protected Member Functions inherited from DtTaskControllerComponent
virtual void suspendSubtasksOfTask (int taskId, DtSuspendedTaskInfo *suspendInfo)
 
virtual void suspendSubtaskOfTask (int taskId, int subtaskId, DtSuspendedTaskInfo *suspendInfo)
 
virtual DtSimTaskMessageType remapScriptId (const DtSimTaskMessageType &) const
 
- 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 sendCapableSetsAndTasks ()
 
- Protected Member Functions inherited from DtSimComponent
virtual void setupTimedTickLogic (double minTickPeriod, double minTickPeriodVariance)
 
virtual double computeCurrentTime ()
 
bool testInvariant () const
 
virtual bool createPortGroups ()
 
virtual bool createPorts ()
 
DtVrfProcessStateRepositorycreateComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true)
 
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
 
DtPropertyInterfacecachedNextFrameStateProperty (DtPropertyInterface **prop, const DtString &propName)
 
template<typename ValType >
void setCachedNextFrameStatePropertyValue (DtPropertyInterface **prop, const DtString &propName, ValType value)
 
const DtPropertyInterfacecachedCurrentFrameStateProperty (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 ()
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 

Protected Attributes

boost::shared_ptr
< DtAsyncJobMapEntry
myPathJobEntry
 
const DtConvoyDescriptormyDescriptor
 
DtConvoyPSRmyProcessState
 
bool myDrivingOnLeft
 
DtSimObjectReference myDestination
 
DtAggregateLocalObjectFacade myAggregateLocalObjectFacade
 
- Protected Attributes inherited from DtTaskControllerComponent
DtTaskCallbackMap myTaskCallbackMap
 
std::list
< DtTaskProcessorCallbackInfo * > 
myTaskProcessorCallbackInfoList
 
bool myTaskIsRunning
 
- 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 myLastTickSimTime
 
std::unique_ptr< DtTimedTickLogicmyTimedTickLogic
 
double myDT
 
bool myIsEnabled
 
bool myFirstTick
 
const DtComponentDescriptormyComponentDescriptor
 
std::list
< DtVrfProcessStateRepository * > 
myComponentPsrs
 
makVrf::DtTaskVisualizationMap myTaskVisualizations
 
double myNextTaskVisTickTime
 
DtSymbolString myFullComponentName
 
DtSimulationServicesmySimServices
 
DtPredicateCallbackManagermyPredicateCallbackManager
 
boost::signals2::scoped_connection myIsClutterChangedConnection
 
- 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
 

Private Member Functions

 DtConvoyTaskController (const DtConvoyTaskController &orig)
 
DtConvoyTaskControlleroperator= (const DtConvoyTaskController &orig)
 

Additional Inherited Members

- Public Types inherited from DtTaskControllerComponent
enum  AcceptLevel { AcceptLevel_Accept = 0, AcceptLevel_Partial = 1, AcceptLevel_Error = 2, AcceptLevel_NoAccept = 99 }
 
- 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 DtTaskControllerComponent
typedef std::pair
< DtTaskMessageCallbackFcn,
void * > 
DtTaskCallbackMapPair
 
typedef std::map
< DtSimTaskMessageType,
DtTaskCallbackMapPair
DtTaskCallbackMap
 
- 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

DtConvoyTaskController::DtConvoyTaskController ( 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 DtConvoyTaskController::~DtConvoyTaskController ( )
virtual

Default destructor.

DtConvoyTaskController::DtConvoyTaskController ( const DtConvoyTaskController orig)
private

not implemented

Member Function Documentation

virtual bool DtConvoyTaskController::init ( )
virtual

Initializes the controller. Mostly sets up the ConvoyPSR.

Reimplemented from DtControllerComponent.

virtual const char* DtConvoyTaskController::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
DtConvoyTaskControllerType

Implements DtTaskControllerComponent.

virtual void DtConvoyTaskController::clearTask ( )
virtual

Clears the task. Will also send clear task messages to subordinates that are takes to clear their tasks.

Reimplemented from DtSingleTaskControllerComponent.

virtual void DtConvoyTaskController::resetTask ( )
virtual

Resets the task without completely clearing it.

virtual void DtConvoyTaskController::registerTaskMsgCallbacks ( )
virtual

Registers task and set data request callbacks for the convoy tasks.

Reimplemented from DtTaskControllerComponent.

static void DtConvoyTaskController::convoyTaskCallback ( DtSimMessage msg,
void *  usr 
)
static

Callback function for handling incoming turn to heading task message. Calls processTurnToHeadingTask to actually handle the message.

Parameters
msgMessage containing a DtTurnToHeadingTask.
usrPointer to instance of this class.
static void DtConvoyTaskController::taskCompleteReportCallback ( const DtVrfObjectMessage msg,
void *  usr 
)
static

Calls onTaskComplete() to process the message.

Parameters
msgMessage containing a DtTaskCompleteReport.
usrPointer to an instance of this class.
static DtSimComponent* DtConvoyTaskController::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 void DtConvoyTaskController::preFirstTickInit ( )
virtual

Restarts convoy tasks if necessary.

Reimplemented from DtSimComponent.

virtual void DtConvoyTaskController::tick ( )
virtual

This gives the thread of control to the component. The component is ticked once each simulation from by the component list it's on. This base class tick has no functionality.

Reimplemented from DtSimComponent.

virtual bool DtConvoyTaskController::createPSR ( )
virtual
static void DtConvoyTaskController::settingConsumerCallback ( const DtSettingsObject settingsObject,
void *  usr 
)
static
virtual void DtConvoyTaskController::updateTaskVisualizations ( )
virtual

Called to update task visualizations after every tick. Implemented by subclasses.

Reimplemented from DtSimComponent.

virtual void DtConvoyTaskController::onModifyVrfObject ( )
protectedvirtual

Handles the change of vertices of the destinatino control object. This will result in the task restarting from their current location.

Parameters
objthe control object that was modified
virtual void DtConvoyTaskController::onConvoyTask ( DtSimMessage msg)
protectedvirtual

Issues DtMoveIntoFormationTask to ourself, at current location, heading given in incoming DtTurnToHeadingTask, keeping existing formation, and not applying formation to subordinates.

Parameters
msgMessage containing a DtTurnToHeadingTask.
virtual void DtConvoyTaskController::onTaskComplete ( const DtVrfObjectMessage msg)
protectedvirtual

Handles all task complete messages for this controller.

Parameters
msgMessage containing a DtTaskCompleteReport.
virtual void DtConvoyTaskController::sendTaskToSubordinate ( const DtSimTask task,
const DtUUID subordinate 
)
protectedvirtual

Used to send tasks to a particular subordinate. Does not check if entity is still a subordinate or independently tasked or immoblized for any reason.

Parameters
taskThe task you wish you give
subordinateObjectNamethe name of the entity you wish to send this task to. Must be a subordinate.
virtual void DtConvoyTaskController::sendSetToSubordinate ( DtSetDataRequest request,
const DtUUID subordinate 
)
protectedvirtual

Used to send set messages to a particular subordinate. Does not check if entity is still a subordinate or alive.

Parameters
requestThe set request
subordinateObjectNamename of the entity you wish to send this request to. Must be a subordinate.
virtual bool DtConvoyTaskController::setupTask ( const DtLocalObject aggregate,
const DtSimObject destination,
bool  pathPlan 
)
protectedvirtual

Sets up a convoy task based on the parameters. Calls several functions to setup the task.

Parameters
aggregatethe entity using this controller
destinationthe destination object. Waypoint or route
pathPlanwhether or not to plan a path. If destination is route, this should be false
Returns
True if the task setup was successful. False if it was not.
virtual DtVector DtConvoyTaskController::findAssemblyPoint ( const DtSimObject aggregate,
const DtVector destination,
bool  haveRails,
const Coordinate_System coordSys 
)
protectedvirtual

Finds the point in which the subordinates will assemble and drive to before driving on roads/rails/along routes. Generally gives back the start of a rail.

Parameters
aggregatethe aggregate using this controller
destinationthis point is only used if haveRails param is false
haveRailswere rails created successfully? This will read the rails directly from the PSR
coordSysthe coordinate system pointer
Returns
The location (in 3D) in which the start of the rail path is (generated or otherwise)
virtual bool DtConvoyTaskController::setupSubordinates ( const DtSimObject aggregate,
bool  clearSubs,
bool leaderSet,
double  initialOrderedSpeed 
)
protectedvirtual

Sets up the subordinates for this controller to worry about in the aggregate. This must be called as one of the first functions called. Is called by setupTask(). This function is also recursive for aggregates within aggregates. This function sets the subordinates in the PSR.

Parameters
aggregateThe top level aggregate
leaderSetEither ignore this parameter or pass in false
Returns
True if this happened successsfully, false if this failed
virtual bool DtConvoyTaskController::setupSubordinates ( const DtLocalObject aggregate,
bool  clearSubs,
bool leaderSet,
double  initialOrderedSpeed 
)
protectedvirtual
virtual bool DtConvoyTaskController::setupSubordinates ( const std::list< DtSimObjectReference > &  list,
bool  clearSubs,
bool leaderSet,
double  initialOrderedSpeed 
)
protectedvirtual
virtual void DtConvoyTaskController::setupLeadOnDistance ( int  numberOfEntities,
float  distanceBetween 
)
protectedvirtual

Sets up the lead on distance the leader will have on the road/rail ahead of everyone else before he stops to wait for the others to get on the rail. The value is set in the PSR.

Parameters
numberOfEntitesthe number of entites in the convoy
distanceBetweenthe distance that should be kept between the entities
virtual bool DtConvoyTaskController::createDirectRailPath ( const DtSimObject leadEntity,
const DtSimObject destination 
)
protectedvirtual

Creates the rail path for which the convoy will drive on. Uses either the path planner, a route, or will return false if neither occurred.

Parameters
leadEntityThe convoy leader
destinationThe point or path of interest (waypoint or route)
Returns
True if a rail was created and set to the PSR, false if no rail was created
virtual bool DtConvoyTaskController::areSeparationDistancesWithinRange ( const DtRwSimObjectReferenceList subordinates,
const float  distance,
const float  tolerance,
const Coordinate_System coordSys 
)
protectedvirtual

Checks to ensure the separation distances in the convoy are still within acceptable boundries. Only updates the leader's speed as everyone else is dictated by their own follow sets.

Parameters
subordinatesA reference to the list of subordinates
distancethe distance of separation the subordinates should be from each other
tolerancethe tolerance for which the subordinates will be forgiven for in lagging behind (a percentage)
coordSysa pointer to the coordinate system
Returns
True if the subordinates are within the specified ranges. False if they are not.
virtual void DtConvoyTaskController::setLeaderSpeed ( const float  speed)
protectedvirtual

Sets the speed of the convoy leader. This also sets a flag that remembers the leaders last ordered speed.

Parameters
speedThe speed at which the leader will go
virtual void DtConvoyTaskController::resettingPhaseTick ( bool  retask = true)
protectedvirtual

This function is called in tick() when the convoy phase is set to resetting. It will reset the entire task based on the most recent convoy task it was given from its current location. Upon resetting, do we want to resetup the entities for the task?

virtual void DtConvoyTaskController::startingPhaseTick ( )
protectedvirtual

This function is called in tick() when the convoy phase is set to starting. This function doesn't do anything for our own purposes.

virtual void DtConvoyTaskController::assemblingPhaseTick ( )
protectedvirtual

This function is called in tick() when the convoy phase is set to assembling. This function checks to see where the leader is on the road/rail path before telling him to stop. Calls setLeaderSpeed() to alter the leader's speed accordingly.

virtual void DtConvoyTaskController::convoyingPhaseTick ( )
protectedvirtual

This function is called in tick() when the convoy phase is set to convoying. This function checks the distances between each entity to ensure that they are within the specified distances.

virtual void DtConvoyTaskController::finishingPhaseTick ( )
protectedvirtual

This function is called in tick() when the convoy phase is set to finishing. This function is used when the convoy leader has reached his destination and the subordinates are all ordered to tighten up their formation so they can complete the task.

virtual DtVector DtConvoyTaskController::findIntersectionOfLineAndCircle ( const DtVector centerPoint,
const DtVector endPoint,
double  radius,
const Coordinate_System coordSys 
) const
protectedvirtual

Finds the intersection point of a circle and a radius line drawn in that circle.

Parameters
centerPointthe center of the circle but also connects to the endPoint (3D)
endPointthe end point of the line that radiates from the center. Must be OUTSIDE of the circle (3D)
radiusthe distance from the center point. Should be shorter than the distance of centerPoint to endPoint
coordSysthe coordinate system pointer
Returns
A vector that contains the 3D point of intersection between the line and the circle.
virtual bool DtConvoyTaskController::taskEntityToMoveToAssemblyPt ( const DtSimObject entity,
const DtVector assemblyPoint,
const Coordinate_System coordSys 
)
protectedvirtual

Tasks the specified single entity (non-aggregate) to move to the assembly point, which is presumably the start of the road. This calls createEntrySegment() since each entry segment is created for each entity individually.

Parameters
entityThe entity in this aggregate being ordered to get to the path
assemblyPointthe first point on the path
coordSysthe coordinate system pointer
Returns
True if this was successful, false if it failed for any reason
virtual bool DtConvoyTaskController::getEntityPathToEntry ( const DtSimObject entity,
const DtVector assemblyPoint,
const Coordinate_System coordSys 
)
protectedvirtual

Deprecated as of 4.2– calls taskEntityToMoveToAssemblyPt.

virtual DtRailSegment* DtConvoyTaskController::findClosestEntryRail ( const DtSimObject aggregate,
const double radius,
DtRailSegmentList rails,
int railNumber,
const Coordinate_System coordSys 
) const
protectedvirtual

This function finds the closest rail to enter a path. This uses isPointWithinRadius() to figure out and iterate through the list of rails in order to find a rail in which the second point of the rail itself sits outside of the bounding radius given.

Parameters
aggregateExpects the top level aggregate with this controller
radiusThe radius of the aggregate
railsThe list of rails where we are trying to find the closest entryway
railNumberreturns the index of the rail it finds in the list
coordSysthe coordinate system pointer
Returns
Pointer to the rail in the list that is the closest
virtual bool DtConvoyTaskController::isPointWithinRadius ( const DtVector center,
double  radius,
const DtVector point,
const Coordinate_System coordSys 
) const
protectedvirtual

Finds whether a given point is within the given radius. Used by findClosestEntryRail() to help it find out whether the segment it found is ideal.

Parameters
centerCenter of the circle (in 3D)
radiusRadius of the circle (in meters)
pointThe point in question (in 3D)
coordSysThe coordinate system pointer
Returns
True if the point is within the circle, false otherwise.
virtual bool DtConvoyTaskController::findPointOnRailOutsideSphere ( const DtVector center,
const double radius,
const DtRailSegment segment,
DtVector resultPoint,
const Coordinate_System coordSys 
) const
protectedvirtual

Finds a point outside of the sphere on a rail, given a particular rail segment.

Parameters
centerCenter of the sphere. Preferably in 2D (topo)
radiusRadius of the sphere. In meters.
segmentPointer to the segment in question
resultPointExpects an empty vector, but will store the resulting point here and return it
coordSysPointer to the coordinate system
Returns
True if it found a point, false if no point was found.
virtual bool DtConvoyTaskController::updateConvoySubordinates ( const DtSimObject aggregate,
std::vector< DtUUID > &  tempList,
bool  recursive = false 
)
protectedvirtual

This function is recursive. It calls itself if there are aggregates within aggregates. It compares the current list of subordinates with what should be and removes any subordinates that were removed. If any subordinates were added, however, this function will immediately return false.

Parameters
aggregateExpects a top level aggregate
Returns
True if the update resulted in either the removal of entities or no change occurred and false if an entity was added.
virtual bool DtConvoyTaskController::updateConvoySubordinates ( const DtLocalObject aggregate,
std::vector< DtUUID > &  tempList,
bool  recursive = false 
)
protectedvirtual
virtual bool DtConvoyTaskController::updateConvoySubordinates ( const std::list< DtSimObjectReference > &  ,
std::vector< DtUUID > &  tempList,
bool  recursive = false 
)
protectedvirtual
virtual bool DtConvoyTaskController::isEntityPartOfConvoy ( const DtUUID entity) const
protectedvirtual

Returns true if the named entity is part of the convoy.

virtual bool DtConvoyTaskController::isEntityIndependentlyTasked ( const DtSimObject entity) const
protectedvirtual
virtual void DtConvoyTaskController::setConvoyFollowing ( )
protectedvirtual
virtual void DtConvoyTaskController::destroyedPhaseTick ( )
protectedvirtual
virtual void DtConvoyTaskController::sendClearTask ( const DtUUID recipientName,
const DtSimTaskMessageType taskType 
)
protectedvirtual

Send out message to clear task from the given subordinate.

double DtConvoyTaskController::maxSearchRadius ( const DtPoint start,
const DtPoint end 
)
protected
virtual bool DtConvoyTaskController::startPathPlan ( const DtSimObject leadEntity,
const DtSimObject destination 
)
protectedvirtual

Starts an asynchronous path plan. myPathJobToken is then checked in tick to see whether the job has been completed. This is used when a convoy task is using roads.

Parameters
leadEntityUsed for path plan starting location
destinationLocation to plan the path to
virtual bool DtConvoyTaskController::pathPlanFinished ( )
protectedvirtual

Called when the path planning is done - sets up the rail path and sets the convoy status to "starting".

virtual DtVector DtConvoyTaskController::groundClamp ( const DtVector point,
DtGeodeticCoord &  lastPoint 
) const
protectedvirtual

Will ground clamp the supplied point and return the ground clamped point. If data is not available will use the last point supplied for altitude. If data is available last point is set to be the point just checked.

Parameters
pointPoint to ground clamp
lastPointLast point successfully ground clamped
virtual void DtConvoyTaskController::processSetting ( const DtBoolSetting setting)
protectedvirtual

Sets myDrivingOnLeftEnabled with value in setting.

DtConvoyTaskController& DtConvoyTaskController::operator= ( const DtConvoyTaskController orig)
private

not implemented

Member Data Documentation

boost::shared_ptr<DtAsyncJobMapEntry> DtConvoyTaskController::myPathJobEntry
protected

Token for asynchronous path plan task.

const DtConvoyDescriptor* DtConvoyTaskController::myDescriptor
protected
DtConvoyPSR* DtConvoyTaskController::myProcessState
protected
bool DtConvoyTaskController::myDrivingOnLeft
protected
DtSimObjectReference DtConvoyTaskController::myDestination
protected
DtAggregateLocalObjectFacade DtConvoyTaskController::myAggregateLocalObjectFacade
protected

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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)