VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
scriptReactiveTaskController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
8 
10 #include "vrfmsgs/simMessage.h"
15 #include <set>
21 #include <boost/shared_ptr.hpp>
25 
27 class DtSimMessage;
28 class DtLocalObject;
29 
52 
54 {
55 public:
56 
57  static DtSimComponent* creator( const DtString& name, DtLocalObject* owner,
58  DtSimulationServices* simServices, DtComponentDescriptor* desc, DtReaderWriterRegistry* parentRegistry );
59 
61  DtSimulationServices* simServices, DtComponentDescriptor* desc, DtReaderWriterRegistry* parentRegistry );
62 
64 
65  virtual const char* type() const;
66 
67  virtual bool init();
68 
69  virtual void preFirstTickInit();
70 
71  virtual void tick();
72 
73  virtual std::list<DtScriptedTaskTask> reactiveTaskStatus() const;
74 
75  virtual bool isReactiveTaskEnabled( const DtSimTaskMessageType& scriptId ) const;
76  virtual void notifySuspend( const DtSimTaskMessageType& scriptId, int taskId );
77  virtual void notifyResume( const DtSimTaskMessageType& scriptId, int taskId );
78  virtual void processReturnScriptInterface( const DtSimTaskMessageType& scriptId, int taskId, boost::shared_ptr<DtScriptInterface> iFace );
79 
80  virtual bool enableReactiveTask( const DtSimTaskMessageType& scriptId, DtRwVariableBindings& params, const DtString& systemName, bool resetIfEnabled = false );
81 
82  static void setReactiveTaskCallback( DtSimMessage* msg, void* usr );
83  static void scriptUpdatedCallback( const DtScriptedTaskManagerCallbackInfo& info, void* usr );
84 
86  virtual void scriptSetTickPeriod( int taskId, const DtString& scriptId, double period );
87  virtual void scriptSetTickWhilePaused( int taskId, const DtString& scriptId, bool enable );
89  virtual void scriptSetRespondToNewSensorContacts( int taskId, const DtString& scriptId, bool tick );
90  virtual void scriptTaskComplete( int taskId, bool success );
91  virtual void scriptSetComplete( const DtString& );
92  virtual int scriptSendSubtask( DtSimTask& task, int parentTaskId );
93  virtual std::vector<int> scriptPendingSubstaskIds( int taskId );
94  virtual DtSubtaskStatusEntry* scriptSubtaskStatus( int subtaskId, int parentTaskId );
95  virtual void cleanupInactiveSubtaskStatus( int parentTaskId );
96  virtual void scriptClearSubtask( int subtaskId, int parentTaskId );
97  virtual int scriptSendTask( DtSimTask& task, const DtUUID& entityName, int parentTaskId, bool actAsSubtask = true, bool useRadio = false );
98  virtual void setCheckpointModeUseCheckpointState( int taskId, const DtString& scriptId, bool );
99  virtual bool checkpointModeUseCheckpointState( int taskId, const DtString& scriptId ) const;
100 
101  virtual int askUserQuestion( const DtString& scriptId,
102  const DtTranslatableStream& title, const DtTranslatableStream& message,
103  const std::vector<DtTranslatableStream>& options, int displayFlag );
104  virtual int statusOfUserQuestion( int questionId );
105  virtual void cancelUserQuestion( int questionId );
106 
108  virtual void addReactiveTaskType( const DtSimTaskMessageType&, const DtString& system = "" );
109 
110  virtual void notifyScriptTaskError( const DtString& scriptId, int taskId );
111 
113  virtual makVrf::DtPointTaskVisualizationPtr pointTaskVisualization( int taskId, const DtString& visName );
115  virtual makVrf::DtLineTaskVisualizationPtr lineTaskVisualization( int taskId, const DtString& visName );
117  virtual makVrf::DtAreaTaskVisualizationPtr areaTaskVisualization( int taskId, const DtString& visName );
119  virtual makVrf::DtTextTaskVisualizationPtr textTaskVisualization( int taskId, const DtString& visName );
121  virtual void deleteTaskVisualization( int taskId, const DtString& visName );
123 
124  virtual bool createPSR();
125 
126  virtual std::vector<DtSimTaskMessageType> availableReactiveTasks() const;
127  virtual DtString systemFor( const DtSimTaskMessageType& scriptId ) const;
128 
129 protected:
130 
134 
135  virtual bool shouldInvokeCheck( DtRwScriptReactiveTaskEntry* entry );
136 
137  virtual DtRwScriptReactiveTaskEntry* createDefaultEntry( const DtString& scriptId, const DtString& system = "" );
138  virtual bool createAndInitScriptInterface( DtRwScriptReactiveTaskEntry* entry, DtRwVariableBindings* params, bool loadState = false );
139 
140  virtual void activateReactiveTask( DtRwScriptReactiveTaskEntry* entry );
141  virtual void disableReactiveTask( DtRwScriptReactiveTaskEntry* entry, bool cancelActive );
142 
143  virtual void processSetReactiveTaskCallback( DtSetDataRequest* setMsg );
144  virtual void processSetCancel( DtSetReactiveTaskCancel* setMsg );
145  virtual void processSetDisabled( DtSetReactiveTaskDisabled* setMsg );
146  virtual void processSetEnabled( DtSetReactiveTaskEnabled* setMsg );
147  virtual void processSetPriority( DtSetReactiveTaskPriority* setMsg );
148  virtual void processSetTable( DtSetReactiveTaskTable* setMsg );
149 
150  virtual void setupReactiveTasks();
151 
152  virtual void processScriptUpdatedCallback( const DtScriptedTaskManagerCallbackInfo& info );
153 
154  virtual bool doesScriptIdApply( const DtSimTaskMessageType& scriptId ) const;
155  virtual bool isForMyEntityType( const DtScriptedTaskMetaData& metaData ) const;
156 
157  static void userQuestionOperationCallback( DtSimMessage* msg, void* usrData );
158  virtual void processUserQuestionOperation( DtSimMessage* );
159 
160  virtual void sendOffOutstandingQuestionFor( const DtSimTaskMessageType& scriptId );
161 
162  virtual void addReactiveTaskEntry( const DtSimTaskMessageType& scriptId, DtRwScriptReactiveTaskEntry* entry, bool deleteOnUpdate = true );
163  virtual void queueReactiveTaskCallback( DtSetDataRequest* setMsg );
164 
165 protected:
166 
168  DtForceType myCurrentForceType;
169 
170  std::map<DtSimTaskMessageType,DtString> myAdditionalReactiveTasks;
171 
172  std::map<DtSimTaskMessageType,bool> mySavedCheckpointMode;
173  std::map<DtSimTaskMessageType,double> mySavedTickPeriodSettings;
174  std::map<DtSimTaskMessageType,bool> mySavedTickWhilePausedSettings;
175 
176  std::vector<DtSetDataRequest*> myQueuedReactiveTaskCallbacks;
177 
178 };
virtual makVrf::DtAreaTaskVisualizationPtr areaTaskVisualization(const DtString &name)
Finds an existing or creates a new area task visualization with the given name.
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
virtual DtSubtaskStatusEntry * scriptSubtaskStatus(int subtaskId, int parentTaskId)=0
std::vector< DtSetDataRequest * > myQueuedReactiveTaskCallbacks
Definition: scriptReactiveTaskController.h:176
virtual void cleanupInactiveSubtaskStatus(int parentTaskId)=0
std::map< DtSimTaskMessageType, bool > mySavedCheckpointMode
Definition: scriptReactiveTaskController.h:172
This is a DtReaderWriter subclass which holds the status of a subtask that was issues by another task...
Definition: taskStatusEntry.h:27
const DtControllerComponent & operator=(const DtControllerComponent &orig)
assignment operator
std::map< DtSimTaskMessageType, bool > mySavedTickWhilePausedSettings
Definition: scriptReactiveTaskController.h:174
virtual void notifyScriptTaskError(const DtString &scriptId, int taskId)=0
std::map< DtSimTaskMessageType, double > mySavedTickPeriodSettings
Definition: scriptReactiveTaskController.h:173
virtual void scriptTaskComplete(int taskId, bool success)=0
Used to set the entity emitter system radar mode.
Definition: setReactiveTaskPriority.h:19
DtForceType myCurrentForceType
Definition: scriptReactiveTaskController.h:168
DtScriptReactiveTaskControllerPSR * myProcessState
Definition: scriptReactiveTaskController.h:167
virtual void preFirstTickInit()
This function can be overridden to initialize a component before it is ticked for the first time...
virtual const char * type() const =0
This returns a string from compTypes.h, and identifies the type of component.
virtual void scriptClearSubtask(int subtaskId, int parentTaskId)=0
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
std::map< DtSimTaskMessageType, DtString > myAdditionalReactiveTasks
Definition: scriptReactiveTaskController.h:170
Definition: readerWriterRegistry.h:39
virtual void cancelUserQuestion(int questionId)=0
virtual makVrf::DtTextTaskVisualizationPtr textTaskVisualization(const DtString &name)
Finds an existing or creates a new text task visualization with the given name.
virtual bool init()
Calls setRadio()
virtual void scriptSetTickPeriod(int taskId, const DtString &scriptId, double period)=0
virtual int scriptSendSubtask(DtSimTask &task, int parentTaskId)=0
virtual void scriptSetComplete(const DtString &scriptId)=0
ReaderWriter object that maintains a list of reader-writer variable bindings. It keeps a list of name...
Definition: rwVariableBindings.h:27
virtual makVrf::DtPointTaskVisualizationPtr pointTaskVisualization(const DtString &name)
Finds an existing or creates a new point task visualization with the given name.
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
virtual std::vector< int > scriptPendingSubstaskIds(int taskId)=0
virtual void tick()
This gives the thread of control to the component. The component is ticked once each simulation from ...
This stream is used by the scripting classes to be able to send out translatable messages from script...
Definition: translatableStream.h:22
virtual makVrf::DtLineTaskVisualizationPtr lineTaskVisualization(const DtString &name)
Finds an existing or creates a new line task visualization with the given name.
Used to set the entity emitter system radar mode.
Definition: setReactiveTaskTable.h:18
End User Description: DtControllerComponent is the base class for all controllers components...
Definition: controllerComponent.h:31
virtual int scriptSendTask(DtSimTask &task, const DtUUID &entityName, int parentTaskId, bool actAsSubtask=true, bool useRadio=false)=0
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:70
Used to set the entity emitter system radar mode.
Definition: setReactiveTaskDisabled.h:19
virtual bool checkpointModeUseCheckpointState(int taskId, const DtString &scriptId) const =0
Used to set the entity emitter system radar mode.
Definition: setReactiveTaskCancel.h:19
virtual void scriptSetTickWhilePaused(int taskId, const DtString &scriptId, bool enable)=0
DtSimTask is an abstract base class from which real tasks can derive. It manages the read/write capab...
Definition: simTask.h:30
virtual void scriptSetRespondToNewSensorContacts(int taskId, const DtString &scriptId, bool tick)=0
Definition: scriptReactiveTaskControllerPSR.h:30
Definition: scriptedTaskManager.h:45
virtual void deleteTaskVisualization(int taskId, const DtString &visName)=0
Definition: rwScriptReactiveTaskEntry.h:21
virtual void setCheckpointModeUseCheckpointState(int taskId, const DtString &scriptId, bool)=0
1) Define the interface class that will be used to represent the next and current frames...
Definition: taskVisualizationStateComponent.h:260
class DtScriptedTaskMetaData
Definition: scriptedTaskMetaData.h:56
Definition: scriptTaskControllerInterface.h:19
virtual int statusOfUserQuestion(int questionId)=0
Definition: setReactiveTaskEnabled.h:17
virtual int askUserQuestion(const DtString &scriptId, const DtTranslatableStream &title, const DtTranslatableStream &message, const std::vector< DtTranslatableStream > &options, int displayFlag)=0
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86
READ ME!
Definition: scriptReactiveTaskController.h:53

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)