00001 /************************************************************************************************/ 00002 /*! \file TiltSensor.h 00003 * \brief Interface to a Two-Axis Tilt Sensor. 00004 * \author $Author: cakinli $ 00005 * \version $Revision: 1.2 $ 00006 * \date $Date: 2005/03/16 18:08:18 $ 00007 ************************************************************************************************/ 00008 /*! 00009 * 00010 ************************************************************************************************/ 00011 00012 #ifndef __SSSL_TILTSENSOR_H__ 00013 #define __SSSL_TILTSENSOR_H__ 00014 00015 #include <Sensors/AttitudeSensor.h> 00016 #include <matrix/Matrix.h> 00017 #include <Utils/Measurement.h> 00018 #include <Utils/CfgParse.h> 00019 #include <Sensors/PhysicalTiltSensor.h> 00020 00021 using namespace std; 00022 using namespace O_SESSAME; 00023 00024 class TiltSensor : public AttitudeSensor 00025 { 00026 public: 00027 /*! Default COnstructor */ 00028 TiltSensor(); 00029 00030 /*! Constructor with Config parsing */ 00031 TiltSensor(cfgBody& cfgdat); 00032 00033 /*! Deconstructor */ 00034 virtual ~TiltSensor(); 00035 00036 /*! Inititalizer */ 00037 int Initialize(); 00038 00039 /*! Get rotation of sensor (pure virtual from Sensor.h) */ 00040 Vector GetSensorToBodyQuaternion(); 00041 00042 /*! Get Location of sensor */ 00043 Vector GetSensorLocation(); 00044 00045 /*! Get measured pitch angle (rad) */ 00046 void GetAngles(double& pitch,double& roll, double& t); 00047 00048 /*! Get comm file descriptor*/ 00049 int GetFD(); 00050 00051 /*! Set comm port */ 00052 void SetPort(string Port); 00053 00054 Measurement GetMeasurement(); 00055 00056 protected: 00057 00058 private: 00059 /*! Member PhysicalTiltSensor */ 00060 PhysicalTiltSensor m_PhysicalTiltSensor; 00061 00062 /*! Sensor Location */ 00063 Vector m_Location; 00064 00065 /*! Sensor rotation */ 00066 Vector m_Q; 00067 }; 00068 #endif