/***************************************************************
 * PrRobotDefn.h
 *
 * This files contains constants for Robot
 *
 ****************************************************************/

/*
 * modification history
 *----------------------
 *
 * 10/26/97: K.C. Chang: created.
 */

#ifndef _PrRobotDefn_h
#define _PrRobotDefn_h

/*
// Uncomment this block if you want the ProVar configuration.

#define PR_PROVAR

#ifdef PR_PROVAR
#define PR_TRC_0   // base address = 0x100
#include "PrPUMA260Defn.h"    // arm
#include "PrTrackDefn.h"      // base 
#include "PrOttoBockDefn.h"   // gripper 
#include "PrATIDefn.h"        // force sensor
#include "PrEmptyAccelDefn.h" // accel sensor
#endif
*/

// Change the following #include files to use different components
// for your robot.

#define PR_TRC_1   // base address = 0x200
//#define PR_TRC_2   // base address = 0x240
#include "PrPUMA560Defn.h"      // arm
#include "PrEmptyBaseDefn.h"    // base
#include "PrEmptyGripperDefn.h" // gripper
//#include "PrEmptyFSDefn.h"
//#include "PrEmptyAccelDefn.h"
#include "PrJr3ForcePCIDefn.h"  // force sensor
#include "PrJr3AccelPCIDefn.h"  // accel sensor 

#define PR_ARM_ID              PR_MANIP_ID
#define PR_ARM_NOJ             PR_MANIP_NOJ  
#define PR_GRIPPER_ID          PR_HAND_ID
#define PR_GRIPPER_NOJ         PR_HAND_NOJ
#define PR_FS_ID               PR_FORCESENSOR_ID
#define PR_FS_DOF              PR_FORCESENSOR_DOF
#define PR_ACCEL_ID            PR_ACCELSENSOR_ID
#define PR_ACCEL_DOF           PR_ACCELSENSOR_DOF
#define PR_BASE_ID             PR_BODY_ID
#define PR_BASE_NOJ            PR_BODY_NOJ

#define PR_ROBOT_NOJ           (PR_BASE_NOJ+PR_ARM_NOJ)

#define PR_GRIPPER_DIST_PER_COUNT     PR_HAND_DIST_PER_COUNT     
#define PR_GRIPPER_GEARRATIO          PR_HAND_GEARRATIO          
#define PR_GRIPPER_MOTORSCALE         PR_HAND_MOTORSCALE         
#define PR_GRIPPER_POSITION_AT_NEST   PR_HAND_POSITION_AT_NEST   
#define PR_GRIPPER_ENCODER_COUNT_ZERO PR_HAND_ENCODER_COUNT_ZERO 

#define PR_BASE_DIST_PER_COUNT        PR_BODY_DIST_PER_COUNT        
#define PR_BASE_GEARRATIO             PR_BODY_GEARRATIO             
#define PR_BASE_MOTORSCALE            PR_BODY_MOTORSCALE            
#define PR_BASE_POSITION_AT_NEST      PR_BODY_POSITION_AT_NEST      
#define PR_BASE_ENCODER_COUNT_ZERO    PR_BODY_ENCODER_COUNT_ZERO    

#define PR_ARM_GEARRATIO              PR_MANIP_GEARRATIO
#define PR_ARM_MOTORSCALE             PR_MANIP_MOTORSCALE

#define PR_ARM_COUPLING34             PR_MANIP_COUPLING34
#define PR_ARM_COUPLING35             PR_MANIP_COUPLING35
#define PR_ARM_COUPLING45             PR_MANIP_COUPLING45

#define PR_ARM_ENCODER_COUNT_PER_REV  PR_MANIP_ENCODER_COUNT_PER_REV
#define PR_ARM_POSITION_AT_NEST       PR_MANIP_POSITION_AT_NEST
#define PR_ARM_ENCODER_COUNT_ZERO     PR_MANIP_ENCODER_COUNT_ZERO 


#define PR_GRIPPER_ENCODER_CHANNEL_START   0
#define PR_BASE_ENCODER_CHANNEL_START      (PR_GRIPPER_ENCODER_CHANNEL_START+PR_GRIPPER_NOJ)

#define PR_BASE_JOINT_START     0
#define PR_ARM_JOINT_START      (PR_BASE_JOINT_START + PR_BASE_NOJ)
#define PR_GRIPPER_JOINT_START  PR_ROBOT_NOJ

#define PR_ARM_DAC_CHANNEL_START       0
#define PR_GRIPPER_DAC_CHANNEL_START   (PR_ARM_DAC_CHANNEL_START+PR_ARM_NOJ)
#define PR_BASE_DAC_CHANNEL_START      (PR_GRIPPER_DAC_CHANNEL_START+PR_GRIPPER_NOJ)

#endif // _PrRobotDefn_h
