MOOS 0.2375
|
00001 00002 // 00003 // MOOS - Mission Oriented Operating Suite 00004 // 00005 // A suit of Applications and Libraries for Mobile Robotics Research 00006 // Copyright (C) 2001-2005 Massachusetts Institute of Technology and 00007 // Oxford University. 00008 // 00009 // This software was written by Paul Newman and others 00010 // at MIT 2001-2002 and Oxford University 2003-2005. 00011 // email: pnewman@robots.ox.ac.uk. 00012 // 00013 // This file is part of a MOOS Instrument. 00014 // 00015 // This program is free software; you can redistribute it and/or 00016 // modify it under the terms of the GNU General Public License as 00017 // published by the Free Software Foundation; either version 2 of the 00018 // License, or (at your option) any later version. 00019 // 00020 // This program is distributed in the hope that it will be useful, 00021 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00023 // General Public License for more details. 00024 // 00025 // You should have received a copy of the GNU General Public License 00026 // along with this program; if not, write to the Free Software 00027 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 00028 // 02111-1307, USA. 00029 // 00031 // GPSInstrument.h: interface for the CGPSInstrument class. 00032 // 00034 00035 00036 00037 #if !defined(AFX_GPSINSTRUMENT_H__D59AB67F_0212_45A1_A108_219C70F687A9__INCLUDED_) 00038 #define AFX_GPSINSTRUMENT_H__D59AB67F_0212_45A1_A108_219C70F687A9__INCLUDED_ 00039 00040 #if _MSC_VER > 1000 00041 #pragma once 00042 #endif // _MSC_VER > 1000 00043 00044 #include <MOOSUtilityLib/MOOSGeodesy.h> 00045 class CGPSInstrument : public CMOOSInstrument 00046 { 00047 protected: 00048 00049 struct CGPSData 00050 { 00051 bool bGood; 00052 double dfLat_deg; // Decimal degrees 00053 double dfLong_deg; // Decimal degrees 00054 double dfHDOP; 00055 int nSatellites; 00056 00057 CGPSData() 00058 { 00059 bGood = false; 00060 dfLat_deg = 0; 00061 dfLong_deg = 0; 00062 dfHDOP = 0; 00063 nSatellites = 0; 00064 } 00065 }; 00066 00067 public: 00068 CGPSInstrument(); 00069 virtual ~CGPSInstrument(); 00070 00071 protected: 00072 CMOOSGeodesy m_Geodesy; 00073 bool ParseNMEAString(const std::string & sNMEAString, CGPSData & out_data); 00074 bool InitialiseSensor(); 00075 bool Iterate(); 00076 bool OnNewMail(MOOSMSG_LIST &NewMail); 00077 bool OnConnectToServer(); 00078 bool OnStartUp(); 00079 bool GetData(); 00080 bool PublishData(); 00081 std::string m_sType; 00082 bool m_bCombineMessages; 00083 00084 }; 00085 00086 #endif // !defined(AFX_GPSINSTRUMENT_H__D59AB67F_0212_45A1_A108_219C70F687A9__INCLUDED_)