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

Thruster.h

Go to the documentation of this file.
00001 /************************************************************************************************/
00002 /*! \file Thruster.h
00003 *  \brief The Thruster class provides the interface for h/w thrusters.
00004 *  \author $Author: cakinli $
00005 *  \version $Revision: 1.5 $
00006 *  \date    $Date: 2005/02/25 18:40:52 $
00007 ************************************************************************************************/
00008 /*! 
00009 *
00010 ************************************************************************************************/
00011 
00012 #ifndef __SSSL_THRUSTER_H__
00013 #define __SSSL_THRUSTER_H__
00014 
00015 #include <Base/Actuator.h>
00016 #include <matrix/Matrix.h>
00017 #include <Actuators/PhysicalThruster.h>
00018 #include <Utils/CfgParse.h>
00019 #include <Hardware/DAQCard.h>
00020 
00021 using namespace std;
00022 
00023 class Thruster : public Actuator  
00024 {
00025 public:
00026         // Contructors/Deconstructors
00027         /*! Default Constructor */ 
00028         Thruster();
00029 
00030         /*! Constructor which accepts config parsing info */
00031         Thruster(cfgBody& cfgdat);
00032         
00033         /*! Deconstructor */
00034 //      virtual ~Thruster();
00035         ~Thruster();
00036 
00037         // Facilitators
00038         int Stop();
00039 
00040                 /*! Fire the thruster */
00041                 void StartFire(BYTE signal);
00042         /*! Default Const(); */
00043 
00044                 void StopFire();
00045 
00046         // Mutators
00047         int Initialize();
00048 //      virtual int Initialize();
00049 //      virtual int Initialize(const string& _sInitString);
00050 //      virtual int Deinitialize();
00051 
00052                 /*! Set the desired thrust level (assumed steady state level with time > 600 ms) */
00053                 void SetThrustLevel();
00054 
00055                 /*! Set the unit vector which points in the direction of the applied external force */
00056                 //void SetThrustVector(const Vector& ThrustVect);
00057 
00058                 /*! Set the number used to reference the thruster */
00059                 //void SetThrusterNumber(const int ThrusterNumber);
00060 
00061                 /*! Set the position vector from the CG to the thruster */
00062                 //void SetPositionVector(const Vector& PositionVect);
00063         
00064         // Inspectors
00065 
00066                 /*! Get the unit vector which points in the direction of the applied external force */
00067                 //Vector GetThrustVector() const;
00068 
00069                 /*! Get the thruster position vector */
00070                 //Vector GetPositionVector() const;
00071 
00072                 /*! Get the thruster number */
00073                 //int GetThrusterNumber() const;
00074 
00075                 /*! Get the steady state thrust magnitude */
00076                 double GetThrustLevel() const;
00077 
00078                 /* Get the air pressure setting */
00079                 double GetCurrentPressure() const;
00080     
00081 protected: 
00082     
00083     
00084 private:
00085 
00086         /*! The physical thruster object */
00087         PhysicalThruster m_PhysicalThruster;
00088 
00089         /*! The unit vector which points in the direction of the applied external force */
00090         //Vector m_ThrustVector;
00091         
00092         /*! The vector indicating the position of the thruster */
00093         //Vector m_PositionVector;
00094 
00095         /*! The current pressure level of the air supply */
00096         double m_CurrentAirPressure;
00097 
00098         /*! The current thrust magnitude, determined by the air pressure */
00099         double m_CurrentThrustMagnitude;
00100 
00101         /*! The index number used to reference the thruster */
00102         int m_ThrusterNumber;
00103 
00104         /*! Pointer to an instance of the DAQ card */
00105         DAQCard* m_DAQCard;
00106 
00107 };
00108 
00109 #endif 
00110 // Do not change the comments below - they will be added automatically by CVS
00111 /*****************************************************************************
00112 *       $Log: Thruster.h,v $
00113 *       Revision 1.5  2005/02/25 18:40:52  cakinli
00114 *       Created Makefiles and organized include directives to reduce the number of
00115 *       include paths.  Reorganized libraries so that there is now one per source
00116 *       directory.  Each directory is self-contained in terms of its Makefile.
00117 *       The local Makefile in each directory includes src/config.mk, which has all
00118 *       the definitions and general and pattern rules.  So at most, to see what
00119 *       goes into building a target, a person needs to examine the Makefile in
00120 *       that directory, and ../config.mk.
00121 *       
00122 *       Revision 1.4  2004/06/15 14:58:45  shaigunjoe
00123 *       Added changes for digital signal
00124 *       
00125 *       Revision 1.3  2004/05/27 19:59:06  shoemaker
00126 *       Made changes for analog output thruster control
00127 *       
00128 *       Revision 1.2  2003/07/04 14:06:43  simpliciter
00129 *       Added newline at end of file.
00130 *       
00131 *       Revision 1.1.1.1  2003/06/06 18:44:15  simpliciter
00132 *       Initial submission.
00133 *       
00134 *
00135 ******************************************************************************/

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