DIY Auto-Correlator 1.0
Auto-Correlator Card implementation using Teensy 4.x microcontrollers.
Public Member Functions | Public Attributes | Private Attributes | List of all members
MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio > Class Template Reference

MultiTau Auto-Correlator object that is composed of multiple linear - autocorrelators. Specialised for teensy. More...

#include <multi_tau.hpp>

Collaboration diagram for MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >:
Collaboration graph
[legend]

Public Member Functions

 MultiTauACorrRTTeensy ()
 Counts the total number of data points sent to the counter. More...
 
void push_datum (counter_t datum) __attribute__((flatten))
 Pushes the datum to each of the Linear Correlators through the Accumulator adapter. More...
 
void push_data (const counter_t *container, const index_t size) __attribute__((flatten))
 Repeatedly calls the MultiTau_ACorr_RT::push_datum() on the given container of counter values. More...
 
void ch_out () const __attribute__((flatten))
 Outputs the Linear Correlator channels through the discarder adapter. More...
 
index_t time_scaling_factor () const __attribute__((always_inline))
 
index_t tau_scaling_scheme (unsigned int s) const __attribute__((always_inline))
 Returns the relavent Tau scaling factor, based on the specialised scheme. It is used by the accumulator objects to set the BufferPoints attribute. More...
 

Public Attributes

MonitorChannel< true > MeanMonitor
 
uint32_t DataCounter = 0
 

Private Attributes

Accumulator Accumulators [Lin_channels]
 Accumulator Objects for each channel (Accumulator '0' is redundant.) More...
 
LinACorrRTTeensy< Series_size, false > Lin_Corrs [Lin_channels]
 Linear ACorrelators. More...
 
DiscarderTeensy< Series_size, int(Series_size/Bin_Ratio), 0 > Discarder
 Discarder that discards first #Bin_Ratio points. More...
 

Detailed Description

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
class MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >

MultiTau Auto-Correlator object that is composed of multiple linear - autocorrelators. Specialised for teensy.

Constructor & Destructor Documentation

◆ MultiTauACorrRTTeensy()

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::MultiTauACorrRTTeensy ( )
inline

Counts the total number of data points sent to the counter.

Default Contructor - Initalizes the BufferPoints attribute in the correlators.

Member Function Documentation

◆ ch_out()

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
void MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::ch_out ( ) const
inline

Outputs the Linear Correlator channels through the discarder adapter.

◆ push_data()

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
void MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::push_data ( const counter_t container,
const index_t  size 
)
inline

Repeatedly calls the MultiTau_ACorr_RT::push_datum() on the given container of counter values.

◆ push_datum()

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
void MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::push_datum ( counter_t  datum)
inline

Pushes the datum to each of the Linear Correlators through the Accumulator adapter.

◆ tau_scaling_scheme()

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
index_t MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::tau_scaling_scheme ( unsigned int  s) const
inline

Returns the relavent Tau scaling factor, based on the specialised scheme. It is used by the accumulator objects to set the BufferPoints attribute.

◆ time_scaling_factor()

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
index_t MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::time_scaling_factor ( ) const
inline

@Brief Returns the number of data points after which, the timescale is scaled according to the MultiTau_ACorr_RT::tau_scaling_scheme().

Member Data Documentation

◆ Accumulators

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
Accumulator MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::Accumulators[Lin_channels]
private

Accumulator Objects for each channel (Accumulator '0' is redundant.)

◆ DataCounter

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
uint32_t MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::DataCounter = 0

◆ Discarder

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
DiscarderTeensy<Series_size, int(Series_size/Bin_Ratio), 0> MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::Discarder
private

Discarder that discards first #Bin_Ratio points.

◆ Lin_Corrs

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
LinACorrRTTeensy<Series_size, false> MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::Lin_Corrs[Lin_channels]
private

Linear ACorrelators.

◆ MeanMonitor

template<unsigned int Lin_channels, index_t Series_size, unsigned int Bin_Ratio>
MonitorChannel<true> MultiTauACorrRTTeensy< Lin_channels, Series_size, Bin_Ratio >::MeanMonitor

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