Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

LinearActuator.cpp

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file LinearActuator.cpp
00003 *  \Implementation of the 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 #include "LinearActuator.h"
00015 #include <Utils/Misc.h>
00016 #include <Utils/CfgParse.h>
00017 
00018     //////////////////////////////////////////////////
00019     // Contructors/Deconstructors                   //
00020     //////////////////////////////////////////////////
00021 
00022         LinearActuator::LinearActuator()
00023         {
00024         }
00025 
00026         LinearActuator::~LinearActuator()
00027         {
00028         }
00029 
00030     //////////////////////////////////////////////////
00031     // Facilitators                                 //
00032     //////////////////////////////////////////////////
00033 
00034         int LinearActuator::TravelDistanceLimits(double Param_Distance)
00035         {
00036                 m_PhysicalLinearActuator.TravelDistance(Param_Distance); 
00037         /*we may want to make this so that the hard limit is not ever truely reached*/
00038 
00039         return (0);
00040         }
00041         
00042         int LinearActuator::TravelDistanceChecks(double Param_Distance)
00043         {
00044                 double currentposition=m_PhysicalLinearActuator.QueryCurrentPosition();
00045 
00046         if (Param_Distance >0)
00047                 {if ((Param_Distance+currentposition) > m_PhysicalLinearActuator.UpperLimit)
00048                         {cout << "The distance is too great (positive)";
00049                         }
00050                 else
00051                         {m_PhysicalLinearActuator.TravelDistance(Param_Distance);
00052                         }
00053                 }
00054         else
00055                 {if ((Param_Distance+currentposition) < m_PhysicalLinearActuator.LowerLimit)
00056                         {cout << "The distance is too great (negative)";
00057                         }
00058                 else
00059                         {m_PhysicalLinearActuator.TravelDistance(Param_Distance);
00060                         }
00061                 }
00062 
00063         return (0);
00064         }
00065 
00066 
00067         int LinearActuator::TravelPosition(double Param_Position)
00068         {
00069                 m_PhysicalLinearActuator.TravelPosition(Param_Position);
00070 
00071         return (0);
00072         }
00073 
00074         int LinearActuator::SetVelocity(double velocity)
00075         {
00076                 int error= m_PhysicalLinearActuator.SetVelocity(velocity);
00077                 return error;
00078         }
00079 
00080         int LinearActuator::StartJog(int direction)
00081         {
00082                 int error = m_PhysicalLinearActuator.StartJog(direction);     
00083                 return error;
00084         }
00085 
00086         int LinearActuator::Stop()
00087         {
00088                 int error =m_PhysicalLinearActuator.Stop();
00089                 return error;
00090         } 
00091 
00092         int LinearActuator::Initialize(int Action, char *port)
00093         {
00094                 int error=m_PhysicalLinearActuator.Initialize(Action, port);  
00095                 return error;
00096         }
00097 
00098         int LinearActuator::Deinitialize()
00099         {
00100                 m_PhysicalLinearActuator.Deinitialize();
00101                 return 0;
00102         }
00103 
00104 
00105     //////////////////////////////////////////////////
00106     // Inspectors                                   //
00107     //////////////////////////////////////////////////
00108 
00109 
00110         double LinearActuator::GetCurrentPosition()
00111         {
00112                 m_CurrentPosition=m_PhysicalLinearActuator.QueryCurrentPosition();
00113                 return m_CurrentPosition;
00114         }
00115 
00116 // Do not change the comments below - they will be added automatically by CVS
00117 /*****************************************************************************
00118 *       $Log: LinearActuator.cpp,v $
00119 *       Revision 1.4  2006/06/27 15:24:31  bwilliam
00120 *       Added jog functions. Added port file name argument to initialization function.
00121 *
00122 *
00123 *
00124 *
00125 ****************************************************************************/
00126 

Generated on Wed Sep 5 12:54:21 2007 for DSACSS Operational Code by  doxygen 1.3.9.1