PhantomDriver.h File Reference

#include "CCallback.h"

Functions

int OpenPhantom (int num)
void PhantomAccess (int access_type)
void ClosePhantoms ()
int ResetPhantomEncoders (int num)
int StartCommunicationPhantom (int num)
int StopCommunicationPhantom (int num)
int ReadPositionPhantom (int num, double &iPosX, double &iPosY, double &iPosZ)
int ReadVelocityPhantom (int num, double &iVelX, double &iVelY, double &iVelZ)
int ReadNormalizedPositionPhantom (int num, double &iPosX, double &iPosY, double &iPosZ)
int SetForcePhantom (int num, const double &iForceX, const double &iForceY, const double &iForceZ)
int SetForceTorquePhantom (int num, const double &iForceX, const double &iForceY, const double &iForceZ, const double &iTorqueX, const double &iTorqueY, const double &iTorqueZ)
int ReadOrientMat3DOFPhantom (int num, double *m)
int ReadSwitchPhantom (int num)
double GetMaxForcePhantom (int num)
 double GetMaxForcePhantom(int num), reads what the max force is for Phantom num
int GetWorkspaceScalePhantom (const int &num, double &scale)
int SetCallbackPhantom (void(*callbackFunc)(void *), void *a_data)
 Set up a callback for this device. Only supported by the HD library right now.

Detailed Description


Function Documentation

void ClosePhantoms (  ) 

Last function to be called: closes all the phantoms. In case no phantom currently exists the value returned is negative, 1 in case of success.

double GetMaxForcePhantom ( int  num  ) 

double GetMaxForcePhantom(int num), reads what the max force is for Phantom num

double GetMaxForcePhantom(int num), reads what the max force is for Phantom num

Parameters:
num Which Phantom should we be reading?

int GetWorkspaceScalePhantom ( const int &  num,
double &  scale 
)

Reads the scale factor from mm to normalized coordinates for Phantom num. Multiply normalized coordinates by this value to get back to mm.

Parameters:
num handle to the phantom
scale Returns the scale factor associated with this Phantom
Returns:
error code

int OpenPhantom ( int  num  ) 

This function opens a Phantom device port. The phantom is specified by an integer (n>0) that represents the nth phantom in the the Phantom Control Panel list. If the phantom is opened successfully the function returns a handle (non-negative integer) for the phantom. If something goes wrong a negative value is returned.

Parameters:
num Which Phantom should we be opening?

void PhantomAccess ( int  access_type  ) 

Set the access mode for this Phantom. Only meaningful when using Ghost, which no one should be doing.

Parameters:
access_type Should we be using deviceio or gstforceeffect to talk to this Phantom?

int ReadNormalizedPositionPhantom ( int  num,
double &  iPosX,
double &  iPosY,
double &  iPosZ 
)

ReadNormalizedPositionPhantom(int num,double &iPosX,double &iPosY,double &iPosZ); reads tip position for phantom num the function returns 1 if everything went ok, a negative value otherwise (check list of errors). Position values are returned in the three iPos variables. Note that positions are expressed with a value included in the interval [-1,1] for a cube centered in the device's workspace center. This is to ensure that a same demo may be used using different devices without having to change any of the code Note that positions are expressed in mm with respect to a Ghost reference frame (X: right, Y: up, Z: toward user)

Parameters:
num Which Phantom should we be reading?
iPosX Returned device position
iPosY Returned device position
iPosZ Returned device position

int ReadOrientMat3DOFPhantom ( int  num,
double *  m 
)

ReadOrientMat3DOFPhantom(int num, double *m);, reads the orientation matrix of the stylus for a 3dof wristed phantom device and returns it in a Phantom coordinate frame. The function returns 1 if everything went ok, a negative value otherwise (check list of errors).

Parameters:
num Which Phantom are we reading?
*m Output orientation matrix?

int ReadPositionPhantom ( int  num,
double &  iPosX,
double &  iPosY,
double &  iPosZ 
)

ReadPositionPhantom(int num,double &iPosX,double &iPosY,double &iPosZ); reads tip position for phantom num the function returns 1 if everything went ok, a negative value otherwise (check list of errors). Position values are returned in the three iPos variables. Note that positions are expressed in mm with respect to a Ghost reference frame (X: right, Y: up, Z: toward user)

Parameters:
num Which Phantom should we read?
iPosX Returned position
iPosY Returned position
iPosZ Returned position

int ReadSwitchPhantom ( int  num  ) 

ReadSwitchPhantom(int num), reads the switch from phantom num

Parameters:
num Which phantom should we be reading?
Returns:
A bitmask with button 0 in bit 0, etc., or < 0 for an error

int ReadVelocityPhantom ( int  num,
double &  iVelX,
double &  iVelY,
double &  iVelZ 
)

ReadVelocityPhantom(int num,double &iVelX,double &iVelY,double &iVelZ); reads tip velocity for phantom num the function returns 1 if everything went ok, a negative value otherwise (check list of errors) Note that velocity is expressed in mm/sec with respect to a Ghost reference frame (X: right, Y: up, Z: toward user)

Parameters:
num Which Phantom should we read?
iVelX Returned velocity
iVelY Returned velocity
iVelZ Returned velocity

int ResetPhantomEncoders ( int  num  ) 

Reset Phantom number num. Returns a negative value is operation failed, 1 in case of success.

Parameters:
num Which Phantom should we be resetting?

int SetCallbackPhantom ( void(*)(void *)  callbackFunc,
void *  a_data 
)

Set up a callback for this device. Only supported by the HD library right now.

Sets up a user-defined callback function.

Parameters:
void(*callbackFunc)(void*) Pointer to callback function
void* a_data Pointer to be passed to callback function
Returns:
error code

int SetForcePhantom ( int  num,
const double &  iForceX,
const double &  iForceY,
const double &  iForceZ 
)

SetForcePhantom(int num,const double &iForceX,const double &iForceY,const double &iForceZ); writes force to phantom num the function returns 1 if everything went ok, a negative value otherwise (check list of errors) Note that forces are expressed in Newtons with respect to a Ghost reference frame (X: right, Y: up, Z: toward user) Note: no safety features are implemented other than the standard Ghost ones.

Parameters:
num Which phantom should we read?
iForceX Output force
iForceY Output force
iForceZ Output force

int SetForceTorquePhantom ( int  num,
const double &  iForceX,
const double &  iForceY,
const double &  iForceZ,
const double &  iTorqueX,
const double &  iTorqueY,
const double &  iTorqueZ 
)

SetForceTorquePhantom(int num, const double &iForceX, const double &iForceY, const double &iForceZ, const double &iTorqueX, const double &iTorqueY, const double &iTorqueZ); writes Forces and Torques to phantom num. the function returns 1 if everything went ok, a negative value otherwise (check list of errors) Note that forces are expressed in Newtons and torques are expressed in Newtons Meter with respect to a Phantom reference frame (X: right, Y: up, Z: toward user) Note: no safety features are implemented other than the standard Ghost ones.

Parameters:
num Which Phantom should we read?
iForceX Output force
iForceY Output force
iForceZ Output force
iTorqueX Output torque
iTorqueY Output torque
iTorqueZ Output torque

int StartCommunicationPhantom ( int  num  ) 

This function starts the Communication with the phantom num. Returns 1 if everything went OK, a negative value otherwise.

Parameters:
num Which Phantom should we talk to?

int StopCommunicationPhantom ( int  num  ) 

StopCommunicationPhantom(int num), Stops the effect of phantom i, basically disabling forces and position reading for such phantom. Note that the overall servoloop will still be running since the other phantom may be not disabled.

The function returns 1 if everything went ok, a negative value otherwise (check list of errors)

Parameters:
num Which Phantom should we stop talking to?


Generated on Mon Jun 11 09:41:46 2007 for CHAI 3D by  doxygen 1.5.2