00001 // Copyright (C) 2010-2011 Institut de Robotica i Informatica Industrial, CSIC-UPC. 00002 // Author 00003 // All rights reserved. 00004 // 00005 // This file is part of iri-ros-pkg 00006 // iri-ros-pkg is free software: you can redistribute it and/or modify 00007 // it under the terms of the GNU Lesser General Public License as published by 00008 // the Free Software Foundation, either version 3 of the License, or 00009 // at your option) any later version. 00010 // 00011 // This program is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU Lesser General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU Lesser General Public License 00017 // along with this program. If not, see <http://www.gnu.org/licenses/>. 00018 // 00019 // IMPORTANT NOTE: This code has been generated through a script from the 00020 // iri_ros_scripts. Please do NOT delete any comments to guarantee the correctness 00021 // of the scripts. ROS topics can be easly add by using those scripts. Please 00022 // refer to the IRI wiki page for more information: 00023 // http://wikiri.upc.es/index.php/Robotics_Lab 00024 00025 #ifndef _asterx1_driver_h_ 00026 #define _asterx1_driver_h_ 00027 00028 #include <iri_base_driver/iri_base_driver.h> 00029 #include <iri_asterx1/Asterx1Config.h> 00030 00031 //include asterx1_driver main library 00032 #include <asterx1_gps.h> 00033 00053 class Asterx1Driver : public iri_base_driver::IriBaseDriver 00054 { 00055 private: 00056 // private attributes and methods 00057 CasteRx1 *gpsDevice; 00058 00059 public: 00066 typedef iri_asterx1::Asterx1Config Config; 00067 00074 Config config_; 00075 00084 Asterx1Driver(); 00085 00096 bool openDriver(void); 00097 00108 bool closeDriver(void); 00109 00120 bool startDriver(void); 00121 00132 bool stopDriver(void); 00133 00145 void config_update(const Config& new_cfg, uint32_t level=0); 00146 00147 // here define all asterx1_driver interface methods to retrieve and set 00148 // the driver parameters 00149 00156 ~Asterx1Driver(); 00157 00159 00166 void setMapOrigin(double mapLat0, double mapLon0, double mapAlt0, double mapAlpha0); 00167 00173 void printTM(); 00174 00180 int readDataFromDevice(); 00181 00182 unsigned int getStatus(); 00183 double getTimeStamp(); 00184 unsigned short int getWnc(); 00185 unsigned int getTow(); 00186 unsigned int getNumSatellites(); 00187 float getPDOP(); 00188 float getTDOP(); 00189 float getHDOP(); 00190 float getVDOP(); 00191 float getUndulation(); 00192 unsigned short int getPVTerror(); 00193 double getLat(bool units=inRADS); //by default return value in radians 00194 double getLon(bool units=inRADS); //by default return value in radians 00195 double getAlt(); 00196 double getXWgs(); 00197 double getYWgs(); 00198 double getZWgs(); 00199 double getXMap(); 00200 double getYMap(); 00201 double getZMap(); 00202 double getVxWgs(); 00203 double getVyWgs(); 00204 double getVzWgs(); 00205 double getVxMap(); 00206 double getVyMap(); 00207 double getVzMap(); 00208 double getCxxWgs(); 00209 double getCyyWgs(); 00210 double getCzzWgs(); 00211 double getCxyWgs(); 00212 double getCxxMap(); 00213 double getCyyMap(); 00214 double getCzzMap(); 00215 double getCxyMap(); 00216 double getCxxEnu(); 00217 double getCyyEnu(); 00218 double getCzzEnu(); 00219 double getCxyEnu(); 00220 double getCxzEnu(); 00221 double getCyzEnu(); 00222 }; 00223 00224 #endif