00001 #ifndef YOUBOT_YOUBOTJOINTPARAMETER_H
00002 #define YOUBOT_YOUBOTJOINTPARAMETER_H
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00050 
00051 
00052 
00053 
00054 #include <vector>
00055 #include <sstream>
00056 #include <boost/limits.hpp>
00057 #include "generic/Logger.hpp"
00058 #include "generic/Units.hpp"
00059 #include "generic/Time.hpp"
00060 #include "generic/Exceptions.hpp"
00061 #include "generic-joint/JointParameter.hpp"
00062 #include "youbot/YouBotJointParameterReadOnly.hpp"
00063 #include "youbot/ProtocolDefinitions.hpp"
00064 #include "youbot/YouBotSlaveMsg.hpp"
00065 #include "youbot/YouBotSlaveMailboxMsg.hpp"
00066 #include "youbot/YouBotJointStorage.hpp"
00067 namespace youbot {
00068 
00069 enum CalibrationDirection {
00070   POSITIV,
00071   NEGATIV
00072 
00073 };
00074 
00075 
00076 
00077 class YouBotApiJointParameter : public JointParameter {
00078 friend class YouBotJoint;
00079   protected:
00080     YouBotApiJointParameter();
00081 
00082 
00083   public:
00084     virtual ~YouBotApiJointParameter();
00085 
00086     virtual void toString(std::string& value) = 0;
00087 
00088 
00089   protected:
00090     virtual void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const = 0;
00091 
00092     virtual void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) = 0;
00093 
00094     virtual std::string getName() const = 0;
00095 
00096     virtual ParameterType getType() const = 0;
00097 
00098     std::string name;
00099 
00100     ParameterType parameterType;
00101 
00102 };
00103 
00104 
00105 
00106 class YouBotJointParameter : public YouBotJointParameterReadOnly {
00107 friend class YouBotJoint;
00108   protected:
00109     YouBotJointParameter();
00110 
00111 
00112   public:
00113     virtual ~YouBotJointParameter();
00114 
00115     virtual void toString(std::string& value) = 0;
00116 
00117 
00118   protected:
00119     virtual void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const = 0;
00120 
00121     virtual void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) = 0;
00122 
00123     virtual std::string getName() const = 0;
00124 
00125     virtual ParameterType getType() const = 0;
00126 
00127     std::string name;
00128 
00129     ParameterType parameterType;
00130 
00131 };
00132 
00133 
00134 
00135 class JointName : public YouBotApiJointParameter {
00136 friend class YouBotJoint;
00137   public:
00138     JointName();
00139 
00140     virtual ~JointName();
00141 
00142     void getParameter(std::string& parameter) const;
00143 
00144     void setParameter(const std::string parameter);
00145 
00146     void toString(std::string& value);
00147 
00148 
00149   private:
00150     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00151 
00152     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00153 
00154     std::string getName() const {return this->name;};
00155 
00156     ParameterType getType() const {return this->parameterType;};
00157 
00158     std::string value;
00159 
00160     std::string name;
00161 
00162     ParameterType parameterType;
00163 
00164 };
00165 
00166 
00167 
00168 class InitializeJoint : public YouBotJointParameter {
00169 friend class YouBotJoint;
00170   public:
00171     InitializeJoint();
00172 
00173     virtual ~InitializeJoint();
00174 
00175     void getParameter(bool& parameter) const;
00176 
00177     void setParameter(const bool parameter);
00178 
00179     void toString(std::string& value);
00180 
00181 
00182   private:
00183     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00184 
00185     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00186 
00187     std::string getName() const {return this->name;};
00188 
00189     ParameterType getType() const {return this->parameterType;};
00190 
00191     bool value;
00192 
00193     std::string name;
00194 
00195     ParameterType parameterType;
00196 
00197 };
00198 
00199 
00200 
00201 class CalibrateJoint : public YouBotApiJointParameter {
00202 friend class YouBotJoint;
00203   public:
00204     CalibrateJoint();
00205 
00206     virtual ~CalibrateJoint();
00207 
00208     void getParameter(bool& doCalibration, CalibrationDirection& calibrationDirection, quantity<si::current>& maxCurrent) const;
00209 
00210     void setParameter(const bool doCalibration, CalibrationDirection calibrationDirection, const quantity<si::current>& maxCurrent);
00211 
00212     void toString(std::string& value);
00213 
00214 
00215   private:
00216     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00217 
00218     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00219 
00220     std::string getName() const {return this->name;};
00221 
00222     ParameterType getType() const {return this->parameterType;};
00223 
00224     bool doCalibration;
00225 
00226     std::string name;
00227 
00228     ParameterType parameterType;
00229 
00230     CalibrationDirection calibrationDirection;
00231 
00232     quantity<si::current> maxCurrent;
00233 
00234 };
00235 
00236 
00237 
00238 class FirmwareVersion : public YouBotApiJointParameter {
00239 friend class YouBotJoint;
00240   public:
00241     FirmwareVersion();
00242 
00243     virtual ~FirmwareVersion();
00244 
00245     void getParameter(int& controllerType, std::string& firmwareVersion) const;
00246 
00247     void setParameter(const int controllerType, const std::string firmwareVersion);
00248 
00249     void toString(std::string& value);
00250 
00251 
00252   private:
00253     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00254 
00255     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00256 
00257     std::string getName() const {return this->name;};
00258 
00259     ParameterType getType() const {return this->parameterType;};
00260 
00261     int controllerType;
00262 
00263     std::string firmwareVersion;
00264 
00265     std::string name;
00266 
00267     ParameterType parameterType;
00268 
00269 };
00270 
00271 
00272 
00273 class GearRatio : public YouBotApiJointParameter {
00274 friend class YouBotJoint;
00275   public:
00276     GearRatio();
00277 
00278     virtual ~GearRatio();
00279 
00280     void getParameter(double& parameter) const;
00281 
00282     void setParameter(const double parameter);
00283 
00284     void toString(std::string& value);
00285 
00286 
00287   private:
00288     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00289 
00290     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00291 
00292     std::string getName() const {return this->name;};
00293 
00294     ParameterType getType() const {return this->parameterType;};
00295 
00296     double value;
00297 
00298     std::string name;
00299 
00300     ParameterType parameterType;
00301 
00302 };
00303 
00304 
00305 
00306 class EncoderTicksPerRound : public YouBotApiJointParameter {
00307 friend class YouBotJoint;
00308   public:
00309     EncoderTicksPerRound();
00310 
00311     virtual ~EncoderTicksPerRound();
00312 
00313     void getParameter(unsigned int& parameter) const;
00314 
00315     void setParameter(const unsigned int parameter);
00316 
00317     void toString(std::string& value);
00318 
00319 
00320   private:
00321     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00322 
00323     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00324 
00325     std::string getName() const {return this->name;};
00326 
00327     ParameterType getType() const {return this->parameterType;};
00328 
00329     unsigned int value;
00330 
00331     std::string name;
00332 
00333     ParameterType parameterType;
00334 
00335 };
00336 
00337 
00338 
00339 class InverseMovementDirection : public YouBotApiJointParameter {
00340 friend class YouBotJoint;
00341   public:
00342     InverseMovementDirection();
00343 
00344     virtual ~InverseMovementDirection();
00345 
00346     void getParameter(bool& parameter) const;
00347 
00348     void setParameter(const bool parameter);
00349 
00350     void toString(std::string& value);
00351 
00352 
00353   private:
00354     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00355 
00356     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00357 
00358     std::string getName() const {return this->name;};
00359 
00360     ParameterType getType() const {return this->parameterType;};
00361 
00362     bool value;
00363 
00364     std::string name;
00365 
00366     ParameterType parameterType;
00367 
00368 };
00369 
00370 
00371 
00372 class JointLimits : public YouBotApiJointParameter {
00373 friend class YouBotJoint;
00374   public:
00375     JointLimits();
00376 
00377     virtual ~JointLimits();
00378 
00379     void getParameter(int& lowerLimit, int& upperLimit, bool& areLimitsActive) const;
00380 
00381     void setParameter(const int lowerLimit, const int upperLimit, const bool activateLimits);
00382 
00383     void toString(std::string& value);
00384 
00385 
00386   private:
00387     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00388 
00389     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00390 
00391     std::string getName() const {return this->name;};
00392 
00393     ParameterType getType() const {return this->parameterType;};
00394 
00395     int lowerLimit;
00396 
00397     int upperLimit;
00398 
00399     std::string name;
00400 
00401     ParameterType parameterType;
00402 
00403     bool areLimitsActive;
00404 
00405 };
00406 
00407 
00408 
00409 class JointLimitsRadian : public YouBotApiJointParameter {
00410 friend class YouBotJoint;
00411   public:
00412     JointLimitsRadian();
00413 
00414     virtual ~JointLimitsRadian();
00415 
00416     void getParameter(quantity<plane_angle>& lowerLimit, quantity<plane_angle>& upperLimit, bool& areLimitsActive) const;
00417 
00418     void setParameter(const quantity<plane_angle>& lowerLimit, const quantity<plane_angle>& upperLimit, const bool activateLimits);
00419 
00420     void toString(std::string& value);
00421 
00422 
00423   private:
00424     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00425 
00426     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00427 
00428     std::string getName() const {return this->name;};
00429 
00430     ParameterType getType() const {return this->parameterType;};
00431 
00432     quantity<plane_angle> lowerLimit;
00433 
00434     quantity<plane_angle> upperLimit;
00435 
00436     std::string name;
00437 
00438     ParameterType parameterType;
00439 
00440     bool areLimitsActive;
00441 
00442 };
00443 
00444 
00445 
00446 class TorqueConstant : public YouBotApiJointParameter {
00447 friend class YouBotJoint;
00448   public:
00449     TorqueConstant();
00450 
00451     virtual ~TorqueConstant();
00452 
00453     void getParameter(double& parameter) const;
00454 
00455     void setParameter(const double parameter);
00456 
00457     void toString(std::string& value);
00458 
00459 
00460   private:
00461     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {};
00462 
00463     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {};
00464 
00465     std::string getName() const {return this->name;};
00466 
00467     ParameterType getType() const {return this->parameterType;};
00468 
00469     double value;
00470 
00471     std::string name;
00472 
00473     ParameterType parameterType;
00474 
00475 };
00476 
00477 
00478 
00479 class MaximumPositioningVelocity : public YouBotJointParameter {
00480 friend class YouBotJoint;
00481   public:
00482     MaximumPositioningVelocity();
00483 
00484     virtual ~MaximumPositioningVelocity();
00485 
00486     void getParameter(quantity<angular_velocity>& parameter) const;
00487 
00488     void setParameter(const quantity<angular_velocity>& parameter);
00489 
00490     void toString(std::string& value);
00491 
00492 
00493   private:
00494     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00495 
00496     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00497 
00498     std::string getName() const {return this->name;};
00499 
00500     ParameterType getType() const {return this->parameterType;};
00501 
00502     quantity<angular_velocity> upperLimit;
00503 
00504     quantity<angular_velocity> lowerLimit;
00505 
00506     quantity<angular_velocity> value;
00507 
00508     std::string name;
00509 
00510     ParameterType parameterType;
00511 
00512 };
00513 
00514 
00515 
00516 class MotorAcceleration : public YouBotJointParameter {
00517 friend class YouBotJoint;
00518   public:
00519     MotorAcceleration();
00520 
00521     virtual ~MotorAcceleration();
00522 
00523     void getParameter(quantity<angular_acceleration>& parameter) const;
00524 
00525     void setParameter(const quantity<angular_acceleration>& parameter);
00526 
00527     void toString(std::string& value);
00528 
00529 
00530   private:
00531     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00532 
00533     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00534 
00535     std::string getName() const {return this->name;};
00536 
00537     ParameterType getType() const {return this->parameterType;};
00538 
00539     quantity<angular_acceleration> upperLimit;
00540 
00541     quantity<angular_acceleration> lowerLimit;
00542 
00543     quantity<angular_acceleration> value;
00544 
00545     std::string name;
00546 
00547     ParameterType parameterType;
00548 
00549 };
00550 
00551 
00552 
00553 class RampGeneratorSpeedAndPositionControl : public YouBotJointParameter {
00554 friend class YouBotJoint;
00555   public:
00556     RampGeneratorSpeedAndPositionControl();
00557 
00558     virtual ~RampGeneratorSpeedAndPositionControl();
00559 
00560     void getParameter(bool& parameter) const;
00561 
00562     void setParameter(const bool parameter);
00563 
00564     void toString(std::string& value);
00565 
00566 
00567   private:
00568     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00569 
00570     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00571 
00572     std::string getName() const {return this->name;};
00573 
00574     ParameterType getType() const {return this->parameterType;};
00575 
00576     bool value;
00577 
00578     std::string name;
00579 
00580     ParameterType parameterType;
00581 
00582 };
00583 
00584 
00585 
00586 class PositionControlSwitchingThreshold : public YouBotJointParameter {
00587 friend class YouBotJoint;
00588   public:
00589     PositionControlSwitchingThreshold();
00590 
00591     virtual ~PositionControlSwitchingThreshold();
00592 
00593     void getParameter(quantity<angular_velocity>& parameter) const;
00594 
00595     void setParameter(const quantity<angular_velocity>& parameter);
00596 
00597     void toString(std::string& value);
00598 
00599 
00600   private:
00601     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00602 
00603     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00604 
00605     std::string getName() const {return this->name;};
00606 
00607     ParameterType getType() const {return this->parameterType;};
00608 
00609     quantity<angular_velocity> upperLimit;
00610 
00611     quantity<angular_velocity> lowerLimit;
00612 
00613     quantity<angular_velocity> value;
00614 
00615     std::string name;
00616 
00617     ParameterType parameterType;
00618 
00619 };
00620 
00621 
00622 
00623 
00624 class SpeedControlSwitchingThreshold : public YouBotJointParameter {
00625 friend class YouBotJoint;
00626   public:
00627     SpeedControlSwitchingThreshold();
00628 
00629     virtual ~SpeedControlSwitchingThreshold();
00630 
00631     void getParameter(quantity<angular_velocity>& parameter) const;
00632 
00633     void setParameter(const quantity<angular_velocity>& parameter);
00634 
00635     void toString(std::string& value);
00636 
00637 
00638   private:
00639     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00640 
00641     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00642 
00643     std::string getName() const {return this->name;};
00644 
00645     ParameterType getType() const {return this->parameterType;};
00646 
00647     quantity<angular_velocity> upperLimit;
00648 
00649     quantity<angular_velocity> lowerLimit;
00650 
00651     quantity<angular_velocity> value;
00652 
00653     std::string name;
00654 
00655     ParameterType parameterType;
00656 
00657 };
00658 
00659 
00660 
00661 class VelocityThresholdForHallFX : public YouBotJointParameter {
00662 friend class YouBotJoint;
00663   public:
00664     VelocityThresholdForHallFX();
00665 
00666     virtual ~VelocityThresholdForHallFX();
00667 
00668     void getParameter(quantity<angular_velocity>& parameter) const;
00669 
00670     void setParameter(const quantity<angular_velocity>& parameter);
00671 
00672     void toString(std::string& value);
00673 
00674 
00675   private:
00676     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00677 
00678     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00679 
00680     std::string getName() const {return this->name;};
00681 
00682     ParameterType getType() const {return this->parameterType;};
00683 
00684     quantity<angular_velocity> upperLimit;
00685 
00686     quantity<angular_velocity> lowerLimit;
00687 
00688     quantity<angular_velocity> value;
00689 
00690     std::string name;
00691 
00692     ParameterType parameterType;
00693 
00694 };
00695 
00696 
00697 
00698 class PParameterFirstParametersPositionControl : public YouBotJointParameter {
00699 friend class YouBotJoint;
00700   public:
00701     PParameterFirstParametersPositionControl();
00702 
00703     virtual ~PParameterFirstParametersPositionControl();
00704 
00705     void getParameter(int& parameter) const;
00706 
00707     void setParameter(const int parameter);
00708 
00709     void toString(std::string& value);
00710 
00711 
00712   private:
00713     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00714 
00715     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00716 
00717     std::string getName() const {return this->name;};
00718 
00719     ParameterType getType() const {return this->parameterType;};
00720 
00721     int upperLimit;
00722 
00723     int lowerLimit;
00724 
00725     int value;
00726 
00727     std::string name;
00728 
00729     ParameterType parameterType;
00730 
00731 };
00732 
00733 
00734 
00735 class IParameterFirstParametersPositionControl : public YouBotJointParameter {
00736 friend class YouBotJoint;
00737   public:
00738     IParameterFirstParametersPositionControl();
00739 
00740     virtual ~IParameterFirstParametersPositionControl();
00741 
00742     void getParameter(int& parameter) const;
00743 
00744     void setParameter(const int parameter);
00745 
00746     void toString(std::string& value);
00747 
00748 
00749   private:
00750     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00751 
00752     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00753 
00754     std::string getName() const {return this->name;};
00755 
00756     ParameterType getType() const {return this->parameterType;};
00757 
00758     int upperLimit;
00759 
00760     int lowerLimit;
00761 
00762     int value;
00763 
00764     std::string name;
00765 
00766     ParameterType parameterType;
00767 
00768 };
00769 
00770 
00771 
00772 class DParameterFirstParametersPositionControl : public YouBotJointParameter {
00773 friend class YouBotJoint;
00774   public:
00775     DParameterFirstParametersPositionControl();
00776 
00777     virtual ~DParameterFirstParametersPositionControl();
00778 
00779     void getParameter(int& parameter) const;
00780 
00781     void setParameter(const int parameter);
00782 
00783     void toString(std::string& value);
00784 
00785 
00786   private:
00787     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00788 
00789     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00790 
00791     std::string getName() const {return this->name;};
00792 
00793     ParameterType getType() const {return this->parameterType;};
00794 
00795     int upperLimit;
00796 
00797     int lowerLimit;
00798 
00799     int value;
00800 
00801     std::string name;
00802 
00803     ParameterType parameterType;
00804 
00805 };
00806 
00807 
00808 
00809 class IClippingParameterFirstParametersPositionControl : public YouBotJointParameter {
00810 friend class YouBotJoint;
00811   public:
00812     IClippingParameterFirstParametersPositionControl();
00813 
00814     virtual ~IClippingParameterFirstParametersPositionControl();
00815 
00816     void getParameter(int& parameter) const;
00817 
00818     void setParameter(const int parameter);
00819 
00820     void toString(std::string& value);
00821 
00822 
00823   private:
00824     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00825 
00826     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00827 
00828     std::string getName() const {return this->name;};
00829 
00830     ParameterType getType() const {return this->parameterType;};
00831 
00832     int upperLimit;
00833 
00834     int lowerLimit;
00835 
00836     int value;
00837 
00838     std::string name;
00839 
00840     ParameterType parameterType;
00841 
00842 };
00843 
00844 
00845 
00846 class PParameterFirstParametersSpeedControl : public YouBotJointParameter {
00847 friend class YouBotJoint;
00848   public:
00849     PParameterFirstParametersSpeedControl();
00850 
00851     virtual ~PParameterFirstParametersSpeedControl();
00852 
00853     void getParameter(int& parameter) const;
00854 
00855     void setParameter(const int parameter);
00856 
00857     void toString(std::string& value);
00858 
00859 
00860   private:
00861     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00862 
00863     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00864 
00865     std::string getName() const {return this->name;};
00866 
00867     ParameterType getType() const {return this->parameterType;};
00868 
00869     int upperLimit;
00870 
00871     int lowerLimit;
00872 
00873     int value;
00874 
00875     std::string name;
00876 
00877     ParameterType parameterType;
00878 
00879 };
00880 
00881 
00882 
00883 class IParameterFirstParametersSpeedControl : public YouBotJointParameter {
00884 friend class YouBotJoint;
00885   public:
00886     IParameterFirstParametersSpeedControl();
00887 
00888     virtual ~IParameterFirstParametersSpeedControl();
00889 
00890     void getParameter(int& parameter) const;
00891 
00892     void setParameter(const int parameter);
00893 
00894     void toString(std::string& value);
00895 
00896 
00897   private:
00898     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00899 
00900     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00901 
00902     std::string getName() const {return this->name;};
00903 
00904     ParameterType getType() const {return this->parameterType;};
00905 
00906     int upperLimit;
00907 
00908     int lowerLimit;
00909 
00910     int value;
00911 
00912     std::string name;
00913 
00914     ParameterType parameterType;
00915 
00916 };
00917 
00918 
00919 
00920 class DParameterFirstParametersSpeedControl : public YouBotJointParameter {
00921 friend class YouBotJoint;
00922   public:
00923     DParameterFirstParametersSpeedControl();
00924 
00925     virtual ~DParameterFirstParametersSpeedControl();
00926 
00927     void getParameter(int& parameter) const;
00928 
00929     void setParameter(const int parameter);
00930 
00931     void toString(std::string& value);
00932 
00933 
00934   private:
00935     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00936 
00937     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00938 
00939     std::string getName() const {return this->name;};
00940 
00941     ParameterType getType() const {return this->parameterType;};
00942 
00943     int upperLimit;
00944 
00945     int lowerLimit;
00946 
00947     int value;
00948 
00949     std::string name;
00950 
00951     ParameterType parameterType;
00952 
00953 };
00954 
00955 
00956 
00957 class IClippingParameterFirstParametersSpeedControl : public YouBotJointParameter {
00958 friend class YouBotJoint;
00959   public:
00960     IClippingParameterFirstParametersSpeedControl();
00961 
00962     virtual ~IClippingParameterFirstParametersSpeedControl();
00963 
00964     void getParameter(int& parameter) const;
00965 
00966     void setParameter(const int parameter);
00967 
00968     void toString(std::string& value);
00969 
00970 
00971   private:
00972     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
00973 
00974     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
00975 
00976     std::string getName() const {return this->name;};
00977 
00978     ParameterType getType() const {return this->parameterType;};
00979 
00980     int upperLimit;
00981 
00982     int lowerLimit;
00983 
00984     int value;
00985 
00986     std::string name;
00987 
00988     ParameterType parameterType;
00989 
00990 };
00991 
00992 
00993 
00994 class PParameterSecondParametersPositionControl : public YouBotJointParameter {
00995 friend class YouBotJoint;
00996   public:
00997     PParameterSecondParametersPositionControl();
00998 
00999     virtual ~PParameterSecondParametersPositionControl();
01000 
01001     void getParameter(int& parameter) const;
01002 
01003     void setParameter(const int parameter);
01004 
01005     void toString(std::string& value);
01006 
01007 
01008   private:
01009     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01010 
01011     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01012 
01013     std::string getName() const {return this->name;};
01014 
01015     ParameterType getType() const {return this->parameterType;};
01016 
01017     int upperLimit;
01018 
01019     int lowerLimit;
01020 
01021     int value;
01022 
01023     std::string name;
01024 
01025     ParameterType parameterType;
01026 
01027 };
01028 
01029 
01030 
01031 class IParameterSecondParametersPositionControl : public YouBotJointParameter {
01032 friend class YouBotJoint;
01033   public:
01034     IParameterSecondParametersPositionControl();
01035 
01036     virtual ~IParameterSecondParametersPositionControl();
01037 
01038     void getParameter(int& parameter) const;
01039 
01040     void setParameter(const int parameter);
01041 
01042     void toString(std::string& value);
01043 
01044 
01045   private:
01046     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01047 
01048     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01049 
01050     std::string getName() const {return this->name;};
01051 
01052     ParameterType getType() const {return this->parameterType;};
01053 
01054     int upperLimit;
01055 
01056     int lowerLimit;
01057 
01058     int value;
01059 
01060     std::string name;
01061 
01062     ParameterType parameterType;
01063 
01064 };
01065 
01066 
01067 
01068 class DParameterSecondParametersPositionControl : public YouBotJointParameter {
01069 friend class YouBotJoint;
01070   public:
01071     DParameterSecondParametersPositionControl();
01072 
01073     virtual ~DParameterSecondParametersPositionControl();
01074 
01075     void getParameter(int& parameter) const;
01076 
01077     void setParameter(const int parameter);
01078 
01079     void toString(std::string& value);
01080 
01081 
01082   private:
01083     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01084 
01085     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01086 
01087     std::string getName() const {return this->name;};
01088 
01089     ParameterType getType() const {return this->parameterType;};
01090 
01091     int upperLimit;
01092 
01093     int lowerLimit;
01094 
01095     int value;
01096 
01097     std::string name;
01098 
01099     ParameterType parameterType;
01100 
01101 };
01102 
01103 
01104 
01105 class IClippingParameterSecondParametersPositionControl : public YouBotJointParameter {
01106 friend class YouBotJoint;
01107   public:
01108     IClippingParameterSecondParametersPositionControl();
01109 
01110     virtual ~IClippingParameterSecondParametersPositionControl();
01111 
01112     void getParameter(int& parameter) const;
01113 
01114     void setParameter(const int parameter);
01115 
01116     void toString(std::string& value);
01117 
01118 
01119   private:
01120     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01121 
01122     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01123 
01124     std::string getName() const {return this->name;};
01125 
01126     ParameterType getType() const {return this->parameterType;};
01127 
01128     int upperLimit;
01129 
01130     int lowerLimit;
01131 
01132     int value;
01133 
01134     std::string name;
01135 
01136     ParameterType parameterType;
01137 
01138 };
01139 
01140 
01141 
01142 class PParameterSecondParametersSpeedControl : public YouBotJointParameter {
01143 friend class YouBotJoint;
01144   public:
01145     PParameterSecondParametersSpeedControl();
01146 
01147     virtual ~PParameterSecondParametersSpeedControl();
01148 
01149     void getParameter(int& parameter) const;
01150 
01151     void setParameter(const int parameter);
01152 
01153     void toString(std::string& value);
01154 
01155 
01156   private:
01157     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01158 
01159     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01160 
01161     std::string getName() const {return this->name;};
01162 
01163     ParameterType getType() const {return this->parameterType;};
01164 
01165     int upperLimit;
01166 
01167     int lowerLimit;
01168 
01169     int value;
01170 
01171     std::string name;
01172 
01173     ParameterType parameterType;
01174 
01175 };
01176 
01177 
01178 
01179 class IParameterSecondParametersSpeedControl : public YouBotJointParameter {
01180 friend class YouBotJoint;
01181   public:
01182     IParameterSecondParametersSpeedControl();
01183 
01184     virtual ~IParameterSecondParametersSpeedControl();
01185 
01186     void getParameter(int& parameter) const;
01187 
01188     void setParameter(const int parameter);
01189 
01190     void toString(std::string& value);
01191 
01192 
01193   private:
01194     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01195 
01196     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01197 
01198     std::string getName() const {return this->name;};
01199 
01200     ParameterType getType() const {return this->parameterType;};
01201 
01202     int upperLimit;
01203 
01204     int lowerLimit;
01205 
01206     int value;
01207 
01208     std::string name;
01209 
01210     ParameterType parameterType;
01211 
01212 };
01213 
01214 
01215 
01216 class DParameterSecondParametersSpeedControl : public YouBotJointParameter {
01217 friend class YouBotJoint;
01218   public:
01219     DParameterSecondParametersSpeedControl();
01220 
01221     virtual ~DParameterSecondParametersSpeedControl();
01222 
01223     void getParameter(int& parameter) const;
01224 
01225     void setParameter(const int parameter);
01226 
01227     void toString(std::string& value);
01228 
01229 
01230   private:
01231     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01232 
01233     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01234 
01235     std::string getName() const {return this->name;};
01236 
01237     ParameterType getType() const {return this->parameterType;};
01238 
01239     int upperLimit;
01240 
01241     int lowerLimit;
01242 
01243     int value;
01244 
01245     std::string name;
01246 
01247     ParameterType parameterType;
01248 
01249 };
01250 
01251 
01252 
01253 class IClippingParameterSecondParametersSpeedControl : public YouBotJointParameter {
01254 friend class YouBotJoint;
01255   public:
01256     IClippingParameterSecondParametersSpeedControl();
01257 
01258     virtual ~IClippingParameterSecondParametersSpeedControl();
01259 
01260     void getParameter(int& parameter) const;
01261 
01262     void setParameter(const int parameter);
01263 
01264     void toString(std::string& value);
01265 
01266 
01267   private:
01268     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01269 
01270     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01271 
01272     std::string getName() const {return this->name;};
01273 
01274     ParameterType getType() const {return this->parameterType;};
01275 
01276     int upperLimit;
01277 
01278     int lowerLimit;
01279 
01280     int value;
01281 
01282     std::string name;
01283 
01284     ParameterType parameterType;
01285 
01286 };
01287 
01288 
01289 
01290 class PParameterCurrentControl : public YouBotJointParameter {
01291 friend class YouBotJoint;
01292   public:
01293     PParameterCurrentControl();
01294 
01295     virtual ~PParameterCurrentControl();
01296 
01297     void getParameter(int& parameter) const;
01298 
01299     void setParameter(const int parameter);
01300 
01301     void toString(std::string& value);
01302 
01303 
01304   private:
01305     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01306 
01307     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01308 
01309     std::string getName() const {return this->name;};
01310 
01311     ParameterType getType() const {return this->parameterType;};
01312 
01313     int upperLimit;
01314 
01315     int lowerLimit;
01316 
01317     int value;
01318 
01319     std::string name;
01320 
01321     ParameterType parameterType;
01322 
01323 };
01324 
01325 
01326 
01327 class IParameterCurrentControl : public YouBotJointParameter {
01328 friend class YouBotJoint;
01329   public:
01330     IParameterCurrentControl();
01331 
01332     virtual ~IParameterCurrentControl();
01333 
01334     void getParameter(int& parameter) const;
01335 
01336     void setParameter(const int parameter);
01337 
01338     void toString(std::string& value);
01339 
01340 
01341   private:
01342     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01343 
01344     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01345 
01346     std::string getName() const {return this->name;};
01347 
01348     ParameterType getType() const {return this->parameterType;};
01349 
01350     int upperLimit;
01351 
01352     int lowerLimit;
01353 
01354     int value;
01355 
01356     std::string name;
01357 
01358     ParameterType parameterType;
01359 
01360 };
01361 
01362 
01363 
01364 class DParameterCurrentControl : public YouBotJointParameter {
01365 friend class YouBotJoint;
01366   public:
01367     DParameterCurrentControl();
01368 
01369     virtual ~DParameterCurrentControl();
01370 
01371     void getParameter(int& parameter) const;
01372 
01373     void setParameter(const int parameter);
01374 
01375     void toString(std::string& value);
01376 
01377 
01378   private:
01379     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01380 
01381     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01382 
01383     std::string getName() const {return this->name;};
01384 
01385     ParameterType getType() const {return this->parameterType;};
01386 
01387     int upperLimit;
01388 
01389     int lowerLimit;
01390 
01391     int value;
01392 
01393     std::string name;
01394 
01395     ParameterType parameterType;
01396 
01397 };
01398 
01399 
01400 
01401 class IClippingParameterCurrentControl : public YouBotJointParameter {
01402 friend class YouBotJoint;
01403   public:
01404     IClippingParameterCurrentControl();
01405 
01406     virtual ~IClippingParameterCurrentControl();
01407 
01408     void getParameter(int& parameter) const;
01409 
01410     void setParameter(const int parameter);
01411 
01412     void toString(std::string& value);
01413 
01414 
01415   private:
01416     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01417 
01418     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01419 
01420     std::string getName() const {return this->name;};
01421 
01422     ParameterType getType() const {return this->parameterType;};
01423 
01424     int upperLimit;
01425 
01426     int lowerLimit;
01427 
01428     int value;
01429 
01430     std::string name;
01431 
01432     ParameterType parameterType;
01433 
01434 };
01435 
01436 
01437 
01438 class MaximumVelocityToSetPosition : public YouBotJointParameter {
01439 friend class YouBotJoint;
01440   public:
01441     MaximumVelocityToSetPosition();
01442 
01443     virtual ~MaximumVelocityToSetPosition();
01444 
01445     void getParameter(quantity<angular_velocity>& parameter) const;
01446 
01447     void setParameter(const quantity<angular_velocity>& parameter);
01448 
01449     void toString(std::string& value);
01450 
01451 
01452   private:
01453     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01454 
01455     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01456 
01457     std::string getName() const {return this->name;};
01458 
01459     ParameterType getType() const {return this->parameterType;};
01460 
01461     quantity<angular_velocity> upperLimit;
01462 
01463     quantity<angular_velocity> lowerLimit;
01464 
01465     quantity<angular_velocity> value;
01466 
01467     std::string name;
01468 
01469     ParameterType parameterType;
01470 
01471 };
01472 
01473 
01474 
01475 class PositionTargetReachedDistance : public YouBotJointParameter {
01476 friend class YouBotJoint;
01477   public:
01478     PositionTargetReachedDistance();
01479 
01480     virtual ~PositionTargetReachedDistance();
01481 
01482     void getParameter(int& parameter) const;
01483 
01484     void setParameter(const int parameter);
01485 
01486     void toString(std::string& value);
01487 
01488 
01489   private:
01490     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01491 
01492     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01493 
01494     std::string getName() const {return this->name;};
01495 
01496     ParameterType getType() const {return this->parameterType;};
01497 
01498     int upperLimit;
01499 
01500     int lowerLimit;
01501 
01502     int value;
01503 
01504     std::string name;
01505 
01506     ParameterType parameterType;
01507 
01508 };
01509 
01510 
01511 
01512 class ClearI2tExceededFlag : public YouBotJointParameter {
01513 friend class YouBotJoint;
01514   public:
01515     ClearI2tExceededFlag();
01516 
01517     virtual ~ClearI2tExceededFlag();
01518 
01519     void getParameter() const;
01520 
01521     void setParameter();
01522 
01523     void toString(std::string& value);
01524 
01525 
01526   private:
01527     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01528 
01529     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01530 
01531     std::string getName() const {return this->name;};
01532 
01533     ParameterType getType() const {return this->parameterType;};
01534 
01535     bool value;
01536 
01537     std::string name;
01538 
01539     ParameterType parameterType;
01540 
01541 };
01542 
01543 
01544 
01545 
01546 class ClearMotorControllerTimeoutFlag : public YouBotJointParameter {
01547 friend class YouBotJoint;
01548   public:
01549     ClearMotorControllerTimeoutFlag();
01550 
01551     virtual ~ClearMotorControllerTimeoutFlag();
01552 
01553     bool getParameter() const;
01554 
01555     void setParameter();
01556 
01557     void toString(std::string& value);
01558 
01559 
01560   private:
01561     void getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const;
01562 
01563     void setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage);
01564 
01565     std::string getName() const {return this->name;};
01566 
01567     ParameterType getType() const {return this->parameterType;};
01568 
01569     bool value;
01570 
01571     std::string name;
01572 
01573     ParameterType parameterType;
01574 
01575 };
01576 
01577 
01578 
01579 class PParameterTrajectoryControl : public YouBotApiJointParameter {
01580 friend class YouBotJoint;
01581   public:
01582     PParameterTrajectoryControl();
01583 
01584     virtual ~PParameterTrajectoryControl();
01585 
01586     void getParameter(double& parameter) const;
01587 
01588     void setParameter(const double parameter);
01589 
01590     void toString(std::string& value);
01591 
01592 
01593   private:
01594     std::string getName() const {return this->name;};
01595 
01596     ParameterType getType() const {return this->parameterType;};
01597 
01598     double upperLimit;
01599 
01600     double lowerLimit;
01601 
01602     double value;
01603 
01604     std::string name;
01605 
01606     ParameterType parameterType;
01607 
01608 };
01609 
01610 
01611 
01612 class IParameterTrajectoryControl : public YouBotApiJointParameter {
01613 friend class YouBotJoint;
01614   public:
01615     IParameterTrajectoryControl();
01616 
01617     virtual ~IParameterTrajectoryControl();
01618 
01619     void getParameter(double& parameter) const;
01620 
01621     void setParameter(const double parameter);
01622 
01623     void toString(std::string& value);
01624 
01625 
01626   private:
01627     std::string getName() const {return this->name;};
01628 
01629     ParameterType getType() const {return this->parameterType;};
01630 
01631     double upperLimit;
01632 
01633     double lowerLimit;
01634 
01635     double value;
01636 
01637     std::string name;
01638 
01639     ParameterType parameterType;
01640 
01641 };
01642 
01643 
01644 
01645 class DParameterTrajectoryControl : public YouBotApiJointParameter {
01646 friend class YouBotJoint;
01647   public:
01648     DParameterTrajectoryControl();
01649 
01650     virtual ~DParameterTrajectoryControl();
01651 
01652     void getParameter(double& parameter) const;
01653 
01654     void setParameter(const double parameter);
01655 
01656     void toString(std::string& value);
01657 
01658 
01659   private:
01660     std::string getName() const {return this->name;};
01661 
01662     ParameterType getType() const {return this->parameterType;};
01663 
01664     double upperLimit;
01665 
01666     double lowerLimit;
01667 
01668     double value;
01669 
01670     std::string name;
01671 
01672     ParameterType parameterType;
01673 
01674 };
01675 
01676 
01677 
01678 class IClippingParameterTrajectoryControl : public YouBotApiJointParameter {
01679 friend class YouBotJoint;
01680   public:
01681     IClippingParameterTrajectoryControl();
01682 
01683     virtual ~IClippingParameterTrajectoryControl();
01684 
01685     void getParameter(double& parameter) const;
01686 
01687     void setParameter(const double parameter);
01688 
01689     void toString(std::string& value);
01690 
01691 
01692   private:
01693     std::string getName() const {return this->name;};
01694 
01695     ParameterType getType() const {return this->parameterType;};
01696 
01697     double upperLimit;
01698 
01699     double lowerLimit;
01700 
01701     double value;
01702 
01703     std::string name;
01704 
01705     ParameterType parameterType;
01706 
01707 };
01708 
01709 } 
01710 #endif