Scope
scope::OutputsDAQmxResonance Class Reference

#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
 

Detailed Description

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.

Constructor & Destructor Documentation

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.

Member Function Documentation

void scope::OutputsDAQmxResonance::Start ( void  )
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.

void scope::OutputsDAQmxResonance::Stop ( void  )
overridevirtual

Stop task.

Reimplemented from scope::Outputs.

Definition at line 74 of file OutputsDAQmxResonance.cpp.

int32_t scope::OutputsDAQmxResonance::Write ( const std::vector< int16_t > &  _xyzp,
const uint32_t &  _blocks = 1 
)
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).

Parameters
[in]_xyzpthe scannervector with xyzp data to write to device
[in]_reszoomfactorthe factor for zooming in resonance scanner mode
[in]_blocksin 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.

Member Data Documentation

DAQmx::CDAQmxAnalogOutTask scope::OutputsDAQmxResonance::task
protected

The DAQmx task for x/y-scanners/fast z/Pockels clocked by a pixel clock.

Definition at line 23 of file OutputsDAQmxResonance.h.

DAQmx::CDAQmxDigitalOutTask scope::OutputsDAQmxResonance::taskResonanceZoom
protected

The DAQmx task for the resenance scanner zoom factor.

Definition at line 26 of file OutputsDAQmxResonance.h.


The documentation for this class was generated from the following files: