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

triadObserver.h

Go to the documentation of this file.
00001 //////////////////////////////////////////////////////////////////////////////////////////////////
00002 /*! \file triadObserver.h
00003 *  \brief Header file for triad observer
00004 *  \author $Author: jayhawk_hokie $
00005 *  \version $Revision: 1.5 $
00006 *  \date    $Date: 2007/07/24 08:45:27 $
00007 *//////////////////////////////////////////////////////////////////////////////////////////////////
00008 /*!
00009 */
00010 //////////////////////////////////////////////////////////////////////////////////////////////////
00011 
00012 #ifndef __SSSL_TRIAD_OBSERVER_H__
00013 #define __SSSL_TRIAD_OBSERVER_H__
00014 
00015 
00016 #include <string>
00017 #include <iostream>
00018 #include <cmath>
00019 #include <sstream>
00020 #include <ctime>
00021 #include "Sensors/DMUAccelerometer.h"
00022 #include "Sensors/DMURateGyro.h"
00023 #include "rotation/Rotation.h"
00024 #include "matrix/Matrix.h"
00025 #include "Sensors/Magnetometer.h"
00026 #include "Base/Whorl.h"
00027 #include "Observer.h"
00028 #include "dsacssinterface.h"
00029 
00030 extern "C"{
00031 #include "Hardware/satctl.h"
00032 #include "Hardware/common.h"
00033 }
00034 
00035 using namespace std;
00036 
00037 class triadObserver : public Observer
00038 {
00039 public:
00040         //////////////////////////////////
00041         // Constructors/Deconstructors
00042         //////////////////////////////////
00043 
00044         triadObserver( );
00045 
00046         triadObserver( TiXmlHandle handle, Whorl* ptr_whorl );
00047         
00048         virtual ~triadObserver( );
00049 
00050         int Initialize( );
00051         
00052         int Run( );
00053         
00054         void Parse( TiXmlHandle handle );
00055         
00056         Matrix GetAttitude( );          
00057         
00058         void SetMagnetometerBodyVector( Vector _magnetometer );
00059         void SetMagnetometerInertialVector( Vector _magnetometer );
00060         void SetAccelerometerBodyVector( Vector _accelerometer );
00061         void SetAccelerometerInertialVector( Vector _accelerometer );
00062 
00063 private:
00064         Vector m_magBody;
00065         
00066         Vector m_2magBodyPrevious;
00067         
00068         Vector m_accelBody;
00069         Vector m_ratesBody; // body-fixed measurements
00070         
00071         
00072         Whorl* m_whorl; // pointer to a whorl object
00073 
00074         // inertial vectors     
00075         Vector m_magInertial;
00076         Vector m_accelInertial; // inertial measurements        
00077         
00078         Vector m_AngularAccel;
00079         
00080         Vector m_rsensor;
00081 };
00082 
00083 #endif
00084 
00085 // Do not change the comments below - they will be added automatically by CVS
00086 /*****************************************************************************
00087 *       $Log: triadObserver.h,v $
00088 *       Revision 1.5  2007/07/24 08:45:27  jayhawk_hokie
00089 *       Replaced matrix pointers.
00090 *
00091 *       Revision 1.4  2007/05/29 19:02:15  jayhawk_hokie
00092 *       *** empty log message ***
00093 *
00094 *       Revision 1.3  2007/03/27 19:15:44  jayhawk_hokie
00095 *       Updated Class.
00096 *
00097 *       Revision 1.2  2007/03/21 20:12:28  jayhawk_hokie
00098 *       Update of the Triad Observer Class
00099 *
00100 *       Revision 1.1  2007/01/12 22:11:57  bwilliam
00101 *       Initial submission.
00102 *
00103 ******************************************************************************/
00104 

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