#include "lasp_siggen.h" #include "arma_npy.h" #include "lasp_siggen_impl.h" #include #include using std::cerr; namespace py = pybind11; /** * \ingroup pybind * @{ * */ /** * @brief Initialize Siggen wrappers * * @param m The Python module to add classes and methods to */ void init_siggen(py::module &m) { /// Siggen py::class_> siggen(m, "Siggen"); siggen.def("setLevel", &Siggen::setLevel, "Set the level of the signal generator"); siggen.def("setDCOffset", &Siggen::setDCOffset); siggen.def("setMute", &Siggen::setMute); siggen.def("setLevel", &Siggen::setLevel); siggen.def("setLevel", &Siggen::setLevel, py::arg("newLevel"), py::arg("dB") = true); siggen.def("reset", &Siggen::reset); siggen.def("setInterruptPeriod", &Siggen::setInterruptPeriod); siggen.def("setFilter", &Siggen::setFilter); py::class_> noise(m, "Noise", siggen); noise.def(py::init<>()); py::class_> sine(m, "Sine", siggen); sine.def(py::init()); sine.def("setFreq", &Sine::setFreq); py::class_> periodic(m, "Periodic", siggen); periodic.def("getSequence", [](const Sweep &s) { return ColToNpy(s.getSequence()); }); py::class_> sweep(m, "Sweep", periodic); sweep.def(py::init()); sweep.def_readonly_static("ForwardSweep", &Sweep::ForwardSweep); sweep.def_readonly_static("BackwardSweep", &Sweep::BackwardSweep); sweep.def_readonly_static("LinearSweep", &Sweep::LinearSweep); sweep.def_readonly_static("LogSweep", &Sweep::LogSweep); } /** @} */