Scope
scope::ScannerVectorFrameBasic Class Reference

#include <ScannerVectorFrameBasic.h>

Inherited by scope::ScannerVectorFrameBiDi, scope::ScannerVectorFramePlaneHopper, scope::ScannerVectorFrameResonanceBiDi, scope::ScannerVectorFrameResonanceHopper, and scope::ScannerVectorFrameSaw.

Public Member Functions

 ScannerVectorFrameBasic (const ScannerVectorType &_type, const ScannerVectorFillType &_filltype)
 
virtual ~ScannerVectorFrameBasic ()
 
virtual void SetParameters (parameters::Daq *const _daqparameters, parameters::ScannerVectorFrameBasic *const _svparameters, parameters::SCOPE_FPUZCONTROL_T *const _zparameters)
 
virtual void SetPockels (const double &_pockelsval)
 
virtual void SetZoom (const double &_zoom)
 
virtual void SetScannderdelay (const uint32_t &_scannerdelaysamples)
 
virtual std::shared_ptr< const std::vector< int16_t > > GetInterleavedVector () const
 
virtual std::shared_ptr< const std::vector< size_t > > GetLookupVector () const
 
virtual parameters::ScannerVectorFrameBasicGetSVParameters () const
 
ScannerVectorFillType FillType () const
 

Static Public Member Functions

static std::unique_ptr< ScannerVectorFrameBasicFactory (const ScannerVectorType &_type, const ScannerVectorFillType &_filltype)
 

Protected Types

typedef std::vector< int16_t >::iterator iterator
 

Protected Member Functions

virtual void UpdateVector ()
 

Protected Attributes

const ScannerVectorTypeHelper::Mode type
 
const ScannerVectorFillTypeHelper::Mode filltype
 
parameters::Daqdaqparameters
 
parameters::ScannerVectorFrameBasicsvparameters
 
parameters::SCOPE_FPUZCONTROL_T * zparameters
 
std::shared_ptr< std::vector< int16_t > > vecptr
 
std::shared_ptr< std::vector< std::size_t > > lookup
 
int32_t lookup_rotation
 

Detailed Description

Parent class for frame scans.

When you construct a ScannerVectorFrame object you have to supply to fundamental parameters, ScannerVectorType and ScannerVectorFillType. The ScannerVectorType describes what kind of frame scan you do in your derived class, e.g. sawtooth or bidirectional. The ScannerVectorFillType determines how the signals for xyzp are actually filled into the datavector that is later on written to the hardware. You could be putting out complette frames (FullframeXYZP), use a pixel and a line clock (LineXPColumnYZ), or have a slave area without its own scanners (LineZP). Your derived class has to be able to generate signals for all of these cases!

Definition at line 13 of file ScannerVectorFrameBasic.h.

Member Typedef Documentation

typedef std::vector<int16_t>::iterator scope::ScannerVectorFrameBasic::iterator
protected

iterator definition, just handy

Definition at line 23 of file ScannerVectorFrameBasic.h.

Constructor & Destructor Documentation

scope::ScannerVectorFrameBasic::ScannerVectorFrameBasic ( const ScannerVectorType _type,
const ScannerVectorFillType _filltype 
)

Initialize data vector.

Parameters
[in]_typeType of scanner vector, set when derived class calls base constructor. Used to generate a fitting parameters set via parameters::ScannerVectorFrameBasic::Factory.
[in]_filltypetype of vector fill, see GetInterleavedVector for details

Definition at line 11 of file ScannerVectorFrameBasic.cpp.

scope::ScannerVectorFrameBasic::~ScannerVectorFrameBasic ( )
virtual

We need a virtual destructor here, so that derived types get correctly destroyed.

Definition at line 23 of file ScannerVectorFrameBasic.cpp.

Member Function Documentation

void scope::ScannerVectorFrameBasic::UpdateVector ( )
protectedvirtual

Calculate the scanner vector based on the current parameters.

Reimplemented in scope::ScannerVectorFrameResonanceBiDi, scope::ScannerVectorFrameBiDi, scope::ScannerVectorFramePlaneHopper, and scope::ScannerVectorFrameSaw.

Definition at line 43 of file ScannerVectorFrameBasic.cpp.

void scope::ScannerVectorFrameBasic::SetParameters ( parameters::Daq *const  _daqparameters,
parameters::ScannerVectorFrameBasic *const  _svparameters,
parameters::SCOPE_FPUZCONTROL_T *const  _zparameters 
)
virtual

Set current parameters and update vector.

Definition at line 46 of file ScannerVectorFrameBasic.cpp.

void scope::ScannerVectorFrameBasic::SetPockels ( const double &  _pockelsval)
virtual

Set current pockels value and update.

Do we need these set methods? Is it not automagically set in AreaParameters?!

Definition at line 53 of file ScannerVectorFrameBasic.cpp.

void scope::ScannerVectorFrameBasic::SetZoom ( const double &  _zoom)
virtual

Set current zoom factor and update.

Definition at line 58 of file ScannerVectorFrameBasic.cpp.

void scope::ScannerVectorFrameBasic::SetScannderdelay ( const uint32_t &  _scannerdelaysamples)
virtual

Set the current position for the fast z control.

Set the scannerdelay, rotates the lookup vector

Parameters
[in]_scannerdelaysamplesthe scannerdelay in samples

Reimplemented in scope::ScannerVectorFrameResonanceBiDi, and scope::ScannerVectorFrameResonanceHopper.

Definition at line 70 of file ScannerVectorFrameBasic.cpp.

std::shared_ptr< const std::vector< int16_t > > scope::ScannerVectorFrameBasic::GetInterleavedVector ( ) const
virtual
Returns
a shared_ptr to the const scanner vector, the content of what you get depends on the fill type (see ScannerVectorFillTypeHelper)
  • FullframeXYZP: xyzp interleaved, total size is one complete frame
  • LineXPColumnYZ: xp interleaved and then yz interleaved, total size is one line plus one column
  • LineZP: zp interleaved, total size is one line

Definition at line 79 of file ScannerVectorFrameBasic.cpp.

std::shared_ptr< const std::vector< std::size_t > > scope::ScannerVectorFrameBasic::GetLookupVector ( ) const
virtual
Returns
a shared_ptr to the lookup vector

Definition at line 83 of file ScannerVectorFrameBasic.cpp.

parameters::ScannerVectorFrameBasic * scope::ScannerVectorFrameBasic::GetSVParameters ( ) const
virtual
Returns
a shared_ptr to the scanner vector parameters

Definition at line 87 of file ScannerVectorFrameBasic.cpp.

ScannerVectorFillType scope::ScannerVectorFrameBasic::FillType ( ) const
inline
Returns
the fill type of the scanner vector

Definition at line 85 of file ScannerVectorFrameBasic.h.

std::unique_ptr< ScannerVectorFrameBasic > scope::ScannerVectorFrameBasic::Factory ( const ScannerVectorType _type,
const ScannerVectorFillType _filltype 
)
static

A static factory method for scan vectors.

Definition at line 27 of file ScannerVectorFrameBasic.cpp.

Member Data Documentation

const ScannerVectorTypeHelper::Mode scope::ScannerVectorFrameBasic::type
protected

Type/scan mode of this vector.

Definition at line 17 of file ScannerVectorFrameBasic.h.

const ScannerVectorFillTypeHelper::Mode scope::ScannerVectorFrameBasic::filltype
protected

The fill type.

Definition at line 20 of file ScannerVectorFrameBasic.h.

parameters::Daq* scope::ScannerVectorFrameBasic::daqparameters
protected

current daq parameter set

Definition at line 26 of file ScannerVectorFrameBasic.h.

parameters::ScannerVectorFrameBasic* scope::ScannerVectorFrameBasic::svparameters
protected

current scanner vector parameter set (needs to be pointer for dynamic_cast in derived classes and because the parameters object is localized in ScopeController)

Definition at line 29 of file ScannerVectorFrameBasic.h.

parameters::SCOPE_FPUZCONTROL_T* scope::ScannerVectorFrameBasic::zparameters
protected

current fast z parameter set

Definition at line 32 of file ScannerVectorFrameBasic.h.

std::shared_ptr<std::vector<int16_t> > scope::ScannerVectorFrameBasic::vecptr
protected

the actual scanner vector (if fullframevector) with x, y, fast z, Pockels either interleaved (for fullframevector) or first x,p interleaved and then y,z interleaved (for not fullframevector).

Definition at line 36 of file ScannerVectorFrameBasic.h.

std::shared_ptr<std::vector<std::size_t> > scope::ScannerVectorFrameBasic::lookup
protected

gives the position in the image vector for each position in the acquired data vector (keep in mind that the acquired data is read in chunks).

Definition at line 39 of file ScannerVectorFrameBasic.h.

int32_t scope::ScannerVectorFrameBasic::lookup_rotation
protected

how much is the current lookup vector rotated to adjust for scannerdelay

Definition at line 42 of file ScannerVectorFrameBasic.h.


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