22#ifndef M2KANALOGOUT_HPP
23#define M2KANALOGOUT_HPP
25#include <libm2k/m2kglobal.hpp>
27#include <libm2k/m2khardwaretrigger.hpp>
64 virtual void reset() = 0;
130 virtual std::vector<double>
setSampleRate(std::vector<double> samplerates) = 0;
146 virtual void setSyncedDma(
bool en,
int chn = -1) = 0;
151 virtual bool getSyncedDma(
int chn = -1) = 0;
156 virtual void setSyncedStartDma(
bool en,
int chn = -1) = 0;
161 virtual bool getSyncedStartDma(
int chn = -1) = 0;
227 virtual void pushBytes(
unsigned int chnIdx,
double *data,
unsigned int nb_samples) = 0;
244 virtual void pushRawBytes(
unsigned int chnIdx,
short *data,
unsigned int nb_samples) = 0;
260 virtual void pushInterleaved(
double *data,
unsigned int nb_channels,
unsigned int nb_samples) = 0;
292 virtual void push(
unsigned int chnIdx, std::vector<double>
const &data) = 0;
308 virtual void pushRaw(
unsigned int chnIdx, std::vector<short>
const &data) = 0;
323 virtual void push(std::vector<std::vector<double>>
const &data) = 0;
338 virtual void pushRaw(std::vector<std::vector<short>>
const &data) = 0;
358 virtual void stop(
unsigned int chn) = 0;
450 virtual struct IIO_OBJECTS getIioObjects() = 0;
484 virtual unsigned short setVoltage(
unsigned int chn_idx,
double volts) = 0;
495 virtual unsigned short setVoltageRaw(
unsigned int chn_idx,
unsigned short raw) = 0;
Controls the hardware trigger for ADALM2000.
Definition m2khardwaretrigger.hpp:42
Controls the analogical output compound.
Definition m2kanalogout.hpp:53
Generic M2K enumerations.
virtual void stop(unsigned int chn)=0
Stop the given channels from sending the signals.
virtual bool isPushDone(unsigned int chnIdx) const =0
Check if the generation of the signal (only for non-cyclic buffer) is done.
virtual void enableChannel(unsigned int chnIdx, bool enable)=0
Enable or disable the given digital channel.
virtual void setKernelBuffersCount(unsigned int chnIdx, unsigned int count)=0
Set the kernel buffers to a specific value.
virtual void pushRawInterleaved(short *data, unsigned int nb_channels, unsigned int nb_samples)=0
Send samples to all the channels.
virtual bool getBufferRearmOnTrigger() const =0
Retrieve the value of the attribute that controls buffer rearm on trigger.
virtual std::vector< double > getSampleRate()=0
Retrieve the sample rate of both DACs.
virtual unsigned int getKernelBuffersCount(unsigned int chnIdx) const =0
Get the number of kernel buffers.
virtual int setOversamplingRatio(unsigned int chn, int oversampling_ratio)=0
Set the oversampling ratio for the given channel.
virtual double getFilterCompensation(double samplerate)=0
Retrieve the filter compensation for the given sample rate.
virtual std::vector< double > getAvailableSampleRates(unsigned int chn)=0
getAvailableSampleRates
virtual bool isChannelEnabled(unsigned int chnIdx)=0
Check if the given channel is enabled.
virtual void cancelBuffer(unsigned int chn)=0
Cancel all buffer operations of the given channel.
virtual std::vector< int > setOversamplingRatio(std::vector< int > oversampling_ratio)=0
Set the value of the oversampling ratio for each channel.
virtual void pushBytes(unsigned int chnIdx, double *data, unsigned int nb_samples)=0
Send the samples to the given channel.
virtual void setCyclic(bool en)=0
Enable or disable the cyclic mode for all digital channels.
virtual std::vector< double > setSampleRate(std::vector< double > samplerates)=0
Set the sample rate for both channels.
virtual void pushRawBytes(unsigned int chnIdx, short *data, unsigned int nb_samples)=0
Send the samples to the given channel.
virtual void push(unsigned int chnIdx, std::vector< double > const &data)=0
Send the samples to the given channel.
virtual double setSampleRate(unsigned int chn, double samplerate)=0
Set the sample rate for the given channel.
virtual double getMaximumSamplerate(unsigned int chn_idx)=0
Get the maximum samplerate for the DAC.
virtual void setCyclic(unsigned int chn, bool en)=0
Enable or disable the cyclic mode for all digital channels.
virtual void stop()=0
Stop all channels from sending the signals.
virtual libm2k::M2kHardwareTrigger * getTrigger()=0
Get the hardware trigger handler.
virtual double getSampleRate(unsigned int chn)=0
Retrieve the sample rate for the given channel.
virtual void setBufferRearmOnTrigger(bool enable)=0
Allows sequential output of multiple buffers with each trigger event.
virtual void pushRaw(unsigned int chnIdx, std::vector< short > const &data)=0
Send the samples to the given channel.
virtual void push(std::vector< std::vector< double > > const &data)=0
Send samples to channels.
virtual std::vector< int > getOversamplingRatio()=0
Retrieve the global oversampling ratio.
virtual void pushRaw(std::vector< std::vector< short > > const &data)=0
Send samples to channels.
virtual void cancelBuffer()=0
Cancel all buffer operations of enabled channels.
virtual unsigned short setVoltageRaw(unsigned int chn_idx, unsigned short raw)=0
Sets the raw output of the DAC channel.
virtual short convertVoltsToRaw(unsigned int channel, double voltage)=0
Convert the volts value of a sample into raw.
virtual double getScalingFactor(unsigned int chn)=0
Retrieve the scaling factor for the given channel.
virtual bool getCyclic(unsigned int chn)=0
Retrieve the value of the cyclic mode.
virtual void pushInterleaved(double *data, unsigned int nb_channels, unsigned int nb_samples)=0
Send samples to all the channels.
virtual int getOversamplingRatio(unsigned int chn)=0
Retrieve the oversampling ratio for the given channel.
virtual double convertRawToVolts(unsigned int channel, short raw)=0
Convert the raw value of a sample into volts.
virtual unsigned int getNbChannels()=0
Retrieve the number of analogical channels.
virtual std::string getChannelName(unsigned int channel)=0
Get the channel name for each DAC channel.
virtual unsigned short setVoltage(unsigned int chn_idx, double volts)=0
Sets the voltage output of the DAC channel.