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