00001 /** 00002 * @file JointDataSequence.h 00003 * 00004 * Definition of JointDataSequence class. 00005 * The JointDataSequence is a sequence of joint data sets 00006 * with timing and interpolation information. 00007 * This is sent from PC to robot and executed by DebugMotionControl. 00008 * 00009 * @author Max Risler 00010 */ 00011 #ifndef __JOINTDATASEQUENCE_H__ 00012 #define __JOINTDATASEQUENCE_H__ 00013 00014 #include "JointData.h" 00015 00016 #include "Tools/Streams/InOut.h" 00017 00018 /** Maximum number of entries per sequence. */ 00019 static const int jointDataSequenceMaxNumOfEntries = 400; 00020 00021 /** 00022 * The JointDataSequence is a sequence of joint data sets 00023 * with timing and interpolation information. 00024 * 00025 * This is sent from PC to robot and executed by DebugMotionControl. 00026 */ 00027 class JointDataSequence 00028 { 00029 public: 00030 /** Constructor */ 00031 JointDataSequence(); 00032 00033 /** Assignment operator */ 00034 JointDataSequence& operator=(const JointDataSequence& other); 00035 00036 /** Number of Entries */ 00037 int numOfEntries; 00038 00039 /** If true sequence is executed repeatedly */ 00040 bool loop; 00041 00042 /** adds an entry at end of the sequence */ 00043 void addEntry(const JointData& jointData, bool interp, int rep); 00044 00045 00046 /** The joint data entries */ 00047 JointData entry[jointDataSequenceMaxNumOfEntries]; 00048 00049 /** Number of times an entry gets repeated */ 00050 int repeats[jointDataSequenceMaxNumOfEntries]; 00051 00052 /** If true linear interpolation will be done to get to this entry from last */ 00053 bool interpolate[jointDataSequenceMaxNumOfEntries]; 00054 }; 00055 00056 /** 00057 * Streaming operator that reads a JointDataSequence from a stream. 00058 * @param stream The stream from which is read. 00059 * @param jointDataSequence The JointDataSequence object. 00060 * @return The stream. 00061 */ 00062 In& operator>>(In& stream,JointDataSequence& jointDataSequence); 00063 00064 /** 00065 * Streaming operator that writes a JointDataSequence to a stream. 00066 * @param stream The stream to write on. 00067 * @param jointDataSequence The JointDataSequence object. 00068 * @return The stream. 00069 */ 00070 Out& operator<<(Out& stream, const JointDataSequence& jointDataSequence); 00071 00072 #endif //__JOINTDATASEQUENCE_H__
1.3.6