|
| mtsComponentAddLatency (const std::string &componentName, double periodInSeconds) |
|
| mtsComponentAddLatency (const mtsTaskPeriodicConstructorArg &arg) |
|
virtual | ~mtsComponentAddLatency () |
|
void | Configure (const std::string &filename) |
|
void | Startup (void) |
|
void | Run (void) |
|
void | Cleanup (void) |
|
double | SetLatency (double latencyInSeconds) |
|
| mtsTaskPeriodic (const std::string &name, double periodicityInSeconds, bool isHardRealTime=false, unsigned int sizeStateTable=256, bool newThread=true) |
|
| mtsTaskPeriodic (const std::string &name, const osaAbsoluteTime &periodicity, bool isHardRealTime=false, unsigned int sizeStateTable=256, bool newThread=true) |
|
| mtsTaskPeriodic (const mtsTaskPeriodicConstructorArg &arg) |
|
virtual | ~mtsTaskPeriodic () |
|
void | Suspend (void) |
|
double | GetPeriodicity (void) const |
|
bool | IsPeriodic (void) const |
|
| mtsTaskContinuous (const std::string &name, unsigned int sizeStateTable=256, bool newThread=true) |
|
| mtsTaskContinuous (const mtsTaskContinuousConstructorArg &arg) |
|
virtual | ~mtsTaskContinuous () |
|
void | Create (void *data=0) |
|
void | Start (void) |
|
void | Kill (void) |
|
| mtsTask (const std::string &name, unsigned int sizeStateTable=256) |
|
virtual | ~mtsTask () |
|
virtual void | OnStartupException (const std::exception &excp) |
|
virtual void | OnRunException (const std::exception &excp) |
|
virtual void | Configure (const std::string &CMN_UNUSED(filename)="") |
|
void | SetInitializationDelay (double delay) |
|
void | Create (void) |
|
double | GetAveragePeriod (void) const |
|
const std::string | GetDefaultStateTableName (void) const |
|
mtsStateTable * | GetDefaultStateTable (void) |
|
mtsInterfaceRequired * | AddInterfaceRequiredWithoutSystemEventHandlers (const std::string &interfaceRequiredName, mtsRequiredType required=MTS_REQUIRED) |
|
mtsInterfaceProvided * | AddInterfaceProvidedWithoutSystemEvents (const std::string &newInterfaceName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY, bool isProxy=false) |
|
virtual bool | WaitToStart (double timeout) |
|
virtual bool | WaitToTerminate (double timeout) |
|
virtual void | WaitForWakeup (void) |
|
virtual void | Wakeup (void) |
|
void | ProcessManagerCommandsIfNotActive () |
|
bool | CheckForOwnThread (void) const |
|
virtual bool | IsOverranPeriod (void) const |
|
virtual void | ResetOverranPeriod (void) |
|
| mtsComponent (const std::string &deviceName) |
|
virtual | ~mtsComponent () |
|
const std::string & | GetName (void) const |
|
void | GetName (std::string &placeHolder) const |
|
void | SetName (const std::string &componentName) |
|
bool | CreateAndWait (double timeoutInSeconds) |
|
bool | StartAndWait (double timeoutInSeconds) |
|
bool | KillAndWait (double timeoutInSeconds) |
|
mtsInterfaceProvided * | AddInterfaceProvided (const std::string &interfaceProvidedName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY) |
|
CISST_DEPRECATED
mtsInterfaceProvided * | AddProvidedInterface (const std::string &interfaceProvidedName) |
|
virtual mtsInterfaceOutput * | AddInterfaceOutput (const std::string &interfaceOutputName) |
|
bool | InterfaceExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const |
|
bool | InterfaceProvidedOrOutputExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const |
|
bool | InterfaceRequiredOrInputExists (const std::string &interfaceName, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_VERBOSE) const |
|
mtsInterfaceProvided * | GetInterfaceProvided (const std::string &interfaceProvidedName) const |
|
mtsInterfaceOutput * | GetInterfaceOutput (const std::string &interfaceOutputName) const |
|
size_t | GetNumberOfInterfacesProvided (void) const |
|
size_t | GetNumberOfInterfacesOutput (void) const |
|
bool | RemoveInterfaceProvided (const std::string &interfaceProvidedName, const bool skipDisconnect=false) |
|
mtsInterfaceRequired * | AddInterfaceRequired (const std::string &interfaceRequiredName, mtsRequiredType isRequired=MTS_REQUIRED) |
|
CISST_DEPRECATED
mtsInterfaceRequired * | AddRequiredInterface (const std::string &requiredInterfaceName) |
|
virtual mtsInterfaceInput * | AddInterfaceInput (const std::string &interfaceInputName) |
|
const mtsInterfaceProvided * | GetInterfaceProvidedFor (const std::string &interfaceRequiredName) |
|
mtsInterfaceRequired * | GetInterfaceRequired (const std::string &interfaceRequiredName) |
|
mtsInterfaceInput * | GetInterfaceInput (const std::string &interfaceInputName) const |
|
size_t | GetNumberOfInterfacesRequired (void) const |
|
size_t | GetNumberOfInterfacesInput (void) const |
|
bool | RemoveInterfaceRequired (const std::string &interfaceRequiredName, const bool skipDisconnect=false) |
|
const mtsManagerComponentServices * | GetManagerComponentServices (void) const |
|
mtsManagerComponentServices * | GetManagerComponentServices (void) |
|
mtsStateTable * | GetStateTable (const std::string &stateTableName) |
|
bool | AddStateTable (mtsStateTable *existingStateTable, bool addInterfaceProvided=true) |
|
void | UseSeparateLogFileDefault (bool forwardToLogger=true) |
|
void | UseSeparateLogFileDefaultWithDate (bool forwardToLogger=true) |
|
void | UseSeparateLogFile (const std::string &filename, bool forwardToLogger=true) |
|
cmnLogger::StreamBufType * | GetLogMultiplexer (void) const |
|
bool | IsRunning (void) const |
|
bool CISST_DEPRECATED | Running (void) const |
|
bool | IsStarted (void) const |
|
bool | IsTerminated (void) const |
|
bool | IsEndTask (void) const |
|
const mtsComponentState & | GetState (void) const |
|
void | GetState (mtsComponentState &state) const |
|
void | ToStream (std::ostream &outputStream) const |
|
bool | SetReplayMode (void) |
|
bool | SetReplayData (const std::string &stateTableName, const std::string &fileName) |
|
bool | SetReplayTime (const double time) |
|
std::vector< std::string > | GetNamesOfInterfacesProvidedOrOutput (void) const |
|
std::vector< std::string > | GetNamesOfInterfacesProvided (void) const |
|
std::vector< std::string > | GetNamesOfInterfacesOutput (void) const |
|
std::vector< std::string > | GetNamesOfInterfacesRequiredOrInput (void) const |
|
std::vector< std::string > | GetNamesOfInterfacesRequired (void) const |
|
std::vector< std::string > | GetNamesOfInterfacesInput (void) const |
|
virtual | ~cmnGenericObject (void) |
|
virtual const
cmnClassServicesBase * | Services (void) const =0 |
|
bool | ReconstructFrom (const cmnGenericObject &other) |
|
std::string | ToString (void) const |
|
virtual void | ToStreamRaw (std::ostream &outputStream, const char delimiter= ' ', bool headerOnly=false, const std::string &headerPrefix="") const |
|
virtual bool | FromStreamRaw (std::istream &inputStream, const char delimiter= ' ') |
|
virtual void | SerializeRaw (std::ostream &outputStream) const |
|
virtual void | DeSerializeRaw (std::istream &inputStream) |
|
virtual size_t | ScalarNumber (void) const |
|
virtual bool | ScalarNumberIsFixed (void) const |
|
virtual double | Scalar (const size_t CMN_UNUSED(index)) const throw (std::out_of_range) |
|
virtual std::string | ScalarDescription (const size_t CMN_UNUSED(index), const std::string &CMN_UNUSED(userDescription)) const |
|
|
template<class _elementType > |
bool | AddCommandReadDelayed (mtsInterfaceRequired *interfaceRequired, const std::string &commandRequiredName, mtsInterfaceProvided *interfaceProvided, const std::string &commandProvidedName="") |
|
template<class _element1Type , class _element2Type > |
bool | AddCommandQualifiedReadDelayed (mtsInterfaceRequired *interfaceRequired, const std::string &commandRequiredName, mtsInterfaceProvided *interfaceProvided, const std::string &commandProvidedName="") |
|
bool | AddCommandVoidDelayed (mtsInterfaceRequired *interfaceRequired, const std::string &commandRequiredName, mtsInterfaceProvided *interfaceProvided, const std::string &commandProvidedName="") |
|
template<class _elementType > |
bool | AddCommandWriteDelayed (mtsInterfaceRequired *interfaceRequired, const std::string &commandRequiredName, mtsInterfaceProvided *interfaceProvided, const std::string &commandProvidedName="") |
|
bool | AddEventVoidDelayed (mtsInterfaceRequired *interfaceRequired, const std::string &eventRequiredName, mtsInterfaceProvided *interfaceProvided, const std::string &eventProvidedName="") |
|
template<class _elementType > |
bool | AddEventWriteDelayed (mtsInterfaceRequired *interfaceRequired, const std::string &eventRequiredName, mtsInterfaceProvided *interfaceProvided, const std::string &eventProvidedName="") |
|
virtual void * | RunInternal (void *argument) |
|
void | StartupInternal (void) |
|
void | CleanupInternal (void) |
|
void | StartInternal (void) |
|
void | RunEventHandler (void) |
|
void | ChangeStateEventHandler (const mtsComponentState &newState) |
|
mtsExecutionResult | RunEvent (bool check=true) |
|
void | DoRunInternal (void) |
|
void | Sleep (double timeInSeconds) |
|
mtsStateIndex::TimeTicksType | GetTick (void) const |
|
virtual void | SaveThreadStartData (void *data) |
|
virtual void | SetThreadReturnValue (void *returnValue) |
|
void | ChangeState (mtsComponentState::Enum newState) |
|
bool | WaitForState (mtsComponentState desiredState, double timeout) |
|
| mtsComponent (void) |
|
| mtsComponent (const mtsComponent &other) |
|
void | Initialize (void) |
|
mtsInterfaceRequired * | AddInterfaceRequiredExisting (const std::string &interfaceRequiredName, mtsInterfaceRequired *interfaceRequired) |
|
mtsInterfaceRequired * | AddInterfaceRequiredUsingMailbox (const std::string &interfaceRequiredName, mtsMailBox *mailBox, mtsRequiredType required) |
|
mtsInterfaceProvided * | AddInterfaceProvidedUsingMailbox (const std::string &interfaceProvidedName, mtsMailBox *mailBox) |
|
mtsInterfaceInput * | AddInterfaceInputExisting (const std::string &interfaceInputName, mtsInterfaceInput *interfaceInput) |
|
mtsInterfaceOutput * | AddInterfaceOutputExisting (const std::string &interfaceOutputName, mtsInterfaceOutput *interfaceOutput) |
|
void | KillSeparateLogFile (void) |
|
size_t | ProcessMailBoxes (InterfacesProvidedMapType &interfaces) |
|
size_t | ProcessQueuedCommands (void) |
|
size_t | ProcessQueuedEvents (void) |
|
mtsInterfaceRequired * | EnableDynamicComponentManagement (void) |
| Enable support for dynamic component management services. More...
|
|
bool | AddInterfaceInternal (const bool useMangerComponentServices=false) |
| Add internal interfaces. More...
|
|
void | InterfaceInternalCommands_GetEndUserInterface (const mtsEndUserInterfaceArg &argin, mtsEndUserInterfaceArg &argout) |
|
void | InterfaceInternalCommands_AddObserverList (const mtsEventHandlerList &argin, mtsEventHandlerList &argout) |
|
void | InterfaceInternalCommands_RemoveEndUserInterface (const mtsEndUserInterfaceArg &argin, mtsEndUserInterfaceArg &argout) |
|
void | InterfaceInternalCommands_RemoveObserverList (const mtsEventHandlerList &argin, mtsEventHandlerList &argout) |
|
void | InterfaceInternalCommands_ComponentCreate (const mtsDescriptionComponent &componentDescription, bool &result) |
|
void | InterfaceInternalCommands_ComponentStartOther (const mtsComponentStatusControl &arg) |
|
Base class for component with latency. This class can be used to create a component that delays all commands and events. For example, one might want to simulate the latency introduced by the network between a master and a slave for a tele-operation task. The delay component can then be inserted between the client and server. It must replicate the server provided interface(s) so that the client will connect its required interface(s) as if it was the server itself. Let Cs the server component, Cc the client component and Cd the delay component. Cd will need to be created with the same provided interfaces as Cs. Then, instead of connecting Cc to Cs, we will connect Cc to Cd and Cd to Cs.
The derived component needs to create its required and provided interfaces using the methods AddInterfaceRequired and AddInterfaceProvided. Once the interfaces are created, commands can be added using AddCommandVoidDelayed, AddCommandReadDelayed, ...
At runtime, the delay component will continuously read from the server and buffer the results in a state table. It is important to set the periodicity of the delay component so that enough data is collected but make sure the frequency is not too high either. For void and write commands as well as events, the component buffers all requests and periodically checks which commands/events should be forwarded. Therefore the actual latency will be impacted by the period used by the delay component.