|
| | mtsComponentAddLatency (const std::string &componentName, double periodInSeconds) |
| | mtsComponentAddLatency (const mtsTaskPeriodicConstructorArg &arg) |
| virtual | ~mtsComponentAddLatency () |
| void | Configure (const std::string &filename) override |
| void | Startup (void) override |
| void | Run (void) override |
| void | Cleanup (void) override |
| 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) override |
| double | GetPeriodicity (void) const |
| bool | IsPeriodic (void) const override |
| | mtsTaskContinuous (const std::string &name, unsigned int sizeStateTable=256, bool newThread=true) |
| | mtsTaskContinuous (const mtsTaskContinuousConstructorArg &arg) |
| virtual | ~mtsTaskContinuous () |
| void | Create (void *data=0) override |
| void | Start (void) override |
| void | Kill (void) override |
| virtual bool | CreatesThread (void) const |
| | 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) |
| void | Configure (const std::string &CMN_UNUSED(filename)="") override |
| void | SetInitializationDelay (double delay) |
| void | Create (void) override |
| double | GetAveragePeriod (void) const |
| const std::string | GetDefaultStateTableName (void) const |
| mtsStateTable * | GetDefaultStateTable (void) |
| mtsInterfaceRequired * | AddInterfaceRequiredWithoutSystemEventHandlers (const std::string &interfaceRequiredName, mtsRequiredType required=MTS_REQUIRED) override |
| mtsInterfaceProvided * | AddInterfaceProvidedWithoutSystemEvents (const std::string &newInterfaceName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY) override |
| 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 | AddTag (const std::string &tag) |
| const std::set< std::string > & | GetTags (void) 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) |
| std::vector< std::string > | GetNamesOfInterfacesProvidedOrOutput (void) const |
| std::vector< std::string > | GetNamesOfInterfacesProvided (void) const |
| std::vector< std::string > | GetNamesOfInterfacesOutput (void) const |
| 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) |
| 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) |
| std::vector< std::string > | GetNamesOfInterfacesRequiredOrInput (void) const |
| std::vector< std::string > | GetNamesOfInterfacesRequired (void) const |
| std::vector< std::string > | GetNamesOfInterfacesInput (void) const |
| 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) |
| 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 override |
| bool | AreAllInterfacesRequiredConnected (const bool log=false) |
| 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 override |
| bool | SetReplayMode (void) |
| bool | SetReplayData (const std::string &stateTableName, const std::string &fileName) |
| bool | SetReplayTime (const double time) |
| 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 CISST_THROW(std |
| 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="") |
| void * | RunInternal (void *argument) override |
| void | StartupInternal (void) override |
| void | CleanupInternal (void) override |
| void | StartInternal (void) override |
| virtual const mtsManagerComponentServices * | GetManagerComponentServices (void) const override |
| 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) override |
| | 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.
|
| bool | AddInterfaceInternal (const bool useMangerComponentServices=false) |
| | Add internal interfaces.
|
| 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) |
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.