Reflexxes Motion Libraries
Manual and Documentation (Type II, Version 1.2.6)
|
00001 // ---------------------- Doxygen info ---------------------- 00036 // ---------------------------------------------------------- 00037 // For a convenient reading of this file's source code, 00038 // please use a tab width of four characters. 00039 // ---------------------------------------------------------- 00040 00041 00042 #ifndef __ReflexxesAPI__ 00043 #define __ReflexxesAPI__ 00044 00045 00046 #include <RMLPositionInputParameters.h> 00047 #include <RMLPositionOutputParameters.h> 00048 #include <RMLPositionFlags.h> 00049 #include <RMLVelocityInputParameters.h> 00050 #include <RMLVelocityOutputParameters.h> 00051 #include <RMLVelocityFlags.h> 00052 #include <RMLVector.h> 00053 00054 00055 // ---------------------- Doxygen info ---------------------- 00122 // ---------------------------------------------------------- 00123 class ReflexxesAPI 00124 { 00125 public: 00126 00127 // ---------------------- Doxygen info ---------------------- 00189 // ---------------------------------------------------------- 00190 ReflexxesAPI( const unsigned int &DegreesOfFreedom 00191 , const double &CycleTimeInSeconds 00192 , const unsigned int &NumberOfAdditionalThreads = 0); 00193 00194 00195 // ---------------------- Doxygen info ---------------------- 00211 // ---------------------------------------------------------- 00212 ~ReflexxesAPI(void); 00213 00214 00215 // ---------------------- Doxygen info ---------------------- 00261 // ---------------------------------------------------------- 00262 enum RMLResultValue 00263 { 00267 RML_WORKING = 0, 00270 RML_FINAL_STATE_REACHED = 1, 00275 RML_ERROR = -1, 00280 RML_ERROR_INVALID_INPUT_VALUES = -100, 00284 RML_ERROR_EXECUTION_TIME_CALCULATION = -101, 00288 RML_ERROR_SYNCHRONIZATION = -102, 00293 RML_ERROR_NUMBER_OF_DOFS = -103, 00301 RML_ERROR_NO_PHASE_SYNCHRONIZATION = -104, 00310 RML_ERROR_NULL_POINTER = -105, 00315 RML_ERROR_EXECUTION_TIME_TOO_BIG = -106, 00324 RML_ERROR_USER_TIME_OUT_OF_RANGE = -107 00325 }; 00326 00327 00328 // ---------------------- Doxygen info ---------------------- 00403 // ---------------------------------------------------------- 00404 int RMLPosition( const RMLPositionInputParameters &InputValues 00405 , RMLPositionOutputParameters *OutputValues 00406 , const RMLPositionFlags &Flags); 00407 00408 00409 // ---------------------- Doxygen info ---------------------- 00461 // ---------------------------------------------------------- 00462 int RMLPositionAtAGivenSampleTime( const double &TimeValueInSeconds 00463 , RMLPositionOutputParameters *OutputValues); 00464 00465 00466 // ---------------------- Doxygen info ---------------------- 00545 // ---------------------------------------------------------- 00546 int RMLVelocity( const RMLVelocityInputParameters &InputValues 00547 , RMLVelocityOutputParameters *OutputValues 00548 , const RMLVelocityFlags &Flags); 00549 00550 00551 00552 // ---------------------- Doxygen info ---------------------- 00601 // ---------------------------------------------------------- 00602 int RMLVelocityAtAGivenSampleTime( const double &TimeValueInSeconds 00603 , RMLVelocityOutputParameters *OutputValues); 00604 00605 protected: 00606 00607 // ---------------------- Doxygen info ---------------------- 00618 // ---------------------------------------------------------- 00619 unsigned int NumberOfDOFs; 00620 00621 00622 // ---------------------- Doxygen info ---------------------- 00643 // ---------------------------------------------------------- 00644 unsigned int NumberOfOwnThreads; 00645 00646 00647 // ---------------------- Doxygen info ---------------------- 00658 // ---------------------------------------------------------- 00659 double CycleTime; 00660 00661 00662 // ---------------------- Doxygen info ---------------------- 00679 // ---------------------------------------------------------- 00680 void *RMLPositionObject; 00681 00682 00683 // ---------------------- Doxygen info ---------------------- 00700 // ---------------------------------------------------------- 00701 void *RMLVelocityObject; 00702 00703 }; // class ReflexxesAPI 00704 00705 00706 #endif