Scope
|
#include <OutputsDAQmxLineClock.h>
Inherits scope::Outputs.
Public Member Functions | |
OutputsDAQmxLineClock (const uint32_t &_area, const parameters::OutputsDAQmxLineClock &_outputparams, const parameters::Scope &_params) | |
void | Start () override |
void | Stop () override |
int32_t | Write (const std::vector< int16_t > &_xyzp, const uint32_t &_blocks) override |
Public Member Functions inherited from scope::Outputs | |
Outputs (const uint32_t &_area) | |
virtual void | AbortWrite () |
Protected Attributes | |
DAQmx::CDAQmxAnalogOutTask | xpout_task |
DAQmx::CDAQmxAnalogOutTask | yzout_task |
int32_t | XTotalPixels |
int32_t | YTotalLines |
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.
X/Pockels use a pixel clock and Y/Z use a different, a line clock. So you need to NI cards to get this working (since one card can only run one output task with only one clock.
Definition at line 19 of file OutputsDAQmxLineClock.h.
scope::OutputsDAQmxLineClock::OutputsDAQmxLineClock | ( | const uint32_t & | _area, |
const parameters::OutputsDAQmxLineClock & | _outputparams, | ||
const parameters::Scope & | _params | ||
) |
Creates the tasks and clock tasks.
Definition at line 9 of file OutputsDAQmxLineClock.cpp.
|
overridevirtual |
Start task.
Reimplemented from scope::Outputs.
Definition at line 71 of file OutputsDAQmxLineClock.cpp.
|
overridevirtual |
Stops task.
Reimplemented from scope::Outputs.
Definition at line 77 of file OutputsDAQmxLineClock.cpp.
|
overridevirtual |
Writes values for one frame of X-Y-fastZ and pockels data to the device buffer.
Depending on the implementation in the derived classes, this _xyzp can be a complete frame or e.g. only one x line (for x and p), one y column (for y and fast z) , which are then repeated by the device.
[in] | _xyzp | the scannervector with xyzp data to write to device |
[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 82 of file OutputsDAQmxLineClock.cpp.
|
protected |
Task for x-scanner/Pockels clocked by the pixel clock from the FPGA.
Definition at line 24 of file OutputsDAQmxLineClock.h.
|
protected |
Task for y-scanner/fast z clocked by the line clock from the FPGA.
Definition at line 27 of file OutputsDAQmxLineClock.h.
|
protected |
Length of a line in samples.
Definition at line 30 of file OutputsDAQmxLineClock.h.
|
protected |
Length of a column in samples.
Definition at line 33 of file OutputsDAQmxLineClock.h.