Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
XNMRPulseAnalyzer Class Reference
Inheritance diagram for XNMRPulseAnalyzer:
Inheritance graph
[legend]

Classes

struct  Payload
 driver specific part below More...
 

Public Member Functions

 XNMRPulseAnalyzer (const char *name, bool runtime, Transaction &tr_meas, const shared_ptr< XMeasure > &meas)
 
virtual void showForms () override
 Shows all forms belonging to driver.
 
const shared_ptr< XScalarEntry > & entryPeakAbs () const
 Entry storing the power of the strogest peak.
 
const shared_ptr< XScalarEntry > & entryPeakFreq () const
 Entry storing the freq. of the strongest peak.
 
const shared_ptr< XItemNode
< XDriverList, XDSO > > & 
dso () const
 
const shared_ptr< XItemNode
< XDriverList, XPulser > > & 
pulser () const
 
void acquire ()
 
const shared_ptr< XDoubleNode > & fromTrig () const
 Origin from trigger [ms].
 
const shared_ptr< XDoubleNode > & width () const
 length of data points [ms]
 
const shared_ptr< XDoubleNode > & phaseAdv () const
 
const shared_ptr< XBoolNode > & usePNR () const
 Periodic-Noise Reduction.
 
const shared_ptr< XComboNode > & pnrSolverList () const
 Select spectrum solver.
 
const shared_ptr< XComboNode > & solverList () const
 Select spectrum solver. FFT/AR/MEM.
 
const shared_ptr< XDoubleNode > & bgPos () const
 Position from trigger, for background subtraction or PNR [ms].
 
const shared_ptr< XDoubleNode > & bgWidth () const
 length for background subtraction or PNR [ms]
 
const shared_ptr< XDoubleNode > & fftPos () const
 Phase 0 deg. position of FT component from trigger [ms].
 
const shared_ptr< XUIntNode > & fftLen () const
 If exceeding Width, do zerofilling.
 
const shared_ptr< XComboNode > & windowFunc () const
 FFT/AR Window Function.
 
const shared_ptr< XDoubleNode > & windowWidth () const
 FFT/AR/MEM Window Length / Taps.
 
const shared_ptr< XDoubleNode > & difFreq () const
 Set Digital IF frequency.
 
const shared_ptr< XBoolNode > & exAvgIncr () const
 Extra Average with infinite steps.
 
const shared_ptr< XUIntNode > & extraAvg () const
 Extra Average Steps.
 
const shared_ptr
< XTouchableNode > & 
avgClear () const
 Clear averaging results.
 
const shared_ptr< XUIntNode > & numEcho () const
 

of echoes


 
const shared_ptr< XDoubleNode > & echoPeriod () const
 If NumEcho > 1, need periodic term of echoes [ms].
 
- Public Member Functions inherited from XSecondaryDriverInterface< T >
 XSecondaryDriverInterface (const char *name, bool runtime, Transaction &tr_meas, const shared_ptr< XMeasure > &meas)
 

Protected Member Functions

virtual void analyze (Transaction &tr, const Snapshot &shot_emitter, const Snapshot &shot_others, XDriver *emitter) override throw (XRecordError&)
 This function is called when a connected driver emit a signal.
 
virtual void visualize (const Snapshot &shot) override
 
virtual bool checkDependency (const Snapshot &shot_this, const Snapshot &shot_emitter, const Snapshot &shot_others, XDriver *emitter) const override
 
- Protected Member Functions inherited from XSecondaryDriverInterface< T >
void connect (const shared_ptr< XPointerItemNode< XDriverList > > &selecter)
 Call this to receive signal/data.
 
void requestAnalysis ()
 
virtual void start ()
 usually nothing to do
 
virtual void stop ()
 usually nothing to do
 

Private Member Functions

const shared_ptr< XWaveNGraph > & waveGraph () const
 Stored Wave for display.
 
const shared_ptr< XWaveNGraph > & ftWaveGraph () const
 Stored FFT Wave for display.
 
void onCondChanged (const Snapshot &shot, XValueNodeBase *)
 
void onSpectrumShow (const Snapshot &shot, XTouchableNode *)
 
void onAvgClear (const Snapshot &shot, XTouchableNode *)
 
void backgroundSub (Transaction &tr, std::vector< std::complex< double > > &wave, int pos, int length, int bgpos, int bglength)
 
void rotNFFT (Transaction &tr, int ftpos, double ph, std::vector< std::complex< double > > &wave, std::vector< std::complex< double > > &ftwave)
 

Private Attributes

const shared_ptr< XScalarEntrym_entryPeakAbs
 
const shared_ptr< XScalarEntrym_entryPeakFreq
 
const shared_ptr< XItemNode
< XDriverList, XDSO > > 
m_dso
 
const shared_ptr< XDoubleNodem_fromTrig
 
const shared_ptr< XDoubleNodem_width
 
const shared_ptr< XDoubleNodem_phaseAdv
 [deg]
 
const shared_ptr< XBoolNodem_usePNR
 
const shared_ptr< XComboNodem_pnrSolverList
 
const shared_ptr< XComboNodem_solverList
 
const shared_ptr< XDoubleNodem_bgPos
 
const shared_ptr< XDoubleNodem_bgWidth
 
const shared_ptr< XDoubleNodem_fftPos
 
const shared_ptr< XUIntNodem_fftLen
 
const shared_ptr< XComboNodem_windowFunc
 
const shared_ptr< XDoubleNodem_windowWidth
 
const shared_ptr< XDoubleNodem_difFreq
 
const shared_ptr< XBoolNodem_exAvgIncr
 
const shared_ptr< XUIntNodem_extraAvg
 
const shared_ptr< XUIntNodem_numEcho
 
const shared_ptr< XDoubleNodem_echoPeriod
 
const shared_ptr< XTouchableNodem_spectrumShow
 
const shared_ptr< XTouchableNodem_avgClear
 
const shared_ptr< XBoolNodem_picEnabled
 Phase Inversion Cycling.
 
const shared_ptr< XItemNode
< XDriverList, XPulser > > 
m_pulser
 
atomic< int > m_isPulseInversionRequested
 
std::deque< xqcon_ptrm_conUIs
 
shared_ptr< XListenerm_lsnOnSpectrumShow
 
shared_ptr< XListenerm_lsnOnAvgClear
 
shared_ptr< XListenerm_lsnOnCondChanged
 
const qshared_ptr< FrmNMRPulsem_form
 
const shared_ptr< XStatusPrinterm_statusPrinter
 
const qshared_ptr< FrmGraphNURLm_spectrumForm
 
const shared_ptr< XWaveNGraphm_waveGraph
 
const shared_ptr< XWaveNGraphm_ftWaveGraph
 
shared_ptr< SpectrumSolverWrapperm_solver
 
shared_ptr< SpectrumSolverWrapperm_solverPNR
 
shared_ptr< XXYPlotm_peakPlot
 

Detailed Description

Definition at line 29 of file nmrpulse.h.

Member Function Documentation

bool XNMRPulseAnalyzer::checkDependency ( const Snapshot shot_this,
const Snapshot shot_emitter,
const Snapshot shot_others,
XDriver emitter 
) const
overrideprotectedvirtual

Checks if the connected drivers have valid time stamps.

Returns
true if dependency is resolved. This function must be reentrant unlike analyze().

Implements XSecondaryDriverInterface< T >.

Definition at line 329 of file nmrpulse.cpp.

const shared_ptr<XDoubleNode>& XNMRPulseAnalyzer::phaseAdv ( ) const
inline

[deg]

Definition at line 114 of file nmrpulse.h.

References m_phaseAdv.

void XNMRPulseAnalyzer::visualize ( const Snapshot shot)
overrideprotectedvirtual

This function is called after committing XPrimaryDriver::analyzeRaw() or XSecondaryDriver::analyze(). This might be called even if the record is invalid (time() == false).

Implements XSecondaryDriverInterface< T >.

Definition at line 639 of file nmrpulse.cpp.

References SpectrumSolver::peaks().


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

Generated for KAME4 by  doxygen 1.8.3