00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file LinearActuator.h 00003 * \Header file for LinearActuator class 00004 * \author $Author: bwilliam $ 00005 * \version $Revision: 1.4 $ 00006 * \date $Date: 2006/06/27 15:24:31 $ 00007 *////////////////////////////////////////////////////////////////////////////////////////////////// 00008 /*! 00009 */ 00010 ////////////////////////////////////////////////////////////////////////////////////////////////// 00011 00012 00013 00014 00015 00016 #ifndef __SSSL_LINEARACTUATOR_H__ 00017 #define __SSSL_LINEARACTUATOR_H__ 00018 00019 #include <Base/Actuator.h> 00020 #include <Utils/Misc.h> 00021 #include <string> 00022 #include <sstream> 00023 #include <Actuators/PhysicalLinearActuator.h> 00024 using namespace std; 00025 using namespace O_SESSAME; 00026 00027 /*! Class to interface with linear actuators */ 00028 class LinearActuator : public Actuator 00029 { 00030 public: 00031 ////////////////////////////////////////////////// 00032 // Contructors/Deconstructors // 00033 ////////////////////////////////////////////////// 00034 00035 /*! Default Constructor*/ 00036 LinearActuator(); 00037 00038 /*! Deconstructor*/ 00039 virtual ~LinearActuator(); 00040 00041 ////////////////////////////////////////////////// 00042 // Facilitators // 00043 ////////////////////////////////////////////////// 00044 00045 /*!Will move the linear actuator a desired distance or as far as possible in either direction*/ 00046 /*!Param_Distance double representing the desired travel distance (inches)*/ 00047 00048 int TravelDistanceLimits(double Param_Distance); 00049 00050 00051 /*!Will check to see if the desired distance to travel is possible. If it is possible, the linear actuator moves, if it is not possible an error is reported to the user*/ 00052 /*!Param_Distance double representing the desired travel distance (inches)*/ 00053 00054 int TravelDistanceChecks(double Param_Distance); 00055 00056 /*!Will move the linear actuator to a desired position*/ 00057 /*!Param_Position double representing the desired position to move to (inches)*/ 00058 00059 int TravelPosition(double Param_Position); 00060 00061 /*!Sets velocity for the linear actuator*/ 00062 /*!velocity represents velocity in the range of 0-50*/ 00063 00064 int SetVelocity(double velocity); 00065 00066 /*! Start linear actuator jog*/ 00067 00068 int StartJog(int direction); 00069 00070 /*! Stop the linear actuator*/ 00071 00072 int Stop(); 00073 00074 /*! Initialize the linear actuator(s)*/ 00075 int Initialize(int Action, char *port); 00076 00077 /*! Deinitialize the linear actuator*/ 00078 int Deinitialize(); 00079 00080 00081 ////////////////////////////////////////////////// 00082 // Inspectors // 00083 ////////////////////////////////////////////////// 00084 00085 /*!Will return the current position of the linear actuator (inches)*/ 00086 00087 double GetCurrentPosition( ); 00088 00089 protected: 00090 00091 00092 private: 00093 00094 00095 /*! Member double representing the current position of the linear actuator in inches*/ 00096 double m_CurrentPosition; 00097 00098 /*! Member PhysicalLinearActuator object*/ 00099 PhysicalLinearActuator m_PhysicalLinearActuator; 00100 00101 }; 00102 00103 #endif 00104 // Do not change the comments below - they will be added automatically by CVS 00105 /***************************************************************************** 00106 * $Log: LinearActuator.h,v $ 00107 * Revision 1.4 2006/06/27 15:24:31 bwilliam 00108 * Added jog functions. Added port file name argument to initialization function. 00109 * 00110 * 00111 * 00112 * 00113 ****************************************************************************/ 00114 00115