libm2k
Classes | Functions
AnalogIn

Contains the representation of the analogical input segment. More...

Collaboration diagram for AnalogIn:

Classes

class  libm2k::analog::M2kAnalogIn
 Controls the analogical input compound. More...
 

Functions

virtual void libm2k::analog::M2kAnalogIn::startAcquisition (unsigned int nb_samples)=0
 Create the buffer for both channels and start the acquisition. More...
 
virtual void libm2k::analog::M2kAnalogIn::stopAcquisition ()=0
 Destroy the buffer and stop the acquisition.
 
virtual std::vector< std::vector< double > > libm2k::analog::M2kAnalogIn::getSamples (unsigned int nb_samples)=0
 Retrieve a specific number of samples from each channel. More...
 
virtual std::vector< std::vector< double > > libm2k::analog::M2kAnalogIn::getSamplesRaw (unsigned int nb_samples)=0
 Retrieve a specific number of raw samples from each channel. More...
 
virtual const double * libm2k::analog::M2kAnalogIn::getSamplesInterleaved (unsigned int nb_samples_per_channel)=0
 Retrieve a specific number of samples from each channel. More...
 
virtual const short * libm2k::analog::M2kAnalogIn::getSamplesRawInterleaved (unsigned int nb_samples_per_channel)=0
 Retrieve a specific number of raw samples from each channel. More...
 
virtual const double * libm2k::analog::M2kAnalogIn::getSamplesInterleaved_matlab (unsigned int nb_samples)=0
 Retrieve a specific number of samples from both channels. More...
 
virtual const short * libm2k::analog::M2kAnalogIn::getSamplesRawInterleaved_matlab (unsigned int nb_samples)=0
 Retrieve a specific number of raw samples from both channels. More...
 
virtual short libm2k::analog::M2kAnalogIn::getVoltageRaw (unsigned int ch)=0
 Retrieve the average raw value of the given channel. More...
 
virtual double libm2k::analog::M2kAnalogIn::getVoltage (unsigned int ch)=0
 Retrieve the average voltage of the given channel. More...
 
virtual short libm2k::analog::M2kAnalogIn::getVoltageRaw (libm2k::analog::ANALOG_IN_CHANNEL ch)=0
 Retrieve the average raw value of the given channel. More...
 
virtual double libm2k::analog::M2kAnalogIn::getVoltage (libm2k::analog::ANALOG_IN_CHANNEL ch)=0
 Retrieve the average voltage of the given channel. More...
 
virtual std::vector< short > libm2k::analog::M2kAnalogIn::getVoltageRaw ()=0
 Retrieve the average raw value for each channel. More...
 
virtual std::vector< double > libm2k::analog::M2kAnalogIn::getVoltage ()=0
 Retrieve the average voltage for each channel. More...
 
virtual const short * libm2k::analog::M2kAnalogIn::getVoltageRawP ()=0
 Retrieve the average raw value for both channels. More...
 
virtual const double * libm2k::analog::M2kAnalogIn::getVoltageP ()=0
 Retrieve the average voltage for both channels. More...
 
virtual void libm2k::analog::M2kAnalogIn::setVerticalOffset (ANALOG_IN_CHANNEL channel, double vertOffset)=0
 Set the vertical offset, in Volts, of a specific channel. More...
 
virtual double libm2k::analog::M2kAnalogIn::getVerticalOffset (ANALOG_IN_CHANNEL channel)=0
 getVerticalOffset More...
 
virtual double libm2k::analog::M2kAnalogIn::getScalingFactor (libm2k::analog::ANALOG_IN_CHANNEL ch)=0
 Retrieve the scaling factor. More...
 
virtual void libm2k::analog::M2kAnalogIn::setRange (ANALOG_IN_CHANNEL channel, M2K_RANGE range)=0
 Set the range for the given channel. More...
 
virtual void libm2k::analog::M2kAnalogIn::setRange (ANALOG_IN_CHANNEL channel, double min, double max)=0
 Set the range for the given channel. More...
 
virtual libm2k::analog::M2K_RANGE libm2k::analog::M2kAnalogIn::getRange (libm2k::analog::ANALOG_IN_CHANNEL channel)=0
 Retrieve the range for the given channel. More...
 
virtual std::pair< double, double > libm2k::analog::M2kAnalogIn::getRangeLimits (libm2k::analog::M2K_RANGE range)=0
 Retrieve the bounds for the given range. More...
 
virtual std::vector< std::pair< std::string, std::pair< double, double > > > libm2k::analog::M2kAnalogIn::getAvailableRanges ()=0
 Retrieve all ranges that are available. More...
 
virtual int libm2k::analog::M2kAnalogIn::getOversamplingRatio ()=0
 Retrieve the global oversampling ratio. More...
 
virtual int libm2k::analog::M2kAnalogIn::getOversamplingRatio (unsigned int chn_idx)=0
 Retrieve the oversampling ratio for the given channel. More...
 
virtual int libm2k::analog::M2kAnalogIn::setOversamplingRatio (int oversampling)=0
 Set the global oversampling ratio. More...
 
virtual int libm2k::analog::M2kAnalogIn::setOversamplingRatio (unsigned int chn_idx, int oversampling)=0
 Set the oversampling ratio for the given channel. More...
 
virtual double libm2k::analog::M2kAnalogIn::getSampleRate ()=0
 Retrieve the global sample rate. More...
 
virtual std::vector< double > libm2k::analog::M2kAnalogIn::getAvailableSampleRates ()=0
 getAvailableSampleRates More...
 
virtual double libm2k::analog::M2kAnalogIn::setSampleRate (double samplerate)=0
 Set the global sample rate. More...
 
virtual std::pair< double, double > libm2k::analog::M2kAnalogIn::getHysteresisRange (ANALOG_IN_CHANNEL chn)=0
 Retrieve the bounds of the analogical trigger's hysteresis for the given channel. More...
 
virtual double libm2k::analog::M2kAnalogIn::getFilterCompensation (double samplerate)=0
 Retrieve the filter compensation for the given sample rate. More...
 
virtual double libm2k::analog::M2kAnalogIn::getValueForRange (M2K_RANGE range)=0
 Retrieve the numeric value corresponding to the given range. More...
 
virtual double libm2k::analog::M2kAnalogIn::convertRawToVolts (unsigned int channel, short raw)=0
 Convert the raw value of a sample into volts. More...
 
virtual short libm2k::analog::M2kAnalogIn::convertVoltsToRaw (unsigned int channel, double voltage)=0
 Convert the voltage value of a sample into raw. More...
 
virtual unsigned int libm2k::analog::M2kAnalogIn::getNbChannels ()=0
 Retrieve the number of analogical channels. More...
 
virtual std::string libm2k::analog::M2kAnalogIn::getName ()=0
 Retrieve the name of the device. More...
 
virtual void libm2k::analog::M2kAnalogIn::enableChannel (unsigned int chnIdx, bool enable)=0
 Enable or disable the given channel. More...
 
virtual bool libm2k::analog::M2kAnalogIn::isChannelEnabled (unsigned int chnIdx)=0
 Retrieve the state of the given channel. More...
 
virtual void libm2k::analog::M2kAnalogIn::cancelAcquisition ()=0
 Cancel all buffer operations. More...
 
virtual void libm2k::analog::M2kAnalogIn::setKernelBuffersCount (unsigned int count)=0
 Set the kernel buffers to a specific value. More...
 
virtual unsigned int libm2k::analog::M2kAnalogIn::getKernelBuffersCount () const =0
 Get the number of kernel buffers. More...
 
virtual libm2k::M2kHardwareTriggerlibm2k::analog::M2kAnalogIn::getTrigger ()=0
 Get the hardware trigger handler. More...
 
virtual struct IIO_OBJECTS libm2k::analog::M2kAnalogIn::getIioObjects ()=0
 Get access to IIO channels, buffers, devices and context. Can be used when debugging directly with libiio. More...
 
virtual void libm2k::analog::M2kAnalogIn::getSamples (std::vector< std::vector< double >> &data, unsigned int nb_samples)=0
 Retrieve a specific number of samples from each channel. More...
 
virtual std::string libm2k::analog::M2kAnalogIn::getChannelName (unsigned int channel)=0
 Get the channel name for each ADC channel. More...
 
virtual double libm2k::analog::M2kAnalogIn::getMaximumSamplerate ()=0
 Get the maximum samplerate for the ADC. More...
 

Detailed Description

Contains the representation of the analogical input segment.

Function Documentation

◆ cancelAcquisition()

virtual void libm2k::analog::M2kAnalogIn::cancelAcquisition ( )
pure virtual

Cancel all buffer operations.

Note
Should be used to cancel an ongoing acquisition

◆ convertRawToVolts()

virtual double libm2k::analog::M2kAnalogIn::convertRawToVolts ( unsigned int  channel,
short  raw 
)
pure virtual

Convert the raw value of a sample into volts.

Parameters
rawthe raw value of a sample;
channelThe index corresponding to the channel;
Returns
The value of a sample converted into volts;

◆ convertVoltsToRaw()

virtual short libm2k::analog::M2kAnalogIn::convertVoltsToRaw ( unsigned int  channel,
double  voltage 
)
pure virtual

Convert the voltage value of a sample into raw.

Parameters
voltageThe voltage value of a sample;
channelThe index corresponding to the channel;
Returns
The value of a sample converted into raw;

◆ enableChannel()

virtual void libm2k::analog::M2kAnalogIn::enableChannel ( unsigned int  chnIdx,
bool  enable 
)
pure virtual

Enable or disable the given channel.

Parameters
chnIdxThe index corresponding to the channel
enableA boolean value corresponding to the channel's state

◆ getAvailableRanges()

virtual std::vector<std::pair<std::string, std::pair<double, double> > > libm2k::analog::M2kAnalogIn::getAvailableRanges ( )
pure virtual

Retrieve all ranges that are available.

Returns
A list of pairs containing all available ranges and their name

◆ getAvailableSampleRates()

virtual std::vector<double> libm2k::analog::M2kAnalogIn::getAvailableSampleRates ( )
pure virtual

getAvailableSampleRates

Returns
The list of available samplerates for this device

◆ getChannelName()

virtual std::string libm2k::analog::M2kAnalogIn::getChannelName ( unsigned int  channel)
pure virtual

Get the channel name for each ADC channel.

Parameters
channel- unsigned int representing the index of the channel
Returns
std::string - name of the channel

◆ getFilterCompensation()

virtual double libm2k::analog::M2kAnalogIn::getFilterCompensation ( double  samplerate)
pure virtual

Retrieve the filter compensation for the given sample rate.

Parameters
samplerateA double value representing the sample rate
Returns
The value of the filter compensation

◆ getHysteresisRange()

virtual std::pair<double, double> libm2k::analog::M2kAnalogIn::getHysteresisRange ( ANALOG_IN_CHANNEL  chn)
pure virtual

Retrieve the bounds of the analogical trigger's hysteresis for the given channel.

Parameters
chnAn enumerator corresponding to the channel's index
Returns
A pair containing the lower and upper bound

◆ getIioObjects()

virtual struct IIO_OBJECTS libm2k::analog::M2kAnalogIn::getIioObjects ( )
pure virtual

Get access to IIO channels, buffers, devices and context. Can be used when debugging directly with libiio.

Returns
IIO_OBJECTS structure.

◆ getKernelBuffersCount()

virtual unsigned int libm2k::analog::M2kAnalogIn::getKernelBuffersCount ( ) const
pure virtual

Get the number of kernel buffers.

Returns
the number of previously set kernel buffers (saved in this session)

◆ getMaximumSamplerate()

virtual double libm2k::analog::M2kAnalogIn::getMaximumSamplerate ( )
pure virtual

Get the maximum samplerate for the ADC.

Returns
double - the value of the maximum samplerate

◆ getName()

virtual std::string libm2k::analog::M2kAnalogIn::getName ( )
pure virtual

Retrieve the name of the device.

Returns
The name of the device

◆ getNbChannels()

virtual unsigned int libm2k::analog::M2kAnalogIn::getNbChannels ( )
pure virtual

Retrieve the number of analogical channels.

Returns
The number of channels

◆ getOversamplingRatio() [1/2]

virtual int libm2k::analog::M2kAnalogIn::getOversamplingRatio ( )
pure virtual

Retrieve the global oversampling ratio.

Returns
The value of the global ratio

◆ getOversamplingRatio() [2/2]

virtual int libm2k::analog::M2kAnalogIn::getOversamplingRatio ( unsigned int  chn_idx)
pure virtual

Retrieve the oversampling ratio for the given channel.

Parameters
chn_idxThe index corresponding to the channel
Returns
The ratio value

◆ getRange()

virtual libm2k::analog::M2K_RANGE libm2k::analog::M2kAnalogIn::getRange ( libm2k::analog::ANALOG_IN_CHANNEL  channel)
pure virtual

Retrieve the range for the given channel.

Parameters
channelAn enumerator corresponding to the channel's index
Returns
An enumerator corresponding to the range

◆ getRangeLimits()

virtual std::pair<double, double> libm2k::analog::M2kAnalogIn::getRangeLimits ( libm2k::analog::M2K_RANGE  range)
pure virtual

Retrieve the bounds for the given range.

Parameters
rangeAn enumerator corresponding to the range
Returns
A pair containing the lower and upper bound

◆ getSampleRate()

virtual double libm2k::analog::M2kAnalogIn::getSampleRate ( )
pure virtual

Retrieve the global sample rate.

Returns
The value of the sample rate

◆ getSamples() [1/2]

virtual std::vector<std::vector<double> > libm2k::analog::M2kAnalogIn::getSamples ( unsigned int  nb_samples)
pure virtual

Retrieve a specific number of samples from each channel.

Parameters
nb_samplesThe number of samples that will be retrieved
Returns
A list containing lists of samples for each channel
Note
The index of the list corresponds to the index of the channel
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getSamples() [2/2]

virtual void libm2k::analog::M2kAnalogIn::getSamples ( std::vector< std::vector< double >> &  data,
unsigned int  nb_samples 
)
pure virtual

Retrieve a specific number of samples from each channel.

Parameters
data- a reference to a vector owned/created by the client
nb_samplesThe number of samples that will be retrieved
Note
The vector will be cleaned and then filled with samples
The index of the list corresponds to the index of the channel
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getSamplesInterleaved()

virtual const double* libm2k::analog::M2kAnalogIn::getSamplesInterleaved ( unsigned int  nb_samples_per_channel)
pure virtual

Retrieve a specific number of samples from each channel.

Parameters
nb_samples_per_channelThe number of samples that will be retrieved
Returns
A pointer to the interleaved samples
Note
Before the acquisition, both channels will be automatically enabled
The data array will contain samples from both channels
After the acquisition is finished, the channels will return to their initial state
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getSamplesInterleaved_matlab()

virtual const double* libm2k::analog::M2kAnalogIn::getSamplesInterleaved_matlab ( unsigned int  nb_samples)
pure virtual

Retrieve a specific number of samples from both channels.

Parameters
nb_samplesThe number of samples that will be retrieved
Returns
A pointer to the interleaved samples
Note
MATLAB specific API wrapper
Before the acquisition, both channels will be automatically enabled
The data array will contain samples from both channels
The data array will contain nb_samples/2 for each channel
After the acquisition is finished, the channels will return to their initial state
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getSamplesRaw()

virtual std::vector<std::vector<double> > libm2k::analog::M2kAnalogIn::getSamplesRaw ( unsigned int  nb_samples)
pure virtual

Retrieve a specific number of raw samples from each channel.

Parameters
nb_samplesThe number of samples that will be retrieved
Returns
A list containing lists of raw samples for each channel
Note
The index of the list corresponds to the index of the channel
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getSamplesRawInterleaved()

virtual const short* libm2k::analog::M2kAnalogIn::getSamplesRawInterleaved ( unsigned int  nb_samples_per_channel)
pure virtual

Retrieve a specific number of raw samples from each channel.

Parameters
nb_samples_per_channelThe number of samples that will be retrieved
Returns
A pointer to the interleaved raw samples
Note
Before the acquisition, both channels will be automatically enabled
The data array will contain samples from both channels
After the acquisition is finished, the channels will return to their initial state
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getSamplesRawInterleaved_matlab()

virtual const short* libm2k::analog::M2kAnalogIn::getSamplesRawInterleaved_matlab ( unsigned int  nb_samples)
pure virtual

Retrieve a specific number of raw samples from both channels.

Parameters
nb_samplesThe number of samples that will be retrieved
Returns
A pointer to the interleaved raw samples
Note
MATLAB specific API wrapper
Before the acquisition, both channels will be automatically enabled
The data array will contain samples from both channels
The data array will contain nb_samples/2 for each channel
After the acquisition is finished, the channels will return to their initial state
Due to a hardware limitation, the number of samples must be a multiple of 4 and greater than 16.

◆ getScalingFactor()

virtual double libm2k::analog::M2kAnalogIn::getScalingFactor ( libm2k::analog::ANALOG_IN_CHANNEL  ch)
pure virtual

Retrieve the scaling factor.

Parameters
chAn enumerator corresponding to the channel's index
Returns
The value of the scaling factor

◆ getTrigger()

virtual libm2k::M2kHardwareTrigger* libm2k::analog::M2kAnalogIn::getTrigger ( )
pure virtual

Get the hardware trigger handler.

Returns
A pointer to the hardware trigger trigger

◆ getValueForRange()

virtual double libm2k::analog::M2kAnalogIn::getValueForRange ( M2K_RANGE  range)
pure virtual

Retrieve the numeric value corresponding to the given range.

Parameters
range
Returns
double

◆ getVerticalOffset()

virtual double libm2k::analog::M2kAnalogIn::getVerticalOffset ( ANALOG_IN_CHANNEL  channel)
pure virtual

getVerticalOffset

Parameters
channelthe index of the channel
Returns
the value of the offset in Volts

◆ getVoltage() [1/3]

virtual double libm2k::analog::M2kAnalogIn::getVoltage ( unsigned int  ch)
pure virtual

Retrieve the average voltage of the given channel.

Parameters
chThe index corresponding to the channel
Returns
The average voltage

◆ getVoltage() [2/3]

virtual double libm2k::analog::M2kAnalogIn::getVoltage ( libm2k::analog::ANALOG_IN_CHANNEL  ch)
pure virtual

Retrieve the average voltage of the given channel.

Parameters
chAn enumerator corresponding to the channel's index
Returns
The average voltage

◆ getVoltage() [3/3]

virtual std::vector<double> libm2k::analog::M2kAnalogIn::getVoltage ( )
pure virtual

Retrieve the average voltage for each channel.

Returns
A list containing the average voltage of each channel
Note
The index of the voltage corresponds to the channel's index

◆ getVoltageP()

virtual const double* libm2k::analog::M2kAnalogIn::getVoltageP ( )
pure virtual

Retrieve the average voltage for both channels.

Returns
A pointer to the average voltage of both channels

◆ getVoltageRaw() [1/3]

virtual short libm2k::analog::M2kAnalogIn::getVoltageRaw ( unsigned int  ch)
pure virtual

Retrieve the average raw value of the given channel.

Parameters
chThe index corresponding to the channel
Returns
The average raw value

◆ getVoltageRaw() [2/3]

virtual short libm2k::analog::M2kAnalogIn::getVoltageRaw ( libm2k::analog::ANALOG_IN_CHANNEL  ch)
pure virtual

Retrieve the average raw value of the given channel.

Parameters
chAn enumerator corresponding to the channel's index
Returns
The average raw value

◆ getVoltageRaw() [3/3]

virtual std::vector<short> libm2k::analog::M2kAnalogIn::getVoltageRaw ( )
pure virtual

Retrieve the average raw value for each channel.

Returns
A list containing the average raw value of each channel
Note
The index of the value corresponds to the channel's index

◆ getVoltageRawP()

virtual const short* libm2k::analog::M2kAnalogIn::getVoltageRawP ( )
pure virtual

Retrieve the average raw value for both channels.

Returns
A pointer to the average raw value of both channels

◆ isChannelEnabled()

virtual bool libm2k::analog::M2kAnalogIn::isChannelEnabled ( unsigned int  chnIdx)
pure virtual

Retrieve the state of the given channel.

Parameters
chnIdxThe index corresponding to the channel
Returns
True if the channel is enabled
False if the channel is disabled

◆ setKernelBuffersCount()

virtual void libm2k::analog::M2kAnalogIn::setKernelBuffersCount ( unsigned int  count)
pure virtual

Set the kernel buffers to a specific value.

Parameters
countthe number of kernel buffers

◆ setOversamplingRatio() [1/2]

virtual int libm2k::analog::M2kAnalogIn::setOversamplingRatio ( int  oversampling)
pure virtual

Set the global oversampling ratio.

Parameters
oversamplingInteger value to set the oversampling ratio to
Returns
The current value of the global ratio

◆ setOversamplingRatio() [2/2]

virtual int libm2k::analog::M2kAnalogIn::setOversamplingRatio ( unsigned int  chn_idx,
int  oversampling 
)
pure virtual

Set the oversampling ratio for the given channel.

Parameters
chn_idxThe index corresponding to the channel
oversamplingInteger value to set the oversampling ratio to
Returns
The current ratio value

◆ setRange() [1/2]

virtual void libm2k::analog::M2kAnalogIn::setRange ( ANALOG_IN_CHANNEL  channel,
M2K_RANGE  range 
)
pure virtual

Set the range for the given channel.

Parameters
channelAn enumerator corresponding to the channel's index
rangeAn enumerator corresponding to a range

◆ setRange() [2/2]

virtual void libm2k::analog::M2kAnalogIn::setRange ( ANALOG_IN_CHANNEL  channel,
double  min,
double  max 
)
pure virtual

Set the range for the given channel.

Parameters
channelAn enumerator corresponding to the channel's index
minUpper bound
maxLower bound

◆ setSampleRate()

virtual double libm2k::analog::M2kAnalogIn::setSampleRate ( double  samplerate)
pure virtual

Set the global sample rate.

Parameters
samplerateA double value to set the sample rate to
Returns
The value of the global sample rate

◆ setVerticalOffset()

virtual void libm2k::analog::M2kAnalogIn::setVerticalOffset ( ANALOG_IN_CHANNEL  channel,
double  vertOffset 
)
pure virtual

Set the vertical offset, in Volts, of a specific channel.

Parameters
channelthe index of the channel
vertOffsetthe value of the offset in Volts

◆ startAcquisition()

virtual void libm2k::analog::M2kAnalogIn::startAcquisition ( unsigned int  nb_samples)
pure virtual

Create the buffer for both channels and start the acquisition.

Parameters
nb_samplessize of the buffer in samples for each channel