aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/x400/adc_self_calibration.hpp
blob: 474c14e07dfbe84b3844b41754a09033fd2052b4 (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
//
// Copyright 2020 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//

#pragma once

#include <uhd/features/adc_self_calibration_iface.hpp>
#include <uhdlib/usrp/common/rpc.hpp>
#include <uhdlib/usrp/dboard/x400_dboard_iface.hpp>
#include <string>

namespace uhd { namespace features {

using namespace uhd::rfnoc;

class adc_self_calibration : public adc_self_calibration_iface
{
public:
    adc_self_calibration(uhd::usrp::x400_rpc_iface::sptr rpcc,
        const std::string rpc_prefix,
        const std::string unique_id,
        size_t db_number,
        uhd::usrp::x400::x400_dboard_iface::sptr daughterboard);

    void run(const size_t channel) override;

private:
    //! Reference to the RPC client
    uhd::usrp::x400_rpc_iface::sptr _rpcc;

    const std::string _rpc_prefix;

    const size_t _db_number;

    uhd::usrp::x400::x400_dboard_iface::sptr _daughterboard;

    const std::string _unique_id;
    std::string get_unique_id() const
    {
        return _unique_id;
    }
};

}} // namespace uhd::features