EBST_CAM
Loading...
Searching...
No Matches
Board.h
Go to the documentation of this file.
1/*****************************************************************/
9
10#pragma once
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#include <stdint.h>
17#include <stdbool.h>
18#include "Board_ll.h"
19#ifdef WIN32
20#include "hdf5.h"
21#else
22#include <hdf5/serial/hdf5.h>
23#endif
24#include "Camera.h"
25
26// High level API
27// platform independent implementation
28// Basic operation of Stresing cameras:
29// 1) Initialize the driver. Call it once at startup.
31// 2) Set settings parameter according to your camera system. Call it once at startup and every time you changed settings.
32void SetGlobalSettings(struct measurement_settings settings);
33// 4) Initialize Hardware and Software for the Measurement. Call it once at startup and every time you changed settings.
35// 5) Start the measurement. Call it every time you want to measure.
37// 5b) Use this call, if you want to abort the measurement.
38es_status_codes AbortMeasurement(uint32_t block_index);
39// 6) Get the data.
40es_status_codes CopyOneSample(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint16_t* pdest);
41es_status_codes CopyOneBlock(uint32_t drvno, uint16_t block, uint16_t* pdest);
42es_status_codes CopyAllData(uint32_t drvno, uint16_t* pdest);
43es_status_codes CopyDataArbitrary(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint32_t pixel, size_t length_in_pixel, uint16_t* pdest);
44es_status_codes CopyOneBlockOfOneCamera(uint32_t drvno, uint32_t block, uint16_t camera, uint16_t* pdest);
45es_status_codes GetOneSamplePointer(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint16_t** pdest, size_t* bytes_to_end_of_buffer);
46es_status_codes GetOneBlockPointer(uint32_t drvno, uint32_t block, uint16_t** pdest, size_t* bytes_to_end_of_buffer);
47es_status_codes GetAllDataPointer(uint32_t drvno, uint16_t** pdest, size_t* bytes_to_end_of_buffer);
48es_status_codes GetPixelPointer(uint32_t drvno, uint16_t pixel, uint32_t sample, uint32_t block, uint16_t camera, uint16_t** pdest, size_t* bytes_to_end_of_buffer);
49#ifndef MINIMAL_BUILD
50es_status_codes SaveMeasurementDataToFile(const char* filename);
51#endif
52// 7) Before exiting your software, use this call for cleanup.
54
55
56// Mid level API
57// platform independent implementation
58// hardware abstraction
60#ifndef MINIMAL_BUILD
63#endif
64es_status_codes setBlockEn(uint32_t drvno, uint32_t block_index);
65es_status_codes resetBlockEn(uint32_t drvno, uint32_t block_index);
66es_status_codes setMeasureOn( uint32_t drvno );
67es_status_codes resetMeasureOn( uint32_t drvno );
68es_status_codes ResetDma( uint32_t drvno );
69es_status_codes ClearAllUserRegs( uint32_t drvno );
71es_status_codes OpenShutter( uint32_t drvno );
73es_status_codes SetSensorType( uint32_t drvno, uint16_t sensor_type );
74es_status_codes SetCameraSystem( uint32_t drvno, uint16_t camera_system );
75es_status_codes SetupFullBinning( uint32_t drvno, uint32_t lines, uint8_t vfreq );
76es_status_codes SetupROI(uint32_t drvno, uint16_t number_of_regions, uint32_t lines, uint8_t* region_size, uint8_t vfreq);
77es_status_codes SetupArea(uint32_t drvno, uint32_t lines_binning, uint8_t vfreq);
78es_status_codes SetupVCLKReg( uint32_t drvno, uint32_t lines, uint8_t vfreq );
79es_status_codes RSFifo( uint32_t drvno );
80es_status_codes allocateUserMemory( uint32_t drvno );
81es_status_codes SetDMABufRegs( uint32_t drvno );
82es_status_codes SetNosRegister(uint32_t drvno);
83es_status_codes SetNobRegister(uint32_t drvno);
84es_status_codes CloseShutter( uint32_t drvno );
85es_status_codes SetSEC( uint32_t drvno, uint32_t ecin10ns );
86es_status_codes SetTORReg( uint32_t drvno, uint8_t tor );
87es_status_codes SetSSlope(uint32_t drvno, uint32_t sslope);
88es_status_codes SetBSlope( uint32_t drvno, uint32_t slope );
89es_status_codes SetSTI( uint32_t drvno, uint8_t sti_mode );
90es_status_codes SetBTI( uint32_t drvno, uint8_t bti_mode );
91es_status_codes SetTimerResolution(uint32_t drvno, uint8_t resolution_mode);
92es_status_codes SetSTimer( uint32_t drvno, uint32_t stime );
93es_status_codes SetBTimer( uint32_t drvno, uint32_t btime );
94es_status_codes SetGPXCtrl( uint32_t drvno, uint8_t GPXAddress, uint32_t GPXData );
95es_status_codes ReadGPXCtrl( uint32_t drvno, uint8_t GPXAddress, uint32_t* GPXData );
96es_status_codes InitGPX( uint32_t drvno, uint32_t delay );
97es_status_codes SetSDAT( uint32_t drvno, uint32_t datin10ns );
98es_status_codes SetBDAT( uint32_t drvno, uint32_t datin10ns );
99es_status_codes Use_ENFFW_protection( uint32_t drvno, bool USE_ENFFW_PROTECT );
100es_status_codes DAC8568_sendData( uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint8_t ctrl, uint8_t addr, uint16_t data, uint8_t feature );
101es_status_codes DAC8568_setOutput( uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint8_t channel, uint16_t output );
102es_status_codes DAC8568_setAllOutputs(uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint32_t* output, bool reorder_channels);
103es_status_codes DAC8568_enableInternalReference(uint32_t drvno, uint8_t cameraPosition, uint8_t location);
104es_status_codes SetBEC( uint32_t drvno, uint32_t bec_in_10ns);
105es_status_codes SetXckdelay(uint32_t drvno, uint32_t xckdelay_in_10ns);
106es_status_codes SetPartialBinning(uint32_t drvno, uint16_t number_of_regions);
107es_status_codes ResetPartialBinning( uint32_t drvno );
108es_status_codes SetupVPB(uint32_t drvno, uint32_t range, uint32_t lines);
109es_status_codes SetDmaRegister( uint32_t drvno, uint32_t pixel );
110es_status_codes SetDmaStartMode( uint32_t drvno, bool start_by_hardware);
111es_status_codes FindCam( uint32_t drvno );
112es_status_codes SetHardwareTimerStopMode( uint32_t drvno, bool stop_by_hardware );
113es_status_codes ResetHardwareCounter( uint32_t drvno );
115es_status_codes countBlocksByHardware( uint32_t drvno );
116es_status_codes ArmScanTrigger( uint32_t drvno );
117es_status_codes DisarmScanTrigger(uint32_t drvno);
118es_status_codes DoSoftwareTrigger(uint32_t drvno);
119es_status_codes GetArmScanTriggerStatus( uint32_t drvno, bool* on );
120es_status_codes GetLastBufPart( uint32_t drvno );
121es_status_codes GetIndexOfPixel( uint32_t drvno, uint16_t pixel, uint32_t sample, uint32_t block, uint16_t CAM, uint64_t* pIndex );
122es_status_codes CheckFifoValid(uint32_t drvno, bool* valid);
123es_status_codes CheckFifoOverflow(uint32_t drvno, bool* overflow);
124es_status_codes CheckFifoEmpty(uint32_t drvno, bool* empty);
125es_status_codes CheckFifoFull(uint32_t drvno, bool* full);
126es_status_codes GetMeasureOn(uint32_t drvno, bool* measureOn);
127es_status_codes OutTrigLow(uint32_t drvno);
128es_status_codes OutTrigHigh(uint32_t drvno);
129es_status_codes OutTrigPulse(uint32_t drvno, int64_t pulseWidthInMicroseconds);
130es_status_codes readBlockTriggerState(uint32_t drv, uint8_t btrig_ch, bool* state);
133es_status_codes dumpS0Registers(uint32_t drvno, char** stringPtr);
134es_status_codes dumpHumanReadableS0Registers(uint32_t drvno, char** stringPtr);
135es_status_codes dumpDmaRegisters(uint32_t drvno, char** stringPtr);
136es_status_codes dumpTlpRegisters(uint32_t drvno, char** stringPtr);
138es_status_codes dumpCameraSettings(uint32_t drvno, char** stringPtr);
139es_status_codes dumpPciRegisters(uint32_t drvno, char** stringPtr);
140es_status_codes _AboutDrv(uint32_t drvno, char** stringPtr);
141es_status_codes _AboutGPX(uint32_t drvno, char** stringPtr);
142es_status_codes _InitMeasurement(uint32_t drvno);
143es_status_codes InitSoftware(uint32_t drvno);
144es_status_codes InitPcieBoard(uint32_t drvno);
145es_status_codes ResetDSC(uint32_t drvno, uint8_t DSCNumber);
146es_status_codes SetDIRDSC(uint32_t drvno, uint8_t DSCNumber, bool dir);
147es_status_codes GetDSC(uint32_t drvno, uint8_t DSCNumber, uint32_t* ADSC, uint32_t* LDSC);
148void PollDmaBufferToUserBuffer(uint32_t* drvno_p);
149void GetCurrentScanNumber(uint32_t drvno, int64_t* sample, int64_t* block);
150void GetScanNumber(uint32_t drvno, int64_t offset, int64_t* sample, int64_t* block);
151es_status_codes SetSticnt(uint32_t drvno, uint8_t divider);
152es_status_codes SetBticnt(uint32_t drvno, uint8_t divider);
153es_status_codes SetTocnt(uint32_t drvno, uint8_t divider);
154es_status_codes GetIsTdc(uint32_t drvno, bool* isTdc);
155es_status_codes GetIsDsc(uint32_t drvno, bool* isDsc);
156void GetVerifiedDataDialog(struct verify_data_parameter* vd, char** resultString);
157void SetContinuousMeasurement(bool on);
158es_status_codes GetCameraStatusOverTemp(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool* overTemp);
159es_status_codes GetCameraStatusTempGood(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool* tempGood);
160es_status_codes GetBlockIndex(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t* blockIndex);
161es_status_codes GetScanIndex(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t* scanIndex);
162es_status_codes GetS1State(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool* state);
163es_status_codes GetS2State(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool* state);
164es_status_codes GetImpactSignal1(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t* impactSignal);
165es_status_codes GetImpactSignal2(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t* impactSignal);
166es_status_codes GetAllSpecialPixelInformation(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, struct special_pixels* sp);
167void SetAllInterruptsDone(uint32_t drvno);
169es_status_codes ReadScanFrequencyBit(uint32_t drvno, bool* scanFrequencyTooHigh);
171es_status_codes ReadBlockFrequencyBit(uint32_t drvno, bool* blockFrequencyTooHigh);
173es_status_codes SetS1S2ReadDelay(uint32_t drvno);
174es_status_codes GetXckLength(uint32_t drvno, uint32_t* xckLengthIn10ns);
175es_status_codes GetXckPeriod(uint32_t drvno, uint32_t* xckPeriodIn10ns);
176es_status_codes GetBonLength(uint32_t drvno, uint32_t* bonLengthIn10ns);
177es_status_codes GetBonPeriod(uint32_t drvno, uint32_t* bonPeriodIn10ns);
178es_status_codes GetPcieCardVersion(uint32_t drvno, uint16_t* major_version, uint16_t* minor_version);
179bool PcieCardVersionIsGreaterThan(uint32_t drvno, uint16_t major_version, uint16_t minor_version);
180bool PcieCardVersionIsSmallerThan(uint32_t drvno, uint16_t major_version, uint16_t minor_version);
181bool PcieCardVersionIsEqual(uint32_t drvno, uint16_t major_version, uint16_t minor_version);
182es_status_codes GetBlockOn(uint32_t drvno, bool* block_on);
183es_status_codes GetScanTriggerDetected(uint32_t drvno, bool* detected);
184es_status_codes GetBlockTriggerDetected(uint32_t drvno, bool* detected);
187es_status_codes WaitForBlockOn(uint32_t drvno);
189void manipulateData(uint32_t drvno, uint16_t* startAddress, uint32_t numberOfScansToManipulate);
190void clearKeyStates();
192hid_t CreateNumericAttribute(hid_t parent_object_id, char* attr_name, hid_t goal_type, hid_t dataspace, void* data);
193hid_t CreateStringAttribute(hid_t parent_object_id, char* attr_name, hid_t dataspace, void* data);
194es_status_codes SetGeneralOutput(uint32_t drvno, uint8_t output, bool state);
195es_status_codes SetShutterStates(uint32_t drvno, uint16_t shutter_states);
196es_status_codes SetStateControlRegister(uint32_t drvno, uint16_t state);
197es_status_codes SetManualState(uint32_t drvno, bool state);
198
199// helper functions
200double CalcMeasureTimeInSeconds(uint32_t nos, uint32_t nob, double exposure_time_in_ms);
201double CalcRamUsageInMB(uint32_t nos, uint32_t nob);
202es_status_codes CalcTrms(uint32_t drvno, uint32_t firstSample, uint32_t lastSample, uint32_t TRMS_pixel, uint16_t CAMpos, double *mwf, double *trms);
203void GetRmsVal(uint32_t nos, uint16_t *TRMSVals, double *mwf, double *trms);
205void FillUserBufferWithDummyData(uint32_t drvno);
206
207// read and write functions
208es_status_codes writeBitsS0_32( uint32_t drvno, uint32_t data, uint32_t bitmask, uint32_t address);
209es_status_codes writeBitsS0_32_allBoards( uint32_t data, uint32_t bitmask, uint32_t address);
210es_status_codes writeBitsS0_8( uint32_t drvno, uint8_t data, uint8_t bitmask, uint32_t address);
211es_status_codes setBitS0_32(uint32_t drvno, uint32_t bitnumber, uint32_t address);
212es_status_codes setBitS0_32_allBoards(uint32_t bitnumber, uint32_t address);
213es_status_codes setBitS0_8(uint32_t drvno, uint32_t bitnumber, uint32_t address);
214es_status_codes resetBitS0_32(uint32_t drvno, uint32_t bitnumber, uint32_t address);
215es_status_codes resetBitS0_32_allBoards(uint32_t bitnumber, uint32_t address);
216es_status_codes resetBitS0_8(uint32_t drvno, uint32_t bitnumber, uint32_t address);
217es_status_codes readRegisterS0_32( uint32_t drvno, uint32_t* data, uint32_t address );
218es_status_codes readRegisterS0_32_allBoards(uint32_t** data, uint32_t address);
219es_status_codes readRegister_32_allBoards(uint32_t** data, uint32_t address);
220es_status_codes readRegisterS0_16( uint32_t drvno, uint16_t* data, uint32_t address );
221es_status_codes readRegisterS0_8( uint32_t drvno, uint8_t* data, uint32_t address );
222es_status_codes writeRegisterS0_32( uint32_t drvno, uint32_t data, uint32_t address );
223es_status_codes writeRegisterS0_32_allBoards( uint32_t data, uint32_t address );
224es_status_codes writeRegisterS0_16( uint32_t drvno, uint16_t data, uint32_t address );
225es_status_codes writeRegisterS0_8( uint32_t drv, uint8_t data, uint32_t address );
226es_status_codes writeRegisterS0_8_allBoards( uint8_t data, uint32_t address );
227es_status_codes writeRegisterDma_32(uint32_t drvno, uint32_t data, uint32_t address);
228es_status_codes writeRegisterDma_8( uint32_t drvno, uint8_t data, uint32_t address );
229es_status_codes readRegisterDma_32( uint32_t drvno, uint32_t* data, uint32_t address );
230es_status_codes readRegisterDma_8( uint32_t drvno, uint8_t* data, uint32_t address );
231es_status_codes writeBitsDma_32( uint32_t drvno, uint32_t data, uint32_t bitmask, uint32_t address);
232es_status_codes writeBitsDma_8( uint32_t drvno, uint8_t data, uint8_t bitmask, uint32_t address);
233es_status_codes pulseBitS0_32(uint32_t drvno, uint32_t bitnumber, uint32_t address, int64_t duration_in_microseconds);
234es_status_codes pulseBitS0_8(uint32_t drvno, uint32_t bitnumber, uint32_t address, int64_t duration_in_microseconds);
235es_status_codes ReadBitS0_32(uint32_t drvno, uint32_t address, uint8_t bitnumber, bool* isBitHigh);
236es_status_codes ReadBitS0_8(uint32_t drvno, uint32_t address, uint8_t bitnumber, bool* isBitHigh);
237#ifdef __cplusplus
238}
239#endif
es_status_codes GetScanIndex(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t *scanIndex)
This function returns the scan index of a specific scan.
Definition Board.c:4574
es_status_codes SaveMeasurementDataToFileHDF5(const char *filename)
Exports the measurement data to a HDF5 file.
Definition Board.c:4995
es_status_codes setBitS0_32(uint32_t drvno, uint32_t bitnumber, uint32_t address)
Set bit to 1 in S0 register at memory address.
Definition Board.c:484
es_status_codes writeRegisterS0_32(uint32_t drvno, uint32_t data, uint32_t address)
Write 4 byte of a register in S0 space.
Definition Board.c:566
es_status_codes InitSoftware(uint32_t drvno)
Definition Board.c:81
void clearKeyStates()
Definition Board.c:5467
es_status_codes writeBitsS0_32(uint32_t drvno, uint32_t data, uint32_t bitmask, uint32_t address)
Set specified bits to 1 in S0 register at memory address.
Definition Board.c:434
es_status_codes SetSTimer(uint32_t drvno, uint32_t stime)
Sets time for scan timer.
Definition Board.c:1201
es_status_codes readRegisterS0_16(uint32_t drvno, uint16_t *data, uint32_t address)
Read 2 bytes of a register in S0 space.
Definition Board.c:705
es_status_codes waitForBlockTrigger(uint32_t drvno)
Wait in loop until block trigger occurs.
Definition Board.c:2183
es_status_codes ResetHardwareCounter(uint32_t drvno)
Reset the hardware block counter and scan counter.
Definition Board.c:2100
es_status_codes readRegister_32_allBoards(uint32_t **data, uint32_t address)
Reads 4 bytes on DMA area of all PCIe boards.
Definition Board.c:682
es_status_codes SetBTimer(uint32_t drvno, uint32_t btime)
Sets time for block timer.
Definition Board.c:1214
es_status_codes SetXckdelay(uint32_t drvno, uint32_t xckdelay_in_10ns)
DEPRECATED. Set XCK delay.
Definition Board.c:1534
es_status_codes GetBlockIndex(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t *blockIndex)
This function returns the block index of a specific scan.
Definition Board.c:4547
es_status_codes readBlockTriggerState(uint32_t drv, uint8_t btrig_ch, bool *state)
Reads the binary state of an ext. trigger input.
Definition Board.c:2760
es_status_codes dumpDmaRegisters(uint32_t drvno, char **stringPtr)
Read all DMA registers and write them to a string in hex.
Definition Board.c:3626
es_status_codes SetCameraSystem(uint32_t drvno, uint16_t camera_system)
Sets camera system bits in register camera type.
Definition Board.c:418
es_status_codes DAC8568_setAllOutputs(uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint32_t *output, bool reorder_channels)
Sets all outputs of the DAC8568 in camera 3030 or on PCIe board.
Definition Board.c:1454
es_status_codes readRegisterS0_32_allBoards(uint32_t **data, uint32_t address)
Read 4 bytes of a register in S0 space of all boards.
Definition Board.c:670
es_status_codes GetPcieCardVersion(uint32_t drvno, uint16_t *major_version, uint16_t *minor_version)
Get the PCIe card firmware version number.
Definition Board.c:5288
es_status_codes dumpMeasurementSettings(char **stringPtr)
Dump all measurement settings to a string.
Definition Board.c:3830
es_status_codes GetCameraStatusOverTemp(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool *overTemp)
This function returns the bit overTemp of a specific scan.
Definition Board.c:4495
es_status_codes OutTrigHigh(uint32_t drvno)
Set trigger out(Reg CtrlA:D3) of PCIe board. Can be used to control timing issues in software.
Definition Board.c:2724
es_status_codes InitGPX(uint32_t drvno, uint32_t delay)
Initialize the TDC-GPX chip. TDC: time delay counter option.
Definition Board.c:1234
es_status_codes SetAbortMeasurementFlag()
Sets abortMeasurementFlag to true.
Definition Board.c:285
void GetVerifiedDataDialog(struct verify_data_parameter *vd, char **resultString)
Check the consistency of the file given in vd and return the results in resultString.
Definition Board.c:4432
es_status_codes DAC8568_setOutput(uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint8_t channel, uint16_t output)
Sets the output of the DAC8568 on PCB 2189-7.
Definition Board.c:1486
es_status_codes writeRegisterS0_8(uint32_t drv, uint8_t data, uint32_t address)
Write 1 byte of a register in S0 space.
Definition Board.c:620
es_status_codes GetAllSpecialPixelInformation(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, struct special_pixels *sp)
This function returns the all special pixel information of a specific scan.
Definition Board.c:4702
es_status_codes StartMeasurement()
This function is starting the measurement and returns when the measurement is done.
Definition Board.c:1791
es_status_codes ClearAllUserRegs(uint32_t drvno)
Clears DAT and EC.
Definition Board.c:241
es_status_codes SetupArea(uint32_t drvno, uint32_t lines_binning, uint8_t vfreq)
For FFTs: Setup area mode.
Definition Board.c:4908
es_status_codes SetDmaStartMode(uint32_t drvno, bool start_by_hardware)
Set DMA Start Mode.
Definition Board.c:1769
void GetCurrentScanNumber(uint32_t drvno, int64_t *sample, int64_t *block)
Gives scan and block number of the last scan written to userBuffer.
Definition Board.c:4284
es_status_codes writeBitsDma_32(uint32_t drvno, uint32_t data, uint32_t bitmask, uint32_t address)
Set specified bits to 1 in DMA register at memory address.
Definition Board.c:1635
es_status_codes SetSticnt(uint32_t drvno, uint8_t divider)
Set the scan trigger input divider.
Definition Board.c:4321
es_status_codes GetXckPeriod(uint32_t drvno, uint32_t *xckPeriodIn10ns)
Get pos edge to pos egde time of XCK time from the S0 register S0Addr_XCK_PERIOD.
Definition Board.c:5240
es_status_codes ReadScanFrequencyBit(uint32_t drvno, bool *scanFrequencyTooHigh)
Reads the ScanFrequency bit and checks if its high or low.
Definition Board.c:4773
void GetScanNumber(uint32_t drvno, int64_t offset, int64_t *sample, int64_t *block)
Gives scan and block number of the last scan written to userBuffer.
Definition Board.c:4294
es_status_codes SetTORReg(uint32_t drvno, uint8_t tor)
Set signal of output port of PCIe card.
Definition Board.c:1041
es_status_codes CloseShutter(uint32_t drvno)
Sets the IFC bit of interface for sensors with shutter function. IFC=low.
Definition Board.c:1013
es_status_codes DAC8568_sendData(uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint8_t ctrl, uint8_t addr, uint16_t data, uint8_t feature)
Sends data to DAC8568.
Definition Board.c:1394
es_status_codes countBlocksByHardware(uint32_t drvno)
Sends signal to hardware to count blocks.
Definition Board.c:2206
es_status_codes SetTimerResolution(uint32_t drvno, uint8_t resolution_mode)
Set timer resolution.
Definition Board.c:1159
es_status_codes CopyOneBlock(uint32_t drvno, uint16_t block, uint16_t *pdest)
Copy the data of a single block to pdest.
Definition Board.c:2378
es_status_codes GetS2State(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool *state)
This function returns the bit S2 state of a specific scan.
Definition Board.c:4626
es_status_codes dumpPciRegisters(uint32_t drvno, char **stringPtr)
Read all PCIe registers and write them to a string.
Definition Board.c:3995
es_status_codes SetTocnt(uint32_t drvno, uint8_t divider)
Set the trigger output divider.
Definition Board.c:4357
es_status_codes CheckFifoOverflow(uint32_t drvno, bool *overflow)
Check ovl flag (overflow of FIFO).
Definition Board.c:2661
es_status_codes CopyDataArbitrary(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint32_t pixel, size_t length_in_pixel, uint16_t *pdest)
Copy the data of a custom length to pdest.
Definition Board.c:2419
es_status_codes GetArmScanTriggerStatus(uint32_t drvno, bool *on)
Checks if timer is active (Bit30 of XCK-Reg).
Definition Board.c:2254
es_status_codes GetOneBlockPointer(uint32_t drvno, uint32_t block, uint16_t **pdest, size_t *bytes_to_end_of_buffer)
Returns the address of a specific block.
Definition Board.c:2522
es_status_codes resetMeasureOn(uint32_t drvno)
Resets setMeasureOn bit in PCIEFLAGS and notifies UI about it.
Definition Board.c:345
es_status_codes GetImpactSignal1(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t *impactSignal)
This function returns the impact signal 1 of a specific scan.
Definition Board.c:4652
es_status_codes ReadBitS0_32(uint32_t drvno, uint32_t address, uint8_t bitnumber, bool *isBitHigh)
Read 1 bit of a 4 byte s0 register.
Definition Board.c:731
es_status_codes SetNobRegister(uint32_t drvno)
Definition Board.c:1001
es_status_codes dumpHumanReadableS0Registers(uint32_t drvno, char **stringPtr)
Read all S0 registers and write them to a string in a human readable format.
Definition Board.c:2947
es_status_codes readRegisterDma_8(uint32_t drvno, uint8_t *data, uint32_t address)
Read 1 byte of a register in DMA space.
Definition Board.c:1754
es_status_codes WaitForMeasureDone()
Returns when measure on bit is 0.
Definition Board.c:2833
es_status_codes ReadGPXCtrl(uint32_t drvno, uint8_t GPXAddress, uint32_t *GPXData)
Read GPXCtrl register.
Definition Board.c:1306
es_status_codes SetGeneralOutput(uint32_t drvno, uint8_t output, bool state)
Control the general outputs of the PCIe card addition board.
Definition Board.c:5482
es_status_codes SetBTI(uint32_t drvno, uint8_t bti_mode)
Chooses trigger input for block trigger input (BTI)
Definition Board.c:1146
es_status_codes GetIsTdc(uint32_t drvno, bool *isTdc)
Read TDC flag in PCIEFLAGS register.
Definition Board.c:4391
es_status_codes GetBonLength(uint32_t drvno, uint32_t *bonLengthIn10ns)
Get the high time duration of BON from the S0 register S0Addr_BONLEN.
Definition Board.c:5257
void FillUserBufferWithDummyData(uint32_t drvno)
This function inserts data to user buffer for developing purpose.
Definition Board.c:4371
es_status_codes dumpS0Registers(uint32_t drvno, char **stringPtr)
Read all S0 registers and write them to a string in hex.
Definition Board.c:2860
bool PcieCardVersionIsGreaterThan(uint32_t drvno, uint16_t major_version, uint16_t minor_version)
Definition Board.c:5298
es_status_codes DisarmScanTrigger(uint32_t drvno)
Disarm scan trigger.
Definition Board.c:900
es_status_codes AbortMeasurement(uint32_t block_index)
Use this function to abort measurement.
Definition Board.c:259
es_status_codes SetGPXCtrl(uint32_t drvno, uint8_t GPXAddress, uint32_t GPXData)
Set GPXCtrl register.
Definition Board.c:1287
es_status_codes WaitForBlockOn(uint32_t drvno)
Definition Board.c:5392
void SetGlobalSettings(struct measurement_settings settings)
Set global settings struct.
Definition Board.c:38
es_status_codes SetS1S2ReadDelay(uint32_t drvno)
This functions sets the register S1S2ReadDealy with the setting camera_settings::s1s2_read_delay_in_1...
Definition Board.c:4923
es_status_codes SetSensorType(uint32_t drvno, uint16_t sensor_type)
Sets sensor type bits in register camera type.
Definition Board.c:398
es_status_codes GetPixelPointer(uint32_t drvno, uint16_t pixel, uint32_t sample, uint32_t block, uint16_t camera, uint16_t **pdest, size_t *bytes_to_end_of_buffer)
Returns the address of a specific pixel.
Definition Board.c:2478
es_status_codes SetShutterStates(uint32_t drvno, uint16_t shutter_states)
Sets all shutter states in one call.
Definition Board.c:5503
es_status_codes DAC8568_enableInternalReference(uint32_t drvno, uint8_t cameraPosition, uint8_t location)
Enable the internal reference in static mode.
Definition Board.c:1501
es_status_codes setBitS0_32_allBoards(uint32_t bitnumber, uint32_t address)
Set bit to 1 in S0 register at memory address.
Definition Board.c:497
es_status_codes OutTrigPulse(uint32_t drvno, int64_t pulseWidthInMicroseconds)
Pulses trigger out(Reg CtrlA:D3) of PCI board. Can be used to control timing issues in software.
Definition Board.c:2737
es_status_codes InitMeasurement()
Initialize measurement (using board select).
Definition Board.c:49
es_status_codes SetBDAT(uint32_t drvno, uint32_t datin10ns)
Sets delay after trigger hardware register.
Definition Board.c:1350
es_status_codes WaitForBlockDone()
Returns when block on bit is 0.
Definition Board.c:2809
es_status_codes GetS1State(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool *state)
This function returns the bit S1 state of a specific scan.
Definition Board.c:4600
void PollDmaBufferToUserBuffer(uint32_t *drvno_p)
This function copies valid data from DMA buffer to user buffer.
Definition Board.c:4180
es_status_codes writeBitsS0_32_allBoards(uint32_t data, uint32_t bitmask, uint32_t address)
Set specified bits to 1 in S0 register at memory address.
Definition Board.c:447
es_status_codes ResetBlockFrequencyBit(uint32_t drvno)
Resets the BlockFrequency bit.
Definition Board.c:4810
es_status_codes setBitS0_8(uint32_t drvno, uint32_t bitnumber, uint32_t address)
Set bit to 1 in S0 register at memory address.
Definition Board.c:511
es_status_codes CalcTrms(uint32_t drvno, uint32_t firstSample, uint32_t lastSample, uint32_t TRMS_pixel, uint16_t CAMpos, double *mwf, double *trms)
Calculate TRMS noise value of one pixel.
Definition Board.c:2590
es_status_codes GetScanTriggerDetected(uint32_t drvno, bool *detected)
Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected.
Definition Board.c:5349
es_status_codes writeRegisterDma_32(uint32_t drvno, uint32_t data, uint32_t address)
Write 4 bytes to a register in DMA space.
Definition Board.c:1706
es_status_codes _AboutDrv(uint32_t drvno, char **stringPtr)
Return infos about the PCIe board.
Definition Board.c:4065
es_status_codes SetDIRDSC(uint32_t drvno, uint8_t DSCNumber, bool dir)
set direction of Delay Stage Counter
Definition Board.c:4122
es_status_codes SetBticnt(uint32_t drvno, uint8_t divider)
Set the block trigger input divider.
Definition Board.c:4339
void GetRmsVal(uint32_t nos, uint16_t *TRMSVals, double *mwf, double *trms)
Definition Board.c:2617
hid_t CreateStringAttribute(hid_t parent_object_id, char *attr_name, hid_t dataspace, void *data)
Definition Board.c:5198
es_status_codes DoSoftwareTrigger(uint32_t drvno)
Triggers one camera read by calling this function.
Definition Board.c:2239
es_status_codes pulseBitS0_32(uint32_t drvno, uint32_t bitnumber, uint32_t address, int64_t duration_in_microseconds)
Pulse bit () -> 1 -> 0) in S0 register at memory address.
Definition Board.c:2147
es_status_codes CheckFifoEmpty(uint32_t drvno, bool *empty)
Check empty flag (FIFO empty).
Definition Board.c:2674
es_status_codes SetCamCountRegister(uint32_t drvno)
Set cam count.
Definition Board.c:385
es_status_codes SaveMeasurementDataToFile(const char *filename)
Export the measurement data to a file.
Definition Board.c:4939
es_status_codes SetBSlope(uint32_t drvno, uint32_t slope)
Sets slope for block trigger.
Definition Board.c:1108
es_status_codes ReturnStartMeasurement(es_status_codes status)
This is a helper function to return startMeasurement.
Definition Board.c:2043
es_status_codes SetNosRegister(uint32_t drvno)
Definition Board.c:995
es_status_codes resetBlockEn(uint32_t drvno, uint32_t block_index)
Resets BlockOn bit in PCIEFLAGS and notifies UI about it.
Definition Board.c:330
es_status_codes setMeasureOn(uint32_t drvno)
Sets setMeasureOn bit in PCIEFLAGS and notifies UI about it.
Definition Board.c:314
es_status_codes setBlockEn(uint32_t drvno, uint32_t block_index)
Sets BlockOn bit in PCIEFLAGS and notifies UI about it.
Definition Board.c:299
es_status_codes OutTrigLow(uint32_t drvno)
Reset trigger out(Reg CtrlA:D3) of PCI board. Can be used to control timing issues in software.
Definition Board.c:2712
es_status_codes GetAllDataPointer(uint32_t drvno, uint16_t **pdest, size_t *bytes_to_end_of_buffer)
Returns the address of the data buffer.
Definition Board.c:2507
es_status_codes writeRegisterDma_8(uint32_t drvno, uint8_t data, uint32_t address)
Write 1 byte to a register in DMA space.
Definition Board.c:1722
es_status_codes resetBitS0_32_allBoards(uint32_t bitnumber, uint32_t address)
Set bit to 0 in register at memory address.
Definition Board.c:538
es_status_codes CopyAllData(uint32_t drvno, uint16_t *pdest)
Copy the data of the complete measurement to pdest.
Definition Board.c:2396
es_status_codes RSFifo(uint32_t drvno)
reset FIFO and FFcounter
Definition Board.c:918
es_status_codes GetOneSamplePointer(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint16_t **pdest, size_t *bytes_to_end_of_buffer)
Returns the address of a specific sample.
Definition Board.c:2539
es_status_codes ResetDma(uint32_t drvno)
Definition Board.c:360
es_status_codes SetupROI(uint32_t drvno, uint16_t number_of_regions, uint32_t lines, uint8_t *region_size, uint8_t vfreq)
Initializes region of interest.
Definition Board.c:4869
double CalcRamUsageInMB(uint32_t nos, uint32_t nob)
Calculate needed RAM in MB for given nos and nob.
Definition Board.c:2566
hid_t CreateNumericAttribute(hid_t parent_object_id, char *attr_name, hid_t goal_type, hid_t dataspace, void *data)
Definition Board.c:5189
es_status_codes pulseBitS0_8(uint32_t drvno, uint32_t bitnumber, uint32_t address, int64_t duration_in_microseconds)
Pulse bit () -> 1 -> 0) in S0 register at memory address.
Definition Board.c:2164
es_status_codes GetBlockOn(uint32_t drvno, bool *block_on)
Get the block on bit from the PCIe flags register.
Definition Board.c:5330
es_status_codes InitBoard()
Initializes the PCIe board.
Definition Board.c:2293
es_status_codes GetIndexOfPixel(uint32_t drvno, uint16_t pixel, uint32_t sample, uint32_t block, uint16_t CAM, uint64_t *pIndex)
Returns the index of a pixel located in userBuffer.
Definition Board.c:2444
es_status_codes writeRegisterS0_8_allBoards(uint8_t data, uint32_t address)
Write the same 1 byte to a register in S0 space of all boards.
Definition Board.c:635
es_status_codes SetPixelCountRegister(uint32_t drvno)
Set pixel count.
Definition Board.c:229
es_status_codes GetBlockTriggerDetected(uint32_t drvno, bool *detected)
Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected.
Definition Board.c:5362
es_status_codes allocateUserMemory(uint32_t drvno)
Definition Board.c:932
es_status_codes SetupFullBinning(uint32_t drvno, uint32_t lines, uint8_t vfreq)
For FFTs: Setup full binning.
Definition Board.c:781
es_status_codes SetSDAT(uint32_t drvno, uint32_t datin10ns)
Sets delay after trigger hardware register.
Definition Board.c:1329
bool PcieCardVersionIsSmallerThan(uint32_t drvno, uint16_t major_version, uint16_t minor_version)
Definition Board.c:5306
es_status_codes CopyOneBlockOfOneCamera(uint32_t drvno, uint32_t block, uint16_t camera, uint16_t *pdest)
Copy the data of one block of one camera to pdest.
Definition Board.c:4827
es_status_codes SetupVPB(uint32_t drvno, uint32_t range, uint32_t lines)
sets Vertical Partial Binning in registers R10,R11 and R12. Only for FFT sensors.
Definition Board.c:817
es_status_codes readRegisterDma_32(uint32_t drvno, uint32_t *data, uint32_t address)
Read 4 bytes of a register in DMA space.
Definition Board.c:1738
es_status_codes _AboutGPX(uint32_t drvno, char **stringPtr)
Reads registers 0 to 12 of TDC-GPX chip. Time delay counter option.
Definition Board.c:3746
es_status_codes Use_ENFFW_protection(uint32_t drvno, bool USE_ENFFW_PROTECT)
Protects ENFFW from cool cam status transmission. Enable with cool cam, disable with HS > 50 kHz.
Definition Board.c:1372
es_status_codes GetCameraStatusTempGood(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, bool *tempGood)
This function returns the bit tempGood of a specific scan.
Definition Board.c:4521
es_status_codes readRegisterS0_32(uint32_t drvno, uint32_t *data, uint32_t address)
Read 4 bytes of a register in S0 space.
Definition Board.c:658
es_status_codes ResetScanFrequencyBit(uint32_t drvno)
Resets the ScanFrequency bit.
Definition Board.c:4785
es_status_codes SetDmaRegister(uint32_t drvno, uint32_t pixel)
Set DMA related registers like TLP mode and DMA addresses.
Definition Board.c:1555
es_status_codes GetBonPeriod(uint32_t drvno, uint32_t *bonPeriodIn10ns)
Get the pos edge to pos edge time of BON from the S0 register S0Addr_BON_PERIOD.
Definition Board.c:5274
es_status_codes GetLastBufPart(uint32_t drvno)
For the rest part of the buffer.
Definition Board.c:2265
es_status_codes ReadBitS0_8(uint32_t drvno, uint32_t address, uint8_t bitnumber, bool *isBitHigh)
Read 1 bit of 1 byte of a s0 register.
Definition Board.c:750
void SetContinuousMeasurement(bool on)
Control looping the measurement.
Definition Board.c:4476
es_status_codes writeRegisterS0_32_allBoards(uint32_t data, uint32_t address)
Write 4 bytes of a register in S0 space.
Definition Board.c:581
es_status_codes writeRegisterS0_16(uint32_t drvno, uint16_t data, uint32_t address)
Write 2 bytes of a register in S0 space.
Definition Board.c:604
void manipulateData(uint32_t drvno, uint16_t *startAddress, uint32_t numberOfScansToManipulate)
Manipulate the incoming data buffer with a preset polynomial.
Definition Board.c:5422
es_status_codes dumpTlpRegisters(uint32_t drvno, char **stringPtr)
Read all TLP registers and write them to a string.
Definition Board.c:3682
es_status_codes ResetDSC(uint32_t drvno, uint8_t DSCNumber)
reset Delay Stage Counter
Definition Board.c:4098
es_status_codes InitDriver()
Initialize the driver.
Definition Board.c:2318
es_status_codes SetSTI(uint32_t drvno, uint8_t sti_mode)
Chooses trigger input for scan trigger input (STI)
Definition Board.c:1126
es_status_codes CopyOneSample(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint16_t *pdest)
Copy the data of a single sample to pdest.
Definition Board.c:2356
es_status_codes CheckFifoValid(uint32_t drvno, bool *valid)
Checks content of FIFO.
Definition Board.c:2647
es_status_codes SetSEC(uint32_t drvno, uint32_t ecin10ns)
Exposure control (EC) signal is used for mechanical shutter or sensors with EC function.
Definition Board.c:1028
es_status_codes ExitDriver()
Exit driver. Call this before exiting software for cleanup.
Definition Board.c:2333
es_status_codes SetPartialBinning(uint32_t drvno, uint16_t number_of_regions)
Turn partial binning on.
Definition Board.c:872
es_status_codes ImportMeasurementDataFromFile(const char *filename)
TODO. missing documentation.
Definition Board.c:4962
es_status_codes GetXckLength(uint32_t drvno, uint32_t *xckLengthIn10ns)
Get the high time duration of XCK from the S0 register S0Addr_XCKLEN.
Definition Board.c:5223
es_status_codes resetBitS0_8(uint32_t drvno, uint32_t bitnumber, uint32_t address)
Set bit to 0 in register at memory address.
Definition Board.c:552
es_status_codes dumpCameraSettings(uint32_t drvno, char **stringPtr)
Dump all camera settings to a string.
Definition Board.c:3859
es_status_codes ReadBlockFrequencyBit(uint32_t drvno, bool *blockFrequencyTooHigh)
Reads the BlockFrequency bit and checks if its high or low.
Definition Board.c:4798
bool PcieCardVersionIsEqual(uint32_t drvno, uint16_t major_version, uint16_t minor_version)
Definition Board.c:5314
es_status_codes SetSSlope(uint32_t drvno, uint32_t sslope)
Set the external trigger slope for scan trigger (PCI Reg CrtlA:D5 -> manual).
Definition Board.c:1068
es_status_codes writeBitsS0_8(uint32_t drvno, uint8_t data, uint8_t bitmask, uint32_t address)
Set specified bits to 1 in S0 register at memory address.
Definition Board.c:471
es_status_codes GetIsDsc(uint32_t drvno, bool *isDsc)
Read DSC flag in PCIEFLAGS register.
Definition Board.c:4412
es_status_codes resetBitS0_32(uint32_t drvno, uint32_t bitnumber, uint32_t address)
Set bit to 0 in register at memory address.
Definition Board.c:525
es_status_codes SetHardwareTimerStopMode(uint32_t drvno, bool stop_by_hardware)
Reset the internal intr collect counter.
Definition Board.c:2119
es_status_codes readRegisterS0_8(uint32_t drvno, uint8_t *data, uint32_t address)
Read 1 byte of a register in S0 space.
Definition Board.c:718
es_status_codes CheckFifoFull(uint32_t drvno, bool *full)
Check full flag (FIFO full).
Definition Board.c:2687
es_status_codes SetupVCLKReg(uint32_t drvno, uint32_t lines, uint8_t vfreq)
Set REG VCLKCTRL for FFT sensors.
Definition Board.c:797
es_status_codes GetDSC(uint32_t drvno, uint8_t DSCNumber, uint32_t *ADSC, uint32_t *LDSC)
return all values of Delay Stage Counter
Definition Board.c:4148
es_status_codes SetManualState(uint32_t drvno, bool state)
Definition Board.c:5515
es_status_codes FindCam(uint32_t drvno)
Test if SFP module is there and fiber is linked up.
Definition Board.c:2055
es_status_codes ResetScanTriggerDetected(uint32_t drvno)
Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected to 0.
Definition Board.c:5374
es_status_codes ResetBlockTriggerDetected(uint32_t drvno)
Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected to 0.
Definition Board.c:5386
es_status_codes SetBEC(uint32_t drvno, uint32_t bec_in_10ns)
This function sets the register BEC.
Definition Board.c:1518
double CalcMeasureTimeInSeconds(uint32_t nos, uint32_t nob, double exposure_time_in_ms)
Calculate the theoretical time needed for one measurement.
Definition Board.c:2553
es_status_codes ArmScanTrigger(uint32_t drvno)
Sets Scan Timer on.
Definition Board.c:2221
es_status_codes SetDMABufRegs(uint32_t drvno)
Set DMA register.
Definition Board.c:980
es_status_codes InitPcieBoard(uint32_t drvno)
Definition Board.c:106
es_status_codes ImportMeasurementDataFromFileBIN(const char *filename)
Definition Board.c:4973
es_status_codes writeBitsDma_8(uint32_t drvno, uint8_t data, uint8_t bitmask, uint32_t address)
Set specified bits to 1 in DMA register at memory address.
Definition Board.c:1671
es_status_codes SetStateControlRegister(uint32_t drvno, uint16_t state)
Definition Board.c:5509
void SetAllInterruptsDone(uint32_t drvno)
Definition Board.c:4846
es_status_codes GetMeasureOn(uint32_t drvno, bool *measureOn)
Check if measure on bit is set.
Definition Board.c:2700
es_status_codes SetShiftS1S2ToNextScan(uint32_t drvno)
Definition Board.c:5410
es_status_codes ResetPartialBinning(uint32_t drvno)
Turns ARREG off and therefore partial binning too.
Definition Board.c:887
es_status_codes _InitMeasurement(uint32_t drvno)
Initialize Measurement (using drvno).
Definition Board.c:212
es_status_codes GetImpactSignal2(uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint32_t *impactSignal)
This function returns the impact signal 2 of a specific scan.
Definition Board.c:4677
es_status_codes OpenShutter(uint32_t drvno)
Open shutter for sensors with EC (exposure control) / sets IFC signal = high.
Definition Board.c:767
All the low level platform specific implementations for interacting with the Stresing PCIe board.
Functions for interacting with the camera.
es_status_codes
Definition es_status_codes.h:15
In this struct are settings, that are the same for all PCIe boards.
Definition struct.h:409
Definition struct.h:498
Definition struct.h:517