YouBotJointParameter.cpp

Go to the documentation of this file.
00001 /****************************************************************
00002  *
00003  * Copyright (c) 2011
00004  * All rights reserved.
00005  *
00006  * Hochschule Bonn-Rhein-Sieg
00007  * University of Applied Sciences
00008  * Computer Science Department
00009  *
00010  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00011  *
00012  * Author:
00013  * Jan Paulus, Nico Hochgeschwender, Michael Reckhaus, Azamat Shakhimardanov
00014  * Supervised by:
00015  * Gerhard K. Kraetzschmar
00016  *
00017  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00018  *
00019  * This sofware is published under a dual-license: GNU Lesser General Public 
00020  * License LGPL 2.1 and BSD license. The dual-license implies that users of this
00021  * code may choose which terms they prefer.
00022  *
00023  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00024  *
00025  * Redistribution and use in source and binary forms, with or without
00026  * modification, are permitted provided that the following conditions are met:
00027  *
00028  *     * Redistributions of source code must retain the above copyright
00029  *       notice, this list of conditions and the following disclaimer.
00030  *     * Redistributions in binary form must reproduce the above copyright
00031  *       notice, this list of conditions and the following disclaimer in the
00032  *       documentation and/or other materials provided with the distribution.
00033  *     * Neither the name of the Hochschule Bonn-Rhein-Sieg nor the names of its
00034  *       contributors may be used to endorse or promote products derived from
00035  *       this software without specific prior written permission.
00036  *
00037  * This program is free software: you can redistribute it and/or modify
00038  * it under the terms of the GNU Lesser General Public License LGPL as
00039  * published by the Free Software Foundation, either version 2.1 of the
00040  * License, or (at your option) any later version or the BSD license.
00041  *
00042  * This program is distributed in the hope that it will be useful,
00043  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00044  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00045  * GNU Lesser General Public License LGPL and the BSD license for more details.
00046  *
00047  * You should have received a copy of the GNU Lesser General Public
00048  * License LGPL and BSD license along with this program.
00049  *
00050  ****************************************************************/
00051 #include "youbot/YouBotJointParameter.hpp"
00052 namespace youbot {
00053 
00054 YouBotApiJointParameter::YouBotApiJointParameter() {
00055   // Bouml preserved body begin 000D91F1
00056   // Bouml preserved body end 000D91F1
00057 }
00058 
00059 YouBotApiJointParameter::~YouBotApiJointParameter() {
00060   // Bouml preserved body begin 000D9271
00061   // Bouml preserved body end 000D9271
00062 }
00063 
00064 YouBotJointParameter::YouBotJointParameter() {
00065   // Bouml preserved body begin 0005BB71
00066   // Bouml preserved body end 0005BB71
00067 }
00068 
00069 YouBotJointParameter::~YouBotJointParameter() {
00070   // Bouml preserved body begin 0005BBF1
00071   // Bouml preserved body end 0005BBF1
00072 }
00073 
00074 JointName::JointName() {
00075   // Bouml preserved body begin 0005C0F1
00076     this->name = "JointName";
00077     this->parameterType = API_PARAMETER;
00078   // Bouml preserved body end 0005C0F1
00079 }
00080 
00081 JointName::~JointName() {
00082   // Bouml preserved body begin 0005C171
00083   // Bouml preserved body end 0005C171
00084 }
00085 
00086 void JointName::getParameter(std::string& parameter) const {
00087   // Bouml preserved body begin 0005C1F1
00088     parameter = this->value;
00089   // Bouml preserved body end 0005C1F1
00090 }
00091 
00092 void JointName::setParameter(const std::string parameter) {
00093   // Bouml preserved body begin 0005C271
00094     this->value = parameter;
00095   // Bouml preserved body end 0005C271
00096 }
00097 
00098 void JointName::toString(std::string& value) {
00099   // Bouml preserved body begin 0009C471
00100   std::stringstream ss;
00101   ss << this->name << ": " << this->value;
00102   value  = ss.str();
00103   // Bouml preserved body end 0009C471
00104 }
00105 
00106 InitializeJoint::InitializeJoint() {
00107   // Bouml preserved body begin 00095171
00108     this->name = "InitializeJoint";
00109     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00110   // Bouml preserved body end 00095171
00111 }
00112 
00113 InitializeJoint::~InitializeJoint() {
00114   // Bouml preserved body begin 000951F1
00115   // Bouml preserved body end 000951F1
00116 }
00117 
00118 void InitializeJoint::getParameter(bool& parameter) const {
00119   // Bouml preserved body begin 00095271
00120     parameter = this->value;
00121   // Bouml preserved body end 00095271
00122 }
00123 
00124 void InitializeJoint::setParameter(const bool parameter) {
00125   // Bouml preserved body begin 000952F1
00126     this->value = parameter;
00127   // Bouml preserved body end 000952F1
00128 }
00129 
00130 void InitializeJoint::toString(std::string& value) {
00131   // Bouml preserved body begin 0009C971
00132   std::stringstream ss;
00133   ss << this->name << ": " << this->value;
00134   value  = ss.str();
00135   // Bouml preserved body end 0009C971
00136 }
00137 
00138 void InitializeJoint::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00139   // Bouml preserved body begin 00095371
00140     message.stctOutput.commandNumber = msgType;
00141     message.stctOutput.moduleAddress = DRIVE;
00142     message.stctOutput.typeNumber = 15; //InitializeJoint
00143     message.stctOutput.value = (int)this->value;
00144   // Bouml preserved body end 00095371
00145 }
00146 
00147 void InitializeJoint::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00148   // Bouml preserved body begin 000953F1
00149     this->value = message.stctInput.value;
00150   // Bouml preserved body end 000953F1
00151 }
00152 
00153 CalibrateJoint::CalibrateJoint() {
00154   // Bouml preserved body begin 00061F71
00155     this->name = "CalibrateJoint";
00156     this->parameterType = API_PARAMETER;
00157   // Bouml preserved body end 00061F71
00158 }
00159 
00160 CalibrateJoint::~CalibrateJoint() {
00161   // Bouml preserved body begin 00061FF1
00162   // Bouml preserved body end 00061FF1
00163 }
00164 
00165 void CalibrateJoint::getParameter(bool& doCalibration, CalibrationDirection& calibrationDirection, quantity<si::current>& maxCurrent) const {
00166   // Bouml preserved body begin 00062071
00167     doCalibration = this->doCalibration;
00168     calibrationDirection = this->calibrationDirection;
00169     maxCurrent = this->maxCurrent;
00170   // Bouml preserved body end 00062071
00171 }
00172 
00173 void CalibrateJoint::setParameter(const bool doCalibration, CalibrationDirection calibrationDirection, const quantity<si::current>& maxCurrent) {
00174   // Bouml preserved body begin 000620F1
00175     this->doCalibration = doCalibration;
00176     this->calibrationDirection = calibrationDirection;
00177     this->maxCurrent = maxCurrent;
00178   // Bouml preserved body end 000620F1
00179 }
00180 
00181 void CalibrateJoint::toString(std::string& value) {
00182   // Bouml preserved body begin 0009C771
00183   std::stringstream ss;
00184   ss << this->name << ": " << "doCalibration " <<this->doCalibration << " calibrationDirection "<< this->calibrationDirection << " maxCurrent " << this->maxCurrent;
00185   value  = ss.str();
00186   // Bouml preserved body end 0009C771
00187 }
00188 
00189 FirmwareVersion::FirmwareVersion() {
00190   // Bouml preserved body begin 00098D71
00191     this->name = "FirmwareVersion";
00192     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00193   // Bouml preserved body end 00098D71
00194 }
00195 
00196 FirmwareVersion::~FirmwareVersion() {
00197   // Bouml preserved body begin 00098DF1
00198   // Bouml preserved body end 00098DF1
00199 }
00200 
00201 void FirmwareVersion::getParameter(int& controllerType, std::string& firmwareVersion) const {
00202   // Bouml preserved body begin 00098E71
00203     controllerType = this->controllerType;
00204     firmwareVersion = this->firmwareVersion;
00205   // Bouml preserved body end 00098E71
00206 }
00207 
00208 void FirmwareVersion::setParameter(const int controllerType, const std::string firmwareVersion) {
00209   // Bouml preserved body begin 00098EF1
00210     this->controllerType = controllerType;
00211     this->firmwareVersion = firmwareVersion;
00212   // Bouml preserved body end 00098EF1
00213 }
00214 
00215 void FirmwareVersion::toString(std::string& value) {
00216   // Bouml preserved body begin 0009C571
00217   std::stringstream ss;
00218   ss << this->name << ": Controller: " << this->controllerType << " Version: " << this->firmwareVersion;
00219   value  = ss.str();
00220   // Bouml preserved body end 0009C571
00221 }
00222 
00223 void FirmwareVersion::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00224   // Bouml preserved body begin 00098F71
00225     message.stctOutput.commandNumber = FIRMWARE_VERSION;
00226     message.stctOutput.moduleAddress = DRIVE;
00227     message.stctOutput.typeNumber = 0; //FirmwareVersion
00228     message.stctOutput.value = 0;
00229   // Bouml preserved body end 00098F71
00230 }
00231 
00232 void FirmwareVersion::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00233   // Bouml preserved body begin 00098FF1
00234   // Bouml preserved body end 00098FF1
00235 }
00236 
00237 GearRatio::GearRatio() {
00238   // Bouml preserved body begin 0005BDF1
00239     this->name = "GearRatio";
00240     this->parameterType = API_PARAMETER;
00241   // Bouml preserved body end 0005BDF1
00242 }
00243 
00244 GearRatio::~GearRatio() {
00245   // Bouml preserved body begin 0005BE71
00246   // Bouml preserved body end 0005BE71
00247 }
00248 
00249 void GearRatio::getParameter(double& parameter) const {
00250   // Bouml preserved body begin 0005BEF1
00251     parameter = this->value;
00252   // Bouml preserved body end 0005BEF1
00253 }
00254 
00255 void GearRatio::setParameter(const double parameter) {
00256   // Bouml preserved body begin 0005BF71
00257     if (parameter == 0) {
00258       throw std::out_of_range("A Gear Ratio of 0 is not allowed");
00259     }
00260     this->value = parameter;
00261   // Bouml preserved body end 0005BF71
00262 }
00263 
00264 void GearRatio::toString(std::string& value) {
00265   // Bouml preserved body begin 0009C5F1
00266   std::stringstream ss;
00267   ss << this->name << ": " << this->value;
00268   value  = ss.str();
00269   // Bouml preserved body end 0009C5F1
00270 }
00271 
00272 EncoderTicksPerRound::EncoderTicksPerRound() {
00273   // Bouml preserved body begin 0005C3F1
00274     this->name = "EncoderTicksPerRound";
00275     this->parameterType = API_PARAMETER;
00276   // Bouml preserved body end 0005C3F1
00277 }
00278 
00279 EncoderTicksPerRound::~EncoderTicksPerRound() {
00280   // Bouml preserved body begin 0005C471
00281   // Bouml preserved body end 0005C471
00282 }
00283 
00284 void EncoderTicksPerRound::getParameter(unsigned int& parameter) const {
00285   // Bouml preserved body begin 0005C4F1
00286     parameter = this->value;
00287   // Bouml preserved body end 0005C4F1
00288 }
00289 
00290 void EncoderTicksPerRound::setParameter(const unsigned int parameter) {
00291   // Bouml preserved body begin 0005C571
00292     if (parameter == 0) {
00293       throw std::out_of_range("Zero Encoder Ticks per Round are not allowed");
00294     }
00295     this->value = parameter;
00296   // Bouml preserved body end 0005C571
00297 }
00298 
00299 void EncoderTicksPerRound::toString(std::string& value) {
00300   // Bouml preserved body begin 0009C671
00301   std::stringstream ss;
00302   ss << this->name << ": " << this->value;
00303   value  = ss.str();
00304   // Bouml preserved body end 0009C671
00305 }
00306 
00307 InverseMovementDirection::InverseMovementDirection() {
00308   // Bouml preserved body begin 0005C6F1
00309     this->name = "InverseMovementDirection";
00310     this->parameterType = API_PARAMETER;
00311   // Bouml preserved body end 0005C6F1
00312 }
00313 
00314 InverseMovementDirection::~InverseMovementDirection() {
00315   // Bouml preserved body begin 0005C771
00316   // Bouml preserved body end 0005C771
00317 }
00318 
00319 void InverseMovementDirection::getParameter(bool& parameter) const {
00320   // Bouml preserved body begin 0005C7F1
00321     parameter = this->value;
00322   // Bouml preserved body end 0005C7F1
00323 }
00324 
00325 void InverseMovementDirection::setParameter(const bool parameter) {
00326   // Bouml preserved body begin 0005C871
00327     this->value = parameter;
00328   // Bouml preserved body end 0005C871
00329 }
00330 
00331 void InverseMovementDirection::toString(std::string& value) {
00332   // Bouml preserved body begin 0009C6F1
00333   std::stringstream ss;
00334   ss << this->name << ": " << this->value;
00335   value  = ss.str();
00336   // Bouml preserved body end 0009C6F1
00337 }
00338 
00339 JointLimits::JointLimits() {
00340   // Bouml preserved body begin 00063EF1
00341     this->name = "JointLimits";
00342     this->parameterType = API_PARAMETER;
00343     this->lowerLimit = 0;
00344     this->upperLimit = 0;
00345     this->areLimitsActive = true;
00346   // Bouml preserved body end 00063EF1
00347 }
00348 
00349 JointLimits::~JointLimits() {
00350   // Bouml preserved body begin 00063F71
00351   // Bouml preserved body end 00063F71
00352 }
00353 
00354 void JointLimits::getParameter(int& lowerLimit, int& upperLimit, bool& areLimitsActive) const {
00355   // Bouml preserved body begin 00063FF1
00356     lowerLimit = this->lowerLimit;
00357     upperLimit = this->upperLimit;
00358     areLimitsActive = this->areLimitsActive;
00359   // Bouml preserved body end 00063FF1
00360 }
00361 
00362 void JointLimits::setParameter(const int lowerLimit, const int upperLimit, const bool activateLimits) {
00363   // Bouml preserved body begin 00064071
00364     if (lowerLimit > upperLimit) {
00365       throw std::out_of_range("The lower joint limit it not allowed to be bigger than the upper limit");
00366     }
00367     this->lowerLimit = lowerLimit;
00368     this->upperLimit = upperLimit;
00369     this->areLimitsActive = activateLimits;
00370   // Bouml preserved body end 00064071
00371 }
00372 
00373 void JointLimits::toString(std::string& value) {
00374   // Bouml preserved body begin 0009C7F1
00375   std::stringstream ss;
00376   ss << this->name << ": lower Limit: " << this->lowerLimit  << " upper Limit: " << this->upperLimit;
00377   value  = ss.str();
00378   // Bouml preserved body end 0009C7F1
00379 }
00380 
00381 JointLimitsRadian::JointLimitsRadian() {
00382   // Bouml preserved body begin 000D3EF1
00383     this->name = "JointLimitsRadian";
00384     this->parameterType = API_PARAMETER;
00385     this->lowerLimit = 0;
00386     this->upperLimit = 0;
00387     this->areLimitsActive = true;
00388   // Bouml preserved body end 000D3EF1
00389 }
00390 
00391 JointLimitsRadian::~JointLimitsRadian() {
00392   // Bouml preserved body begin 000D3F71
00393   // Bouml preserved body end 000D3F71
00394 }
00395 
00396 void JointLimitsRadian::getParameter(quantity<plane_angle>& lowerLimit, quantity<plane_angle>& upperLimit, bool& areLimitsActive) const {
00397   // Bouml preserved body begin 000D3FF1
00398     lowerLimit = this->lowerLimit;
00399     upperLimit = this->upperLimit;
00400     areLimitsActive = this->areLimitsActive;
00401   // Bouml preserved body end 000D3FF1
00402 }
00403 
00404 void JointLimitsRadian::setParameter(const quantity<plane_angle>& lowerLimit, const quantity<plane_angle>& upperLimit, const bool activateLimits) {
00405   // Bouml preserved body begin 000D4071
00406     if (lowerLimit > upperLimit) {
00407       throw std::out_of_range("The lower joint limit it not allowed to be bigger than the upper limit");
00408     }
00409     this->lowerLimit = lowerLimit;
00410     this->upperLimit = upperLimit;
00411     this->areLimitsActive = activateLimits;
00412   // Bouml preserved body end 000D4071
00413 }
00414 
00415 void JointLimitsRadian::toString(std::string& value) {
00416   // Bouml preserved body begin 000D40F1
00417   std::stringstream ss;
00418   ss << this->name << ": lower Limit: " << this->lowerLimit  << " upper Limit: " << this->upperLimit;
00419   value  = ss.str();
00420   // Bouml preserved body end 000D40F1
00421 }
00422 
00423 TorqueConstant::TorqueConstant() {
00424   // Bouml preserved body begin 000C71F1
00425     this->name = "TorqueConstant";
00426     this->parameterType = API_PARAMETER;
00427   // Bouml preserved body end 000C71F1
00428 }
00429 
00430 TorqueConstant::~TorqueConstant() {
00431   // Bouml preserved body begin 000C7271
00432   // Bouml preserved body end 000C7271
00433 }
00434 
00435 void TorqueConstant::getParameter(double& parameter) const {
00436   // Bouml preserved body begin 000C72F1
00437     parameter = this->value;
00438   // Bouml preserved body end 000C72F1
00439 }
00440 
00441 void TorqueConstant::setParameter(const double parameter) {
00442   // Bouml preserved body begin 000C7371
00443     if (parameter == 0 || parameter < 0) {
00444       throw std::out_of_range("It is not allowed to set a zero or negative torque constant");
00445     }
00446     this->value = parameter;
00447   // Bouml preserved body end 000C7371
00448 }
00449 
00450 void TorqueConstant::toString(std::string& value) {
00451   // Bouml preserved body begin 000C73F1
00452   std::stringstream ss;
00453   ss << this->name << ": " << this->value;
00454   value  = ss.str();
00455   // Bouml preserved body end 000C73F1
00456 }
00457 
00458 MaximumPositioningVelocity::MaximumPositioningVelocity() {
00459   // Bouml preserved body begin 0005A171
00460     this->name = "MaximumPositioningVelocity";
00461     this->lowerLimit = INT_MIN * radian_per_second;
00462     this->upperLimit = INT_MAX * radian_per_second;
00463     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00464   // Bouml preserved body end 0005A171
00465 }
00466 
00467 MaximumPositioningVelocity::~MaximumPositioningVelocity() {
00468   // Bouml preserved body begin 0005A1F1
00469   // Bouml preserved body end 0005A1F1
00470 }
00471 
00472 void MaximumPositioningVelocity::getParameter(quantity<angular_velocity>& parameter) const {
00473   // Bouml preserved body begin 00059CF1
00474     parameter = this->value;
00475   // Bouml preserved body end 00059CF1
00476 }
00477 
00478 void MaximumPositioningVelocity::setParameter(const quantity<angular_velocity>& parameter) {
00479   // Bouml preserved body begin 00059C71
00480     if (this->lowerLimit > parameter) {
00481       throw std::out_of_range("The parameter exceeds the lower limit");
00482     }
00483     if (this->upperLimit < parameter) {
00484       throw std::out_of_range("The parameter exceeds the upper limit");
00485     }
00486 
00487     this->value = parameter;
00488   // Bouml preserved body end 00059C71
00489 }
00490 
00491 void MaximumPositioningVelocity::toString(std::string& value) {
00492   // Bouml preserved body begin 0009C4F1
00493   std::stringstream ss;
00494   ss << this->name << ": " << this->value;
00495   value  = ss.str();
00496   // Bouml preserved body end 0009C4F1
00497 }
00498 
00499 void MaximumPositioningVelocity::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00500   // Bouml preserved body begin 0005A0F1
00501 
00502     message.stctOutput.commandNumber = msgType;
00503     message.stctOutput.moduleAddress = DRIVE;
00504     message.stctOutput.typeNumber = 4; //MaximumPositioningVelocity
00505     message.stctOutput.value = (int32) round((value.value() / (storage.gearRatio * 2.0 * M_PI)) * 60.0);
00506 
00507   // Bouml preserved body end 0005A0F1
00508 }
00509 
00510 void MaximumPositioningVelocity::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00511   // Bouml preserved body begin 0005A071
00512     double motorRPM = (int32)message.stctInput.value;
00513     this->value =  ((motorRPM / 60.0) * storage.gearRatio * 2.0 * M_PI) * radian_per_second;
00514   // Bouml preserved body end 0005A071
00515 }
00516 
00517 MotorAcceleration::MotorAcceleration() {
00518   // Bouml preserved body begin 0006A9F1
00519     this->name = "MotorAcceleration";
00520     this->lowerLimit = INT_MIN * radian_per_second/second;
00521     this->upperLimit = INT_MAX * radian_per_second/second;
00522     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00523   // Bouml preserved body end 0006A9F1
00524 }
00525 
00526 MotorAcceleration::~MotorAcceleration() {
00527   // Bouml preserved body begin 0006AA71
00528   // Bouml preserved body end 0006AA71
00529 }
00530 
00531 void MotorAcceleration::getParameter(quantity<angular_acceleration>& parameter) const {
00532   // Bouml preserved body begin 0006AAF1
00533     parameter = this->value;
00534   // Bouml preserved body end 0006AAF1
00535 }
00536 
00537 void MotorAcceleration::setParameter(const quantity<angular_acceleration>& parameter) {
00538   // Bouml preserved body begin 0006AB71
00539     if (this->lowerLimit > parameter) {
00540       throw std::out_of_range("The parameter exceeds the lower limit");
00541     }
00542     if (this->upperLimit < parameter) {
00543       throw std::out_of_range("The parameter exceeds the upper limit");
00544     }
00545 
00546     this->value = parameter;
00547   // Bouml preserved body end 0006AB71
00548 }
00549 
00550 void MotorAcceleration::toString(std::string& value) {
00551   // Bouml preserved body begin 0009CCF1
00552   std::stringstream ss;
00553   ss << this->name << ": " << this->value;
00554   value  = ss.str();
00555   // Bouml preserved body end 0009CCF1
00556 }
00557 
00558 void MotorAcceleration::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00559   // Bouml preserved body begin 0006ABF1
00560 
00561     message.stctOutput.commandNumber = msgType;
00562     message.stctOutput.moduleAddress = DRIVE;
00563     message.stctOutput.typeNumber = 11; //MotorAcceleration
00564     message.stctOutput.value = (int32) round((value.value() / (storage.gearRatio * 2.0 * M_PI)) * 60.0);
00565 
00566   // Bouml preserved body end 0006ABF1
00567 }
00568 
00569 void MotorAcceleration::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00570   // Bouml preserved body begin 0006AC71
00571     double motorRPMperSec = (int32)message.stctInput.value;
00572     this->value =  ((motorRPMperSec / 60.0) * storage.gearRatio * 2.0 * M_PI) * radian_per_second/second;
00573   // Bouml preserved body end 0006AC71
00574 }
00575 
00576 RampGeneratorSpeedAndPositionControl::RampGeneratorSpeedAndPositionControl() {
00577   // Bouml preserved body begin 0006C5F1
00578     this->name = "RampGeneratorSpeedAndPositionControl";
00579     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00580   // Bouml preserved body end 0006C5F1
00581 }
00582 
00583 RampGeneratorSpeedAndPositionControl::~RampGeneratorSpeedAndPositionControl() {
00584   // Bouml preserved body begin 0006C671
00585   // Bouml preserved body end 0006C671
00586 }
00587 
00588 void RampGeneratorSpeedAndPositionControl::getParameter(bool& parameter) const {
00589   // Bouml preserved body begin 0006C6F1
00590     parameter = this->value;
00591   // Bouml preserved body end 0006C6F1
00592 }
00593 
00594 void RampGeneratorSpeedAndPositionControl::setParameter(const bool parameter) {
00595   // Bouml preserved body begin 0006C771
00596     this->value = parameter;
00597   // Bouml preserved body end 0006C771
00598 }
00599 
00600 void RampGeneratorSpeedAndPositionControl::toString(std::string& value) {
00601   // Bouml preserved body begin 0009D471
00602   std::stringstream ss;
00603   ss << this->name << ": " << this->value;
00604   value  = ss.str();
00605   // Bouml preserved body end 0009D471
00606 }
00607 
00608 void RampGeneratorSpeedAndPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00609   // Bouml preserved body begin 0006C7F1
00610 
00611     message.stctOutput.commandNumber = msgType;
00612     message.stctOutput.moduleAddress = DRIVE;
00613     message.stctOutput.typeNumber = 146; //RampGeneratorSpeedAndPositionControl
00614     message.stctOutput.value = value;
00615 
00616   // Bouml preserved body end 0006C7F1
00617 }
00618 
00619 void RampGeneratorSpeedAndPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00620   // Bouml preserved body begin 0006C871
00621     this->value = message.stctInput.value;
00622   // Bouml preserved body end 0006C871
00623 }
00624 
00625 PositionControlSwitchingThreshold::PositionControlSwitchingThreshold() {
00626   // Bouml preserved body begin 0006F9F1
00627     this->name = "PositionControlSwitchingThreshold";
00628     this->lowerLimit = INT_MIN * radian_per_second;
00629     this->upperLimit = INT_MAX * radian_per_second;
00630     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00631   // Bouml preserved body end 0006F9F1
00632 }
00633 
00634 PositionControlSwitchingThreshold::~PositionControlSwitchingThreshold() {
00635   // Bouml preserved body begin 0006FA71
00636   // Bouml preserved body end 0006FA71
00637 }
00638 
00639 void PositionControlSwitchingThreshold::getParameter(quantity<angular_velocity>& parameter) const {
00640   // Bouml preserved body begin 0006FAF1
00641     parameter = this->value;
00642   // Bouml preserved body end 0006FAF1
00643 }
00644 
00645 void PositionControlSwitchingThreshold::setParameter(const quantity<angular_velocity>& parameter) {
00646   // Bouml preserved body begin 0006FB71
00647     if (this->lowerLimit > parameter) {
00648       throw std::out_of_range("The parameter exceeds the lower limit");
00649     }
00650     if (this->upperLimit < parameter) {
00651       throw std::out_of_range("The parameter exceeds the upper limit");
00652     }
00653 
00654     this->value = parameter;
00655   // Bouml preserved body end 0006FB71
00656 }
00657 
00658 void PositionControlSwitchingThreshold::toString(std::string& value) {
00659   // Bouml preserved body begin 0009CD71
00660   std::stringstream ss;
00661   ss << this->name << ": " << this->value;
00662   value  = ss.str();
00663   // Bouml preserved body end 0009CD71
00664 }
00665 
00666 void PositionControlSwitchingThreshold::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00667   // Bouml preserved body begin 0006FBF1
00668 
00669     message.stctOutput.commandNumber = msgType;
00670     message.stctOutput.moduleAddress = DRIVE;
00671     message.stctOutput.typeNumber = 12; //PositionControlSwitchingThreshold
00672     message.stctOutput.value = (int32) round((value.value() / (storage.gearRatio * 2.0 * M_PI)) * 60.0);
00673 
00674   // Bouml preserved body end 0006FBF1
00675 }
00676 
00677 void PositionControlSwitchingThreshold::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00678   // Bouml preserved body begin 0006FC71
00679     double motorRPM = (int32)message.stctInput.value;
00680     this->value =  ((motorRPM / 60.0) * storage.gearRatio * 2.0 * M_PI) * radian_per_second;
00681   // Bouml preserved body end 0006FC71
00682 }
00683 
00684 SpeedControlSwitchingThreshold::SpeedControlSwitchingThreshold() {
00685   // Bouml preserved body begin 0006A1F1
00686     this->name = "SpeedControlSwitchingThreshold";
00687     this->lowerLimit = INT_MIN * radian_per_second;
00688     this->upperLimit = INT_MAX * radian_per_second;
00689     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00690   // Bouml preserved body end 0006A1F1
00691 }
00692 
00693 SpeedControlSwitchingThreshold::~SpeedControlSwitchingThreshold() {
00694   // Bouml preserved body begin 0006A271
00695   // Bouml preserved body end 0006A271
00696 }
00697 
00698 void SpeedControlSwitchingThreshold::getParameter(quantity<angular_velocity>& parameter) const {
00699   // Bouml preserved body begin 0006A2F1
00700     parameter = this->value;
00701   // Bouml preserved body end 0006A2F1
00702 }
00703 
00704 void SpeedControlSwitchingThreshold::setParameter(const quantity<angular_velocity>& parameter) {
00705   // Bouml preserved body begin 0006A371
00706     if (this->lowerLimit > parameter) {
00707       throw std::out_of_range("The parameter exceeds the lower limit");
00708     }
00709     if (this->upperLimit < parameter) {
00710       throw std::out_of_range("The parameter exceeds the upper limit");
00711     }
00712 
00713     this->value = parameter;
00714   // Bouml preserved body end 0006A371
00715 }
00716 
00717 void SpeedControlSwitchingThreshold::toString(std::string& value) {
00718   // Bouml preserved body begin 0009CB71
00719   std::stringstream ss;
00720   ss << this->name << ": " << this->value;
00721   value  = ss.str();
00722   // Bouml preserved body end 0009CB71
00723 }
00724 
00725 void SpeedControlSwitchingThreshold::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00726   // Bouml preserved body begin 0006A3F1
00727 
00728     message.stctOutput.commandNumber = msgType;
00729     message.stctOutput.moduleAddress = DRIVE;
00730     message.stctOutput.typeNumber = 8; //SpeedControlSwitchingThreshold
00731     message.stctOutput.value = (int32) round((value.value() / (storage.gearRatio * 2.0 * M_PI)) * 60.0);
00732 
00733   // Bouml preserved body end 0006A3F1
00734 }
00735 
00736 void SpeedControlSwitchingThreshold::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00737   // Bouml preserved body begin 0006A471
00738     double motorRPM = (int32)message.stctInput.value;
00739     this->value =  ((motorRPM / 60.0) * storage.gearRatio * 2.0 * M_PI) * radian_per_second;
00740   // Bouml preserved body end 0006A471
00741 }
00742 
00743 VelocityThresholdForHallFX::VelocityThresholdForHallFX() {
00744   // Bouml preserved body begin 00107FF1
00745     this->name = "VelocityThresholdForHallFX";
00746     this->lowerLimit = INT_MIN * radian_per_second;
00747     this->upperLimit = INT_MAX * radian_per_second;
00748     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00749   // Bouml preserved body end 00107FF1
00750 }
00751 
00752 VelocityThresholdForHallFX::~VelocityThresholdForHallFX() {
00753   // Bouml preserved body begin 00108071
00754   // Bouml preserved body end 00108071
00755 }
00756 
00757 void VelocityThresholdForHallFX::getParameter(quantity<angular_velocity>& parameter) const {
00758   // Bouml preserved body begin 001080F1
00759     parameter = this->value;
00760   // Bouml preserved body end 001080F1
00761 }
00762 
00763 void VelocityThresholdForHallFX::setParameter(const quantity<angular_velocity>& parameter) {
00764   // Bouml preserved body begin 00108171
00765     if (this->lowerLimit > parameter) {
00766       throw std::out_of_range("The parameter exceeds the lower limit");
00767     }
00768     if (this->upperLimit < parameter) {
00769       throw std::out_of_range("The parameter exceeds the upper limit");
00770     }
00771 
00772     this->value = parameter;
00773   // Bouml preserved body end 00108171
00774 }
00775 
00776 void VelocityThresholdForHallFX::toString(std::string& value) {
00777   // Bouml preserved body begin 001081F1
00778   std::stringstream ss;
00779   ss << this->name << ": " << this->value;
00780   value  = ss.str();
00781   // Bouml preserved body end 001081F1
00782 }
00783 
00784 void VelocityThresholdForHallFX::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00785   // Bouml preserved body begin 00108271
00786 
00787     message.stctOutput.commandNumber = msgType;
00788     message.stctOutput.moduleAddress = DRIVE;
00789     message.stctOutput.typeNumber = 14; //VelocityThresholdForHallFX
00790     message.stctOutput.value = (int32) round((value.value() / (storage.gearRatio * 2.0 * M_PI)) * 60.0);
00791 
00792   // Bouml preserved body end 00108271
00793 }
00794 
00795 void VelocityThresholdForHallFX::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00796   // Bouml preserved body begin 001082F1
00797     double motorRPM = (int32)message.stctInput.value;
00798     this->value =  ((motorRPM / 60.0) * storage.gearRatio * 2.0 * M_PI) * radian_per_second;
00799   // Bouml preserved body end 001082F1
00800 }
00801 
00802 PParameterFirstParametersPositionControl::PParameterFirstParametersPositionControl() {
00803   // Bouml preserved body begin 0005C9F1
00804     this->name = "PParameterFirstParametersPositionControl";
00805     this->lowerLimit = 0;
00806     this->upperLimit = INT_MAX;
00807     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00808   // Bouml preserved body end 0005C9F1
00809 }
00810 
00811 PParameterFirstParametersPositionControl::~PParameterFirstParametersPositionControl() {
00812   // Bouml preserved body begin 0005CA71
00813   // Bouml preserved body end 0005CA71
00814 }
00815 
00816 void PParameterFirstParametersPositionControl::getParameter(int& parameter) const {
00817   // Bouml preserved body begin 0005CAF1
00818     parameter = this->value;
00819   // Bouml preserved body end 0005CAF1
00820 }
00821 
00822 void PParameterFirstParametersPositionControl::setParameter(const int parameter) {
00823   // Bouml preserved body begin 0005CB71
00824     if (this->lowerLimit > parameter) {
00825       throw std::out_of_range("The parameter exceeds the lower limit");
00826     }
00827     if (this->upperLimit < parameter) {
00828       throw std::out_of_range("The parameter exceeds the upper limit");
00829     }
00830 
00831     this->value = parameter;
00832   // Bouml preserved body end 0005CB71
00833 }
00834 
00835 void PParameterFirstParametersPositionControl::toString(std::string& value) {
00836   // Bouml preserved body begin 0009CDF1
00837   std::stringstream ss;
00838   ss << this->name << ": " << this->value;
00839   value  = ss.str();
00840   // Bouml preserved body end 0009CDF1
00841 }
00842 
00843 void PParameterFirstParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00844   // Bouml preserved body begin 0005CBF1
00845 
00846     message.stctOutput.commandNumber = msgType;
00847     message.stctOutput.moduleAddress = DRIVE;
00848     message.stctOutput.typeNumber = 130; //PParameterFirstParametersPositionControl
00849     message.stctOutput.value = value;
00850 
00851   // Bouml preserved body end 0005CBF1
00852 }
00853 
00854 void PParameterFirstParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00855   // Bouml preserved body begin 0005CC71
00856     this->value = (int32)message.stctInput.value;
00857   // Bouml preserved body end 0005CC71
00858 }
00859 
00860 IParameterFirstParametersPositionControl::IParameterFirstParametersPositionControl() {
00861   // Bouml preserved body begin 000699F1
00862     this->name = "IParameterFirstParametersPositionControl";
00863     this->lowerLimit = INT_MIN;
00864     this->upperLimit = INT_MAX;
00865     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00866   // Bouml preserved body end 000699F1
00867 }
00868 
00869 IParameterFirstParametersPositionControl::~IParameterFirstParametersPositionControl() {
00870   // Bouml preserved body begin 00069A71
00871   // Bouml preserved body end 00069A71
00872 }
00873 
00874 void IParameterFirstParametersPositionControl::getParameter(int& parameter) const {
00875   // Bouml preserved body begin 00069AF1
00876     parameter = this->value;
00877   // Bouml preserved body end 00069AF1
00878 }
00879 
00880 void IParameterFirstParametersPositionControl::setParameter(const int parameter) {
00881   // Bouml preserved body begin 00069B71
00882     if (this->lowerLimit > parameter) {
00883       throw std::out_of_range("The parameter exceeds the lower limit");
00884     }
00885     if (this->upperLimit < parameter) {
00886       throw std::out_of_range("The parameter exceeds the upper limit");
00887     }
00888 
00889     this->value = parameter;
00890   // Bouml preserved body end 00069B71
00891 }
00892 
00893 void IParameterFirstParametersPositionControl::toString(std::string& value) {
00894   // Bouml preserved body begin 0009CE71
00895   std::stringstream ss;
00896   ss << this->name << ": " << this->value;
00897   value  = ss.str();
00898   // Bouml preserved body end 0009CE71
00899 }
00900 
00901 void IParameterFirstParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00902   // Bouml preserved body begin 00069BF1
00903 
00904     message.stctOutput.commandNumber = msgType;
00905     message.stctOutput.moduleAddress = DRIVE;
00906     message.stctOutput.typeNumber = 131; //IParameterFirstParametersPositionControl
00907     message.stctOutput.value = value; 
00908 
00909   // Bouml preserved body end 00069BF1
00910 }
00911 
00912 void IParameterFirstParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00913   // Bouml preserved body begin 00069C71
00914     this->value = (int32)message.stctInput.value;
00915   // Bouml preserved body end 00069C71
00916 }
00917 
00918 DParameterFirstParametersPositionControl::DParameterFirstParametersPositionControl() {
00919   // Bouml preserved body begin 00069DF1
00920     this->name = "DParameterFirstParametersPositionControl";
00921     this->lowerLimit = INT_MIN;
00922     this->upperLimit = INT_MAX;
00923     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00924   // Bouml preserved body end 00069DF1
00925 }
00926 
00927 DParameterFirstParametersPositionControl::~DParameterFirstParametersPositionControl() {
00928   // Bouml preserved body begin 00069E71
00929   // Bouml preserved body end 00069E71
00930 }
00931 
00932 void DParameterFirstParametersPositionControl::getParameter(int& parameter) const {
00933   // Bouml preserved body begin 00069EF1
00934     parameter = this->value;
00935   // Bouml preserved body end 00069EF1
00936 }
00937 
00938 void DParameterFirstParametersPositionControl::setParameter(const int parameter) {
00939   // Bouml preserved body begin 00069F71
00940     if (this->lowerLimit > parameter) {
00941       throw std::out_of_range("The parameter exceeds the lower limit");
00942     }
00943     if (this->upperLimit < parameter) {
00944       throw std::out_of_range("The parameter exceeds the upper limit");
00945     }
00946 
00947     this->value = parameter;
00948   // Bouml preserved body end 00069F71
00949 }
00950 
00951 void DParameterFirstParametersPositionControl::toString(std::string& value) {
00952   // Bouml preserved body begin 0009CEF1
00953   std::stringstream ss;
00954   ss << this->name << ": " << this->value;
00955   value  = ss.str();
00956   // Bouml preserved body end 0009CEF1
00957 }
00958 
00959 void DParameterFirstParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
00960   // Bouml preserved body begin 00069FF1
00961 
00962     message.stctOutput.commandNumber = msgType;
00963     message.stctOutput.moduleAddress = DRIVE;
00964     message.stctOutput.typeNumber = 132; //DParameterFirstParametersPositionControl
00965     message.stctOutput.value = value; 
00966 
00967   // Bouml preserved body end 00069FF1
00968 }
00969 
00970 void DParameterFirstParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
00971   // Bouml preserved body begin 0006A071
00972     this->value = (int32)message.stctInput.value; 
00973   // Bouml preserved body end 0006A071
00974 }
00975 
00976 IClippingParameterFirstParametersPositionControl::IClippingParameterFirstParametersPositionControl() {
00977   // Bouml preserved body begin 0006B1F1
00978     this->name = "IClippingParameterFirstParametersPositionControl";
00979     this->lowerLimit = INT_MIN;
00980     this->upperLimit = INT_MAX;
00981     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
00982   // Bouml preserved body end 0006B1F1
00983 }
00984 
00985 IClippingParameterFirstParametersPositionControl::~IClippingParameterFirstParametersPositionControl() {
00986   // Bouml preserved body begin 0006B271
00987   // Bouml preserved body end 0006B271
00988 }
00989 
00990 void IClippingParameterFirstParametersPositionControl::getParameter(int& parameter) const {
00991   // Bouml preserved body begin 0006B2F1
00992     parameter = this->value;
00993   // Bouml preserved body end 0006B2F1
00994 }
00995 
00996 void IClippingParameterFirstParametersPositionControl::setParameter(const int parameter) {
00997   // Bouml preserved body begin 0006B371
00998     if (this->lowerLimit > parameter) {
00999       throw std::out_of_range("The parameter exceeds the lower limit");
01000     }
01001     if (this->upperLimit < parameter) {
01002       throw std::out_of_range("The parameter exceeds the upper limit");
01003     }
01004 
01005     this->value = parameter;
01006   // Bouml preserved body end 0006B371
01007 }
01008 
01009 void IClippingParameterFirstParametersPositionControl::toString(std::string& value) {
01010   // Bouml preserved body begin 0009D071
01011   std::stringstream ss;
01012   ss << this->name << ": " << this->value;
01013   value  = ss.str();
01014   // Bouml preserved body end 0009D071
01015 }
01016 
01017 void IClippingParameterFirstParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01018   // Bouml preserved body begin 0006B3F1
01019 
01020     message.stctOutput.commandNumber = msgType;
01021     message.stctOutput.moduleAddress = DRIVE;
01022     message.stctOutput.typeNumber = 135; //IClippingParameterFirstParametersPositionControl
01023     message.stctOutput.value = value; 
01024 
01025   // Bouml preserved body end 0006B3F1
01026 }
01027 
01028 void IClippingParameterFirstParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01029   // Bouml preserved body begin 0006B471
01030     this->value = (int32)message.stctInput.value; 
01031   // Bouml preserved body end 0006B471
01032 }
01033 
01034 PParameterFirstParametersSpeedControl::PParameterFirstParametersSpeedControl() {
01035   // Bouml preserved body begin 0006B5F1
01036     this->name = "PParameterFirstParametersSpeedControl";
01037     this->lowerLimit = INT_MIN;
01038     this->upperLimit = INT_MAX;
01039     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01040   // Bouml preserved body end 0006B5F1
01041 }
01042 
01043 PParameterFirstParametersSpeedControl::~PParameterFirstParametersSpeedControl() {
01044   // Bouml preserved body begin 0006B671
01045   // Bouml preserved body end 0006B671
01046 }
01047 
01048 void PParameterFirstParametersSpeedControl::getParameter(int& parameter) const {
01049   // Bouml preserved body begin 0006B6F1
01050     parameter = this->value;
01051   // Bouml preserved body end 0006B6F1
01052 }
01053 
01054 void PParameterFirstParametersSpeedControl::setParameter(const int parameter) {
01055   // Bouml preserved body begin 0006B771
01056     if (this->lowerLimit > parameter) {
01057       throw std::out_of_range("The parameter exceeds the lower limit");
01058     }
01059     if (this->upperLimit < parameter) {
01060       throw std::out_of_range("The parameter exceeds the upper limit");
01061     }
01062 
01063     this->value = parameter;
01064   // Bouml preserved body end 0006B771
01065 }
01066 
01067 void PParameterFirstParametersSpeedControl::toString(std::string& value) {
01068   // Bouml preserved body begin 0009D271
01069   std::stringstream ss;
01070   ss << this->name << ": " << this->value;
01071   value  = ss.str();
01072   // Bouml preserved body end 0009D271
01073 }
01074 
01075 void PParameterFirstParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01076   // Bouml preserved body begin 0006B7F1
01077 
01078     message.stctOutput.commandNumber = msgType;
01079     message.stctOutput.moduleAddress = DRIVE;
01080     message.stctOutput.typeNumber = 140; //PParameterFirstParametersSpeedControl
01081     message.stctOutput.value = value; 
01082 
01083   // Bouml preserved body end 0006B7F1
01084 }
01085 
01086 void PParameterFirstParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01087   // Bouml preserved body begin 0006B871
01088     this->value = (int32)message.stctInput.value; 
01089   // Bouml preserved body end 0006B871
01090 }
01091 
01092 IParameterFirstParametersSpeedControl::IParameterFirstParametersSpeedControl() {
01093   // Bouml preserved body begin 0006B9F1
01094     this->name = "IParameterFirstParametersSpeedControl";
01095     this->lowerLimit = INT_MIN;
01096     this->upperLimit = INT_MAX;
01097     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01098   // Bouml preserved body end 0006B9F1
01099 }
01100 
01101 IParameterFirstParametersSpeedControl::~IParameterFirstParametersSpeedControl() {
01102   // Bouml preserved body begin 0006BA71
01103   // Bouml preserved body end 0006BA71
01104 }
01105 
01106 void IParameterFirstParametersSpeedControl::getParameter(int& parameter) const {
01107   // Bouml preserved body begin 0006BAF1
01108     parameter = this->value;
01109   // Bouml preserved body end 0006BAF1
01110 }
01111 
01112 void IParameterFirstParametersSpeedControl::setParameter(const int parameter) {
01113   // Bouml preserved body begin 0006BB71
01114     if (this->lowerLimit > parameter) {
01115       throw std::out_of_range("The parameter exceeds the lower limit");
01116     }
01117     if (this->upperLimit < parameter) {
01118       throw std::out_of_range("The parameter exceeds the upper limit");
01119     }
01120 
01121     this->value = parameter;
01122   // Bouml preserved body end 0006BB71
01123 }
01124 
01125 void IParameterFirstParametersSpeedControl::toString(std::string& value) {
01126   // Bouml preserved body begin 0009D2F1
01127   std::stringstream ss;
01128   ss << this->name << ": " << this->value;
01129   value  = ss.str();
01130   // Bouml preserved body end 0009D2F1
01131 }
01132 
01133 void IParameterFirstParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01134   // Bouml preserved body begin 0006BBF1
01135 
01136     message.stctOutput.commandNumber = msgType;
01137     message.stctOutput.moduleAddress = DRIVE;
01138     message.stctOutput.typeNumber = 141; //IParameterFirstParametersSpeedControl
01139     message.stctOutput.value = value; 
01140 
01141   // Bouml preserved body end 0006BBF1
01142 }
01143 
01144 void IParameterFirstParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01145   // Bouml preserved body begin 0006BC71
01146     this->value = (int32)message.stctInput.value; 
01147   // Bouml preserved body end 0006BC71
01148 }
01149 
01150 DParameterFirstParametersSpeedControl::DParameterFirstParametersSpeedControl() {
01151   // Bouml preserved body begin 0006BDF1
01152     this->name = "DParameterFirstParametersSpeedControl";
01153     this->lowerLimit = INT_MIN;
01154     this->upperLimit = INT_MAX;
01155     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01156   // Bouml preserved body end 0006BDF1
01157 }
01158 
01159 DParameterFirstParametersSpeedControl::~DParameterFirstParametersSpeedControl() {
01160   // Bouml preserved body begin 0006BE71
01161   // Bouml preserved body end 0006BE71
01162 }
01163 
01164 void DParameterFirstParametersSpeedControl::getParameter(int& parameter) const {
01165   // Bouml preserved body begin 0006BEF1
01166     parameter = this->value;
01167   // Bouml preserved body end 0006BEF1
01168 }
01169 
01170 void DParameterFirstParametersSpeedControl::setParameter(const int parameter) {
01171   // Bouml preserved body begin 0006BF71
01172     if (this->lowerLimit > parameter) {
01173       throw std::out_of_range("The parameter exceeds the lower limit");
01174     }
01175     if (this->upperLimit < parameter) {
01176       throw std::out_of_range("The parameter exceeds the upper limit");
01177     }
01178 
01179     this->value = parameter;
01180   // Bouml preserved body end 0006BF71
01181 }
01182 
01183 void DParameterFirstParametersSpeedControl::toString(std::string& value) {
01184   // Bouml preserved body begin 0009D371
01185   std::stringstream ss;
01186   ss << this->name << ": " << this->value;
01187   value  = ss.str();
01188   // Bouml preserved body end 0009D371
01189 }
01190 
01191 void DParameterFirstParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01192   // Bouml preserved body begin 0006BFF1
01193 
01194     message.stctOutput.commandNumber = msgType;
01195     message.stctOutput.moduleAddress = DRIVE;
01196     message.stctOutput.typeNumber = 142; //DParameterFirstParametersSpeedControl
01197     message.stctOutput.value = value; 
01198 
01199   // Bouml preserved body end 0006BFF1
01200 }
01201 
01202 void DParameterFirstParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01203   // Bouml preserved body begin 0006C071
01204     this->value = (int32)message.stctInput.value; 
01205   // Bouml preserved body end 0006C071
01206 }
01207 
01208 IClippingParameterFirstParametersSpeedControl::IClippingParameterFirstParametersSpeedControl() {
01209   // Bouml preserved body begin 0006C1F1
01210     this->name = "IClippingParameterFirstParametersSpeedControl";
01211     this->lowerLimit = INT_MIN;
01212     this->upperLimit = INT_MAX;
01213     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01214   // Bouml preserved body end 0006C1F1
01215 }
01216 
01217 IClippingParameterFirstParametersSpeedControl::~IClippingParameterFirstParametersSpeedControl() {
01218   // Bouml preserved body begin 0006C271
01219   // Bouml preserved body end 0006C271
01220 }
01221 
01222 void IClippingParameterFirstParametersSpeedControl::getParameter(int& parameter) const {
01223   // Bouml preserved body begin 0006C2F1
01224     parameter = this->value;
01225   // Bouml preserved body end 0006C2F1
01226 }
01227 
01228 void IClippingParameterFirstParametersSpeedControl::setParameter(const int parameter) {
01229   // Bouml preserved body begin 0006C371
01230     if (this->lowerLimit > parameter) {
01231       throw std::out_of_range("The parameter exceeds the lower limit");
01232     }
01233     if (this->upperLimit < parameter) {
01234       throw std::out_of_range("The parameter exceeds the upper limit");
01235     }
01236 
01237     this->value = parameter;
01238   // Bouml preserved body end 0006C371
01239 }
01240 
01241 void IClippingParameterFirstParametersSpeedControl::toString(std::string& value) {
01242   // Bouml preserved body begin 0009D3F1
01243   std::stringstream ss;
01244   ss << this->name << ": " << this->value;
01245   value  = ss.str();
01246   // Bouml preserved body end 0009D3F1
01247 }
01248 
01249 void IClippingParameterFirstParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01250   // Bouml preserved body begin 0006C3F1
01251 
01252     message.stctOutput.commandNumber = msgType;
01253     message.stctOutput.moduleAddress = DRIVE;
01254     message.stctOutput.typeNumber = 143; //IClippingParameterFirstParametersSpeedControl
01255     message.stctOutput.value = value; 
01256 
01257   // Bouml preserved body end 0006C3F1
01258 }
01259 
01260 void IClippingParameterFirstParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01261   // Bouml preserved body begin 0006C471
01262     this->value = (int32)message.stctInput.value; 
01263   // Bouml preserved body end 0006C471
01264 }
01265 
01266 PParameterSecondParametersPositionControl::PParameterSecondParametersPositionControl() {
01267   // Bouml preserved body begin 0006CDF1
01268     this->name = "PParameterSecondParametersPositionControl";
01269     this->lowerLimit = INT_MIN;
01270     this->upperLimit = INT_MAX;
01271     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01272   // Bouml preserved body end 0006CDF1
01273 }
01274 
01275 PParameterSecondParametersPositionControl::~PParameterSecondParametersPositionControl() {
01276   // Bouml preserved body begin 0006CE71
01277   // Bouml preserved body end 0006CE71
01278 }
01279 
01280 void PParameterSecondParametersPositionControl::getParameter(int& parameter) const {
01281   // Bouml preserved body begin 0006CEF1
01282     parameter = this->value;
01283   // Bouml preserved body end 0006CEF1
01284 }
01285 
01286 void PParameterSecondParametersPositionControl::setParameter(const int parameter) {
01287   // Bouml preserved body begin 0006CF71
01288     if (this->lowerLimit > parameter) {
01289       throw std::out_of_range("The parameter exceeds the lower limit");
01290     }
01291     if (this->upperLimit < parameter) {
01292       throw std::out_of_range("The parameter exceeds the upper limit");
01293     }
01294 
01295     this->value = parameter;
01296   // Bouml preserved body end 0006CF71
01297 }
01298 
01299 void PParameterSecondParametersPositionControl::toString(std::string& value) {
01300   // Bouml preserved body begin 0009DD71
01301   std::stringstream ss;
01302   ss << this->name << ": " << this->value;
01303   value  = ss.str();
01304   // Bouml preserved body end 0009DD71
01305 }
01306 
01307 void PParameterSecondParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01308   // Bouml preserved body begin 0006CFF1
01309 
01310     message.stctOutput.commandNumber = msgType;
01311     message.stctOutput.moduleAddress = DRIVE;
01312     message.stctOutput.typeNumber = 230; //PParameterSecondParametersPositionControl
01313     message.stctOutput.value = value;
01314 
01315   // Bouml preserved body end 0006CFF1
01316 }
01317 
01318 void PParameterSecondParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01319   // Bouml preserved body begin 0006D071
01320     this->value = (int32)message.stctInput.value;
01321   // Bouml preserved body end 0006D071
01322 }
01323 
01324 IParameterSecondParametersPositionControl::IParameterSecondParametersPositionControl() {
01325   // Bouml preserved body begin 0006D1F1
01326     this->name = "IParameterSecondParametersPositionControl";
01327     this->lowerLimit = INT_MIN;
01328     this->upperLimit = INT_MAX;
01329     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01330   // Bouml preserved body end 0006D1F1
01331 }
01332 
01333 IParameterSecondParametersPositionControl::~IParameterSecondParametersPositionControl() {
01334   // Bouml preserved body begin 0006D271
01335   // Bouml preserved body end 0006D271
01336 }
01337 
01338 void IParameterSecondParametersPositionControl::getParameter(int& parameter) const {
01339   // Bouml preserved body begin 0006D2F1
01340     parameter = this->value;
01341   // Bouml preserved body end 0006D2F1
01342 }
01343 
01344 void IParameterSecondParametersPositionControl::setParameter(const int parameter) {
01345   // Bouml preserved body begin 0006D371
01346     if (this->lowerLimit > parameter) {
01347       throw std::out_of_range("The parameter exceeds the lower limit");
01348     }
01349     if (this->upperLimit < parameter) {
01350       throw std::out_of_range("The parameter exceeds the upper limit");
01351     }
01352 
01353     this->value = parameter;
01354   // Bouml preserved body end 0006D371
01355 }
01356 
01357 void IParameterSecondParametersPositionControl::toString(std::string& value) {
01358   // Bouml preserved body begin 0009DDF1
01359   std::stringstream ss;
01360   ss << this->name << ": " << this->value;
01361   value  = ss.str();
01362   // Bouml preserved body end 0009DDF1
01363 }
01364 
01365 void IParameterSecondParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01366   // Bouml preserved body begin 0006D3F1
01367 
01368     message.stctOutput.commandNumber = msgType;
01369     message.stctOutput.moduleAddress = DRIVE;
01370     message.stctOutput.typeNumber = 231; //IParameterSecondParametersPositionControl
01371     message.stctOutput.value = value;
01372 
01373   // Bouml preserved body end 0006D3F1
01374 }
01375 
01376 void IParameterSecondParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01377   // Bouml preserved body begin 0006D471
01378     this->value = (int32)message.stctInput.value;
01379   // Bouml preserved body end 0006D471
01380 }
01381 
01382 DParameterSecondParametersPositionControl::DParameterSecondParametersPositionControl() {
01383   // Bouml preserved body begin 0006D5F1
01384     this->name = "DParameterSecondParametersPositionControl";
01385     this->lowerLimit = INT_MIN;
01386     this->upperLimit = INT_MAX;
01387     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01388   // Bouml preserved body end 0006D5F1
01389 }
01390 
01391 DParameterSecondParametersPositionControl::~DParameterSecondParametersPositionControl() {
01392   // Bouml preserved body begin 0006D671
01393   // Bouml preserved body end 0006D671
01394 }
01395 
01396 void DParameterSecondParametersPositionControl::getParameter(int& parameter) const {
01397   // Bouml preserved body begin 0006D6F1
01398     parameter = this->value;
01399   // Bouml preserved body end 0006D6F1
01400 }
01401 
01402 void DParameterSecondParametersPositionControl::setParameter(const int parameter) {
01403   // Bouml preserved body begin 0006D771
01404     if (this->lowerLimit > parameter) {
01405       throw std::out_of_range("The parameter exceeds the lower limit");
01406     }
01407     if (this->upperLimit < parameter) {
01408       throw std::out_of_range("The parameter exceeds the upper limit");
01409     }
01410 
01411     this->value = parameter;
01412   // Bouml preserved body end 0006D771
01413 }
01414 
01415 void DParameterSecondParametersPositionControl::toString(std::string& value) {
01416   // Bouml preserved body begin 0009DE71
01417   std::stringstream ss;
01418   ss << this->name << ": " << this->value;
01419   value  = ss.str();
01420   // Bouml preserved body end 0009DE71
01421 }
01422 
01423 void DParameterSecondParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01424   // Bouml preserved body begin 0006D7F1
01425 
01426     message.stctOutput.commandNumber = msgType;
01427     message.stctOutput.moduleAddress = DRIVE;
01428     message.stctOutput.typeNumber = 232; //DParameterSecondParametersPositionControl
01429     message.stctOutput.value = value;
01430 
01431   // Bouml preserved body end 0006D7F1
01432 }
01433 
01434 void DParameterSecondParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01435   // Bouml preserved body begin 0006D871
01436     this->value = (int32)message.stctInput.value;
01437   // Bouml preserved body end 0006D871
01438 }
01439 
01440 IClippingParameterSecondParametersPositionControl::IClippingParameterSecondParametersPositionControl() {
01441   // Bouml preserved body begin 0006D9F1
01442     this->name = "IClippingParameterSecondParametersPositionControl";
01443     this->lowerLimit = INT_MIN;
01444     this->upperLimit = INT_MAX;
01445     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01446   // Bouml preserved body end 0006D9F1
01447 }
01448 
01449 IClippingParameterSecondParametersPositionControl::~IClippingParameterSecondParametersPositionControl() {
01450   // Bouml preserved body begin 0006DA71
01451   // Bouml preserved body end 0006DA71
01452 }
01453 
01454 void IClippingParameterSecondParametersPositionControl::getParameter(int& parameter) const {
01455   // Bouml preserved body begin 0006DAF1
01456     parameter = this->value;
01457   // Bouml preserved body end 0006DAF1
01458 }
01459 
01460 void IClippingParameterSecondParametersPositionControl::setParameter(const int parameter) {
01461   // Bouml preserved body begin 0006DB71
01462     if (this->lowerLimit > parameter) {
01463       throw std::out_of_range("The parameter exceeds the lower limit");
01464     }
01465     if (this->upperLimit < parameter) {
01466       throw std::out_of_range("The parameter exceeds the upper limit");
01467     }
01468 
01469     this->value = parameter;
01470   // Bouml preserved body end 0006DB71
01471 }
01472 
01473 void IClippingParameterSecondParametersPositionControl::toString(std::string& value) {
01474   // Bouml preserved body begin 0009DEF1
01475   std::stringstream ss;
01476   ss << this->name << ": " << this->value;
01477   value  = ss.str();
01478   // Bouml preserved body end 0009DEF1
01479 }
01480 
01481 void IClippingParameterSecondParametersPositionControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01482   // Bouml preserved body begin 0006DBF1
01483 
01484     message.stctOutput.commandNumber = msgType;
01485     message.stctOutput.moduleAddress = DRIVE;
01486     message.stctOutput.typeNumber = 233; //IClippingParameterSecondParametersPositionControl
01487     message.stctOutput.value = value;
01488 
01489   // Bouml preserved body end 0006DBF1
01490 }
01491 
01492 void IClippingParameterSecondParametersPositionControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01493   // Bouml preserved body begin 0006DC71
01494     this->value = (int32)message.stctInput.value;
01495   // Bouml preserved body end 0006DC71
01496 }
01497 
01498 PParameterSecondParametersSpeedControl::PParameterSecondParametersSpeedControl() {
01499   // Bouml preserved body begin 0006DDF1
01500     this->name = "PParameterSecondParametersSpeedControl";
01501     this->lowerLimit = INT_MIN;
01502     this->upperLimit = INT_MAX;
01503     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01504   // Bouml preserved body end 0006DDF1
01505 }
01506 
01507 PParameterSecondParametersSpeedControl::~PParameterSecondParametersSpeedControl() {
01508   // Bouml preserved body begin 0006DE71
01509   // Bouml preserved body end 0006DE71
01510 }
01511 
01512 void PParameterSecondParametersSpeedControl::getParameter(int& parameter) const {
01513   // Bouml preserved body begin 0006DEF1
01514     parameter = this->value;
01515   // Bouml preserved body end 0006DEF1
01516 }
01517 
01518 void PParameterSecondParametersSpeedControl::setParameter(const int parameter) {
01519   // Bouml preserved body begin 0006DF71
01520     if (this->lowerLimit > parameter) {
01521       throw std::out_of_range("The parameter exceeds the lower limit");
01522     }
01523     if (this->upperLimit < parameter) {
01524       throw std::out_of_range("The parameter exceeds the upper limit");
01525     }
01526 
01527     this->value = parameter;
01528   // Bouml preserved body end 0006DF71
01529 }
01530 
01531 void PParameterSecondParametersSpeedControl::toString(std::string& value) {
01532   // Bouml preserved body begin 0009DF71
01533   std::stringstream ss;
01534   ss << this->name << ": " << this->value;
01535   value  = ss.str();
01536   // Bouml preserved body end 0009DF71
01537 }
01538 
01539 void PParameterSecondParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01540   // Bouml preserved body begin 0006DFF1
01541 
01542     message.stctOutput.commandNumber = msgType;
01543     message.stctOutput.moduleAddress = DRIVE;
01544     message.stctOutput.typeNumber = 234; //PParameterSecondParametersSpeedControl
01545     message.stctOutput.value = value;
01546 
01547   // Bouml preserved body end 0006DFF1
01548 }
01549 
01550 void PParameterSecondParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01551   // Bouml preserved body begin 0006E071
01552     this->value = (int32)message.stctInput.value;
01553   // Bouml preserved body end 0006E071
01554 }
01555 
01556 IParameterSecondParametersSpeedControl::IParameterSecondParametersSpeedControl() {
01557   // Bouml preserved body begin 0006E1F1
01558     this->name = "IParameterSecondParametersSpeedControl";
01559     this->lowerLimit = INT_MIN;
01560     this->upperLimit = INT_MAX;
01561     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01562   // Bouml preserved body end 0006E1F1
01563 }
01564 
01565 IParameterSecondParametersSpeedControl::~IParameterSecondParametersSpeedControl() {
01566   // Bouml preserved body begin 0006E271
01567   // Bouml preserved body end 0006E271
01568 }
01569 
01570 void IParameterSecondParametersSpeedControl::getParameter(int& parameter) const {
01571   // Bouml preserved body begin 0006E2F1
01572     parameter = this->value;
01573   // Bouml preserved body end 0006E2F1
01574 }
01575 
01576 void IParameterSecondParametersSpeedControl::setParameter(const int parameter) {
01577   // Bouml preserved body begin 0006E371
01578     if (this->lowerLimit > parameter) {
01579       throw std::out_of_range("The parameter exceeds the lower limit");
01580     }
01581     if (this->upperLimit < parameter) {
01582       throw std::out_of_range("The parameter exceeds the upper limit");
01583     }
01584 
01585     this->value = parameter;
01586   // Bouml preserved body end 0006E371
01587 }
01588 
01589 void IParameterSecondParametersSpeedControl::toString(std::string& value) {
01590   // Bouml preserved body begin 0009DFF1
01591   std::stringstream ss;
01592   ss << this->name << ": " << this->value;
01593   value  = ss.str();
01594   // Bouml preserved body end 0009DFF1
01595 }
01596 
01597 void IParameterSecondParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01598   // Bouml preserved body begin 0006E3F1
01599 
01600     message.stctOutput.commandNumber = msgType;
01601     message.stctOutput.moduleAddress = DRIVE;
01602     message.stctOutput.typeNumber = 235; //IParameterSecondParametersSpeedControl
01603     message.stctOutput.value = value;
01604 
01605   // Bouml preserved body end 0006E3F1
01606 }
01607 
01608 void IParameterSecondParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01609   // Bouml preserved body begin 0006E471
01610     this->value = (int32)message.stctInput.value;
01611   // Bouml preserved body end 0006E471
01612 }
01613 
01614 DParameterSecondParametersSpeedControl::DParameterSecondParametersSpeedControl() {
01615   // Bouml preserved body begin 0006E5F1
01616     this->name = "DParameterSecondParametersSpeedControl";
01617     this->lowerLimit = INT_MIN;
01618     this->upperLimit = INT_MAX;
01619     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01620   // Bouml preserved body end 0006E5F1
01621 }
01622 
01623 DParameterSecondParametersSpeedControl::~DParameterSecondParametersSpeedControl() {
01624   // Bouml preserved body begin 0006E671
01625   // Bouml preserved body end 0006E671
01626 }
01627 
01628 void DParameterSecondParametersSpeedControl::getParameter(int& parameter) const {
01629   // Bouml preserved body begin 0006E6F1
01630     parameter = this->value;
01631   // Bouml preserved body end 0006E6F1
01632 }
01633 
01634 void DParameterSecondParametersSpeedControl::setParameter(const int parameter) {
01635   // Bouml preserved body begin 0006E771
01636     if (this->lowerLimit > parameter) {
01637       throw std::out_of_range("The parameter exceeds the lower limit");
01638     }
01639     if (this->upperLimit < parameter) {
01640       throw std::out_of_range("The parameter exceeds the upper limit");
01641     }
01642 
01643     this->value = parameter;
01644   // Bouml preserved body end 0006E771
01645 }
01646 
01647 void DParameterSecondParametersSpeedControl::toString(std::string& value) {
01648   // Bouml preserved body begin 0009E071
01649   std::stringstream ss;
01650   ss << this->name << ": " << this->value;
01651   value  = ss.str();
01652   // Bouml preserved body end 0009E071
01653 }
01654 
01655 void DParameterSecondParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01656   // Bouml preserved body begin 0006E7F1
01657 
01658     message.stctOutput.commandNumber = msgType;
01659     message.stctOutput.moduleAddress = DRIVE;
01660     message.stctOutput.typeNumber = 236; //DParameterSecondParametersSpeedControl
01661     message.stctOutput.value = value;
01662 
01663   // Bouml preserved body end 0006E7F1
01664 }
01665 
01666 void DParameterSecondParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01667   // Bouml preserved body begin 0006E871
01668     this->value = (int32)message.stctInput.value;
01669   // Bouml preserved body end 0006E871
01670 }
01671 
01672 IClippingParameterSecondParametersSpeedControl::IClippingParameterSecondParametersSpeedControl() {
01673   // Bouml preserved body begin 0006E9F1
01674     this->name = "IClippingParameterSecondParametersSpeedControl";
01675     this->lowerLimit = INT_MIN;
01676     this->upperLimit = INT_MAX;
01677     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01678   // Bouml preserved body end 0006E9F1
01679 }
01680 
01681 IClippingParameterSecondParametersSpeedControl::~IClippingParameterSecondParametersSpeedControl() {
01682   // Bouml preserved body begin 0006EA71
01683   // Bouml preserved body end 0006EA71
01684 }
01685 
01686 void IClippingParameterSecondParametersSpeedControl::getParameter(int& parameter) const {
01687   // Bouml preserved body begin 0006EAF1
01688     parameter = this->value;
01689   // Bouml preserved body end 0006EAF1
01690 }
01691 
01692 void IClippingParameterSecondParametersSpeedControl::setParameter(const int parameter) {
01693   // Bouml preserved body begin 0006EB71
01694     if (this->lowerLimit > parameter) {
01695       throw std::out_of_range("The parameter exceeds the lower limit");
01696     }
01697     if (this->upperLimit < parameter) {
01698       throw std::out_of_range("The parameter exceeds the upper limit");
01699     }
01700 
01701     this->value = parameter;
01702   // Bouml preserved body end 0006EB71
01703 }
01704 
01705 void IClippingParameterSecondParametersSpeedControl::toString(std::string& value) {
01706   // Bouml preserved body begin 0009E0F1
01707   std::stringstream ss;
01708   ss << this->name << ": " << this->value;
01709   value  = ss.str();
01710   // Bouml preserved body end 0009E0F1
01711 }
01712 
01713 void IClippingParameterSecondParametersSpeedControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01714   // Bouml preserved body begin 0006EBF1
01715 
01716     message.stctOutput.commandNumber = msgType;
01717     message.stctOutput.moduleAddress = DRIVE;
01718     message.stctOutput.typeNumber = 237; //IClippingParameterSecondParametersSpeedControl
01719     message.stctOutput.value = value;
01720 
01721   // Bouml preserved body end 0006EBF1
01722 }
01723 
01724 void IClippingParameterSecondParametersSpeedControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01725   // Bouml preserved body begin 0006EC71
01726     this->value = (int32)message.stctInput.value;
01727   // Bouml preserved body end 0006EC71
01728 }
01729 
01730 PParameterCurrentControl::PParameterCurrentControl() {
01731   // Bouml preserved body begin 00080371
01732     this->name = "PParameterCurrentControl";
01733     this->lowerLimit = INT_MIN;
01734     this->upperLimit = INT_MAX;
01735     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01736   // Bouml preserved body end 00080371
01737 }
01738 
01739 PParameterCurrentControl::~PParameterCurrentControl() {
01740   // Bouml preserved body begin 000803F1
01741   // Bouml preserved body end 000803F1
01742 }
01743 
01744 void PParameterCurrentControl::getParameter(int& parameter) const {
01745   // Bouml preserved body begin 00080471
01746     parameter = this->value;
01747   // Bouml preserved body end 00080471
01748 }
01749 
01750 void PParameterCurrentControl::setParameter(const int parameter) {
01751   // Bouml preserved body begin 000804F1
01752     if (this->lowerLimit > parameter) {
01753       throw std::out_of_range("The parameter exceeds the lower limit");
01754     }
01755     if (this->upperLimit < parameter) {
01756       throw std::out_of_range("The parameter exceeds the upper limit");
01757     }
01758 
01759     this->value = parameter;
01760   // Bouml preserved body end 000804F1
01761 }
01762 
01763 void PParameterCurrentControl::toString(std::string& value) {
01764   // Bouml preserved body begin 0009DA71
01765   std::stringstream ss;
01766   ss << this->name << ": " << this->value;
01767   value  = ss.str();
01768   // Bouml preserved body end 0009DA71
01769 }
01770 
01771 void PParameterCurrentControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01772   // Bouml preserved body begin 00080571
01773 
01774     message.stctOutput.commandNumber = msgType;
01775     message.stctOutput.moduleAddress = DRIVE;
01776     message.stctOutput.typeNumber = 172; //PParameterCurrentControl
01777     message.stctOutput.value = value;
01778 
01779   // Bouml preserved body end 00080571
01780 }
01781 
01782 void PParameterCurrentControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01783   // Bouml preserved body begin 000805F1
01784     this->value = (int32)message.stctInput.value;
01785   // Bouml preserved body end 000805F1
01786 }
01787 
01788 IParameterCurrentControl::IParameterCurrentControl() {
01789   // Bouml preserved body begin 00080771
01790     this->name = "IParameterCurrentControl";
01791     this->lowerLimit = INT_MIN;
01792     this->upperLimit = INT_MAX;
01793     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01794   // Bouml preserved body end 00080771
01795 }
01796 
01797 IParameterCurrentControl::~IParameterCurrentControl() {
01798   // Bouml preserved body begin 000807F1
01799   // Bouml preserved body end 000807F1
01800 }
01801 
01802 void IParameterCurrentControl::getParameter(int& parameter) const {
01803   // Bouml preserved body begin 00080871
01804     parameter = this->value;
01805   // Bouml preserved body end 00080871
01806 }
01807 
01808 void IParameterCurrentControl::setParameter(const int parameter) {
01809   // Bouml preserved body begin 000808F1
01810     if (this->lowerLimit > parameter) {
01811       throw std::out_of_range("The parameter exceeds the lower limit");
01812     }
01813     if (this->upperLimit < parameter) {
01814       throw std::out_of_range("The parameter exceeds the upper limit");
01815     }
01816 
01817     this->value = parameter;
01818   // Bouml preserved body end 000808F1
01819 }
01820 
01821 void IParameterCurrentControl::toString(std::string& value) {
01822   // Bouml preserved body begin 0009DAF1
01823   std::stringstream ss;
01824   ss << this->name << ": " << this->value;
01825   value  = ss.str();
01826   // Bouml preserved body end 0009DAF1
01827 }
01828 
01829 void IParameterCurrentControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01830   // Bouml preserved body begin 00080971
01831 
01832     message.stctOutput.commandNumber = msgType;
01833     message.stctOutput.moduleAddress = DRIVE;
01834     message.stctOutput.typeNumber = 173; //IParameterCurrentControl
01835     message.stctOutput.value = value;
01836 
01837   // Bouml preserved body end 00080971
01838 }
01839 
01840 void IParameterCurrentControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01841   // Bouml preserved body begin 000809F1
01842     this->value = (int32)message.stctInput.value;
01843   // Bouml preserved body end 000809F1
01844 }
01845 
01846 DParameterCurrentControl::DParameterCurrentControl() {
01847   // Bouml preserved body begin 00080B71
01848     this->name = "DParameterCurrentControl";
01849     this->lowerLimit = INT_MIN;
01850     this->upperLimit = INT_MAX;
01851     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01852   // Bouml preserved body end 00080B71
01853 }
01854 
01855 DParameterCurrentControl::~DParameterCurrentControl() {
01856   // Bouml preserved body begin 00080BF1
01857   // Bouml preserved body end 00080BF1
01858 }
01859 
01860 void DParameterCurrentControl::getParameter(int& parameter) const {
01861   // Bouml preserved body begin 00080C71
01862     parameter = this->value;
01863   // Bouml preserved body end 00080C71
01864 }
01865 
01866 void DParameterCurrentControl::setParameter(const int parameter) {
01867   // Bouml preserved body begin 00080CF1
01868     if (this->lowerLimit > parameter) {
01869       throw std::out_of_range("The parameter exceeds the lower limit");
01870     }
01871     if (this->upperLimit < parameter) {
01872       throw std::out_of_range("The parameter exceeds the upper limit");
01873     }
01874 
01875     this->value = parameter;
01876   // Bouml preserved body end 00080CF1
01877 }
01878 
01879 void DParameterCurrentControl::toString(std::string& value) {
01880   // Bouml preserved body begin 0009DB71
01881   std::stringstream ss;
01882   ss << this->name << ": " << this->value;
01883   value  = ss.str();
01884   // Bouml preserved body end 0009DB71
01885 }
01886 
01887 void DParameterCurrentControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01888   // Bouml preserved body begin 00080D71
01889 
01890     message.stctOutput.commandNumber = msgType;
01891     message.stctOutput.moduleAddress = DRIVE;
01892     message.stctOutput.typeNumber = 174; //DParameterCurrentControl
01893     message.stctOutput.value = value;
01894 
01895   // Bouml preserved body end 00080D71
01896 }
01897 
01898 void DParameterCurrentControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01899   // Bouml preserved body begin 00080DF1
01900     this->value = (int32)message.stctInput.value;
01901   // Bouml preserved body end 00080DF1
01902 }
01903 
01904 IClippingParameterCurrentControl::IClippingParameterCurrentControl() {
01905   // Bouml preserved body begin 00080F71
01906     this->name = "IClippingParameterCurrentControl";
01907     this->lowerLimit = INT_MIN;
01908     this->upperLimit = INT_MAX;
01909     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01910   // Bouml preserved body end 00080F71
01911 }
01912 
01913 IClippingParameterCurrentControl::~IClippingParameterCurrentControl() {
01914   // Bouml preserved body begin 00080FF1
01915   // Bouml preserved body end 00080FF1
01916 }
01917 
01918 void IClippingParameterCurrentControl::getParameter(int& parameter) const {
01919   // Bouml preserved body begin 00081071
01920     parameter = this->value;
01921   // Bouml preserved body end 00081071
01922 }
01923 
01924 void IClippingParameterCurrentControl::setParameter(const int parameter) {
01925   // Bouml preserved body begin 000810F1
01926     if (this->lowerLimit > parameter) {
01927       throw std::out_of_range("The parameter exceeds the lower limit");
01928     }
01929     if (this->upperLimit < parameter) {
01930       throw std::out_of_range("The parameter exceeds the upper limit");
01931     }
01932 
01933     this->value = parameter;
01934   // Bouml preserved body end 000810F1
01935 }
01936 
01937 void IClippingParameterCurrentControl::toString(std::string& value) {
01938   // Bouml preserved body begin 0009DBF1
01939   std::stringstream ss;
01940   ss << this->name << ": " << this->value;
01941   value  = ss.str();
01942   // Bouml preserved body end 0009DBF1
01943 }
01944 
01945 void IClippingParameterCurrentControl::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
01946   // Bouml preserved body begin 00081171
01947 
01948     message.stctOutput.commandNumber = msgType;
01949     message.stctOutput.moduleAddress = DRIVE;
01950     message.stctOutput.typeNumber = 175; //IClippingParameterCurrentControl
01951     message.stctOutput.value = value;
01952 
01953   // Bouml preserved body end 00081171
01954 }
01955 
01956 void IClippingParameterCurrentControl::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
01957   // Bouml preserved body begin 000811F1
01958     this->value = (int32)message.stctInput.value;
01959   // Bouml preserved body end 000811F1
01960 }
01961 
01962 MaximumVelocityToSetPosition::MaximumVelocityToSetPosition() {
01963   // Bouml preserved body begin 00078F71
01964     this->name = "MaximumVelocityToSetPosition";
01965     this->lowerLimit = INT_MIN * radian_per_second;
01966     this->upperLimit = INT_MAX * radian_per_second;
01967     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
01968   // Bouml preserved body end 00078F71
01969 }
01970 
01971 MaximumVelocityToSetPosition::~MaximumVelocityToSetPosition() {
01972   // Bouml preserved body begin 00078FF1
01973   // Bouml preserved body end 00078FF1
01974 }
01975 
01976 void MaximumVelocityToSetPosition::getParameter(quantity<angular_velocity>& parameter) const {
01977   // Bouml preserved body begin 00079071
01978     parameter = this->value;
01979   // Bouml preserved body end 00079071
01980 }
01981 
01982 void MaximumVelocityToSetPosition::setParameter(const quantity<angular_velocity>& parameter) {
01983   // Bouml preserved body begin 000790F1
01984     if (this->lowerLimit > parameter) {
01985       throw std::out_of_range("The parameter exceeds the lower limit");
01986     }
01987     if (this->upperLimit < parameter) {
01988       throw std::out_of_range("The parameter exceeds the upper limit");
01989     }
01990 
01991     this->value = parameter;
01992   // Bouml preserved body end 000790F1
01993 }
01994 
01995 void MaximumVelocityToSetPosition::toString(std::string& value) {
01996   // Bouml preserved body begin 0009CAF1
01997   std::stringstream ss;
01998   ss << this->name << ": " << this->value;
01999   value  = ss.str();
02000   // Bouml preserved body end 0009CAF1
02001 }
02002 
02003 void MaximumVelocityToSetPosition::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
02004   // Bouml preserved body begin 00079171
02005 
02006     message.stctOutput.commandNumber = msgType;
02007     message.stctOutput.moduleAddress = DRIVE;
02008     message.stctOutput.typeNumber = 7; //MaximumVelocityToSetPosition
02009     message.stctOutput.value = (int32) round((value.value() / (storage.gearRatio * 2.0 * M_PI)) * 60.0);
02010 
02011   // Bouml preserved body end 00079171
02012 }
02013 
02014 void MaximumVelocityToSetPosition::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
02015   // Bouml preserved body begin 000791F1
02016     double motorRPM = (int32)message.stctInput.value;
02017     this->value =  ((motorRPM / 60.0) * storage.gearRatio * 2.0 * M_PI) * radian_per_second;
02018   // Bouml preserved body end 000791F1
02019 }
02020 
02021 PositionTargetReachedDistance::PositionTargetReachedDistance() {
02022   // Bouml preserved body begin 00079B71
02023     this->name = "PositionTargetReachedDistance";
02024     this->lowerLimit = INT_MIN;
02025     this->upperLimit = INT_MAX;
02026     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
02027   // Bouml preserved body end 00079B71
02028 }
02029 
02030 PositionTargetReachedDistance::~PositionTargetReachedDistance() {
02031   // Bouml preserved body begin 00079BF1
02032   // Bouml preserved body end 00079BF1
02033 }
02034 
02035 void PositionTargetReachedDistance::getParameter(int& parameter) const {
02036   // Bouml preserved body begin 00079C71
02037     parameter = this->value;
02038   // Bouml preserved body end 00079C71
02039 }
02040 
02041 void PositionTargetReachedDistance::setParameter(const int parameter) {
02042   // Bouml preserved body begin 00079CF1
02043     if (this->lowerLimit > parameter) {
02044       throw std::out_of_range("The parameter exceeds the lower limit");
02045     }
02046     if (this->upperLimit < parameter) {
02047       throw std::out_of_range("The parameter exceeds the upper limit");
02048     }
02049 
02050     this->value = parameter;
02051   // Bouml preserved body end 00079CF1
02052 }
02053 
02054 void PositionTargetReachedDistance::toString(std::string& value) {
02055   // Bouml preserved body begin 0009CC71
02056   std::stringstream ss;
02057   ss << this->name << ": " << this->value;
02058   value  = ss.str();
02059   // Bouml preserved body end 0009CC71
02060 }
02061 
02062 void PositionTargetReachedDistance::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
02063   // Bouml preserved body begin 00079D71
02064 
02065     message.stctOutput.commandNumber = msgType;
02066     message.stctOutput.moduleAddress = DRIVE;
02067     message.stctOutput.typeNumber = 10; //PositionTargetReachedDistance
02068     message.stctOutput.value = value; 
02069 
02070   // Bouml preserved body end 00079D71
02071 }
02072 
02073 void PositionTargetReachedDistance::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
02074   // Bouml preserved body begin 00079DF1
02075     this->value = (int32)message.stctInput.value;
02076   // Bouml preserved body end 00079DF1
02077 }
02078 
02079 ClearI2tExceededFlag::ClearI2tExceededFlag() {
02080   // Bouml preserved body begin 000A15F1
02081     this->name = "ClearI2tExceededFlag";
02082     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
02083     this->value = true;
02084   // Bouml preserved body end 000A15F1
02085 }
02086 
02087 ClearI2tExceededFlag::~ClearI2tExceededFlag() {
02088   // Bouml preserved body begin 000A1671
02089   // Bouml preserved body end 000A1671
02090 }
02091 
02092 void ClearI2tExceededFlag::getParameter() const {
02093   // Bouml preserved body begin 000A16F1
02094   // Bouml preserved body end 000A16F1
02095 }
02096 
02097 void ClearI2tExceededFlag::setParameter() {
02098   // Bouml preserved body begin 000A1771
02099   // Bouml preserved body end 000A1771
02100 }
02101 
02102 void ClearI2tExceededFlag::toString(std::string& value) {
02103   // Bouml preserved body begin 000A17F1
02104   std::stringstream ss;
02105   ss << this->name << ": " << this->value;
02106   value  = ss.str();
02107   // Bouml preserved body end 000A17F1
02108 }
02109 
02110 void ClearI2tExceededFlag::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
02111   // Bouml preserved body begin 000A1871
02112     message.stctOutput.commandNumber = msgType;
02113     message.stctOutput.moduleAddress = DRIVE;
02114     message.stctOutput.typeNumber = 29; //ClearI2tExceededFlag
02115     message.stctOutput.value = value;
02116   // Bouml preserved body end 000A1871
02117 }
02118 
02119 void ClearI2tExceededFlag::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
02120   // Bouml preserved body begin 000A18F1
02121     if (message.stctOutput.commandNumber == message.stctInput.commandNumber && message.stctInput.status == NO_ERROR) {
02122       this->value = message.stctInput.value;
02123     }
02124   // Bouml preserved body end 000A18F1
02125 }
02126 
02127 ClearMotorControllerTimeoutFlag::ClearMotorControllerTimeoutFlag() {
02128   // Bouml preserved body begin 0009FAF1
02129     this->name = "ClearMotorControllerTimeoutFlag";
02130     this->parameterType = MOTOR_CONTOLLER_PARAMETER;
02131     this->value = true;
02132   // Bouml preserved body end 0009FAF1
02133 }
02134 
02135 ClearMotorControllerTimeoutFlag::~ClearMotorControllerTimeoutFlag() {
02136   // Bouml preserved body begin 0009FB71
02137   // Bouml preserved body end 0009FB71
02138 }
02139 
02140 bool ClearMotorControllerTimeoutFlag::getParameter() const {
02141   // Bouml preserved body begin 0009FBF1
02142   return this->value;
02143   // Bouml preserved body end 0009FBF1
02144 }
02145 
02146 void ClearMotorControllerTimeoutFlag::setParameter() {
02147   // Bouml preserved body begin 0009FC71
02148   // Bouml preserved body end 0009FC71
02149 }
02150 
02151 void ClearMotorControllerTimeoutFlag::toString(std::string& value) {
02152   // Bouml preserved body begin 0009FCF1
02153   std::stringstream ss;
02154   ss << this->name << ": " << this->value;
02155   value  = ss.str();
02156   // Bouml preserved body end 0009FCF1
02157 }
02158 
02159 void ClearMotorControllerTimeoutFlag::getYouBotMailboxMsg(YouBotSlaveMailboxMsg& message, TMCLCommandNumber msgType, const YouBotJointStorage& storage) const {
02160   // Bouml preserved body begin 0009FD71
02161     message.stctOutput.commandNumber = msgType;
02162     message.stctOutput.moduleAddress = DRIVE;
02163     message.stctOutput.typeNumber = 158; //ClearMotorControllerTimeoutFlag
02164     message.stctOutput.value = value;
02165   // Bouml preserved body end 0009FD71
02166 }
02167 
02168 void ClearMotorControllerTimeoutFlag::setYouBotMailboxMsg(const YouBotSlaveMailboxMsg& message, const YouBotJointStorage& storage) {
02169   // Bouml preserved body begin 0009FDF1
02170     if (message.stctOutput.commandNumber == message.stctInput.commandNumber && message.stctInput.status == NO_ERROR) {
02171       this->value = message.stctInput.value; 
02172     }
02173   // Bouml preserved body end 0009FDF1
02174 }
02175 
02176 PParameterTrajectoryControl::PParameterTrajectoryControl() {
02177   // Bouml preserved body begin 000ED771
02178     this->name = "PParameterTrajectoryControl";
02179     this->lowerLimit = 0;
02180     this->upperLimit = INT_MAX;
02181     this->parameterType = API_PARAMETER;
02182   // Bouml preserved body end 000ED771
02183 }
02184 
02185 PParameterTrajectoryControl::~PParameterTrajectoryControl() {
02186   // Bouml preserved body begin 000ED7F1
02187   // Bouml preserved body end 000ED7F1
02188 }
02189 
02190 void PParameterTrajectoryControl::getParameter(double& parameter) const {
02191   // Bouml preserved body begin 000ED871
02192     parameter = this->value;
02193   // Bouml preserved body end 000ED871
02194 }
02195 
02196 void PParameterTrajectoryControl::setParameter(const double parameter) {
02197   // Bouml preserved body begin 000ED8F1
02198     if (this->lowerLimit > parameter) {
02199       throw std::out_of_range("The parameter exceeds the lower limit");
02200     }
02201     if (this->upperLimit < parameter) {
02202       throw std::out_of_range("The parameter exceeds the upper limit");
02203     }
02204 
02205     this->value = parameter;
02206   // Bouml preserved body end 000ED8F1
02207 }
02208 
02209 void PParameterTrajectoryControl::toString(std::string& value) {
02210   // Bouml preserved body begin 000ED971
02211   std::stringstream ss;
02212   ss << this->name << ": " << this->value;
02213   value  = ss.str();
02214   // Bouml preserved body end 000ED971
02215 }
02216 
02217 IParameterTrajectoryControl::IParameterTrajectoryControl() {
02218   // Bouml preserved body begin 000EDBF1
02219     this->name = "IParameterTrajectoryControl";
02220     this->lowerLimit = INT_MIN;
02221     this->upperLimit = INT_MAX;
02222     this->parameterType = API_PARAMETER;
02223   // Bouml preserved body end 000EDBF1
02224 }
02225 
02226 IParameterTrajectoryControl::~IParameterTrajectoryControl() {
02227   // Bouml preserved body begin 000EDC71
02228   // Bouml preserved body end 000EDC71
02229 }
02230 
02231 void IParameterTrajectoryControl::getParameter(double& parameter) const {
02232   // Bouml preserved body begin 000EDCF1
02233     parameter = this->value;
02234   // Bouml preserved body end 000EDCF1
02235 }
02236 
02237 void IParameterTrajectoryControl::setParameter(const double parameter) {
02238   // Bouml preserved body begin 000EDD71
02239     if (this->lowerLimit > parameter) {
02240       throw std::out_of_range("The parameter exceeds the lower limit");
02241     }
02242     if (this->upperLimit < parameter) {
02243       throw std::out_of_range("The parameter exceeds the upper limit");
02244     }
02245 
02246     this->value = parameter;
02247   // Bouml preserved body end 000EDD71
02248 }
02249 
02250 void IParameterTrajectoryControl::toString(std::string& value) {
02251   // Bouml preserved body begin 000EDDF1
02252   std::stringstream ss;
02253   ss << this->name << ": " << this->value;
02254   value  = ss.str();
02255   // Bouml preserved body end 000EDDF1
02256 }
02257 
02258 DParameterTrajectoryControl::DParameterTrajectoryControl() {
02259   // Bouml preserved body begin 000EE071
02260     this->name = "DParameterTrajectoryControl";
02261     this->lowerLimit = INT_MIN;
02262     this->upperLimit = INT_MAX;
02263     this->parameterType = API_PARAMETER;
02264   // Bouml preserved body end 000EE071
02265 }
02266 
02267 DParameterTrajectoryControl::~DParameterTrajectoryControl() {
02268   // Bouml preserved body begin 000EE0F1
02269   // Bouml preserved body end 000EE0F1
02270 }
02271 
02272 void DParameterTrajectoryControl::getParameter(double& parameter) const {
02273   // Bouml preserved body begin 000EE171
02274     parameter = this->value;
02275   // Bouml preserved body end 000EE171
02276 }
02277 
02278 void DParameterTrajectoryControl::setParameter(const double parameter) {
02279   // Bouml preserved body begin 000EE1F1
02280     if (this->lowerLimit > parameter) {
02281       throw std::out_of_range("The parameter exceeds the lower limit");
02282     }
02283     if (this->upperLimit < parameter) {
02284       throw std::out_of_range("The parameter exceeds the upper limit");
02285     }
02286 
02287     this->value = parameter;
02288   // Bouml preserved body end 000EE1F1
02289 }
02290 
02291 void DParameterTrajectoryControl::toString(std::string& value) {
02292   // Bouml preserved body begin 000EE271
02293   std::stringstream ss;
02294   ss << this->name << ": " << this->value;
02295   value  = ss.str();
02296   // Bouml preserved body end 000EE271
02297 }
02298 
02299 IClippingParameterTrajectoryControl::IClippingParameterTrajectoryControl() {
02300   // Bouml preserved body begin 000EE4F1
02301     this->name = "IClippingParameterTrajectoryControl";
02302     this->lowerLimit = INT_MIN;
02303     this->upperLimit = INT_MAX;
02304     this->parameterType = API_PARAMETER;
02305   // Bouml preserved body end 000EE4F1
02306 }
02307 
02308 IClippingParameterTrajectoryControl::~IClippingParameterTrajectoryControl() {
02309   // Bouml preserved body begin 000EE571
02310   // Bouml preserved body end 000EE571
02311 }
02312 
02313 void IClippingParameterTrajectoryControl::getParameter(double& parameter) const {
02314   // Bouml preserved body begin 000EE5F1
02315     parameter = this->value;
02316   // Bouml preserved body end 000EE5F1
02317 }
02318 
02319 void IClippingParameterTrajectoryControl::setParameter(const double parameter) {
02320   // Bouml preserved body begin 000EE671
02321     if (this->lowerLimit > parameter) {
02322       throw std::out_of_range("The parameter exceeds the lower limit");
02323     }
02324     if (this->upperLimit < parameter) {
02325       throw std::out_of_range("The parameter exceeds the upper limit");
02326     }
02327 
02328     this->value = parameter;
02329   // Bouml preserved body end 000EE671
02330 }
02331 
02332 void IClippingParameterTrajectoryControl::toString(std::string& value) {
02333   // Bouml preserved body begin 000EE6F1
02334   std::stringstream ss;
02335   ss << this->name << ": " << this->value;
02336   value  = ss.str();
02337   // Bouml preserved body end 000EE6F1
02338 }
02339 
02340 
02341 } // namespace youbot
Generated by  doxygen 1.6.3