1 //
2 // Copyright 2020 Ettus Research, a National Instruments Brand
3 //
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 //
6 
7 #pragma once
8 
9 #include "block_controller_factory_python.hpp"
10 #include <uhd/rfnoc/siggen_block_control.hpp>
11 
12 using namespace uhd::rfnoc;
13 
export_siggen_block_control(py::module & m)14 void export_siggen_block_control(py::module& m)
15 {
16     py::enum_<siggen_waveform>(m, "siggen_waveform")
17         .value("CONSTANT", siggen_waveform::CONSTANT)
18         .value("SINE_WAVE", siggen_waveform::SINE_WAVE)
19         .value("NOISE", siggen_waveform::NOISE)
20         .export_values();
21 
22     py::class_<siggen_block_control, noc_block_base, siggen_block_control::sptr>(
23         m, "siggen_block_control")
24         .def(py::init(&block_controller_factory<siggen_block_control>::make_from))
25         .def("set_enable", &siggen_block_control::set_enable)
26         .def("get_enable", &siggen_block_control::get_enable)
27         .def("set_waveform", &siggen_block_control::set_waveform)
28         .def("get_waveform", &siggen_block_control::get_waveform)
29         .def("set_amplitude", &siggen_block_control::set_amplitude)
30         .def("get_amplitude", &siggen_block_control::get_amplitude)
31         .def("set_constant", &siggen_block_control::set_constant)
32         .def("get_constant", &siggen_block_control::get_constant)
33         .def("set_sine_phase_increment", &siggen_block_control::set_sine_phase_increment)
34         .def("get_sine_phase_increment", &siggen_block_control::get_sine_phase_increment)
35         .def("set_sine_frequency", &siggen_block_control::set_sine_frequency)
36         .def("set_samples_per_packet", &siggen_block_control::set_samples_per_packet)
37         .def("get_samples_per_packet", &siggen_block_control::get_samples_per_packet);
38 }
39