Scope
|
#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::ScannerVectorFrameBasic * | GetSVParameters () const |
ScannerVectorFillType | FillType () const |
Static Public Member Functions | |
static std::unique_ptr< ScannerVectorFrameBasic > | Factory (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::Daq * | daqparameters |
parameters::ScannerVectorFrameBasic * | svparameters |
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 |
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.
|
protected |
iterator definition, just handy
Definition at line 23 of file ScannerVectorFrameBasic.h.
scope::ScannerVectorFrameBasic::ScannerVectorFrameBasic | ( | const ScannerVectorType & | _type, |
const ScannerVectorFillType & | _filltype | ||
) |
Initialize data vector.
[in] | _type | Type of scanner vector, set when derived class calls base constructor. Used to generate a fitting parameters set via parameters::ScannerVectorFrameBasic::Factory. |
[in] | _filltype | type of vector fill, see GetInterleavedVector for details |
Definition at line 11 of file ScannerVectorFrameBasic.cpp.
|
virtual |
We need a virtual destructor here, so that derived types get correctly destroyed.
Definition at line 23 of file ScannerVectorFrameBasic.cpp.
|
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.
|
virtual |
Set current parameters and update vector.
Definition at line 46 of file ScannerVectorFrameBasic.cpp.
|
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.
|
virtual |
Set current zoom factor and update.
Definition at line 58 of file ScannerVectorFrameBasic.cpp.
|
virtual |
Set the current position for the fast z control.
Set the scannerdelay, rotates the lookup vector
[in] | _scannerdelaysamples | the scannerdelay in samples |
Reimplemented in scope::ScannerVectorFrameResonanceBiDi, and scope::ScannerVectorFrameResonanceHopper.
Definition at line 70 of file ScannerVectorFrameBasic.cpp.
|
virtual |
Definition at line 79 of file ScannerVectorFrameBasic.cpp.
|
virtual |
Definition at line 83 of file ScannerVectorFrameBasic.cpp.
|
virtual |
Definition at line 87 of file ScannerVectorFrameBasic.cpp.
|
inline |
Definition at line 85 of file ScannerVectorFrameBasic.h.
|
static |
A static factory method for scan vectors.
Definition at line 27 of file ScannerVectorFrameBasic.cpp.
|
protected |
Type/scan mode of this vector.
Definition at line 17 of file ScannerVectorFrameBasic.h.
|
protected |
The fill type.
Definition at line 20 of file ScannerVectorFrameBasic.h.
|
protected |
current daq parameter set
Definition at line 26 of file ScannerVectorFrameBasic.h.
|
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.
|
protected |
current fast z parameter set
Definition at line 32 of file ScannerVectorFrameBasic.h.
|
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.
|
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.
|
protected |
how much is the current lookup vector rotated to adjust for scannerdelay
Definition at line 42 of file ScannerVectorFrameBasic.h.