00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00016 #if !defined(_MOTOR_H)
00017 #define _MOTOR_H
00018
00019 #include <string>
00020
00021 #include <boost/serialization/nvp.hpp>
00022 #include <boost/integer.hpp>
00023
00024 #include "serialPort.h"
00025 #include "motors.h"
00026
00027
00031 class Motor_t: private Motors_t {
00032 public:
00034 Motor_t(): id(0) {};
00035
00038 void setId(const boost::uint_value_t<16>::least &newId) {this->id = newId;};
00039
00040 void reset();
00041 void address(const boost::uint_value_t<16000000>::least &num);
00042 void acceleration (const boost::uint_value_t<16000000>::least &num);
00043 void backward (const boost::uint_value_t<16000000>::least &num);
00044 void clear (const boost::uint_value_t<16000000>::least &num);
00045 void clearKill ();
00046 void direction ();
00047 void endOfLoop ();
00048 void forward (const boost::uint_value_t<16000000>::least &num);
00049 void goAbsolute (const boost::uint_value_t<16000000>::least &num);
00050 void goPositive ();
00051 void goNegative ();
00052 void home ();
00053 void mif (const boost::uint_value_t<16000000>::least &num1,const bool &value, const boost::uint_value_t<16000000>::least &num1);
00054 void jump (const boost::uint_value_t<16000000>::least &num);
00055 void kill ();
00056 void loop (const boost::uint_value_t<16000000>::least &num);
00057 void microstepping (const boost::uint_value_t<64>::least &num);
00058 void number (const boost::uint_value_t<16000000>::least &num);
00059 void one (const boost::uint_value_t<16000000>::least &num);
00060 void profile (const boost::uint_value_t<16000000>::least &num);
00061 void qualification (const boost::uint_value_t<4>::least &num);
00062 void run ();
00063 void startStop (const boost::uint_value_t<1950>::least &num);
00064 void turnOn (const boost::uint_value_t<63>::least &num);
00065 void upload (const boost::uint_value_t<16000000>::least &num);
00066 void velocity (const boost::uint_value_t<16000000>::least &num);
00067 void wait (const boost::uint_value_t<16000000>::least &num);
00068 void thisUnit();
00069 void zero (const boost::uint_value_t<16000000>::least &num);
00070 void disable ();
00071 void enable ();
00072 void seekNegative (const boost::uint_value_t<16000000>::least &num);
00073 void seekPositive (const boost::uint_value_t<16000000>::least &num);
00074 void equal (const boost::uint_value_t<16000000>::least &num);
00075 void load (const boost::uint_value_t<16000000>::least &num);
00076 void query (const boost::uint_value_t<16000000>::least &num);
00077 void order (const boost::uint_value_t<16000000>::least &num);
00078 void add (const boost::uint_value_t<16000000>::least &num);
00079 void substract (const boost::uint_value_t<16000000>::least &num);
00080 void divide (const boost::uint_value_t<16000000>::least &num);
00081 void multiply (const boost::uint_value_t<16000000>::least &num);
00082 void moveToRegister (const boost::uint_value_t<16000000>::least &num);
00083 void moveFromRegister (const boost::uint_value_t<16000000>::least &num);
00084 void subroutine (const boost::uint_value_t<16000000>::least &num);
00085 void endOfSubroutine (const boost::uint_value_t<16000000>::least &num);
00086
00087
00088 protected:
00089 boost::uint_value_t<16000000>::least id;
00090
00091 private:
00093 friend class boost::serialization::access;
00094
00098 template<class archive>
00099 void serialize(archive& ar, const unsigned int version);
00100 };
00101
00102
00103 template<class archive>
00104 void Motor_t::serialize(archive& ar, const unsigned int version)
00105 {
00106 using boost::serialization::make_nvp;
00107 ar & make_nvp("Id", this->id);
00108 };
00109
00110 #endif //_MOTOR_H