Scope
scope::FPGAAnalogDemultiplexer Class Reference

#include <FPGAAnalogDemultiplexer.h>

Inherits scope::FPGAInterface, and scope::FPGAIO5771.

Public Member Functions

 FPGAAnalogDemultiplexer ()
 
 ~FPGAAnalogDemultiplexer ()
 
void Initialize (parameters::InputsFPGA *_parameters) override
 
double SetPixeltime (const uint32_t &_area, const double &_pixeltime) override
 
double SetLinetime (const uint32_t &_area, const double &_linetime) override
 
void SetTriggering (const bool &_waitfortrigger) override
 
void SetContinuousAcquisition (const bool &_cont) override
 
void SetRequestedPixels (const uint32_t &_area, const uint32_t &_reqpixels) override
 
void StartAcquisition () override
 
void StopAcquisition () override
 
int32_t ReadPixels (DaqChunk &_chunk, const double &_timeout, bool &_timedout) override
 
void CheckFPGADiagnosis ()
 
void SetChannelProps ()
 
void ClearFIFOs ()
 
- Public Member Functions inherited from scope::FPGAInterface
virtual ~FPGAInterface ()
 
virtual void SetScannerdelay (const uint32_t &_scannerdelay)
 
FPGAStatusSafe CurrentStatus () const
 
- Public Member Functions inherited from scope::FPGAIO5771
 FPGAIO5771 (const uint32_t &_user_command_idle, const uint32_t &_pll_locked, const uint32_t &_configured, const uint32_t &_user_error, const uint32_t &_user_command_status, const uint32_t &_user_command_control, const uint32_t &_user_data_0_control, const uint32_t &_user_data_1_control, const uint32_t &_user_command_commit)
 
void SetClockSource (NiFpga_Session _session, const uint8_t &_clock_source=0)
 
bool CheckIOModule (NiFpga_Session _session)
 

Protected Attributes

parameters::InputsFPGAAnalogDemultiplexerparameters
 
std::array< NiFpga_AnalogDemultiplexerV2_NI5771_TargetToHostFifoU64, 2 > fifos
 
std::array< NiFpga_AnalogDemultiplexerV2_NI5771_ControlU32, 2 > reqpixels
 
NiFpga_AnalogDemultiplexerV2_NI5771_ControlU16 smplsperpixel
 
- Protected Attributes inherited from scope::FPGAInterface
FPGAStatusSafe status
 
NiFpga_Session session
 
bool initialized
 
- Protected Attributes inherited from scope::FPGAIO5771
const uint32_t user_command_idle_indicator
 
const uint32_t pll_locked_indicator
 
const uint32_t configured_indicator
 
const uint32_t user_error_indicator
 
const uint32_t user_command_status_indicator
 
const uint32_t user_command_control
 
const uint32_t user_data_0_control
 
const uint32_t user_data_1_control
 
const uint32_t user_command_commit_control
 
FPGAStatusSafe iostatus
 

Additional Inherited Members

- Protected Member Functions inherited from scope::FPGAIO5771
void WaitForIdle (NiFpga_Session _session)
 

Detailed Description

Wraps an FPGA that does two area demultiplexing and analog integration with the NI 5771 FlexRio adapter module on the NI 7962R FPGA.

Definition at line 18 of file FPGAAnalogDemultiplexer.h.

Constructor & Destructor Documentation

scope::FPGAAnalogDemultiplexer::FPGAAnalogDemultiplexer ( )

Load the FPGA bitfile, set the IO module's onboard clock and initialize the acquisition.

Definition at line 8 of file FPGAAnalogDemultiplexer.cpp.

scope::FPGAAnalogDemultiplexer::~FPGAAnalogDemultiplexer ( void  )

Close FPGA session.

Definition at line 47 of file FPGAAnalogDemultiplexer.cpp.

Member Function Documentation

void scope::FPGAAnalogDemultiplexer::Initialize ( parameters::InputsFPGA _parameters)
overridevirtual

Set initial parameters.

Derived classes override this and cast _parameters to the appropriate derived type. Derived functions should check if already initialized.

Reimplemented from scope::FPGAInterface.

Definition at line 53 of file FPGAAnalogDemultiplexer.cpp.

double scope::FPGAAnalogDemultiplexer::SetPixeltime ( const uint32_t &  _area,
const double &  _pixeltime 
)
overridevirtual

Sets the time per pixel/dwell time (in seconds)

Parameters
[in]_areafor which area
[in]_pixeltimethe pixel dwell time in seconds
Returns
the actual pixel dwell time, can be different than requested due to finite clock rate

Reimplemented from scope::FPGAInterface.

Definition at line 63 of file FPGAAnalogDemultiplexer.cpp.

double scope::FPGAAnalogDemultiplexer::SetLinetime ( const uint32_t &  _area,
const double &  _linetime 
)
overridevirtual

Sets the time per line (in seconds) for the generation of the line clock (if implemented)

Parameters
[in]_areafor which area
[in]_linetimethe line time in seconds
Returns
the actual line time, can be different than requested due to finite clock rate

Reimplemented from scope::FPGAInterface.

Definition at line 80 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::SetTriggering ( const bool &  _waitfortrigger)
overridevirtual

Sets if the FPGA should wait for a trigger before starting acquisition.

Parameters
[in]_waitfortriggertrue if wait for trigger

Reimplemented from scope::FPGAInterface.

Definition at line 85 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::SetContinuousAcquisition ( const bool &  _cont)
overridevirtual

Sets if the FPGA should acquire data continuously or acquire the number of pixels per channel set with SetRequestedPixels.

Parameters
[in]_contyes or no

Reimplemented from scope::FPGAInterface.

Definition at line 89 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::SetRequestedPixels ( const uint32_t &  _area,
const uint32_t &  _reqpixels 
)
overridevirtual

Sets the number of pixels per channel the FPGA should acquire, set to -1 for live scanning.

Parameters
[in]_areafor which area
[in]_reqpixelsnumber of pixels the FPGA should acquire before automatically stopping acquisition

Reimplemented from scope::FPGAInterface.

Definition at line 93 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::StartAcquisition ( )
overridevirtual

Starts the acquisition on the FPGA.

Reimplemented from scope::FPGAInterface.

Definition at line 98 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::StopAcquisition ( )
overridevirtual

Stops the acquisition on the FPGA.

Reimplemented from scope::FPGAInterface.

Definition at line 110 of file FPGAAnalogDemultiplexer.cpp.

int32_t scope::FPGAAnalogDemultiplexer::ReadPixels ( DaqChunk _chunk,
const double &  _timeout,
bool &  _timedout 
)
overridevirtual

Read only pixels from the FPGA FIFO.

Parameters
[in,out]_chunkthe daq chunk to read into, inside _chunk is information about the area for wich to retrieve, the number of pixels per channel to read, and the number of channels
[in]_timeouttime out for reading in seconds
[out]_timedoutset to true if reading timed out
Returns
number of read pixels per channel or -1 on error
Precondition
_channels > 0 && _channels <= 2

Implements scope::FPGAInterface.

Definition at line 115 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::CheckFPGADiagnosis ( )

Checks the status of the FIFOs on the FPGA.

Definition at line 176 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::SetChannelProps ( )

Set channel properties as baseline cutoff and bitshift.

Definition at line 168 of file FPGAAnalogDemultiplexer.cpp.

void scope::FPGAAnalogDemultiplexer::ClearFIFOs ( )

Clears the interloop and ToHost FIFOs.

Definition at line 193 of file FPGAAnalogDemultiplexer.cpp.

Member Data Documentation

parameters::InputsFPGAAnalogDemultiplexer* scope::FPGAAnalogDemultiplexer::parameters
protected

the parameter set

Definition at line 24 of file FPGAAnalogDemultiplexer.h.

std::array<NiFpga_AnalogDemultiplexerV2_NI5771_TargetToHostFifoU64, 2> scope::FPGAAnalogDemultiplexer::fifos
protected

all FIFOs for both areas

Definition at line 27 of file FPGAAnalogDemultiplexer.h.

std::array<NiFpga_AnalogDemultiplexerV2_NI5771_ControlU32, 2> scope::FPGAAnalogDemultiplexer::reqpixels
protected

requested pixels for both areas

Definition at line 30 of file FPGAAnalogDemultiplexer.h.

NiFpga_AnalogDemultiplexerV2_NI5771_ControlU16 scope::FPGAAnalogDemultiplexer::smplsperpixel
protected

samples per pixel for both areas

Definition at line 33 of file FPGAAnalogDemultiplexer.h.


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