3 #include "FPGAInterface.h"
4 #include "FPGAIO5771.h"
5 #include "NiFpga_AnalogIntegrator_NI5771.h"
10 class InputsFPGAAnalogIntegrator;
27 std::array<NiFpga_AnalogIntegrator_NI5771_TargetToHostFifoU32, 2>
fifos;
37 double SetPixeltime(
const uint32_t& _area,
const double& _pixeltime)
override;
38 double SetLinetime(
const uint32_t& _area,
const double& _linetime)
override;
45 int32_t
ReadPixels(
DaqChunk& _chunk,
const double& _timeout,
bool& _timedout)
override;
Abstract base class for FPGA classes.
std::array< NiFpga_AnalogIntegrator_NI5771_TargetToHostFifoU32, 2 > fifos
both fifos for both channels
Wraps an FPGA that does analog pixel integration (with the NI 5771 FlexRIO adapter module http://sine...
FPGAAnalogIntegrator()
Load the FPGA bitfile, set the IO module's onboard clock and initialize the acquisition.
int32_t ReadPixels(DaqChunk &_chunk, const double &_timeout, bool &_timedout) override
Read only pixels from the FPGA FIFO.
Handels the NI FlexRIO adapter module IO-5771.
void ClearFIFOs()
Clears the interloop and ToHost FIFOs.
A DaqChunk contains data from all channels sequentially.
void StartAcquisition() override
Starts the acquisition on the FPGA.
void SetRequestedPixels(const uint32_t &_area, const uint32_t &_reqpixels) override
Sets the number of pixels per channel the FPGA should acquire, set to -1 for live scanning...
void StopAcquisition() override
Stops the acquisition on the FPGA.
void SetContinuousAcquisition(const bool &_cont) override
Sets if the FPGA should acquire data continuously or acquire the number of pixels per channel set wit...
void SetChannelProps()
Set channel properties as baseline and bitshift.
~FPGAAnalogIntegrator()
Close FPGA session.
void Initialize(parameters::InputsFPGA *_parameters) override
Set initial parameters.
double SetPixeltime(const uint32_t &_area, const double &_pixeltime) override
Sets the time per pixel/dwell time (in seconds)
void SetTriggering(const bool &_waitfortrigger) override
Sets if the FPGA should wait for a trigger before starting acquisition.
double SetLinetime(const uint32_t &_area, const double &_linetime) override
Sets the time per line (in seconds) for the generation of the line clock (if implemented) ...
parameters::InputsFPGAAnalogIntegrator * parameters
the parameter set
void CheckFPGADiagnosis()
Checks the status of the FIFOs on the FPGA.