Scope
scope::DaqController Class Reference

#include <DaqController.h>

Inherits scope::BaseController< SCOPE_NAREAS >.

Classes

class  Impl
 

Public Member Functions

 DaqController (std::array< SynchronizedQueue< ScopeMessage< SCOPE_DAQCHUNKPTR_T >>, SCOPE_NAREAS > *const _oqueues, const parameters::Scope &_parameters)
 
 ~DaqController ()
 
void OnlineParameterUpdate (const parameters::Area &_areaparameters)
 
void AbortOnlineParameterUpdate (const uint32_t &_area)
 
void ZeroGalvoOutputs ()
 
void SetScannerVector (const uint32_t &_area, ScannerVectorFrameBasicPtr _sv)
 
void OpenCloseShutter (const uint32_t &_area, const bool &_open)
 
bool GetShutterState (const uint32_t &_area) const
 
void TurnOnOffSwitchResonance (const uint32_t &_area, const bool &_on)
 
bool GetSwitchResonanceState (const uint32_t &_area) const
 
- Public Member Functions inherited from scope::BaseController< SCOPE_NAREAS >
virtual ~BaseController ()
 
Impl * Pimpl () const
 
void Start (const parameters::Scope &_parameters)
 
void StopAll ()
 
ControllerReturnStatus WaitForAll (const int32_t &_wait_time=-1)
 

Protected Member Functions

 DaqController (DaqController &other)
 
DaqControlleroperator= (DaqController &other)
 
 DaqController (Impl *)
 
Impl *const Pimpl () const
 
- Protected Member Functions inherited from scope::BaseController< SCOPE_NAREAS >
 BaseController (Impl *const _pimpl)
 

Additional Inherited Members

- Protected Attributes inherited from scope::BaseController< SCOPE_NAREAS >
Impl *const pimpl
 

Detailed Description

The DaqController controls the data acquisition hardware, both outputs for scanners as well as input from PMTs.

Uses the pimpl pattern to hide the implementation
When working with National Instruments DAQmx library:
See http://www.ni.com/white-paper/6411/en#toc5 for DAQmx thread-safety
=> "You can execute two different analog inputs from two different boards from separate threads within the same program, and they both run simultaneously without blocking"

Definition at line 32 of file DaqController.h.

Constructor & Destructor Documentation

scope::DaqController::DaqController ( DaqController other)
protected

disable copy

scope::DaqController::DaqController ( Impl newpimpl)
explicitprotected

To implant a DaqController::Impl pointer into the BaseController's BaseController::Impl pointer.

Definition at line 16 of file DaqController.cpp.

scope::DaqController::DaqController ( std::array< SynchronizedQueue< ScopeMessage< SCOPE_DAQCHUNKPTR_T >>, SCOPE_NAREAS > *const  _oqueues,
const parameters::Scope _parameters 
)

Connect queues and get scanner vector and parameters.

Definition at line 7 of file DaqController.cpp.

scope::DaqController::~DaqController ( )

Stops all.

Definition at line 11 of file DaqController.cpp.

Member Function Documentation

DaqController& scope::DaqController::operator= ( DaqController other)
protected

disable assignment

DaqController::Impl *const scope::DaqController::Pimpl ( ) const
protected
Returns
pointer to the hidden implementation

Definition at line 20 of file DaqController.cpp.

void scope::DaqController::OnlineParameterUpdate ( const parameters::Area _areaparameters)

Changes daq parameters during live scan.

Calls DaqController::Impl::OnlineParameterUpdate.

Definition at line 24 of file DaqController.cpp.

void scope::DaqController::AbortOnlineParameterUpdate ( const uint32_t &  _area)

Aborts a potentially currently running online update.

Calls DaqController::Impl::AbortOnlineParametersUpdate.

Definition at line 28 of file DaqController.cpp.

void scope::DaqController::ZeroGalvoOutputs ( )

Sets all galvos to zero position, needed for microscope alignment.

Calls DaqController::Impl::ZeroGalvoOutputs.

Definition at line 32 of file DaqController.cpp.

void scope::DaqController::SetScannerVector ( const uint32_t &  _area,
ScannerVectorFrameBasicPtr  _sv 
)

Sets a scanner vector.

Only called on startup. Calls DaqController::Impl::SetScannerVector

Definition at line 36 of file DaqController.cpp.

void scope::DaqController::OpenCloseShutter ( const uint32_t &  _area,
const bool &  _open 
)

Opens/closes the shutter.

Calls DaqController::Impl::OpenCloseShutter

Definition at line 40 of file DaqController.cpp.

bool scope::DaqController::GetShutterState ( const uint32_t &  _area) const
Returns
current shutter state

Definition at line 44 of file DaqController.cpp.

void scope::DaqController::TurnOnOffSwitchResonance ( const uint32_t &  _area,
const bool &  _on 
)

Turns the resonance scanner relay on and off.

Calls DaqControllerImpl::TurnOnOffSwitchResonance

Definition at line 48 of file DaqController.cpp.

bool scope::DaqController::GetSwitchResonanceState ( const uint32_t &  _area) const
Returns
current resonance scanner relay state

Definition at line 52 of file DaqController.cpp.


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