aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/e300/e300_ublox_control.hpp
blob: 8705d6c5281ff0c8e947999209dca06083b129c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#ifndef INCLUDED_UHD_USRP_UBLOX_CONTROL_HPP
#define INCLUDED_UHD_USRP_UBLOX_CONTROL_HPP

#include <boost/cstdint.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/asio.hpp>
#include <uhd/config.hpp>
#include <uhd/usrp/gps_ctrl.hpp>
#include <uhd/types/sensors.hpp>

#include "e300_async_serial.hpp"

namespace uhd { namespace usrp { namespace gps {

namespace ublox { namespace ubx {

class control : public virtual uhd::gps_ctrl
{
public:
    typedef boost::shared_ptr<control> sptr;

    static sptr make(const std::string &node, const size_t baud_rate);

    virtual void configure_message_rate(
        const boost::uint16_t msg,
        const boost::uint8_t rate) = 0;

    virtual void configure_antenna(
        const boost::uint16_t flags,
        const boost::uint16_t pins) = 0;

    virtual void configure_pps(
        const boost::uint32_t interval,
        const boost::uint32_t length,
        const boost::int8_t status,
        const boost::uint8_t time_ref,
        const boost::uint8_t flags,
        const boost::int16_t antenna_delay,
        const boost::int16_t rf_group_delay,
        const boost::int32_t user_delay) = 0;

    virtual void configure_rates(
        boost::uint16_t meas_rate,
        boost::uint16_t nav_rate,
        boost::uint16_t time_ref) = 0;
};
}} // namespace ublox::ubx

}}} // namespace
#endif // INCLUDED_UHD_USRP_UBLOX_CONTROL_HPP