Scope
|
#include <OutputsDAQmxResonance.h>
Inherits scope::Outputs.
Public Member Functions | |
OutputsDAQmxResonance (const uint32_t &_area, const parameters::OutputsDAQmxResonance &_outputparams, const parameters::Scope &_params) | |
~OutputsDAQmxResonance () | |
void | Start () override |
void | Stop () override |
int32_t | Write (const std::vector< int16_t > &_xyzp, const uint32_t &_blocks=1) override |
Public Member Functions inherited from scope::Outputs | |
Outputs (const uint32_t &_area) | |
virtual void | AbortWrite () |
Protected Attributes | |
DAQmx::CDAQmxAnalogOutTask | task |
DAQmx::CDAQmxDigitalOutTask | taskResonanceZoom |
Protected Attributes inherited from scope::Outputs | |
const uint32_t | area |
std::atomic< bool > | writeabort |
Wraps hardware connection for signal output to scanners, fast z control, and pockels cell with NI-DAQmx.
Definition at line 18 of file OutputsDAQmxResonance.h.
scope::OutputsDAQmxResonance::OutputsDAQmxResonance | ( | const uint32_t & | _area, |
const parameters::OutputsDAQmxResonance & | _outputparams, | ||
const parameters::Scope & | _params | ||
) |
Creates the task for scanner, pockels, and fast-z output with NI DAQmx.
Configure sample timings for output tasks. With DaqTiming ReferenceClock both tasks use the onboard oscillator (empty timing source string) which is synchronized to the PXI 10MHz backplane clock used as reference clock. Read http://www.ni.com/white-paper/3615/en, "M Series Synchronization with LabVIEW and NI-DAQmx" at NI Developer Zone.
Configures the triggering for the output tasks. Since all output&input tasks have to start synchronously, the start trigger for all is the /ao/StartTrigger signal of the first area's analog output task
Definition at line 10 of file OutputsDAQmxResonance.cpp.
scope::OutputsDAQmxResonance::~OutputsDAQmxResonance | ( | ) |
Stop and clear output task.
Definition at line 63 of file OutputsDAQmxResonance.cpp.
|
overridevirtual |
Start task, last the first output task (all other are waiting for it as their start trigger).
Reimplemented from scope::Outputs.
Definition at line 69 of file OutputsDAQmxResonance.cpp.
|
overridevirtual |
Stop task.
Reimplemented from scope::Outputs.
Definition at line 74 of file OutputsDAQmxResonance.cpp.
|
overridevirtual |
Writes values for one frame of X-Y-fastZ and pockels data to the device buffer.
Use several WriteAnalogI16 commands with small parts (blocks) of the whole ScannerVectorFrame to speed up the update (do not have to wait until the complete buffer is empty/ready for writing into).
[in] | _xyzp | the scannervector with xyzp data to write to device |
[in] | _reszoomfactor | the factor for zooming in resonance scanner mode |
[in] | _blocks | in how many blocks should the scannervector be written (more blocks faster update, since smaller blocksize -> buffer for this is free earlier), see "DAQmx quick buffer update.vi" |
Reimplemented from scope::Outputs.
Definition at line 80 of file OutputsDAQmxResonance.cpp.
|
protected |
The DAQmx task for x/y-scanners/fast z/Pockels clocked by a pixel clock.
Definition at line 23 of file OutputsDAQmxResonance.h.
|
protected |
The DAQmx task for the resenance scanner zoom factor.
Definition at line 26 of file OutputsDAQmxResonance.h.