Scope
|
#include <FPGAPhotonCounter.h>
Inherits scope::FPGAInterface, and scope::FPGAIO6587.
Public Member Functions | |
FPGAPhotonCounter () | |
~FPGAPhotonCounter () | |
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 | ClearFIFOs () |
void | SetCountMode (const bool &_mode) |
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::FPGAIO6587 | |
FPGAIO6587 (const uint32_t &_clock_ready, const uint32_t &_clock_write_data, const uint32_t &_clock_write, const uint32_t &_xpoint_ready, const uint32_t &_clock_source, const uint32_t &_xpoint_write, const uint32_t &_commit_control, const uint32_t &_acquisition_reset_control) | |
bool | CheckIOModule (NiFpga_Session _session) |
void | WriteOnboardClockFrequency (NiFpga_Session _session, const double &_clock_freq) |
void | SetClockSource (NiFpga_Session _session, const uint8_t &_clock_source=3) |
void | InitializeAcquisition (NiFpga_Session _session) |
Protected Attributes | |
parameters::InputsFPGAPhotonCounter * | parameters |
std::array< NiFpga_PhotonCounterV2_TargetToHostFifoU16, 2 > | fifos |
double | samplingrate |
Protected Attributes inherited from scope::FPGAInterface | |
FPGAStatusSafe | status |
NiFpga_Session | session |
bool | initialized |
Protected Attributes inherited from scope::FPGAIO6587 | |
const uint32_t | onboard_clock_ready_indicator |
const uint32_t | onboard_clock_write_data_control |
const uint32_t | onboard_clock_write_control |
const uint32_t | xpoint_switch_ready_indicator |
const uint32_t | clock_source_control |
const uint32_t | xpoint_switch_write_control |
const uint32_t | commit_control |
const uint32_t | acquisition_reset_control |
std::array< uint16_t, 9 > | regndata |
FPGAStatusSafe | iostatus |
Additional Inherited Members | |
Protected Member Functions inherited from scope::FPGAIO6587 | |
void | ClockFrequencySetup (const double &_clock_freq) |
Wraps an FPGA that does photon counting (for Version 2 VI)
Definition at line 18 of file FPGAPhotonCounter.h.
scope::FPGAPhotonCounter::FPGAPhotonCounter | ( | ) |
Load the FPGA bitfile, reset, set the IO module's onboard clock, initialize the acquisition.
Definition at line 8 of file FPGAPhotonCounter.cpp.
scope::FPGAPhotonCounter::~FPGAPhotonCounter | ( | void | ) |
Close FPGA session.
Definition at line 37 of file FPGAPhotonCounter.cpp.
|
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 43 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Sets the time per pixel/dwell time (in seconds)
[in] | _area | for which area |
[in] | _pixeltime | the pixel dwell time in seconds |
Reimplemented from scope::FPGAInterface.
Definition at line 65 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Sets the time per line (in seconds) for the generation of the line clock (if implemented)
[in] | _area | for which area |
[in] | _linetime | the line time in seconds |
Reimplemented from scope::FPGAInterface.
Definition at line 73 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Sets if the FPGA should wait for a trigger before starting acquisition.
[in] | _waitfortrigger | true if wait for trigger |
Reimplemented from scope::FPGAInterface.
Definition at line 80 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Sets if the FPGA should acquire data continuously or acquire the number of pixels per channel set with SetRequestedPixels.
[in] | _cont | yes or no |
Reimplemented from scope::FPGAInterface.
Definition at line 84 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Sets the number of pixels per channel the FPGA should acquire, set to -1 for live scanning.
[in] | _area | for which area |
[in] | _reqpixels | number of pixels the FPGA should acquire before automatically stopping acquisition |
Reimplemented from scope::FPGAInterface.
Definition at line 88 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Starts the acquisition on the FPGA.
Reimplemented from scope::FPGAInterface.
Definition at line 92 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Stops the acquisition on the FPGA.
Reimplemented from scope::FPGAInterface.
Definition at line 126 of file FPGAPhotonCounter.cpp.
|
overridevirtual |
Read only pixels from the FPGA FIFO.
[in,out] | _chunk | the 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] | _timeout | time out for reading in seconds |
[out] | _timedout | set to true if reading timed out |
Implements scope::FPGAInterface.
Definition at line 99 of file FPGAPhotonCounter.cpp.
void scope::FPGAPhotonCounter::CheckFPGADiagnosis | ( | ) |
Checks the status of the FIFOs on the FPGA.
Definition at line 130 of file FPGAPhotonCounter.cpp.
void scope::FPGAPhotonCounter::ClearFIFOs | ( | ) |
Clears the interloop and ToHost FIFOs.
Definition at line 144 of file FPGAPhotonCounter.cpp.
void scope::FPGAPhotonCounter::SetCountMode | ( | const bool & | _mode | ) |
Set the counting mode on the FPGA.
Count high samples (true) or count pulses/flanks (false).
Definition at line 158 of file FPGAPhotonCounter.cpp.
|
protected |
the parameter set
Definition at line 24 of file FPGAPhotonCounter.h.
|
protected |
both fifos for both channels
Definition at line 27 of file FPGAPhotonCounter.h.
|
protected |
programmed sampling rate (usually 1-1.4GHz), this is double the IO modules clock rate
Definition at line 30 of file FPGAPhotonCounter.h.