root / host / include / uhd / usrp / gps_ctrl.hpp @ a4aa89ed
History | View | Annotate | Download (1.81 KB)
| 1 | f09d9820 | Nick Foster | //
|
|---|---|---|---|
| 2 | 95b966a5 | Josh Blum | // Copyright 2010-2011 Ettus Research LLC
|
| 3 | f09d9820 | Nick Foster | //
|
| 4 | // This program is free software: you can redistribute it and/or modify
|
||
| 5 | // it under the terms of the GNU General Public License as published by
|
||
| 6 | // the Free Software Foundation, either version 3 of the License, or
|
||
| 7 | // (at your option) any later version.
|
||
| 8 | //
|
||
| 9 | // This program is distributed in the hope that it will be useful,
|
||
| 10 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
| 11 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
| 12 | // GNU General Public License for more details.
|
||
| 13 | //
|
||
| 14 | // You should have received a copy of the GNU General Public License
|
||
| 15 | // along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
| 16 | //
|
||
| 17 | |||
| 18 | #ifndef INCLUDED_GPS_CTRL_HPP
|
||
| 19 | #define INCLUDED_GPS_CTRL_HPP
|
||
| 20 | |||
| 21 | #include <boost/shared_ptr.hpp> |
||
| 22 | #include <boost/utility.hpp> |
||
| 23 | 330a014d | Nick Foster | #include <boost/function.hpp> |
| 24 | f09d9820 | Nick Foster | #include <boost/date_time/posix_time/posix_time_types.hpp> |
| 25 | |||
| 26 | using namespace boost::posix_time; |
||
| 27 | |||
| 28 | 330a014d | Nick Foster | typedef boost::function<void(std::string)> gps_send_fn_t; |
| 29 | typedef boost::function<std::string(void)> gps_recv_fn_t; |
||
| 30 | |||
| 31 | class gps_ctrl : boost::noncopyable{ |
||
| 32 | f09d9820 | Nick Foster | public:
|
| 33 | 330a014d | Nick Foster | typedef boost::shared_ptr<gps_ctrl> sptr;
|
| 34 | f09d9820 | Nick Foster | |
| 35 | /*!
|
||
| 36 | * Make a GPS config for Jackson Labs or generic NMEA GPS devices
|
||
| 37 | */
|
||
| 38 | 330a014d | Nick Foster | static sptr make(gps_send_fn_t, gps_recv_fn_t);
|
| 39 | f09d9820 | Nick Foster | |
| 40 | /*!
|
||
| 41 | * Get the current GPS time and date
|
||
| 42 | * \return current GPS time and date as boost::posix_time::ptime object
|
||
| 43 | */
|
||
| 44 | virtual ptime get_time(void) = 0; |
||
| 45 | a4aa89ed | Nick Foster | |
| 46 | /*!
|
||
| 47 | * Get the epoch time (as time_t, which is int)
|
||
| 48 | * \return current GPS time and date as time_t
|
||
| 49 | */
|
||
| 50 | virtual time_t get_epoch_time(void) = 0; |
||
| 51 | f09d9820 | Nick Foster | |
| 52 | /*!
|
||
| 53 | * Tell you if there's a supported GPS connected or not
|
||
| 54 | * \return true if a supported GPS is connected
|
||
| 55 | */
|
||
| 56 | virtual bool gps_detected(void) = 0; |
||
| 57 | |||
| 58 | //TODO: other fun things you can do with a GPS.
|
||
| 59 | |||
| 60 | }; |
||
| 61 | |||
| 62 | 330a014d | Nick Foster | #endif /* INCLUDED_GPS_CTRL_HPP */ |