Go to the documentation of this file.00001
00002
00003 #pragma once
00004
00005 #include "kniBase.h"
00006 #include <memory>
00007 namespace KNInet {
00008
00009 public ref class Katana
00010 {
00011 private:
00012 CLMBase* katana;
00013 CCdlCOM* comm;
00014 CCdlSocket* socket;
00015 CCplSerialCRC* proto;
00016 public:
00017
00018 Katana(System::String ^ipAddress, System::String ^configurationFile);
00019 ~Katana();
00020
00021 void calibrate(void);
00022
00023 array<int>^ getRobotEncoders(bool refreshEncoders);
00024 void moveRobotToEnc(array<int> ^encoders, bool waitUntilReached, int waitTimeout);
00025 void moveMotorToEnc(int motor, int encoder, bool waitUntilReached, int waitTimeout);
00026 array<double>^ getCoordinates(bool refreshEncoders);
00027 void moveRobotTo(array<double> ^coordinates, bool waitUntilReached, int waitTimeout);
00028 void moveRobotLinearTo(array<double> ^coordinates, bool waitUntilReached, int waitTimeout);
00029
00030 void setMaximumLinearVelocity(double maximumVelocity);
00031 double getMaximumLinearVelocity();
00032
00033 void setActivatePositionController(bool activate);
00034 bool getActivatePositionController();
00035
00036 void enableCollisionLimits();
00037 void disableCollisionLimits();
00038 void unBlock();
00039 void setCollisionLimit(int number, int limit);
00040
00041 int getNumberOfMotors();
00042 int getMotorEncoders(int number, bool refreshEncoders);
00043
00044 int getMotorVelocityLimit(int number);
00045 int getMotorAccelerationLimit(int number);
00046 void setMotorVelocityLimit(int number, int velocity);
00047 void setMotorAccelerationLimit(int number, int acceleration);
00048
00049 void openGripper(bool waitUntilReached, int waitTimeout);
00050 void closeGripper(bool waitUntilReached, int waitTimeout);
00051
00052 void freezeRobot();
00053 void freezeMotor(int number);
00054 void switchRobotOn();
00055 void switchRobotOff();
00056 void switchMotorOn(int number);
00057 void switchMotorOff(int number);
00058 };
00059 }