Program Listing for File friClientIf.h

Return to documentation for file (include/fri_client_sdk/friClientIf.h)

#ifndef _KUKA_FRI_CLIENT_H
#define _KUKA_FRI_CLIENT_H


namespace KUKA
{
namespace FRI
{

// forward declarations
struct ClientData;


enum ESessionState
{
  IDLE = 0,
  MONITORING_WAIT = 1,
  MONITORING_READY = 2,
  COMMANDING_WAIT = 3,
  COMMANDING_ACTIVE = 4
};

enum EConnectionQuality
{
  POOR = 0,
  FAIR = 1,
  GOOD = 2,
  EXCELLENT = 3
};

enum ESafetyState
{
  NORMAL_OPERATION = 0,
  SAFETY_STOP_LEVEL_0 = 1,
  SAFETY_STOP_LEVEL_1 = 2,
  SAFETY_STOP_LEVEL_2 = 3
};

enum EOperationMode
{
  TEST_MODE_1 = 0,
  TEST_MODE_2 = 1,
  AUTOMATIC_MODE = 2
};

enum EDriveState
{
  OFF = 0,
  TRANSITIONING = 1,
  ACTIVE = 2
};

enum EControlMode
{
  POSITION_CONTROL_MODE = 0,
  CART_IMP_CONTROL_MODE = 1,
  JOINT_IMP_CONTROL_MODE = 2,
  NO_CONTROL = 3
};


enum EClientCommandMode
{
  NO_COMMAND_MODE = 0,
  POSITION = 1,
  WRENCH = 2,
  TORQUE = 3
};

enum EOverlayType
{
  NO_OVERLAY = 0,
  JOINT = 1,
  CARTESIAN = 2
};


class IClient
{
  friend class ClientApplication;

public:
  virtual ~IClient() {}

  virtual void onStateChange(ESessionState oldState, ESessionState newState) = 0;

  virtual void monitor() = 0;

  virtual void waitForCommand() = 0;

  virtual void command() = 0;

protected:
  virtual ClientData * createData() = 0;

};

}
}


#endif // _KUKA_FRI_CLIENT_H