cisst-saw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
mtsIntuitiveDaVinci Class Reference

#include <mtsIntuitiveDaVinci.h>

Inheritance diagram for mtsIntuitiveDaVinci:
mtsTaskPeriodic mtsTaskContinuous mtsTask mtsComponent cmnGenericObject

Classes

class  ArmData
 
class  ConsoleData
 
class  EventData
 
class  MasterArmData
 
class  SlaveArmData
 

Public Types

enum  ManipulatorIndexType {
  MTML1 = 0, MTMR1, MTML2, MTMR2,
  PSM1, PSM2, PSM3, ECM1,
  CONSOLE1, CONSOLE2, CORE, NUMBER_MANIPULATORS
}
 
enum  ManipulatorType {
  MTM_TYPE = 0, PSM_TYPE, ECM_TYPE, CONSOLE_TYPE,
  NUMBER_MANIPULATOR_TYPES
}
 
- Public Types inherited from mtsTaskPeriodic
typedef mtsTaskContinuous BaseType
 
- Public Types inherited from mtsTaskContinuous
typedef mtsTask BaseType
 
- Public Types inherited from mtsTask
typedef mtsComponent BaseType
 
- Public Types inherited from mtsComponent
typedef mtsComponent ThisType
 

Public Member Functions

 mtsIntuitiveDaVinci (const std::string &name, unsigned int rateInHz)
 
 ~mtsIntuitiveDaVinci ()
 
void SetSourceHost (const std::string _ipaddress, const unsigned int _port=5002, const unsigned int _password=0x1111)
 
void SetSourceLogFile (const std::string _filename)
 
void SetOutputLogFile (const std::string filename)
 
void StartLogging (void)
 
void StopLogging (void)
 
void Configure (const std::string &CMN_UNUSED(filename)="")
 
void Startup (void)
 
void Run (void)
 
void Cleanup (void)
 
bool IsAPIConnected (void) const
 
vctDynamicVector< std::string > GetEventNames (void)
 
- Public Member Functions inherited from mtsTaskPeriodic
 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
 
- Public Member Functions inherited from mtsTaskContinuous
 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)
 
- Public Member Functions inherited from mtsTask
 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 SetInitializationDelay (double delay)
 
void Create (void)
 
double GetAveragePeriod (void) const
 
const std::string GetDefaultStateTableName (void) const
 
mtsStateTableGetDefaultStateTable (void)
 
mtsInterfaceRequiredAddInterfaceRequiredWithoutSystemEventHandlers (const std::string &interfaceRequiredName, mtsRequiredType required=MTS_REQUIRED)
 
mtsInterfaceProvidedAddInterfaceProvidedWithoutSystemEvents (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)
 
- Public Member Functions inherited from mtsComponent
 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)
 
virtual void Configure (const std::string &filename="")
 
bool CreateAndWait (double timeoutInSeconds)
 
bool StartAndWait (double timeoutInSeconds)
 
bool KillAndWait (double timeoutInSeconds)
 
mtsInterfaceProvidedAddInterfaceProvided (const std::string &interfaceProvidedName, mtsInterfaceQueueingPolicy queueingPolicy=MTS_COMPONENT_POLICY)
 
CISST_DEPRECATED
mtsInterfaceProvided
AddProvidedInterface (const std::string &interfaceProvidedName)
 
virtual mtsInterfaceOutputAddInterfaceOutput (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
 
mtsInterfaceProvidedGetInterfaceProvided (const std::string &interfaceProvidedName) const
 
mtsInterfaceOutputGetInterfaceOutput (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)
 
mtsInterfaceRequiredAddInterfaceRequired (const std::string &interfaceRequiredName, mtsRequiredType isRequired=MTS_REQUIRED)
 
CISST_DEPRECATED
mtsInterfaceRequired
AddRequiredInterface (const std::string &requiredInterfaceName)
 
virtual mtsInterfaceInputAddInterfaceInput (const std::string &interfaceInputName)
 
const mtsInterfaceProvidedGetInterfaceProvidedFor (const std::string &interfaceRequiredName)
 
mtsInterfaceRequiredGetInterfaceRequired (const std::string &interfaceRequiredName)
 
mtsInterfaceInputGetInterfaceInput (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 mtsManagerComponentServicesGetManagerComponentServices (void) const
 
mtsManagerComponentServicesGetManagerComponentServices (void)
 
mtsStateTableGetStateTable (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::StreamBufTypeGetLogMultiplexer (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 mtsComponentStateGetState (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
 
- Public Member Functions inherited from cmnGenericObject
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
 

Static Public Member Functions

static const std::string & ManipulatorIndexToString (ManipulatorIndexType manipulatorIndex)
 
static size_t GetNumberOfJoints (ManipulatorIndexType manipulatorIndex)
 
static size_t GetNumberOfSetupJoints (ManipulatorIndexType manipulatorIndex)
 
static ManipulatorType GetManipulatorType (ManipulatorIndexType manipulatorIndex)
 

Protected Member Functions

bool Connect (void)
 
bool Disconnect (void)
 
bool ConfigureStream (void)
 
void StreamCallback (void)
 
bool ConfigureEvents (void)
 
void EventCallback (ManipulatorIndexType index, int eventId, int *eventArgs)
 
bool StartStream (void)
 
void StopStream (void)
 
void LogSystemConfiguration (cmnLogLevel logLevel=CMN_LOG_LEVEL_INIT_VERBOSE) const
 
void LogManipulatorConfiguration (ManipulatorIndexType index, cmnLogLevel logLevel=CMN_LOG_LEVEL_INIT_VERBOSE) const
 
void LogToolConfiguration (ManipulatorIndexType index, cmnLogLevel logLevel=CMN_LOG_LOD_INIT_VERBOSE) const
 
void LogManipulatorsAndToolsConfiguration (cmnLogLevel logLevel=CMN_LOG_LOD_INIT_VERBOSE) const
 
void SetupEventInterfaces (void)
 
void SetupArmsInterfaces (void)
 
void SetupMastersInterfaces (void)
 
void SetupSlavesInterfaces (void)
 
void SetupCameraInterfaces (void)
 
void SetupConsoleInterfaces (void)
 
void SetupAllInterfaces (void)
 
- Protected Member Functions inherited from mtsTaskPeriodic
virtual void * RunInternal (void *argument)
 
void StartupInternal (void)
 
void CleanupInternal (void)
 
void StartInternal (void)
 
- Protected Member Functions inherited from mtsTask
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)
 
- Protected Member Functions inherited from mtsComponent
 mtsComponent (void)
 
 mtsComponent (const mtsComponent &other)
 
void Initialize (void)
 
mtsInterfaceRequiredAddInterfaceRequiredExisting (const std::string &interfaceRequiredName, mtsInterfaceRequired *interfaceRequired)
 
mtsInterfaceRequiredAddInterfaceRequiredUsingMailbox (const std::string &interfaceRequiredName, mtsMailBox *mailBox, mtsRequiredType required)
 
mtsInterfaceProvidedAddInterfaceProvidedUsingMailbox (const std::string &interfaceProvidedName, mtsMailBox *mailBox)
 
mtsInterfaceInputAddInterfaceInputExisting (const std::string &interfaceInputName, mtsInterfaceInput *interfaceInput)
 
mtsInterfaceOutputAddInterfaceOutputExisting (const std::string &interfaceOutputName, mtsInterfaceOutput *interfaceOutput)
 
void KillSeparateLogFile (void)
 
size_t ProcessMailBoxes (InterfacesProvidedMapType &interfaces)
 
size_t ProcessQueuedCommands (void)
 
size_t ProcessQueuedEvents (void)
 
mtsInterfaceRequiredEnableDynamicComponentManagement (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)
 

Protected Attributes

ArmDataArms [(ECM1-MTML1)+1]
 
MasterArmDataMasterArms [(MTMR2-MTML1)+1]
 
SlaveArmDataSlaveArms [(ECM1-PSM1)+1]
 
SlaveArmDataCameraArms [(ECM1-ECM1)+1]
 
ConsoleData Console
 
ConsoleDataConsoles [(CONSOLE2-CONSOLE1)+1]
 
EventData Events
 
bool Connected
 
unsigned int RateInHz
 
std::string IPAddress
 
unsigned int Port
 
unsigned int Password
 
std::string SourceLogFileName
 
bool UseLogFile
 
std::string OutputLogFileName
 
- Protected Attributes inherited from mtsTaskPeriodic
osaThreadBuddy ThreadBuddy
 
double Period
 
osaAbsoluteTime AbsoluteTimePeriod
 
bool IsHardRealTime
 
- Protected Attributes inherited from mtsTaskContinuous
bool NewThread
 
bool CaptureThread
 
- Protected Attributes inherited from mtsTask
osaThread Thread
 
double InitializationDelay
 
osaMutex StateChange
 
osaThreadSignal StateChangeSignal
 
mtsStateTable StateTable
 
bool OverranPeriod
 
void * ThreadStartData
 
void * ReturnValue
 
mtsCallableVoidBaseInterfaceProvidedToManagerCallable
 
mtsInterfaceRequiredExecIn
 
mtsInterfaceProvidedExecOut
 
mtsFunctionVoid RunEventInternal
 
bool RunEventCalled
 
mtsFunctionWrite ChangeStateEvent
 
- Protected Attributes inherited from mtsComponent
std::string Name
 
mtsComponentState State
 
mtsInterfaceProvidedInterfaceProvidedToManager
 
bool UseSeparateLogFileFlag
 
cmnLogger::StreamBufTypeLoDMultiplexerStreambuf
 
std::ofstream * LogFile
 
StateTableMapType StateTables
 
mtsManagerComponentServicesManagerComponentServices
 
mtsFunctionWrite EventGeneratorChangeState
 
bool ReplayMode
 
InterfacesProvidedMapType InterfacesProvided
 
InterfacesOutputMapType InterfacesOutput
 
InterfacesRequiredMapType InterfacesRequired
 
InterfacesInputMapType InterfacesInput
 

Friends

void mtsIntuitiveDaVinciUtilities::StreamCallbackInternal (void *userData)
 
void mtsIntuitiveDaVinciUtilities::EventCallbackInternal (int manipulatorId, int eventId, int *arguments, void *userData)
 

Additional Inherited Members

- Static Public Attributes inherited from mtsTask
static std::runtime_error UnknownException
 
- Protected Types inherited from mtsComponent
typedef cmnNamedMap
< mtsStateTable
StateTableMapType
 
typedef cmnNamedMap
< mtsInterfaceProvided
InterfacesProvidedMapType
 
typedef cmnNamedMap
< mtsInterfaceOutput
InterfacesOutputMapType
 
typedef cmnNamedMap
< mtsInterfaceRequired
InterfacesRequiredMapType
 
typedef cmnNamedMap
< mtsInterfaceInput
InterfacesInputMapType
 

Member Enumeration Documentation

Type of manipulator. Note that indices are contiguous by type of manipulator.

Enumerator
MTML1 
MTMR1 

Master Left 1

MTML2 

Master Right 1

MTMR2 

Master Left 2

PSM1 

Master Right 2

PSM2 

Patient side 1

PSM3 

Patient side 2

ECM1 

Patient side 3

CONSOLE1 

Endoscopic camera

CONSOLE2 

Console

CORE 

Dual Console

NUMBER_MANIPULATORS 

In Si system events are generated from Core as well

Number of manipulators

Enumerator
MTM_TYPE 
PSM_TYPE 

Master Tool Manipulator

ECM_TYPE 

Patient Side Manipulator

CONSOLE_TYPE 

Endoscopic Camera Manipulator

NUMBER_MANIPULATOR_TYPES 

Surgeon-Side Console

Number of manipulator types

Constructor & Destructor Documentation

mtsIntuitiveDaVinci::mtsIntuitiveDaVinci ( const std::string &  name,
unsigned int  rateInHz 
)

Constructor.

mtsIntuitiveDaVinci::~mtsIntuitiveDaVinci ( )

Default destructor. Does nothing.

Member Function Documentation

void mtsIntuitiveDaVinci::Cleanup ( void  )
virtual

Virtual method that gets overloaded, and is run after the component gets killed using Kill() method.

Reimplemented from mtsComponent.

void mtsIntuitiveDaVinci::Configure ( const std::string &  CMN_UNUSEDfilename = "")
inlinevirtual

Virtual method that gets called when the task/interface needs to be configured. Should it take XML info??

Reimplemented from mtsTask.

bool mtsIntuitiveDaVinci::ConfigureEvents ( void  )
protected
bool mtsIntuitiveDaVinci::ConfigureStream ( void  )
protected
bool mtsIntuitiveDaVinci::Connect ( void  )
protected

Connect to the daVinci system.

bool mtsIntuitiveDaVinci::Disconnect ( void  )
protected

Disconnect from the daVinci system.

void mtsIntuitiveDaVinci::EventCallback ( ManipulatorIndexType  index,
int  eventId,
int *  eventArgs 
)
protected
vctDynamicVector<std::string> mtsIntuitiveDaVinci::GetEventNames ( void  )
inline
static ManipulatorType mtsIntuitiveDaVinci::GetManipulatorType ( ManipulatorIndexType  manipulatorIndex)
static

Get manipulator type from manipulator index

static size_t mtsIntuitiveDaVinci::GetNumberOfJoints ( ManipulatorIndexType  manipulatorIndex)
static

Get number of joints per arm

static size_t mtsIntuitiveDaVinci::GetNumberOfSetupJoints ( ManipulatorIndexType  manipulatorIndex)
static

Get number of setup joints for the specified manipulator index

bool mtsIntuitiveDaVinci::IsAPIConnected ( void  ) const
inline

Provided for compatibility with mtsIntuitiveDaVinci and C example

void mtsIntuitiveDaVinci::LogManipulatorConfiguration ( ManipulatorIndexType  index,
cmnLogLevel  logLevel = CMN_LOG_LEVEL_INIT_VERBOSE 
) const
protected
void mtsIntuitiveDaVinci::LogManipulatorsAndToolsConfiguration ( cmnLogLevel  logLevel = CMN_LOG_LOD_INIT_VERBOSE) const
protected
void mtsIntuitiveDaVinci::LogSystemConfiguration ( cmnLogLevel  logLevel = CMN_LOG_LEVEL_INIT_VERBOSE) const
protected

Log system information

void mtsIntuitiveDaVinci::LogToolConfiguration ( ManipulatorIndexType  index,
cmnLogLevel  logLevel = CMN_LOG_LOD_INIT_VERBOSE 
) const
protected
static const std::string& mtsIntuitiveDaVinci::ManipulatorIndexToString ( ManipulatorIndexType  manipulatorIndex)
static

Conversion from manipulator index to string

void mtsIntuitiveDaVinci::Run ( void  )
virtual

Pure virtual method that gets overloaded to run the actual task.

Implements mtsTask.

void mtsIntuitiveDaVinci::SetOutputLogFile ( const std::string  filename)

Set filename to log the API to in the bin format

void mtsIntuitiveDaVinci::SetSourceHost ( const std::string  _ipaddress,
const unsigned int  _port = 5002,
const unsigned int  _password = 0x1111 
)
void mtsIntuitiveDaVinci::SetSourceLogFile ( const std::string  _filename)
void mtsIntuitiveDaVinci::SetupAllInterfaces ( void  )
protected
void mtsIntuitiveDaVinci::SetupArmsInterfaces ( void  )
protected
void mtsIntuitiveDaVinci::SetupCameraInterfaces ( void  )
protected
void mtsIntuitiveDaVinci::SetupConsoleInterfaces ( void  )
protected
void mtsIntuitiveDaVinci::SetupEventInterfaces ( void  )
protected

Setup all interfaces and populate them with commands and events

void mtsIntuitiveDaVinci::SetupMastersInterfaces ( void  )
protected
void mtsIntuitiveDaVinci::SetupSlavesInterfaces ( void  )
protected
void mtsIntuitiveDaVinci::StartLogging ( void  )

Start logging to bin file.

bool mtsIntuitiveDaVinci::StartStream ( void  )
protected
void mtsIntuitiveDaVinci::Startup ( void  )
virtual

Virtual method that gets overloaded, and is run before the component is started.

Reimplemented from mtsComponent.

void mtsIntuitiveDaVinci::StopLogging ( void  )

Stop logging to bin file.

void mtsIntuitiveDaVinci::StopStream ( void  )
protected
void mtsIntuitiveDaVinci::StreamCallback ( void  )
protected

Friends And Related Function Documentation

void mtsIntuitiveDaVinciUtilities::EventCallbackInternal ( int  manipulatorId,
int  eventId,
int *  arguments,
void *  userData 
)
friend
void mtsIntuitiveDaVinciUtilities::StreamCallbackInternal ( void *  userData)
friend

Member Data Documentation

ArmData* mtsIntuitiveDaVinci::Arms[(ECM1-MTML1)+1]
protected

Info for all arms, this container is the primary one

SlaveArmData* mtsIntuitiveDaVinci::CameraArms[(ECM1-ECM1)+1]
protected

Camera arm ECM1

bool mtsIntuitiveDaVinci::Connected
protected
ConsoleData mtsIntuitiveDaVinci::Console
protected

Console data

ConsoleData* mtsIntuitiveDaVinci::Consoles[(CONSOLE2-CONSOLE1)+1]
protected
EventData mtsIntuitiveDaVinci::Events
protected

Event data

std::string mtsIntuitiveDaVinci::IPAddress
protected
MasterArmData* mtsIntuitiveDaVinci::MasterArms[(MTMR2-MTML1)+1]
protected

Info for all master arms, different way to access masters only

std::string mtsIntuitiveDaVinci::OutputLogFileName
protected
unsigned int mtsIntuitiveDaVinci::Password
protected
unsigned int mtsIntuitiveDaVinci::Port
protected
unsigned int mtsIntuitiveDaVinci::RateInHz
protected
SlaveArmData* mtsIntuitiveDaVinci::SlaveArms[(ECM1-PSM1)+1]
protected

Info for all slave arms, including camera

std::string mtsIntuitiveDaVinci::SourceLogFileName
protected
bool mtsIntuitiveDaVinci::UseLogFile
protected

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