00001
00002
00003
#ifndef classMyMip
00004
#define classMyMip
00005
00006
class MyMip;
00007
00008
#include <string>
00009
#include <mip/MipDevice.h>
00010
#include <mip/Constants.h>
00011
00017 class MyMip:
public EventInterface,
public MipDevice {
00018
00019
private:
00021
bool mDriveMotor;
00023
double mAngleNow;
00025
bool mHome;
00027
bool mMoving;
00029
bool mReferenced;
00031
int mError;
00033
int mWarning;
00034
00036
void SendAngle(
double angle);
00037
00038
public:
00040
MyMip(MipManager *mm,
const std::string &device,
int baudrate,
int deviceid);
00041
00043
void Initialize();
00045
void Terminate();
00046
00047
00048
virtual void OnReceivedReadAxisStatus(
int cmdid, eAxisStatusFlags status);
00049
virtual void OnReceivedReadError(
int cmdid, eError error);
00050
virtual void OnReceivedClearError(
int cmdid) {}
00051
virtual void OnReceivedReadWarning(
int cmdid, eWarning warning);
00052
virtual void OnReceivedClearWarning(
int cmdid) {}
00053
virtual void OnReceivedReadVersion(
int cmdid,
int command_interpreter_version,
int runtime_library_version,
int hardware_revision,
int bootrom_version,
int application_number,
int application_version) {}
00054
virtual void OnReceivedSetPosVelocity(
int cmdid) {}
00055
virtual void OnReceivedSetWaitMode(
int cmdid) {}
00056
virtual void OnReceivedMoveAbsolute(
int cmdid) {}
00057
virtual void OnReceivedMoveRelative(
int cmdid) {}
00058
virtual void OnReceivedStopMotion(
int cmdid) {}
00059
virtual void OnReceivedFindHomeSys(
int cmdid) {}
00060
virtual void OnReceivedReadPosition(
int cmdid,
int position);
00061
virtual void OnReceivedReadVelocity(
int cmdid,
int position) {}
00062
virtual void OnReceivedReadVelocityMean(
int cmdid,
int position) {}
00063
virtual void OnReceivedReadCurrent(
int cmdid,
int position) {}
00064
virtual void OnReceivedCheckCRC(
int cmdid,
bool ok,
int crc) {}
00065
00066
00067
void OnEvent();
00068
00070
int AngleToPosition(
double angle);
00072
double PositionToAngle(
int position);
00074
double ShortestAngle(
double anglemust,
double anglenow);
00075
00077 double DegToRad(
double angle) {
return angle/180*PI;}
00079 double RadToDeg(
double angle) {
return angle/PI*180;}
00080 };
00081
00082
#endif