INTRODUCTION Overview Download and Install Quick Start Documentation Publications NONFRAMEWORK CODE Driver Interfaces Drivers Libraries Utilities FRAMEWORK CODE Interfaces Components Libraries Utilities Full Software Listings DEVELOPER Tutorials Examples Dev Guide Dashboard PEOPLE Contributors Users Project Download Mailing lists
|
hydrointerfaces/gps.h00001 /* 00002 * Orca-Robotics Project: Components for robotics 00003 * http://orca-robotics.sf.net/ 00004 * Copyright (c) 2004-2009 Michael Moser 00005 * 00006 * This copy of Orca is licensed to you under the terms described in 00007 * the LICENSE file included in this distribution. 00008 * 00009 */ 00010 00011 #ifndef HYDRO_INTERFACES_GPS_H 00012 #define HYDRO_INTERFACES_GPS_H 00013 00014 #include <cstdlib> 00015 #include <string> 00016 #include <memory> 00017 #include <vector> 00018 00019 #include <hydroutil/context.h> 00020 00021 00022 namespace hydrointerfaces 00023 { 00024 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 class SOEXPORT Gps 00056 { 00057 00058 public: 00059 00061 class Config 00062 { 00063 public: 00064 Config() {}; 00065 bool isValid() const { return true; }; 00066 std::string toString() const { return std::string(); }; 00067 //bool operator==( const Config & other ); 00068 //bool operator!=( const Config & other ); 00069 }; 00070 00076 enum PositionType { 00078 GpsPositionTypeNotAvailable, 00081 GpsPositionTypeAutonomous, 00083 GpsPositionTypeDifferential, 00084 NovatelNone, 00085 NovatelFixedPos, 00086 NovatelFixedHeigth, 00087 NovatelFloatConv, 00088 NovatelWideLane, 00089 NovatelNarrowLane, 00090 NovatelDopplerVelocity, 00091 NovatelSingle, 00092 NovatelPsrDiff, 00093 NovatelWAAS, 00094 NovatelPropagated, 00095 NovatelOmnistar, 00096 NovatelL1Float, 00097 NovatelIonFreeFloat, 00098 NovatelNarrowFloat, 00099 NovatelL1Int, 00100 NovatelWideInt, 00101 NovatelNarrowInt, 00102 NovatelRTKDirectINS, 00103 NovatelINS, 00104 NovatelINSPSRSP, 00105 NovatelINSPSRFLOAT, 00106 NovatelINSRTKFLOAT, 00107 NovatelINSRTKFIXED, 00108 NovatelOmnistarHP, 00109 NovatelUnknown 00110 }; 00111 00113 struct Data 00114 { 00117 int timeStampSec; 00120 int timeStampUsec; 00123 int utcTimeHrs; 00126 int utcTimeMin; 00129 double utcTimeSec; 00130 00132 double latitude; 00134 double longitude; 00136 double altitude; 00137 00139 double horizontalPositionError; 00141 bool isVerticalPositionErrorValid; 00143 double verticalPositionError; 00144 00146 double heading; 00148 double speed; 00150 double climbRate; 00151 00153 int satellites; 00154 int observationCountOnL1; 00155 int observationCountOnL2; 00157 PositionType positionType; 00159 double geoidalSeparation; 00160 }; 00161 00164 virtual void read( Data &data )=0; 00165 00166 virtual ~Gps() {}; 00167 00168 private: 00169 00170 }; 00171 00173 class SOEXPORT GpsFactory { 00174 public: 00175 virtual ~GpsFactory() {}; 00177 virtual Gps *createDriver( const Gps::Config &config, 00178 const hydroutil::Context &context ) const=0; 00179 }; 00180 00182 } // namespace 00183 00184 // Function for dynamically instantiating drivers. 00185 // A driver must have a function like so: 00186 // extern "C" { 00187 // hydrointerfaces::GpsFactory *GpsFactory(); 00188 // } 00189 typedef hydrointerfaces::GpsFactory *GpsDriverFactoryMakerFunc(); 00190 00191 #endif |
Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)