EBST_CAM
Loading...
Searching...
No Matches
ESLSCDLL.c File Reference

Library ESLSCDLL for operating Stresing cameras. More...

#include "ESLSCDLL.h"
#include "Board.h"
#include <windows.h>
#include <process.h>

Functions

BOOL WINAPI DLLMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 DllMain entry point.
 
DllAccess es_status_codes DLLInitDriver (uint8_t *_number_of_boards)
 Initialize the driver.
 
DllAccess void DLLInitSettingsStruct (struct measurement_settings *ms)
 Use this function to properly initialize the struct measurement_settings to its default values.
 
DllAccess es_status_codes DLLInitMeasurement (struct measurement_settings settings)
 Initialize measurement (using board select).
 
DllAccess es_status_codes DLLInitMeasurement_matlab (struct measurement_settings_matlab measurement_s, struct camera_settings camera_s0, struct camera_settings camera_s1, struct camera_settings camera_s2, struct camera_settings camera_s3, struct camera_settings camera_s4)
 Initialize measurement with Matlab compatible parameters.
 
DllAccess es_status_codes DLLStartMeasurement_blocking ()
 This function is starting the measurement and returns when the measurement is done.
 
unsigned __stdcall StartMeasurementThread (void *param)
 Internal use only.
 
DllAccess void DLLStartMeasurement_nonblocking ()
 This function is starting the measurement and returns immediately.
 
DllAccess es_status_codes DLLAbortMeasurement ()
 Sets abortMeasurementFlag to true.
 
DllAccess es_status_codes DLLCopyOneSample (uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint16_t *pdest)
 Copy the data of a single sample to pdest.
 
DllAccess es_status_codes DLLCopyOneSample_multipleBoards (uint32_t sample, uint32_t block, uint16_t camera, uint16_t *pdest0, uint16_t *pdest1, uint16_t *pdest2, uint16_t *pdest3, uint16_t *pdest4)
 Get data of a single measurement for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLCopyAllData (uint32_t drvno, uint16_t *pdest)
 Copy the data of the complete measurement to pdest.
 
DllAccess es_status_codes DLLCopyAllData_multipleBoards (uint16_t *pdest0, uint16_t *pdest1, uint16_t *pdest2, uint16_t *pdest3, uint16_t *pdest4)
 Copies all pixel data to pdest for all used boards set in settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLCopyOneBlock (uint32_t drvno, uint16_t block, uint16_t *pdest)
 Copy the data of a single block to pdest.
 
DllAccess es_status_codes DLLCopyDataArbitrary (uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera, uint32_t pixel, uint32_t length_in_pixel, uint16_t *pdest)
 Copy the data of a custom length to pdest.
 
DllAccess es_status_codes DLLGetOneSamplePointer (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.
 
DllAccess es_status_codes DLLGetOneBlockPointer (uint32_t drvno, uint32_t block, uint16_t **pdest, size_t *bytes_to_end_of_buffer)
 Returns the address of a specific block.
 
DllAccess es_status_codes DLLGetPixelPointer (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.
 
DllAccess es_status_codes DLLCopyOneBlock_multipleBoards (uint16_t block, uint16_t *pdest0, uint16_t *pdest1, uint16_t *pdest2, uint16_t *pdest3, uint16_t *pdest4)
 Copies one block of pixel data of all used boards selected by settings parameter measurement_settings::board_sel to pdest.
 
DllAccess es_status_codes DLLCopyOneBlockOfOneCamera (uint32_t drvno, uint32_t block, uint16_t camera, uint16_t *pdest)
 Copy the data of one block of one camera to pdest.
 
DllAccess es_status_codes DLLCopyOneBlockOfOneCamera_multipleBoards (uint32_t block, uint16_t camera, uint16_t *pdest0, uint16_t *pdest1, uint16_t *pdest2, uint16_t *pdest3, uint16_t *pdest4)
 Copy the data of one block of one camera of all used boards selected by settings parameter measurement_settings::board_sel to pdest.
 
DllAccess es_status_codes DLLGetAllDataPointer (uint32_t drvno, uint16_t **pdest, size_t *bytes_to_end_of_buffer)
 Returns the address of the data buffer.
 
DllAccess es_status_codes DLLExitDriver ()
 Exit driver. Call this before exiting software for cleanup.
 
DllAccess int DLLGetProcessCount ()
 Function for multithreading.
 
DllAccess int DLLGetThreadCount ()
 Function for multithreading.
 
DllAccess es_status_codes DLLreadRegisterS0_8 (uint32_t drvno, uint8_t *data, uint32_t address)
 Read 1 byte of a register in S0 space.
 
DllAccess es_status_codes DLLreadRegisterS0_8_multipleBoards (uint8_t *data0, uint8_t *data1, uint8_t *data2, uint8_t *data3, uint8_t *data4, uint32_t address)
 Read 1 byte of a register in S0 space of all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLwriteRegisterS0_8 (uint8_t data, uint32_t address)
 Write the same 1 byte to a register in S0 space of all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLreadRegisterS0_32 (uint32_t drvno, uint32_t *data, uint32_t address)
 Read 4 bytes of a register in S0 space.
 
DllAccess es_status_codes DLLreadRegisterS0_32_multipleBoards (uint32_t *data0, uint32_t *data1, uint32_t *data2, uint32_t *data3, uint32_t *data4, uint32_t address)
 Read 4 bytes of a register in S0 space of all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLwriteRegisterS0_32 (uint32_t data, uint32_t address)
 Write 4 bytes of a register in S0 space for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLReadScanFrequencyBit (uint32_t drvno, uint8_t *scanFrequencyTooHigh)
 Reads the ScanFrequency bit and checks if its high or low.
 
DllAccess es_status_codes DLLReadScanFrequencyBit_multipleBoards (uint8_t *scanFrequencyTooHigh0, uint8_t *scanFrequencyTooHigh1, uint8_t *scanFrequencyTooHigh2, uint8_t *scanFrequencyTooHigh3, uint8_t *scanFrequencyTooHigh4)
 Reads the ScanFrequency bit and checks if its high or low for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLResetScanFrequencyBit (uint32_t drvno)
 Resets the ScanFrequency bit.
 
DllAccess es_status_codes DLLResetScanFrequencyBit_multipleBoards ()
 Resets the ScanFrequency bit.
 
DllAccess es_status_codes DLLReadBlockFrequencyBit (uint32_t drvno, uint8_t *blockFrequencyTooHigh)
 Reads the BlockFrequency bit and checks if its high or low.
 
DllAccess es_status_codes DLLReadBlockFrequencyBit_multipleBoards (uint8_t *blockFrequencyTooHigh0, uint8_t *blockFrequencyTooHigh1, uint8_t *blockFrequencyTooHigh2, uint8_t *blockFrequencyTooHigh3, uint8_t *blockFrequencyTooHigh4)
 Reads the ScanFrequency bit and checks if its high or low for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLResetBlockFrequencyBit (uint32_t drvno)
 Resets the BlockFrequency bit.
 
DllAccess es_status_codes DLLResetBlockFrequencyBit_multipleBoards ()
 Resets the BlockFrequency bit.
 
DllAccess es_status_codes DLLGetCameraStatusOverTemp (uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint8_t *overTemp)
 This function returns the bit overTemp of a specific scan.
 
DllAccess es_status_codes DLLGetBlockIndex (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.
 
DllAccess es_status_codes DLLGetScanIndex (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.
 
DllAccess es_status_codes DLLGetS1State (uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint8_t *state)
 This function returns the bit S1 state of a specific scan.
 
DllAccess es_status_codes DLLGetS2State (uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint8_t *state)
 This function returns the bit S2 state of a specific scan.
 
DllAccess es_status_codes DLLGetImpactSignal1 (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.
 
DllAccess es_status_codes DLLGetImpactSignal2 (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.
 
DllAccess uint32_t DLLGetVirtualCamcnt (uint32_t drvno)
 Get the variable virtualCamcnt.
 
DllAccess uint8_t DLLGetTestModeOn ()
 Get the variable testModeOn.
 
DllAccess es_status_codes DLLGetCameraStatusOverTemp_multipleBoards (uint32_t sample, uint32_t block, uint16_t camera_pos, uint8_t *overTemp1, uint8_t *overTemp2, uint8_t *overTemp3, uint8_t *overTemp4, uint8_t *overTemp5)
 This function returns the bit overTemp of a specific scan.
 
DllAccess es_status_codes DLLGetCameraStatusTempGood (uint32_t drvno, uint32_t sample, uint32_t block, uint16_t camera_pos, uint8_t *tempGood)
 This function returns the bit tempGood of a specific scan.
 
DllAccess es_status_codes DLLGetCameraStatusTempGood_multipleBoards (uint32_t sample, uint32_t block, uint16_t camera_pos, uint8_t *tempGood1, uint8_t *tempGood2, uint8_t *tempGood3, uint8_t *tempGood4, uint8_t *tempGood5)
 This function returns the bit tempGood of a specific scan.
 
DllAccess es_status_codes DLLFindCam (uint32_t drvno)
 Test if SFP module is there and fiber is linked up.
 
DllAccess es_status_codes DLLFindCam_multipleBoards (uint8_t *cameraFound0, uint8_t *cameraFound1, uint8_t *cameraFound2, uint8_t *cameraFound3, uint8_t *cameraFound4)
 Test if SFP module is there and fiber is linked up.
 
DllAccess es_status_codes DLLGetBlockOn (uint32_t drvno, uint8_t *blockOn)
 Get the block on bit from the PCIe flags register.
 
DllAccess es_status_codes DLLGetBlockOn_multipleBoards (uint8_t *blockOn0, uint8_t *blockOn1, uint8_t *blockOn2, uint8_t *blockOn3, uint8_t *blockOn4)
 Get the block on bit from the PCIe flags register.
 
DllAccess es_status_codes DLLDumpS0Registers (uint32_t drvno, char **stringPtr)
 Read all S0 registers and write them to a string in hex.
 
DllAccess es_status_codes DLLDumpHumanReadableS0Registers (uint32_t drvno, char **stringPtr)
 Read all S0 registers and write them to a string in a human readable format.
 
DllAccess es_status_codes DLLDumpDmaRegisters (uint32_t drvno, char **stringPtr)
 Read all DMA registers and write them to a string in hex.
 
DllAccess es_status_codes DLLDumpTlpRegisters (uint32_t drvno, char **stringPtr)
 Read all TLP registers and write them to a string.
 
DllAccess es_status_codes DLLDumpMeasurementSettings (char **stringPtr)
 Dump all measurement settings to a string.
 
DllAccess es_status_codes DLLDumpCameraSettings (uint32_t drvno, char **stringPtr)
 Dump all camera settings to a string.
 
DllAccess es_status_codes DLLDumpPciRegisters (uint32_t drvno, char **stringPtr)
 Read all PCIe registers and write them to a string.
 
DllAccess es_status_codes DLLAboutDrv (uint32_t drvno, char **stringPtr)
 Return infos about the PCIe board.
 
DllAccess es_status_codes DLLAboutGPX (uint32_t drvno, char **stringPtr)
 Reads registers 0 to 12 of TDC-GPX chip. Time delay counter option.
 
DllAccess void DLLGetVerifiedDataDialog (struct verify_data_parameter *vd, char **resultString)
 Check the consistency of the file given in vd and return the results in resultString.
 
DllAccess uint8_t DLLGetIsRunning ()
 Get the variable isRunning.
 
DllAccess double DLLCalcRamUsageInMB (uint32_t nos, uint32_t nob)
 Calculate needed RAM in MB for given nos and nob.
 
DllAccess double DLLCalcMeasureTimeInSeconds (uint32_t nos, uint32_t nob, double exposure_time_in_ms)
 Calculate the theoretical time needed for one measurement.
 
DllAccess es_status_codes DLLOutTrigHigh ()
 Set trigger out(Reg CtrlA:D3) for all boards selected by settings parameter measurement_settings::board_sel. Can be used to control timing issues in software.
 
DllAccess es_status_codes DLLOutTrigLow ()
 Reset trigger out(Reg CtrlA:D3) for all boards selected by settings parameter measurement_settings::board_sel. Can be used to control timing issues in software.
 
DllAccess es_status_codes DLLOutTrigPulse (int64_t pulseWidthInMicroseconds)
 Pulses trigger out(Reg CtrlA:D3) for all boards selected by setings parameter measurement_settings::board_sel. Can be used to control timing issues in software.
 
DllAccess es_status_codes DLLOpenShutter (uint32_t drvno)
 Open shutter for sensors with EC (exposure control) / sets IFC signal = high.
 
DllAccess es_status_codes DLLOpenShutter_multipleBoards ()
 Open shutter for sensors with EC (exposure control) / sets IFC signal = high for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLCloseShutter (uint32_t drvno)
 Sets the IFC bit of interface for sensors with shutter function. IFC=low.
 
DllAccess es_status_codes DLLCloseShutter_multipleBoards ()
 Sets the IFC bit of interface for sensors with shutter function for all boards set by settings parameter measurement_settings::board_sel. IFC=low.
 
DllAccess es_status_codes DLLsetBitS0_32 (uint32_t bitnumber, uint32_t address)
 Set bit to 1 in S0 register at memory address for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLresetBitS0_32 (uint32_t bitnumber, uint32_t address)
 Set bit to 0 in register at memory address for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLReadBitS0_32 (uint32_t drvno, uint32_t address, uint8_t bitnumber, uint8_t *isBitHigh)
 Read 1 bit of a 4 byte s0 register.
 
DllAccess es_status_codes DLLReadBitS0_32_multipleBoards (uint32_t address, uint8_t bitnumber, uint8_t *isBitHigh0, uint8_t *isBitHigh1, uint8_t *isBitHigh2, uint8_t *isBitHigh3, uint8_t *isBitHigh4)
 Read 1 bit of a 4 bytes s0 register for all boards.
 
DllAccess es_status_codes DLLReadBitS0_8 (uint32_t drvno, uint32_t address, uint8_t bitnumber, uint8_t *isBitHigh)
 Read 1 bit of 1 byte of a s0 register.
 
DllAccess es_status_codes DLLReadBitS0_8_multipleBoards (uint32_t address, uint8_t bitnumber, uint8_t *isBitHigh0, uint8_t *isBitHigh1, uint8_t *isBitHigh2, uint8_t *isBitHigh3, uint8_t *isBitHigh4)
 Read 1 bit of 1 byte of a s0 register for all boards.
 
DllAccess es_status_codes DLLSetTemp (uint8_t level)
 Set temperature level for cooled cameras for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLSetTORReg (uint32_t drvno, uint8_t tor)
 Set signal of output port of PCIe card.
 
DllAccess es_status_codes DLLSetTORReg_multipleBoards (uint8_t tor)
 Set signal of output port of PCIe card for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLDAC8568_setAllOutputs (uint32_t drvno, uint8_t location, uint8_t cameraPosition, uint32_t *output, uint8_t reorder_channels)
 Sets all outputs of the DAC8568 in camera 3030 or on PCIe board.
 
DllAccess es_status_codes DLLDAC8568_setAllOutputs_multipleBoards (uint8_t location, uint8_t cameraPosition, uint32_t *output0, uint32_t *output1, uint32_t *output2, uint32_t *output3, uint32_t *output4, uint8_t reorder_channels)
 Sets all outputs of the DAC8568 in camera 3030 or on PCIe board for all PCIe boards.
 
DllAccess void DLLFreeMemInfo (uint64_t *pmemory_all, uint64_t *pmemory_free)
 Get the free and installed memory info.
 
DllAccess es_status_codes DLLGetMeasureOn (uint32_t drvno, uint8_t *measureOn)
 Check if measure on bit is set.
 
DllAccess es_status_codes DLLGetMeasureOn_multipleBoards (uint8_t *measureOn0, uint8_t *measureOn1, uint8_t *measureOn2, uint8_t *measureOn3, uint8_t *measureOn4)
 Check if measure on bit is set for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLWaitForMeasureDone ()
 Returns when measure on bit is 0 in all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLWaitForBlockDone ()
 Returns when block on bit is 0 in all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLSetSTimer (uint32_t drvno, uint32_t stime)
 Sets time for scan timer.
 
DllAccess es_status_codes DLLSetBTimer (uint32_t drvno, uint32_t btime)
 Sets time for block timer.
 
DllAccess es_status_codes DLLGetXckLength (uint32_t drvno, uint32_t *xckLengthIn10ns)
 Get the high time duration of XCK from the S0 register S0Addr_XCKLEN.
 
DllAccess es_status_codes DLLGetXckPeriod (uint32_t drvno, uint32_t *xckPeriodIn10ns)
 Get pos edge to pos egde time of XCK time from the S0 register S0Addr_XCK_PERIOD.
 
DllAccess es_status_codes DLLGetBonLength (uint32_t drvno, uint32_t *bonLengthIn10ns)
 Get the high time duration of BON from the S0 register S0Addr_BONLEN.
 
DllAccess es_status_codes DLLGetBonPeriod (uint32_t drvno, uint32_t *bonPeriodIn10ns)
 Get the pos edge to pos edge time of BON from the S0 register S0Addr_BON_PERIOD.
 
DllAccess es_status_codes DLLGetXckLength_multipleBoards (uint32_t *xckLengthIn10ns0, uint32_t *xckLengthIn10ns1, uint32_t *xckLengthIn10ns2, uint32_t *xckLengthIn10ns3, uint32_t *xckLengthIn10ns4)
 Get the high time duration of XCK from the S0 register S0Addr_XCKLEN.
 
DllAccess es_status_codes DLLGetXckPeriod_multipleBoards (uint32_t *xckPeriodIn10ns0, uint32_t *xckPeriodIn10ns1, uint32_t *xckPeriodIn10ns2, uint32_t *xckPeriodIn10ns3, uint32_t *xckPeriodIn10ns4)
 Get pos edge to pos edge time of XCK time from the S0 register S0Addr_XCK_PERIOD.
 
DllAccess es_status_codes DLLGetBonLength_multipleBoards (uint32_t *bonLengthIn10ns0, uint32_t *bonLengthIn10ns1, uint32_t *bonLengthIn10ns2, uint32_t *bonLengthIn10ns3, uint32_t *bonLengthIn10ns4)
 Get the high time duration of BON from the S0 register S0Addr_BONLEN.
 
DllAccess es_status_codes DLLGetBonPeriod_multipleBoards (uint32_t *bonPeriodIn10ns0, uint32_t *bonPeriodIn10ns1, uint32_t *bonPeriodIn10ns2, uint32_t *bonPeriodIn10ns3, uint32_t *bonPeriodIn10ns4)
 Get the pos edge to pos edge time of BON from the S0 register S0Addr_BON_PERIOD.
 
DllAccess char * DLLConvertErrorCodeToMsg (es_status_codes status)
 Converts a es_status_codes to a human readable error message.
 
DllAccess es_status_codes DLLIOCtrl_setOutput (uint32_t drvno, uint32_t number, uint16_t width_in_5ns, uint16_t delay_in_5ns)
 Set paramters of one pulse output of IOCTRL.
 
DllAccess es_status_codes DLLIOCtrl_setT0 (uint32_t drvno, uint32_t period_in_10ns)
 Set period of IOCtrl pulse outputs base frequency T0.
 
DllAccess es_status_codes DLLIOCtrl_setT0_multipleBoards (uint32_t period_in_10ns)
 Set period of IOCtrl pulse outputs base frequency T0 for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLIOCtrl_setAllOutputs (uint32_t *width_in_5ns, uint32_t *delay_in_5ns)
 Set parameters of all pulses outputs of IOCTRL for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess void DLLGetCurrentScanNumber (uint32_t drvno, int64_t *sample, int64_t *block)
 Gives scan and block number of the last scan written to userBuffer.
 
DllAccess void DLLGetCurrentScanNumber_multipleBoards (int64_t *sample0, int64_t *block0, int64_t *sample1, int64_t *block1, int64_t *sample2, int64_t *block2, int64_t *sample3, int64_t *block3, int64_t *sample4, int64_t *block4)
 Gives scan and block number of the last scan written to userBuffer for all boards selected by settings paramter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLGetIsTdc (uint32_t drvno, uint8_t *isTdc)
 Read TDC flag in PCIEFLAGS register.
 
DllAccess es_status_codes DLLGetIsTdc_multipleBoards (uint8_t *isTdc0, uint8_t *isTdc1, uint8_t *isTdc2, uint8_t *isTdc3, uint8_t *isTdc4)
 Read TDC flag in PCIEFLAGS register of all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLGetIsDsc (uint32_t drvno, uint8_t *isDsc)
 Read DSC flag in PCIEFLAGS register.
 
DllAccess es_status_codes DLLGetIsDsc_multipleBoards (uint8_t *isDsc0, uint8_t *isDsc1, uint8_t *isDsc2, uint8_t *isDsc3, uint8_t *isDsc4)
 Read DSC flag in PCIEFLAGS register for all boards selected by settings parameter board sel.
 
DllAccess es_status_codes DLLResetDSC (uint32_t drvno, uint8_t DSCNumber)
 reset Delay Stage Counter
 
DllAccess es_status_codes DLLResetDSC_multipleBoards (uint8_t DSCNumber)
 reset Delay Stage Counter for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLSetDIRDSC (uint32_t drvno, uint8_t DSCNumber, uint8_t dir)
 set direction of Delay Stage Counter
 
DllAccess es_status_codes DLLSetDIRDSC_multipleBoards (uint8_t DSCNumber, uint8_t dir)
 set direction of Delay Stage Counter for all boards selected by settings parameter measurement_settings::board_sel.
 
DllAccess es_status_codes DLLGetDSC (uint32_t drvno, uint8_t DSCNumber, uint32_t *ADSC, uint32_t *LDSC)
 return all values of Delay Stage Counter
 
DllAccess es_status_codes DLLGetDSC_multipleBoards (uint8_t DSCNumber, uint32_t *ADSC0, uint32_t *LDSC0, uint32_t *ADSC1, uint32_t *LDSC1, uint32_t *ADSC2, uint32_t *LDSC2, uint32_t *ADSC3, uint32_t *LDSC3, uint32_t *ADSC4, uint32_t *LDSC4)
 return all values of Delay Stage Counter for all boards selected by settings parameter measurement_settings::board_sel
 
DllAccess es_status_codes DLLInitGPX (uint32_t delay)
 Initialize the TDC-GPX chip for all boards selected by settings parameter measurement_settings::board_sel. TDC: time delay counter option.
 
DllAccess void DLLSetContinuousMeasurement (uint8_t on)
 Control looping the measurement.
 
DllAccess es_status_codes DLLGetAllSpecialPixelInformation (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.
 
DllAccess es_status_codes DLLGetAllSpecialPixelInformation_multipleBoards (uint32_t sample, uint32_t block, uint16_t camera_pos, struct special_pixels *sp0, struct special_pixels *sp1, struct special_pixels *sp2, struct special_pixels *sp3, struct special_pixels *sp4)
 This function returns the all special pixel information of a specific scan.
 
DllAccess void DLLFillUserBufferWithDummyData ()
 This function inserts data to user buffer for developing purpose.
 
DllAccess es_status_codes DLLCalcTrms (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.
 
DllAccess es_status_codes DLLCalcTrms_multipleBoards (uint32_t firstSample, uint32_t lastSample, uint32_t TRMS_pixel, uint16_t CAMpos, double *mwf0, double *trms0, double *mwf1, double *trms1, double *mwf2, double *trms2, double *mwf3, double *trms3, double *mwf4, double *trms4)
 Calculate TRMS noise value of one pixel for all used boards.
 
DllAccess void DLLErrMsgBoxOn ()
 Switch on error message boxes of our software. Default is On.
 
DllAccess void DLLErrMsgBoxOff ()
 Disable error message boxes, if not needed.
 
DllAccess void DLLErrorMsg (char ErrMsg[20])
 Display error message. If ErrMsgBoxOn is set.
 
DllAccess es_status_codes DLLAbout ()
 Display information about registers and settings in pop up windows.
 
DllAccess void DLLStart2dViewer (uint32_t drvno, uint32_t block, uint16_t camera, uint16_t pixel, uint32_t nos)
 Start 2d viewer.
 
DllAccess void DLLShowNewBitmap (uint32_t drvno, uint32_t block, uint16_t camera, uint16_t pixel, uint32_t nos)
 Update the displayed bitmap.
 
DllAccess void DLLDeinit2dViewer ()
 Call when closing 2d viewer or at least before opening a new 2d viewer.
 
DllAccess void DLLSetGammaValue (uint16_t white, uint16_t black)
 Set gamma value.
 
DllAccess uint16_t DLLGetGammaWhite ()
 return gamma value white
 
DllAccess uint16_t DLLGetGammaBlack ()
 return gamma value black
 
DllAccess es_status_codes DLLSaveMeasurementDataToFile (const char *filename)
 Export the measurement data to a file.
 
DllAccess es_status_codes DLLImportMeasurementDataFromFile (const char *filename)
 TODO. missing documentation.
 
DllAccess es_status_codes DLLGetScanTriggerDetected (uint32_t drvno, uint8_t *detected)
 Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected.
 
DllAccess es_status_codes DLLGetBlockTriggerDetected (uint32_t drvno, uint8_t *detected)
 Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected.
 
DllAccess es_status_codes DLLResetScanTriggerDetected (uint32_t drvno)
 Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected to 0.
 
DllAccess es_status_codes DLLResetBlockTriggerDetected (uint32_t drvno)
 Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected to 0.
 
DllAccess es_status_codes DLLGetScanTriggerDetected_multipleBoards (uint8_t *detected0, uint8_t *detected1, uint8_t *detected2, uint8_t *detected3, uint8_t *detected4)
 Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected.
 
DllAccess es_status_codes DLLGetBlockTriggerDetected_multipleBoards (uint8_t *detected0, uint8_t *detected1, uint8_t *detected2, uint8_t *detected3, uint8_t *detected4)
 Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected.
 
DllAccess es_status_codes DLLResetScanTriggerDetected_multipleBoards ()
 Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected.
 
DllAccess es_status_codes DLLResetBlockTriggerDetected_multipleBoards ()
 Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected.
 
DllAccess es_status_codes DLLDAC8568_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.
 
DllAccess es_status_codes DLLCheckFifoValid (uint32_t drvno, uint8_t *valid)
 Checks content of FIFO.
 
DllAccess es_status_codes DLLCheckFifoOverflow (uint32_t drvno, uint8_t *overflow)
 Check ovl flag (overflow of FIFO).
 
DllAccess es_status_codes DLLCheckFifoEmpty (uint32_t drvno, uint8_t *empty)
 Check empty flag (FIFO empty).
 
DllAccess es_status_codes DLLCheckFifoFull (uint32_t drvno, uint8_t *full)
 Check full flag (FIFO full).
 
DllAccess void DLLSetMeasureStartHook (void(*hook)())
 Set a function which will be executed every time when a measurement starts.
 
DllAccess void DLLSetMeasureDoneHook (void(*hook)())
 Set a function which will be executed every time when a measurement ends.
 
DllAccess void DLLSetBlockStartHook (void(*hook)())
 Set a function which will be executed every time when a block starts.
 
DllAccess void DLLSetBlockDoneHook (void(*hook)())
 Set a function which will be executed every time when a block ends.
 
DllAccess void DLLSetAllBlocksDoneHook (void(*hook)())
 Set a function which will be executed every time when all blocks are done.
 
DllAccess es_status_codes DLLSetGeneralOutput (uint32_t drvno, uint8_t output, uint8_t state)
 Control the general outputs of the PCIe card addition board.
 
DllAccess es_status_codes DLLSetShutterStates (uint32_t drvno, uint16_t shutter_states)
 Sets all shutter states in one call.
 

Variables

int nProcessCount = 0
 Internal use only.
 
int nThreadCount = 0
 Internal use only.
 

Detailed Description

Library ESLSCDLL for operating Stresing cameras.

The library ESLSCDLL can be compiled on Windows into ESLSCDLL.dll and on Linux into libESLSCDLL.so.

Author
Gerhard Stresing, Bastian Brabec, Florian Hahn
Date
before 2016

Function Documentation

◆ DLLAbortMeasurement()

DllAccess es_status_codes DLLAbortMeasurement ( )

Sets abortMeasurementFlag to true.

Use this function if the measurement is running and you want to stop it.

Returns
es_status_codes

◆ DLLAbout()

DllAccess es_status_codes DLLAbout ( )

Display information about registers and settings in pop up windows.

Returns
es_status_codes

◆ DLLAboutDrv()

DllAccess es_status_codes DLLAboutDrv ( uint32_t drvno,
char ** stringPtr )

Return infos about the PCIe board.

  • win1 : version of driver
  • win2 : ID = 53xx
  • win3 : length of space0 BAR =0x3f
  • win4 : vendor ID = EBST
  • win5 : PCI board version (same as label on PCI board)
    Parameters
    [in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
    [out]stringPtrstring with driver information is given back here
    Returns
    es_status_codes

◆ DLLAboutGPX()

DllAccess es_status_codes DLLAboutGPX ( uint32_t drvno,
char ** stringPtr )

Reads registers 0 to 12 of TDC-GPX chip. Time delay counter option.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]stringPtr
Returns
es_status_codes

◆ DLLCalcMeasureTimeInSeconds()

DllAccess double DLLCalcMeasureTimeInSeconds ( uint32_t nos,
uint32_t nob,
double exposure_time_in_ms )

Calculate the theoretical time needed for one measurement.

nos * nob * exposure_time_in_ms / 1000

Parameters
[in]nosnumber of samples
[in]nobnumber of blocks
[out]exposure_time_in_msexposure time in ms
Returns
time in seconds

◆ DLLCalcRamUsageInMB()

DllAccess double DLLCalcRamUsageInMB ( uint32_t nos,
uint32_t nob )

Calculate needed RAM in MB for given nos and nob.

Parameters
[in]nosnumber of samples
[in]nobnumber of blocks
Returns
RAM in MB

◆ DLLCalcTrms()

DllAccess es_status_codes DLLCalcTrms ( 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.

Calculates RMS of TRMS_pixel in the range of samples from firstSample to lastSample. Only calculates RMS from one block.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]firstSamplestart sample to calculate RMS. 0...(nos-2). Typical value: 10, to skip overexposed first samples
[in]lastSamplelast sample to calculate RMS. firstSample+1...(nos-1).
[in]TRMS_pixelpixel for calculating noise (0...(PIXEL-1))
[in]CAMposindex for camcount (0...(CAMCNT-1))
[out]mwfpointer for mean value
[out]trmspointer for noise
Returns
es_status_codes

◆ DLLCalcTrms_multipleBoards()

DllAccess es_status_codes DLLCalcTrms_multipleBoards ( uint32_t firstSample,
uint32_t lastSample,
uint32_t TRMS_pixel,
uint16_t CAMpos,
double * mwf0,
double * trms0,
double * mwf1,
double * trms1,
double * mwf2,
double * trms2,
double * mwf3,
double * trms3,
double * mwf4,
double * trms4 )

Calculate TRMS noise value of one pixel for all used boards.

Calculates RMS of TRMS_pixel in the range of samples from firstSample to lastSample. Only calculates RMS from one block. Boards set by settings parameter measurement_settings::board_sel are used.

Parameters
[in]firstSamplestart sample to calculate RMS. 0...(nos-2). Typical value: 10, to skip overexposed first samples
[in]lastSamplelast sample to calculate RMS. firstSample+1...(nos-1).
[in]TRMS_pixelpixel for calculating noise (0...(PIXEL-1))
[in]CAMposindex for camcount (0...(CAMCNT-1))
[out]mwf0pointer for mean value for board 0
[out]trms0pointer for noise for board 0
[out]mwf1pointer for mean value for board 1
[out]trms1pointer for noise for board 1
[out]mwf2pointer for mean value for board 2
[out]trms2pointer for noise for board 2
[out]mwf3pointer for mean value for board 3
[out]trms3pointer for noise for board 3
[out]mwf4pointer for mean value for board 4
[out]trms4pointer for noise for board 4
Returns
es_status_codes

◆ DLLCheckFifoEmpty()

DllAccess es_status_codes DLLCheckFifoEmpty ( uint32_t drvno,
uint8_t * empty )

Check empty flag (FIFO empty).

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]emptyTODO: missing doc
Returns
es_status_codes

◆ DLLCheckFifoFull()

DllAccess es_status_codes DLLCheckFifoFull ( uint32_t drvno,
uint8_t * full )

Check full flag (FIFO full).

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]fullTODO missing doc
Returns
es_status_codes

◆ DLLCheckFifoOverflow()

DllAccess es_status_codes DLLCheckFifoOverflow ( uint32_t drvno,
uint8_t * overflow )

Check ovl flag (overflow of FIFO).

If occurred stays active until a call of FFRS.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]overflowIs true (not 0) if overflow occurred (linecounter>0).
Returns
es_status_codes

◆ DLLCheckFifoValid()

DllAccess es_status_codes DLLCheckFifoValid ( uint32_t drvno,
uint8_t * valid )

Checks content of FIFO.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]validIs true (not 0) if FIFO keeps >= 1 complete lines (linecounter>0).
Returns
es_status_codes

◆ DLLCloseShutter()

DllAccess es_status_codes DLLCloseShutter ( uint32_t drvno)

Sets the IFC bit of interface for sensors with shutter function. IFC=low.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLCloseShutter_multipleBoards()

DllAccess es_status_codes DLLCloseShutter_multipleBoards ( )

Sets the IFC bit of interface for sensors with shutter function for all boards set by settings parameter measurement_settings::board_sel. IFC=low.

Returns
es_status_codes

◆ DLLConvertErrorCodeToMsg()

DllAccess char * DLLConvertErrorCodeToMsg ( es_status_codes status)

Converts a es_status_codes to a human readable error message.

Parameters
[in]statuses_status_codes
Returns
char*

◆ DLLCopyAllData()

DllAccess es_status_codes DLLCopyAllData ( uint32_t drvno,
uint16_t * pdest )

Copy the data of the complete measurement to pdest.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]pdestPointer where the data will be written to. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos * camcnt * nob
Returns
es_status_codes

◆ DLLCopyAllData_multipleBoards()

DllAccess es_status_codes DLLCopyAllData_multipleBoards ( uint16_t * pdest0,
uint16_t * pdest1,
uint16_t * pdest2,
uint16_t * pdest3,
uint16_t * pdest4 )

Copies all pixel data to pdest for all used boards set in settings parameter measurement_settings::board_sel.

Parameters
[out]pdest0Address where data is written for board 0, should be a buffer with size: nos * nob * camcnt * pixel * sizeof( uint16_t )
[out]pdest1Address where data is written for board 1, should be a buffer with size: nos * nob * camcnt * pixel * sizeof( uint16_t )
[out]pdest2Address where data is written for board 2, should be a buffer with size: nos * nob * camcnt * pixel * sizeof( uint16_t )
[out]pdest3Address where data is written for board 3, should be a buffer with size: nos * nob * camcnt * pixel * sizeof( uint16_t )
[out]pdest4Address where data is written for board 4, should be a buffer with size: nos * nob * camcnt * pixel * sizeof( uint16_t )
Returns
es_status_codes

◆ DLLCopyDataArbitrary()

DllAccess es_status_codes DLLCopyDataArbitrary ( uint32_t drvno,
uint32_t sample,
uint32_t block,
uint16_t camera,
uint32_t pixel,
uint32_t length_in_pixel,
uint16_t * pdest )

Copy the data of a custom length to pdest.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number ( 0...(nos - 1) )
[in]blockblock number ( 0...(nob - 1) )
[in]cameracamera number ( 0...(CAMCNT - 1) )
[in]pixelposition in one scan (0...(PIXEL-1))
[in]length_in_pixelNumber of pixels to copy. When length_in_pixel exceeds the end of the data buffer the function returns es_parameter_out_of_range.
[out]pdestPointer where the data will be written to. Make sure that the size of the buffer is >= sizeof(uint16_t) * length_in_pixel
Returns
es_status_codes

◆ DLLCopyOneBlock()

DllAccess es_status_codes DLLCopyOneBlock ( uint32_t drvno,
uint16_t block,
uint16_t * pdest )

Copy the data of a single block to pdest.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]blockblock number ( 0...(nob - 1) )
[out]pdestPointer where the data will be written to. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos * camcnt
Returns
es_status_codes

◆ DLLCopyOneBlock_multipleBoards()

DllAccess es_status_codes DLLCopyOneBlock_multipleBoards ( uint16_t block,
uint16_t * pdest0,
uint16_t * pdest1,
uint16_t * pdest2,
uint16_t * pdest3,
uint16_t * pdest4 )

Copies one block of pixel data of all used boards selected by settings parameter measurement_settings::board_sel to pdest.

Parameters
[in]blockSelects which block to copy.
[out]pdest0address where data is written for board 0, should be a buffer with size: nos * camcnt * pixel * sizeof( uint16_t )
[out]pdest1address where data is written for board 1, should be a buffer with size: nos * camcnt * pixel * sizeof( uint16_t )
[out]pdest2address where data is written for board 2, should be a buffer with size: nos * camcnt * pixel * sizeof( uint16_t )
[out]pdest3address where data is written for board 3, should be a buffer with size: nos * camcnt * pixel * sizeof( uint16_t )
[out]pdest4address where data is written for board 4, should be a buffer with size: nos * camcnt * pixel * sizeof( uint16_t )
Returns
es_status_codes

◆ DLLCopyOneBlockOfOneCamera()

DllAccess es_status_codes DLLCopyOneBlockOfOneCamera ( uint32_t drvno,
uint32_t block,
uint16_t camera,
uint16_t * pdest )

Copy the data of one block of one camera to pdest.

If camera_settings::camcnt is 1, use CopyOneBlock instead. This function copies the data sample by sample because the data of one block of one camera is not stored in a contiguous memory block if camcnt is greater than 1.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]blockblock number ( 0...(nob - 1) )
[in]cameracamera number ( 0...(CAMCNT - 1) )
[out]pdestPointer where the data will be written to. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos
Returns
es_status_codes

◆ DLLCopyOneBlockOfOneCamera_multipleBoards()

DllAccess es_status_codes DLLCopyOneBlockOfOneCamera_multipleBoards ( uint32_t block,
uint16_t camera,
uint16_t * pdest0,
uint16_t * pdest1,
uint16_t * pdest2,
uint16_t * pdest3,
uint16_t * pdest4 )

Copy the data of one block of one camera of all used boards selected by settings parameter measurement_settings::board_sel to pdest.

If camera_settings::camcnt is 1, use CopyOneBlock instead. This function copies the data sample by sample because the data of one block of one camera is not stored in a contiguous memory block if camcnt is greater than 1.

Parameters
[in]blockblock number ( 0...(nob - 1) )
[in]cameracamera number ( 0...(CAMCNT - 1) )
[out]pdest0Pointer where the data will be written to for board 0. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos
[out]pdest1Pointer where the data will be written to for board 1. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos
[out]pdest2Pointer where the data will be written to for board 2. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos
[out]pdest3Pointer where the data will be written to for board 3. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos
[out]pdest4Pointer where the data will be written to for board 4. Make sure that the size of the buffer is >= sizeof(uint16_t) * pixel * nos
Returns
es_status_codes

◆ DLLCopyOneSample()

DllAccess es_status_codes DLLCopyOneSample ( uint32_t drvno,
uint32_t sample,
uint32_t block,
uint16_t camera,
uint16_t * pdest )

Copy the data of a single sample to pdest.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number ( 0...(nos - 1) )
[in]blockblock number ( 0...(nob - 1) )
[in]cameracamera number ( 0...(CAMCNT - 1) )
[out]pdestPointer where the data will be written to. Make sure that the size is >= sizeof(uint16_t) * pixel
Returns
es_status_codes

◆ DLLCopyOneSample_multipleBoards()

DllAccess es_status_codes DLLCopyOneSample_multipleBoards ( uint32_t sample,
uint32_t block,
uint16_t camera,
uint16_t * pdest0,
uint16_t * pdest1,
uint16_t * pdest2,
uint16_t * pdest3,
uint16_t * pdest4 )

Get data of a single measurement for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]samplesample number ( 0...(nos - 1) )
[in]blockblock number ( 0...(nob - 1) )
[in]cameracamera number ( 0...(CAMCNT - 1) )
[out]pdest0Pointer where frame data for board0 will be written. Make sure that the size is >= sizeof(uint16_t) * pixel
[out]pdest1Pointer where frame data for board1 will be written. Make sure that the size is >= sizeof(uint16_t) * pixel
[out]pdest2Pointer where frame data for board2 will be written. Make sure that the size is >= sizeof(uint16_t) * pixel
[out]pdest3Pointer where frame data for board3 will be written. Make sure that the size is >= sizeof(uint16_t) * pixel
[out]pdest4Pointer where frame data for board4 will be written. Make sure that the size is >= sizeof(uint16_t) * pixel
Returns
es_status_codes

◆ DLLDAC8568_setAllOutputs()

DllAccess es_status_codes DLLDAC8568_setAllOutputs ( uint32_t drvno,
uint8_t location,
uint8_t cameraPosition,
uint32_t * output,
uint8_t reorder_channels )

Sets all outputs of the DAC8568 in camera 3030 or on PCIe board.

Use this function to set the outputs, because it is resorting the channel numeration correctly.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]locationSwitch for the different locations of DAC85689. See enum DAC8568_location_t in enum_settings.h for details.
[in]cameraPositionThis is describing the camera position when there are multiple cameras in line. Possible values: 0....8. This parameter is only used when location == DAC8568_camera.
[in]outputall output values that will be converted to analog voltage (0 ... 0xFFFF)
[in]reorder_channelsused to reorder DAC channels for high speed camera
Returns
es_status_codes

◆ DLLDAC8568_setAllOutputs_multipleBoards()

DllAccess es_status_codes DLLDAC8568_setAllOutputs_multipleBoards ( uint8_t location,
uint8_t cameraPosition,
uint32_t * output0,
uint32_t * output1,
uint32_t * output2,
uint32_t * output3,
uint32_t * output4,
uint8_t reorder_channels )

Sets all outputs of the DAC8568 in camera 3030 or on PCIe board for all PCIe boards.

Use this function to set the outputs, because it is resorting the channel numeration correctly.

Parameters
[in]locationSwitch for the different locations of DAC85689. See enum DAC8568_location_t in enum_settings.h for details.
[in]cameraPositionThis is describing the camera position when there are mumltiple cameras in line. Possible values: 0....8. This parameter is only used when location == DAC8568_camera.
[in]output0all output values as array for board 0 that will be converted to analog voltage (0 ... 0xFFFF)
[in]output1all output values as array for board 1 that will be converted to analog voltage (0 ... 0xFFFF)
[in]output2all output values as array for board 2 that will be converted to analog voltage (0 ... 0xFFFF)
[in]output3all output values as array for board 3 that will be converted to analog voltage (0 ... 0xFFFF)
[in]output4all output values as array for board 4 that will be converted to analog voltage (0 ... 0xFFFF)
[in]reorder_channelsused to reorder DAC channels for high speed camera
Returns
es_status_codes

◆ DLLDAC8568_setOutput()

DllAccess es_status_codes DLLDAC8568_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.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]locationSwitch for the different locations of DAC85689. See enum DAC8568_location_t in enum_settings.h for details.
[in]cameraPositionThis is describing the camera position when there are multiple cameras in line. Possible values: 0....8. This parameter is only used when location == DAC8568_camera.
[in]channelselect one of eight output channel (0 ... 7)
[in]outputoutput value that will be converted to analog voltage (0 ... 0xFFFF)
Returns
es_status_codes

◆ DLLDeinit2dViewer()

DllAccess void DLLDeinit2dViewer ( )

Call when closing 2d viewer or at least before opening a new 2d viewer.

◆ DLLDumpCameraSettings()

DllAccess es_status_codes DLLDumpCameraSettings ( uint32_t drvno,
char ** stringPtr )

Dump all camera settings to a string.

Parameters
[in]drvnoPCIe board identifier
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLDumpDmaRegisters()

DllAccess es_status_codes DLLDumpDmaRegisters ( uint32_t drvno,
char ** stringPtr )

Read all DMA registers and write them to a string in hex.

Parameters
[in]drvnoPCIe board identifier
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLDumpHumanReadableS0Registers()

DllAccess es_status_codes DLLDumpHumanReadableS0Registers ( uint32_t drvno,
char ** stringPtr )

Read all S0 registers and write them to a string in a human readable format.

Parameters
[in]drvnoPCIe board identifier
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLDumpMeasurementSettings()

DllAccess es_status_codes DLLDumpMeasurementSettings ( char ** stringPtr)

Dump all measurement settings to a string.

Parameters
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLDumpPciRegisters()

DllAccess es_status_codes DLLDumpPciRegisters ( uint32_t drvno,
char ** stringPtr )

Read all PCIe registers and write them to a string.

Parameters
[in]drvnoPCIe board identifier
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLDumpS0Registers()

DllAccess es_status_codes DLLDumpS0Registers ( uint32_t drvno,
char ** stringPtr )

Read all S0 registers and write them to a string in hex.

Parameters
[in]drvnoPCIe board identifier
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLDumpTlpRegisters()

DllAccess es_status_codes DLLDumpTlpRegisters ( uint32_t drvno,
char ** stringPtr )

Read all TLP registers and write them to a string.

Parameters
[in]drvnoPCIe board identifier
[out]stringPtrPointer to a string buffer. The buffer will be allocated by this function. The caller is responsible to free the buffer.
Returns
es_status_codes

◆ DLLErrMsgBoxOff()

DllAccess void DLLErrMsgBoxOff ( )

Disable error message boxes, if not needed.

◆ DLLErrMsgBoxOn()

DllAccess void DLLErrMsgBoxOn ( )

Switch on error message boxes of our software. Default is On.

◆ DLLErrorMsg()

DllAccess void DLLErrorMsg ( char ErrMsg[20])

Display error message. If ErrMsgBoxOn is set.

Parameters
[in]ErrMsgMessage. Buffer size: 100.

◆ DLLExitDriver()

DllAccess es_status_codes DLLExitDriver ( )

Exit driver. Call this before exiting software for cleanup.

Returns
es_status_codes

◆ DLLFillUserBufferWithDummyData()

DllAccess void DLLFillUserBufferWithDummyData ( )

This function inserts data to user buffer for developing purpose.

◆ DLLFindCam()

DllAccess es_status_codes DLLFindCam ( uint32_t drvno)

Test if SFP module is there and fiber is linked up.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLFindCam_multipleBoards()

DllAccess es_status_codes DLLFindCam_multipleBoards ( uint8_t * cameraFound0,
uint8_t * cameraFound1,
uint8_t * cameraFound2,
uint8_t * cameraFound3,
uint8_t * cameraFound4 )

Test if SFP module is there and fiber is linked up.

Parameters
[out]cameraFound0true when camera is found on board 0
[out]cameraFound1true when camera is found on board 1
[out]cameraFound2true when camera is found on board 2
[out]cameraFound3true when camera is found on board 3
[out]cameraFound4true when camera is found on board 4
Returns
es_status_codes

◆ DLLFreeMemInfo()

DllAccess void DLLFreeMemInfo ( uint64_t * pmemory_all,
uint64_t * pmemory_free )

Get the free and installed memory info.

Parameters
[out]pmemory_allhow much is installed
[out]pmemory_freehow much is free

◆ DLLGetAllDataPointer()

DllAccess es_status_codes DLLGetAllDataPointer ( uint32_t drvno,
uint16_t ** pdest,
size_t * bytes_to_end_of_buffer )

Returns the address of the data buffer.

It is only safe to read as much data until the end of the buffer is reached. That is determined by bytes_to_end_of_buffer. For this function bytes_to_end_of_buffer equals the size of the complete buffer (= nos * nob * pixel * camcnt * 2). The address you get is valid until the next call of InitMeasurement. The data behind the address changes every measurement cycle when continuous mode is on or after each call of StartMeasurement.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]pdestPointer to get the pointer of the data buffer. When NULL, this functions returns es_invalid_pointer.
[out]bytes_to_end_of_bufferPointer to get the number of bytes to the end of the buffer. This is the size in bytes of the whole measurement data memory for one board. When NULL, this parameter is ignored.
Returns
es_status_codes

◆ DLLGetAllSpecialPixelInformation()

DllAccess es_status_codes DLLGetAllSpecialPixelInformation ( 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.

The information impact signal 2 is given in the special pixels pixel_impact_signal_2_low and pixel_impact_signal_2_high. Impact signal 2 is either TDC 2 or DSC 2, depending on the PCIe daughter board.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]spstruct special_pixels Pointer to struct special_pixel, where all special pixel information will be written.
Returns
es_status_codes

◆ DLLGetAllSpecialPixelInformation_multipleBoards()

DllAccess es_status_codes DLLGetAllSpecialPixelInformation_multipleBoards ( uint32_t sample,
uint32_t block,
uint16_t camera_pos,
struct special_pixels * sp0,
struct special_pixels * sp1,
struct special_pixels * sp2,
struct special_pixels * sp3,
struct special_pixels * sp4 )

This function returns the all special pixel information of a specific scan.

The information impact signal 2 is given in the special pixels pixel_impact_signal_2_low and pixel_impact_signal_2_high. Impact signal 2 is either TDC 2 or DSC 2, depending on the PCIe daughter board.

Parameters
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]sp0struct special_pixels for board 0. Pointer to struct special_pixel, where all special pixel information will be written.
[out]sp1struct special_pixels for board 1. Pointer to struct special_pixel, where all special pixel information will be written.
[out]sp2struct special_pixels for board 2. Pointer to struct special_pixel, where all special pixel information will be written.
[out]sp3struct special_pixels for board 3. Pointer to struct special_pixel, where all special pixel information will be written.
[out]sp4struct special_pixels for board 4. Pointer to struct special_pixel, where all special pixel information will be written.
Returns
es_status_codes

◆ DLLGetBlockIndex()

DllAccess es_status_codes DLLGetBlockIndex ( 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.

The information block index is given in the special pixels pixel_block_index_low and pixel_block_index_high_s1_s2.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]blockIndexPointer to a uint32_t, where the information block index will be written. Block index is a 30 bit counter, so the highest two bits are not used.
Returns
es_status_codes

◆ DLLGetBlockOn()

DllAccess es_status_codes DLLGetBlockOn ( uint32_t drvno,
uint8_t * blockOn )

Get the block on bit from the PCIe flags register.

Since the block on bit position was change in 222.14 this function looks at a different bit depending on the firmware version.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]blockOnPointer to a bool, where the block on bit will be written.
Returns
es_status_codes

◆ DLLGetBlockOn_multipleBoards()

DllAccess es_status_codes DLLGetBlockOn_multipleBoards ( uint8_t * blockOn0,
uint8_t * blockOn1,
uint8_t * blockOn2,
uint8_t * blockOn3,
uint8_t * blockOn4 )

Get the block on bit from the PCIe flags register.

Since the block on bit position was change in 222.14 this function looks at a different bit depending on the firmware version.

Parameters
[out]blockOn0Pointer to a bool, where the block on bit of board 0 will be written.
[out]blockOn1Pointer to a bool, where the block on bit of board 1 will be written.
[out]blockOn2Pointer to a bool, where the block on bit of board 2 will be written.
[out]blockOn3Pointer to a bool, where the block on bit of board 3 will be written.
[out]blockOn4Pointer to a bool, where the block on bit of board 4 will be written.
Returns
es_status_codes

◆ DLLGetBlockTriggerDetected()

DllAccess es_status_codes DLLGetBlockTriggerDetected ( uint32_t drvno,
uint8_t * detected )

Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]detectedPointer to a bool, where the block trigger detected bit will be written.
Returns
es_status_codes

◆ DLLGetBlockTriggerDetected_multipleBoards()

DllAccess es_status_codes DLLGetBlockTriggerDetected_multipleBoards ( uint8_t * detected0,
uint8_t * detected1,
uint8_t * detected2,
uint8_t * detected3,
uint8_t * detected4 )

Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected.

Parameters
[out]detected0Pointer to a bool, where the block trigger detected bit of board 0 will be written.
[out]detected1Pointer to a bool, where the block trigger detected bit of board 1 will be written.
[out]detected2Pointer to a bool, where the block trigger detected bit of board 2 will be written.
[out]detected3Pointer to a bool, where the block trigger detected bit of board 3 will be written.
[out]detected4Pointer to a bool, where the block trigger detected bit of board 4 will be written.
Returns
es_status_codes

◆ DLLGetBonLength()

DllAccess es_status_codes DLLGetBonLength ( uint32_t drvno,
uint32_t * bonLengthIn10ns )

Get the high time duration of BON from the S0 register S0Addr_BONLEN.

The signal is measured once per measurement. The fist valid value can be read after the first completed BON.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]bonLengthIn10nspointer to uint32 where the BON length is returned
  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
Returns
es_status_codes

◆ DLLGetBonLength_multipleBoards()

DllAccess es_status_codes DLLGetBonLength_multipleBoards ( uint32_t * bonLengthIn10ns0,
uint32_t * bonLengthIn10ns1,
uint32_t * bonLengthIn10ns2,
uint32_t * bonLengthIn10ns3,
uint32_t * bonLengthIn10ns4 )

Get the high time duration of BON from the S0 register S0Addr_BONLEN.

The signal is measured once per measurement. The fist valid value can be read after the first completed BON. The value range is:

  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
    Parameters
    [out]bonLengthIn10ns0pointer to uint32 where the BON length of board0 is returned
    [out]bonLengthIn10ns1pointer to uint32 where the BON length of board1 is returned
    [out]bonLengthIn10ns2pointer to uint32 where the BON length of board2 is returned
    [out]bonLengthIn10ns3pointer to uint32 where the BON length of board3 is returned
    [out]bonLengthIn10ns4pointer to uint32 where the BON length of board4 is returned
    Returns
    es_status_codes

◆ DLLGetBonPeriod()

DllAccess es_status_codes DLLGetBonPeriod ( uint32_t drvno,
uint32_t * bonPeriodIn10ns )

Get the pos edge to pos edge time of BON from the S0 register S0Addr_BON_PERIOD.

The signal is measured once per measurement. The fist valid value can be read after the start of the second BON.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]bonPeriodIn10nspointer to uint32 where the BON period is returned
  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
Returns
es_status_codes

◆ DLLGetBonPeriod_multipleBoards()

DllAccess es_status_codes DLLGetBonPeriod_multipleBoards ( uint32_t * bonPeriodIn10ns0,
uint32_t * bonPeriodIn10ns1,
uint32_t * bonPeriodIn10ns2,
uint32_t * bonPeriodIn10ns3,
uint32_t * bonPeriodIn10ns4 )

Get the pos edge to pos edge time of BON from the S0 register S0Addr_BON_PERIOD.

The signal is measured once per measurement. The fist valid value can be read after the start of the second BON. The value range is:

  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
    Parameters
    [out]bonPeriodIn10ns0pointer to uint32 where the BON period of board0 is returned
    [out]bonPeriodIn10ns1pointer to uint32 where the BON period of board1 is returned
    [out]bonPeriodIn10ns2pointer to uint32 where the BON period of board2 is returned
    [out]bonPeriodIn10ns3pointer to uint32 where the BON period of board3 is returned
    [out]bonPeriodIn10ns4pointer to uint32 where the BON period of board4 is returned
    Returns
    es_status_codes

◆ DLLGetCameraStatusOverTemp()

DllAccess es_status_codes DLLGetCameraStatusOverTemp ( uint32_t drvno,
uint32_t sample,
uint32_t block,
uint16_t camera_pos,
uint8_t * overTemp )

This function returns the bit overTemp of a specific scan.

The information over temperature is given in the special pixel camera status (pixel_camera_status) in bit pixel_camera_status_bit_over_temp.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]overTempPointer to a bool, where the information overTemp will be written. true - over temperature detected, false - no over temperature detected
Returns
es_status_codes

◆ DLLGetCameraStatusOverTemp_multipleBoards()

DllAccess es_status_codes DLLGetCameraStatusOverTemp_multipleBoards ( uint32_t sample,
uint32_t block,
uint16_t camera_pos,
uint8_t * overTemp1,
uint8_t * overTemp2,
uint8_t * overTemp3,
uint8_t * overTemp4,
uint8_t * overTemp5 )

This function returns the bit overTemp of a specific scan.

The information over temperature is given in the special pixel camera status (pixel_camera_status) in bit pixel_camera_status_bit_over_temp.

Parameters
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]overTemp1board 1: Pointer to a bool, where the information overTemp will be written. true - over temperature detected, false - no over temperature detected
[out]overTemp2board 2: Pointer to a bool, where the information overTemp will be written. true - over temperature detected, false - no over temperature detected
[out]overTemp3board 3: Pointer to a bool, where the information overTemp will be written. true - over temperature detected, false - no over temperature detected
[out]overTemp4board 4: Pointer to a bool, where the information overTemp will be written. true - over temperature detected, false - no over temperature detected
[out]overTemp5board 5: Pointer to a bool, where the information overTemp will be written. true - over temperature detected, false - no over temperature detected
Returns
es_status_codes

◆ DLLGetCameraStatusTempGood()

DllAccess es_status_codes DLLGetCameraStatusTempGood ( uint32_t drvno,
uint32_t sample,
uint32_t block,
uint16_t camera_pos,
uint8_t * tempGood )

This function returns the bit tempGood of a specific scan.

The information temperature good is given in the special pixel camera status (pixel_camera_status) in bit pixel_camera_status_bit_temp_good. This bit is used only in cooled cameras.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]tempGoodPointer to a bool, where the information tempGood will be written. true - target temperature reached, false - target temperature not reached
Returns
es_status_codes

◆ DLLGetCameraStatusTempGood_multipleBoards()

DllAccess es_status_codes DLLGetCameraStatusTempGood_multipleBoards ( uint32_t sample,
uint32_t block,
uint16_t camera_pos,
uint8_t * tempGood1,
uint8_t * tempGood2,
uint8_t * tempGood3,
uint8_t * tempGood4,
uint8_t * tempGood5 )

This function returns the bit tempGood of a specific scan.

The information temperature good is given in the special pixel camera status (pixel_camera_status) in bit pixel_camera_status_bit_temp_good. This bit is used only in cooled cameras.

Parameters
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]tempGood1board 1: Pointer to a bool, where the information tempGood will be written. true - target temperature reached, false - target temperature not reached
[out]tempGood2board 2: Pointer to a bool, where the information tempGood will be written. true - target temperature reached, false - target temperature not reached
[out]tempGood3board 3: Pointer to a bool, where the information tempGood will be written. true - target temperature reached, false - target temperature not reached
[out]tempGood4board 4: Pointer to a bool, where the information tempGood will be written. true - target temperature reached, false - target temperature not reached
[out]tempGood5board 5: Pointer to a bool, where the information tempGood will be written. true - target temperature reached, false - target temperature not reached
Returns
es_status_codes

◆ DLLGetCurrentScanNumber()

DllAccess void DLLGetCurrentScanNumber ( uint32_t drvno,
int64_t * sample,
int64_t * block )

Gives scan and block number of the last scan written to userBuffer.

When settings parameter camera_settings::use_software_polling is true this function converts scanCounterTotal to scan and block. This is necessary, because scanCounterTotal is just counting each scan not regarding camcnt and blocks. When camera_settings::use_software_polling is false the scan and block number of the last interrupt is given.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]sampleScan number of the last scan in userBuffer. -1 when no scan has been written yet, otherwise 0...(nos-1)
[out]blockBlock number of the last scan in userBuffer. -1 when no scans has been written yet, otherwise 0...(nob-1)

◆ DLLGetCurrentScanNumber_multipleBoards()

DllAccess void DLLGetCurrentScanNumber_multipleBoards ( int64_t * sample0,
int64_t * block0,
int64_t * sample1,
int64_t * block1,
int64_t * sample2,
int64_t * block2,
int64_t * sample3,
int64_t * block3,
int64_t * sample4,
int64_t * block4 )

Gives scan and block number of the last scan written to userBuffer for all boards selected by settings paramter measurement_settings::board_sel.

When settings parameter USE_SOFTWARE_POLLING is true this function converts scanCounterTotal to scan and block. This is necessary, because scanCounterTotal is just counting each scan not regarding camcnt and blocks. When USE_SOFTWARE_POLLING is false the scan and block number of the last interrupt is given.

Parameters
[out]sample0Scan number of the last scan in userBuffer of board 0. -1 when no scan has been written yet, otherwise 0...(nos-1)
[out]sample1Scan number of the last scan in userBuffer of board 1. -1 when no scan has been written yet, otherwise 0...(nos-1)
[out]sample2Scan number of the last scan in userBuffer of board 2. -1 when no scan has been written yet, otherwise 0...(nos-1)
[out]sample3Scan number of the last scan in userBuffer of board 3. -1 when no scan has been written yet, otherwise 0...(nos-1)
[out]sample4Scan number of the last scan in userBuffer of board 4. -1 when no scan has been written yet, otherwise 0...(nos-1)
[out]block0Block number of the last scan in userBuffer of board 0. -1 when no scans has been written yet, otherwise 0...(nob-1)
[out]block1Block number of the last scan in userBuffer of board 1. -1 when no scans has been written yet, otherwise 0...(nob-1)
[out]block2Block number of the last scan in userBuffer of board 2. -1 when no scans has been written yet, otherwise 0...(nob-1)
[out]block3Block number of the last scan in userBuffer of board 3. -1 when no scans has been written yet, otherwise 0...(nob-1)
[out]block4Block number of the last scan in userBuffer of board 4. -1 when no scans has been written yet, otherwise 0...(nob-1)

◆ DLLGetDSC()

DllAccess es_status_codes DLLGetDSC ( uint32_t drvno,
uint8_t DSCNumber,
uint32_t * ADSC,
uint32_t * LDSC )

return all values of Delay Stage Counter

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]DSCNumber1: DSC 1; 2: DSC 2
[out]ADSCcurrent DSC
[out]LDSClast DSC
Returns
es_status_codes

◆ DLLGetDSC_multipleBoards()

DllAccess es_status_codes DLLGetDSC_multipleBoards ( uint8_t DSCNumber,
uint32_t * ADSC0,
uint32_t * LDSC0,
uint32_t * ADSC1,
uint32_t * LDSC1,
uint32_t * ADSC2,
uint32_t * LDSC2,
uint32_t * ADSC3,
uint32_t * LDSC3,
uint32_t * ADSC4,
uint32_t * LDSC4 )

return all values of Delay Stage Counter for all boards selected by settings parameter measurement_settings::board_sel

Parameters
[in]DSCNumber1: DSC 1; 2: DSC 2
[out]ADSC0current DSC of board 0
[out]ADSC1current DSC of board 1
[out]ADSC2current DSC of board 2
[out]ADSC3current DSC of board 3
[out]ADSC4current DSC of board 4
[out]LDSC0last DSC of board 0
[out]LDSC1last DSC of board 1
[out]LDSC2last DSC of board 2
[out]LDSC3last DSC of board 3
[out]LDSC4last DSC of board 4
Returns
es_status_codes

◆ DLLGetGammaBlack()

DllAccess uint16_t DLLGetGammaBlack ( )

return gamma value black

◆ DLLGetGammaWhite()

DllAccess uint16_t DLLGetGammaWhite ( )

return gamma value white

◆ DLLGetImpactSignal1()

DllAccess es_status_codes DLLGetImpactSignal1 ( 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.

The information impact signal 1 is given in the special pixels pixel_impact_signal_1_low and pixel_impact_signal_1_high. Impact signal 1 is either TDC 1 or DSC 1, depending on the PCIe daughter board.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]impactSignalPointer to a uint32_t, where the information impact signal will be written.
Returns
es_status_codes

◆ DLLGetImpactSignal2()

DllAccess es_status_codes DLLGetImpactSignal2 ( 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.

The information impact signal 2 is given in the special pixels pixel_impact_signal_2_low and pixel_impact_signal_2_high. Impact signal 2 is either TDC 2 or DSC 2, depending on the PCIe daughter board.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]impactSignalPointer to a uint32_t, where the information impact signal will be written.
Returns
es_status_codes

◆ DLLGetIsDsc()

DllAccess es_status_codes DLLGetIsDsc ( uint32_t drvno,
uint8_t * isDsc )

Read DSC flag in PCIEFLAGS register.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]isDscDSC flag is written to this bool*. TRUE: DSC board detected, FALSE: no DSC board detected
Returns
es_status_codes

◆ DLLGetIsDsc_multipleBoards()

DllAccess es_status_codes DLLGetIsDsc_multipleBoards ( uint8_t * isDsc0,
uint8_t * isDsc1,
uint8_t * isDsc2,
uint8_t * isDsc3,
uint8_t * isDsc4 )

Read DSC flag in PCIEFLAGS register for all boards selected by settings parameter board sel.

Parameters
[out]isDsc0DSC flag of board 0. 1: DSC board detected, 0: no DSC board detected
[out]isDsc1DSC flag of board 1. 1: DSC board detected, 0: no DSC board detected
[out]isDsc2DSC flag of board 2. 1: DSC board detected, 0: no DSC board detected
[out]isDsc3DSC flag of board 3. 1: DSC board detected, 0: no DSC board detected
[out]isDsc4DSC flag of board 4. 1: DSC board detected, 0: no DSC board detected
Returns
es_status_codes

◆ DLLGetIsRunning()

DllAccess uint8_t DLLGetIsRunning ( )

Get the variable isRunning.

isRunning is 1 when a measurement is running, 0 otherwise.

Returns
uint8_t isRunning

◆ DLLGetIsTdc()

DllAccess es_status_codes DLLGetIsTdc ( uint32_t drvno,
uint8_t * isTdc )

Read TDC flag in PCIEFLAGS register.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]isTdcTDC flag is written to this bool*. TRUE: TDC board detected, FALSE: no TDC board detected
Returns
es_status_codes

◆ DLLGetIsTdc_multipleBoards()

DllAccess es_status_codes DLLGetIsTdc_multipleBoards ( uint8_t * isTdc0,
uint8_t * isTdc1,
uint8_t * isTdc2,
uint8_t * isTdc3,
uint8_t * isTdc4 )

Read TDC flag in PCIEFLAGS register of all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[out]isTdc0TDC flag of board 0. 1: TDC board detected, 0: no TDC board detected
[out]isTdc1TDC flag of board 1. 1: TDC board detected, 0: no TDC board detected
[out]isTdc2TDC flag of board 2. 1: TDC board detected, 0: no TDC board detected
[out]isTdc3TDC flag of board 3. 1: TDC board detected, 0: no TDC board detected
[out]isTdc4TDC flag of board 4. 1: TDC board detected, 0: no TDC board detected
Returns
es_status_codes

◆ DLLGetMeasureOn()

DllAccess es_status_codes DLLGetMeasureOn ( uint32_t drvno,
uint8_t * measureOn )

Check if measure on bit is set.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]measureOnTrue when measureon bit is set.
Returns
es_status_codes

◆ DLLGetMeasureOn_multipleBoards()

DllAccess es_status_codes DLLGetMeasureOn_multipleBoards ( uint8_t * measureOn0,
uint8_t * measureOn1,
uint8_t * measureOn2,
uint8_t * measureOn3,
uint8_t * measureOn4 )

Check if measure on bit is set for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[out]measureOn0True when measureon bit is set in board 0.
[out]measureOn1True when measureon bit is set in board 1.
[out]measureOn2True when measureon bit is set in board 2.
[out]measureOn3True when measureon bit is set in board 3.
[out]measureOn4True when measureon bit is set in board 4.
Returns
es_status_codes

◆ DLLGetOneBlockPointer()

DllAccess es_status_codes DLLGetOneBlockPointer ( uint32_t drvno,
uint32_t block,
uint16_t ** pdest,
size_t * bytes_to_end_of_buffer )

Returns the address of a specific block.

It is only safe to read as much data until the end of the buffer is reached. That is determined by bytes_to_end_of_buffer. For this function bytes_to_end_of_buffer is at least the size of one block (= nos * pixel * camcnt * 2). The address you get is valid until the next call of InitMeasurement. The data behind the address changes every measurement cycle when continuous mode is on or after each call of StartMeasurement.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]blockposition in blocks (0...(nob-1))
[out]pdestPointer to get the pointer of the specific pixel. When NULL, this functions returns es_invalid_pointer.
[out]bytes_to_end_of_bufferPointer to get the number of bytes to the end of the buffer. This is the size in bytes of the buffer from the position you are asking for and the end of the buffer. When NULL, this parameter is ignored.
Returns
es_status_codes

◆ DLLGetOneSamplePointer()

DllAccess es_status_codes DLLGetOneSamplePointer ( 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.

It is only safe to read as much data until the end of the buffer is reached. That is determined by bytes_to_end_of_buffer. For this fuction bytes_to_end_of_buffer is a least the size of scan (= pixel * 2). The address you get is valid until the next call of InitMeasurement. The data behind the address changes every measurement cycle when continuous mode is on or after each call of StartMeasurement.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]sampleposition in samples (0...(nos-1))
[in]blockposition in blocks (0...(nob-1))
[in]cameraposition in camera count (0...(CAMCNT-1))
[out]pdestPointer to get the pointer of the specific pixel. When NULL, this functions returns es_invalid_pointer.
[out]bytes_to_end_of_bufferPointer to get the number of bytes to the end of the buffer. This is the size in bytes of the buffer from the position you are asking for and the end of the buffer. When NULL, this parameter is ignored.
Returns
es_status_codes

◆ DLLGetPixelPointer()

DllAccess es_status_codes DLLGetPixelPointer ( 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.

It is only safe to read as much data until the end of the buffer is reached. That is determined by bytes_to_end_of_buffer. It is always safe to read 2 bytes. The address you get is valid until the next call of InitMeasurement. The data behind the address changes every measurement cycle when continuous mode is on or after each call of StartMeasurement.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]pixelposition in one scan (0...(PIXEL-1))
[in]sampleposition in samples (0...(nos-1))
[in]blockposition in blocks (0...(nob-1))
[in]cameraposition in camera count (0...(CAMCNT-1))
[out]pdestPointer to get the pointer of the specific pixel. When NULL, this functions returns es_invalid_pointer.
[out]bytes_to_end_of_bufferPointer to get the number of bytes to the end of the buffer. This is the size in bytes of the buffer from the position you are asking for and the end of the buffer. When NULL, this parameter is ignored.
Returns
es_status_codes

◆ DLLGetProcessCount()

DllAccess int DLLGetProcessCount ( )

Function for multithreading.

◆ DLLGetS1State()

DllAccess es_status_codes DLLGetS1State ( uint32_t drvno,
uint32_t sample,
uint32_t block,
uint16_t camera_pos,
uint8_t * state )

This function returns the bit S1 state of a specific scan.

The information S1 is given in the special pixel pixel_block_index_high_s1_s2 in bit pixel_block_index_high_s1_s2_bit_s1.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]statePointer to a bool, where the information S1 state will be written. true - S1 is high, false - S1 is low
Returns
es_status_codes

◆ DLLGetS2State()

DllAccess es_status_codes DLLGetS2State ( uint32_t drvno,
uint32_t sample,
uint32_t block,
uint16_t camera_pos,
uint8_t * state )

This function returns the bit S2 state of a specific scan.

The information S2 is given in the special pixel pixel_block_index_high_s1_s2 in bit pixel_block_index_high_s1_s2_bit_s2.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]statePointer to a bool, where the information S2 state will be written. true - S2 is high, false - S2 is low
Returns
es_status_codes

◆ DLLGetScanIndex()

DllAccess es_status_codes DLLGetScanIndex ( 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.

The information block index is given in the special pixels pixel_scan_index_low and pixel_scan_index_high.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]samplesample number (0 ... (nos-1))
[in]blockblock number (0 ... (nob-1))
[in]camera_poscamera position (0 ... (CAMCNT-1))
[out]scanIndexPointer to a uint32_t, where the information scan index will be written. Scan index is a 32 bit counter.
Returns
es_status_codes

◆ DLLGetScanTriggerDetected()

DllAccess es_status_codes DLLGetScanTriggerDetected ( uint32_t drvno,
uint8_t * detected )

Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]detectedPointer to a bool, where the scan trigger detected bit will be written.
Returns
es_status_codes

◆ DLLGetScanTriggerDetected_multipleBoards()

DllAccess es_status_codes DLLGetScanTriggerDetected_multipleBoards ( uint8_t * detected0,
uint8_t * detected1,
uint8_t * detected2,
uint8_t * detected3,
uint8_t * detected4 )

Read the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected.

Parameters
[out]detected0Pointer to a bool, where the scan trigger detected bit of board 0 will be written.
[out]detected1Pointer to a bool, where the scan trigger detected bit of board 1 will be written.
[out]detected2Pointer to a bool, where the scan trigger detected bit of board 2 will be written.
[out]detected3Pointer to a bool, where the scan trigger detected bit of board 3 will be written.
[out]detected4Pointer to a bool, where the scan trigger detected bit of board 4 will be written.
Returns
es_status_codes

◆ DLLGetTestModeOn()

DllAccess uint8_t DLLGetTestModeOn ( )

Get the variable testModeOn.

The test mode is activated when no PCIe board is connected.

Returns
bool testModeOn

◆ DLLGetThreadCount()

DllAccess int DLLGetThreadCount ( )

Function for multithreading.

◆ DLLGetVerifiedDataDialog()

DllAccess void DLLGetVerifiedDataDialog ( struct verify_data_parameter * vd,
char ** resultString )

Check the consistency of the file given in vd and return the results in resultString.

Parameters
[in]vdPointer to a verify_data_parameter struct. The member filename_full must be set.
[out]resultStringPointer to a char*. The result string is written to this pointer. The buffer is allocated in this function and must be freed by the caller.

◆ DLLGetVirtualCamcnt()

DllAccess uint32_t DLLGetVirtualCamcnt ( uint32_t drvno)

Get the variable virtualCamcnt.

Virutal camcnt is either equal to the setting camera_settings::camcnt or 1 if camcnt is 0.

Parameters
[in]drvnoPCIe board identifier
Returns
uint32_t Number of cameras

◆ DLLGetXckLength()

DllAccess es_status_codes DLLGetXckLength ( uint32_t drvno,
uint32_t * xckLengthIn10ns )

Get the high time duration of XCK from the S0 register S0Addr_XCKLEN.

The signal is measured once per measurement. The fist valid value can be read after the first completed XCK.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]xckLengthIn10nspointer to uint32 where the XCK length is returned
  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
Returns
es_status_codes

◆ DLLGetXckLength_multipleBoards()

DllAccess es_status_codes DLLGetXckLength_multipleBoards ( uint32_t * xckLengthIn10ns0,
uint32_t * xckLengthIn10ns1,
uint32_t * xckLengthIn10ns2,
uint32_t * xckLengthIn10ns3,
uint32_t * xckLengthIn10ns4 )

Get the high time duration of XCK from the S0 register S0Addr_XCKLEN.

The signal is measured once per measurement. The fist valid value can be read after the first completed XCK. The value range is:

  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
    Parameters
    [out]xckLengthIn10ns0pointer to uint32 where the XCK length of board0 is returned
    [out]xckLengthIn10ns1pointer to uint32 where the XCK length of board1 is returned
    [out]xckLengthIn10ns2pointer to uint32 where the XCK length of board2 is returned
    [out]xckLengthIn10ns3pointer to uint32 where the XCK length of board3 is returned
    [out]xckLengthIn10ns4pointer to uint32 where the XCK length of board4 is returned
    Returns
    es_status_codes

◆ DLLGetXckPeriod()

DllAccess es_status_codes DLLGetXckPeriod ( uint32_t drvno,
uint32_t * xckPeriodIn10ns )

Get pos edge to pos egde time of XCK time from the S0 register S0Addr_XCK_PERIOD.

The signal is measured once per measurement. The fist valid value can be read after the start of the second XCK.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]xckPeriodIn10nspointer to uint32 where the XCK period is returned
  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
Returns
es_status_codes

◆ DLLGetXckPeriod_multipleBoards()

DllAccess es_status_codes DLLGetXckPeriod_multipleBoards ( uint32_t * xckPeriodIn10ns0,
uint32_t * xckPeriodIn10ns1,
uint32_t * xckPeriodIn10ns2,
uint32_t * xckPeriodIn10ns3,
uint32_t * xckPeriodIn10ns4 )

Get pos edge to pos edge time of XCK time from the S0 register S0Addr_XCK_PERIOD.

The signal is measured once per measurement. The fist valid value can be read after the start of the second XCK. The value range is:

  • min: 0
  • step: 1 => 10 ns
  • max: 0xFFFFFFFF = 4,294,967,295 => 42,949,672,950 ns
    Parameters
    [out]xckPeriodIn10ns0pointer to uint32 where the XCK period of board0 is returned
    [out]xckPeriodIn10ns1pointer to uint32 where the XCK period of board1 is returned
    [out]xckPeriodIn10ns2pointer to uint32 where the XCK period of board2 is returned
    [out]xckPeriodIn10ns3pointer to uint32 where the XCK period of board3 is returned
    [out]xckPeriodIn10ns4pointer to uint32 where the XCK period of board4 is returned
    Returns
    es_status_codes

◆ DLLImportMeasurementDataFromFile()

DllAccess es_status_codes DLLImportMeasurementDataFromFile ( const char * filename)

TODO. missing documentation.

Parameters
[in]filename
Returns

◆ DLLInitDriver()

DllAccess es_status_codes DLLInitDriver ( uint8_t * _number_of_boards)

Initialize the driver.

Call this before any other action. It is only needed to be called once at startup.

Returns
es_status_codes
Parameters
[out]_number_of_boardsPointer for returning recognized number of PCIe boards.

◆ DLLInitGPX()

DllAccess es_status_codes DLLInitGPX ( uint32_t delay)

Initialize the TDC-GPX chip for all boards selected by settings parameter measurement_settings::board_sel. TDC: time delay counter option.

Parameters
[in]delayGPX offset is used to increase accuracy. A counter value can be added, usually 1000.
Returns
es_status_codes

◆ DLLInitMeasurement()

DllAccess es_status_codes DLLInitMeasurement ( struct measurement_settings settings)

Initialize measurement (using board select).

Call this every time you changed settings before starting the measurement. When you didn't change any settings, you can start the next measurement without calling InitMeasurement every time.

Returns
es_status_codes
Parameters
[in]settingsstruct measurement_settings

◆ DLLInitMeasurement_matlab()

DllAccess es_status_codes DLLInitMeasurement_matlab ( struct measurement_settings_matlab measurement_s,
struct camera_settings camera_s0,
struct camera_settings camera_s1,
struct camera_settings camera_s2,
struct camera_settings camera_s3,
struct camera_settings camera_s4 )

Initialize measurement with Matlab compatible parameters.

Call this every time you changed settings before starting the measurement. When you didn't change any settings, you can start the next measurement without calling InitMeasurement every time.

Parameters
[in]measurement_sMeasurement settings struct without embedded camera settings struct.
[in]camera_s0Camera settings for PCIe board 0
[in]camera_s1Camera settings for PCIe board 1
[in]camera_s2Camera settings for PCIe board 2
[in]camera_s3Camera settings for PCIe board 3
[in]camera_s4Camera settings for PCIe board 4
Returns
es_status_codes

◆ DLLInitSettingsStruct()

DllAccess void DLLInitSettingsStruct ( struct measurement_settings * ms)

Use this function to properly initialize the struct measurement_settings to its default values.

Parameters
[in]msPointer to the struct measurement_settings that should be initialized.

◆ DLLIOCtrl_setAllOutputs()

DllAccess es_status_codes DLLIOCtrl_setAllOutputs ( uint32_t * width_in_5ns,
uint32_t * delay_in_5ns )

Set parameters of all pulses outputs of IOCTRL for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]width_in_5nsSet width of pulse in 5ns steps. Array with 7 entries.
[in]delay_in_5nsSet delay of pulse in 5ns steps. Array with 7 entries.
Returns
es_status_codes

◆ DLLIOCtrl_setOutput()

DllAccess es_status_codes DLLIOCtrl_setOutput ( uint32_t drvno,
uint32_t number,
uint16_t width_in_5ns,
uint16_t delay_in_5ns )

Set paramters of one pulse output of IOCTRL.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]numberNumber of output: 1 ... 7
[in]width_in_5nsSet width of pulse in 5ns steps.
[in]delay_in_5nsSet delay of pulse in 5ns steps.
Returns
es_status_codes

◆ DLLIOCtrl_setT0()

DllAccess es_status_codes DLLIOCtrl_setT0 ( uint32_t drvno,
uint32_t period_in_10ns )

Set period of IOCtrl pulse outputs base frequency T0.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]period_in_10nsPeriod of T0 in 10ns steps.
Returns
es_status_codes

◆ DLLIOCtrl_setT0_multipleBoards()

DllAccess es_status_codes DLLIOCtrl_setT0_multipleBoards ( uint32_t period_in_10ns)

Set period of IOCtrl pulse outputs base frequency T0 for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]period_in_10nsPeriod of T0 in 10ns steps.
Returns
es_status_codes

◆ DLLMain()

BOOL WINAPI DLLMain ( HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved )

DllMain entry point.

An optional entry point into a dynamic-link library (DLL). When the system starts or terminates a process or thread, it calls the entry-point function for each loaded DLL using the first thread of the process. The system also calls the entry-point function for a DLL when it is loaded or unloaded using the LoadLibrary and FreeLibrary functions. More information: https://docs.microsoft.com/en-us/windows/win32/dlls/dllmain

Parameters
[in]hinstDLLA handle to the DLL module. The value is the base address of the DLL. The HINSTANCE of a DLL is the same as the HMODULE of the DLL, so hinstDLL can be used in calls to functions that require a module handle.
[in]fdwReasonThe reason code that indicates why the DLL entry-point function is being called. This parameter can be one of the following values:
  • DLL_PROCESS_ATTACH 1: The DLL is being loaded into the virtual address space of the current process as a result of the process starting up or as a result of a call to LoadLibrary. DLLs can use this opportunity to initialize any instance data or to use the TlsAlloc function to allocate a thread local storage (TLS) index. The lpReserved parameter indicates whether the DLL is being loaded statically or dynamically.
  • DLL_PROCESS_DETACH 0: The DLL is being unloaded from the virtual address space of the calling process because it was loaded unsuccessfully or the reference count has reached zero (the processes has either terminated or called FreeLibrary one time for each time it called LoadLibrary). The lpReserved parameter indicates whether the DLL is being unloaded as a result of a FreeLibrary call, a failure to load, or process termination. The DLL can use this opportunity to call the TlsFree function to free any TLS indices allocated by using TlsAlloc and to free any thread local data. Note that the thread that receives the DLL_PROCESS_DETACH notification is not necessarily the same thread that received the DLL_PROCESS_ATTACH notification.
  • DLL_THREAD_ATTACH 2: The current process is creating a new thread. When this occurs, the system calls the entry-point function of all DLLs currently attached to the process. The call is made in the context of the new thread. DLLs can use this opportunity to initialize a TLS slot for the thread. A thread calling the DLL entry-point function with DLL_PROCESS_ATTACH does not call the DLL entry-point function with DLL_THREAD_ATTACH. Note that a DLL's entry-point function is called with this value only by threads created after the DLL is loaded by the process. When a DLL is loaded using LoadLibrary, existing threads do not call the entry-point function of the newly loaded DLL.
  • DLL_THREAD_DETACH 3: A thread is exiting cleanly. If the DLL has stored a pointer to allocated memory in a TLS slot, it should use this opportunity to free the memory. The system calls the entry-point function of all currently loaded DLLs with this value. The call is made in the context of the exiting thread.
[in]lpvReservedIf fdwReason is DLL_PROCESS_ATTACH, lpvReserved is NULL for dynamic loads and non-NULL for static loads. If fdwReason is DLL_PROCESS_DETACH, lpvReserved is NULL if FreeLibrary has been called or the DLL load failed and non-NULL if the process is terminating.
Returns
When the system calls the DllMain function with the DLL_PROCESS_ATTACH value, the function returns TRUE if it succeeds or FALSE if initialization fails. If the return value is FALSE when DllMain is called because the process uses the LoadLibrary function, LoadLibrary returns NULL. (The system immediately calls your entry-point function with DLL_PROCESS_DETACH and unloads the DLL.) If the return value is FALSE when DllMain is called during process initialization, the process terminates with an error. To get extended error information, call GetLastError. When the system calls the DllMain function with any value other than DLL_PROCESS_ATTACH, the return value is ignored.

◆ DLLOpenShutter()

DllAccess es_status_codes DLLOpenShutter ( uint32_t drvno)

Open shutter for sensors with EC (exposure control) / sets IFC signal = high.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLOpenShutter_multipleBoards()

DllAccess es_status_codes DLLOpenShutter_multipleBoards ( )

Open shutter for sensors with EC (exposure control) / sets IFC signal = high for all boards selected by settings parameter measurement_settings::board_sel.

Returns
es_status_codes

◆ DLLOutTrigHigh()

DllAccess es_status_codes DLLOutTrigHigh ( )

Set trigger out(Reg CtrlA:D3) for all boards selected by settings parameter measurement_settings::board_sel. Can be used to control timing issues in software.

The Reg TOR:D31 must have been set to 1 and D30:D27 to zero to see the signal -> see manual.

Returns
es_status_codes

◆ DLLOutTrigLow()

DllAccess es_status_codes DLLOutTrigLow ( )

Reset trigger out(Reg CtrlA:D3) for all boards selected by settings parameter measurement_settings::board_sel. Can be used to control timing issues in software.

The Reg TOR:D31 must have been set to 1 and D30:D27 to zero to see the signal -> see manual.

Returns
es_status_codes

◆ DLLOutTrigPulse()

DllAccess es_status_codes DLLOutTrigPulse ( int64_t pulseWidthInMicroseconds)

Pulses trigger out(Reg CtrlA:D3) for all boards selected by setings parameter measurement_settings::board_sel. Can be used to control timing issues in software.

The Reg TOR:D31 must have been set to 1 and D30:D27 to zero to see the signal -> see manual

Parameters
[in]pulseWidthInMicrosecondsduration of pulse in us
Returns
es_status_codes

◆ DLLReadBitS0_32()

DllAccess es_status_codes DLLReadBitS0_32 ( uint32_t drvno,
uint32_t address,
uint8_t bitnumber,
uint8_t * isBitHigh )

Read 1 bit of a 4 byte s0 register.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]addressAddress of the register to read.
[in]bitnumberAddress of the bit to read.
[out]isBitHighTells if bit is high or low.
Returns
es_status_codes

◆ DLLReadBitS0_32_multipleBoards()

DllAccess es_status_codes DLLReadBitS0_32_multipleBoards ( uint32_t address,
uint8_t bitnumber,
uint8_t * isBitHigh0,
uint8_t * isBitHigh1,
uint8_t * isBitHigh2,
uint8_t * isBitHigh3,
uint8_t * isBitHigh4 )

Read 1 bit of a 4 bytes s0 register for all boards.

Parameters
[in]addressAddress of the register to read.
[in]bitnumberAddress of the bit to read.
[out]isBitHigh0board 0: Tells if bit is 1 or 0.
[out]isBitHigh1board 1: Tells if bit is 1 or 0.
[out]isBitHigh2board 2: Tells if bit is 1 or 0.
[out]isBitHigh3board 3: Tells if bit is 1 or 0.
[out]isBitHigh4board 4: Tells if bit is 1 or 0.
Returns
es_status_codes

◆ DLLReadBitS0_8()

DllAccess es_status_codes DLLReadBitS0_8 ( uint32_t drvno,
uint32_t address,
uint8_t bitnumber,
uint8_t * isBitHigh )

Read 1 bit of 1 byte of a s0 register.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]addressAddress of the register to read.
[in]bitnumberAddress of the bit to read.
[out]isBitHighTells if bit is high or low.
Returns
es_status_codes

◆ DLLReadBitS0_8_multipleBoards()

DllAccess es_status_codes DLLReadBitS0_8_multipleBoards ( uint32_t address,
uint8_t bitnumber,
uint8_t * isBitHigh0,
uint8_t * isBitHigh1,
uint8_t * isBitHigh2,
uint8_t * isBitHigh3,
uint8_t * isBitHigh4 )

Read 1 bit of 1 byte of a s0 register for all boards.

Parameters
[in]addressAddress of the register to read.
[in]bitnumberAddress of the bit to read.
[out]isBitHigh0Tells if bit is high or low.
[out]isBitHigh1Tells if bit is high or low.
[out]isBitHigh2Tells if bit is high or low.
[out]isBitHigh3Tells if bit is high or low.
[out]isBitHigh4Tells if bit is high or low.
Returns
es_status_codes

◆ DLLReadBlockFrequencyBit()

DllAccess es_status_codes DLLReadBlockFrequencyBit ( uint32_t drvno,
uint8_t * blockFrequencyTooHigh )

Reads the BlockFrequency bit and checks if its high or low.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]blockFrequencyTooHighTrue when BlockFrequency bit is set.
Returns
es_status_codes

◆ DLLReadBlockFrequencyBit_multipleBoards()

DllAccess es_status_codes DLLReadBlockFrequencyBit_multipleBoards ( uint8_t * blockFrequencyTooHigh0,
uint8_t * blockFrequencyTooHigh1,
uint8_t * blockFrequencyTooHigh2,
uint8_t * blockFrequencyTooHigh3,
uint8_t * blockFrequencyTooHigh4 )

Reads the ScanFrequency bit and checks if its high or low for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[out]blockFrequencyTooHigh0True when block frequency too high bit is set for board 0
[out]blockFrequencyTooHigh1True when block frequency too high bit is set for board 1
[out]blockFrequencyTooHigh2True when block frequency too high bit is set for board 2
[out]blockFrequencyTooHigh3True when block frequency too high bit is set for board 3
[out]blockFrequencyTooHigh4True when block frequency too high bit is set for board 4
Returns

◆ DLLreadRegisterS0_32()

DllAccess es_status_codes DLLreadRegisterS0_32 ( uint32_t drvno,
uint32_t * data,
uint32_t address )

Read 4 bytes of a register in S0 space.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]dataRead buffer.
[in]addressAddress of the register to read.
Returns
es_status_codes

◆ DLLreadRegisterS0_32_multipleBoards()

DllAccess es_status_codes DLLreadRegisterS0_32_multipleBoards ( uint32_t * data0,
uint32_t * data1,
uint32_t * data2,
uint32_t * data3,
uint32_t * data4,
uint32_t address )

Read 4 bytes of a register in S0 space of all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[out]data0Read buffer for board 0.
[out]data1Read buffer for board 1.
[out]data2Read buffer for board 2.
[out]data3Read buffer for board 3.
[out]data4Read buffer for board 4.
[in]addressAddress of the register to read.
Returns
es_status_codes

◆ DLLreadRegisterS0_8()

DllAccess es_status_codes DLLreadRegisterS0_8 ( uint32_t drvno,
uint8_t * data,
uint32_t address )

Read 1 byte of a register in S0 space.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]dataRead buffer.
[in]addressAddress of the register to read.
Returns
es_status_codes

◆ DLLreadRegisterS0_8_multipleBoards()

DllAccess es_status_codes DLLreadRegisterS0_8_multipleBoards ( uint8_t * data0,
uint8_t * data1,
uint8_t * data2,
uint8_t * data3,
uint8_t * data4,
uint32_t address )

Read 1 byte of a register in S0 space of all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[out]data0Read buffer of board 0.
[out]data1Read buffer of board 1.
[out]data2Read buffer of board 2.
[out]data3Read buffer of board 3.
[out]data4Read buffer of board 4.
[in]addressAddress of the register to read.
Returns
es_status_codes

◆ DLLReadScanFrequencyBit()

DllAccess es_status_codes DLLReadScanFrequencyBit ( uint32_t drvno,
uint8_t * scanFrequencyTooHigh )

Reads the ScanFrequency bit and checks if its high or low.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[out]scanFrequencyTooHighTrue when scanFrequency bit is set
Returns
es_status_codes

◆ DLLReadScanFrequencyBit_multipleBoards()

DllAccess es_status_codes DLLReadScanFrequencyBit_multipleBoards ( uint8_t * scanFrequencyTooHigh0,
uint8_t * scanFrequencyTooHigh1,
uint8_t * scanFrequencyTooHigh2,
uint8_t * scanFrequencyTooHigh3,
uint8_t * scanFrequencyTooHigh4 )

Reads the ScanFrequency bit and checks if its high or low for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[out]scanFrequencyTooHigh0True when scan frequency too high bit is set for board 0
[out]scanFrequencyTooHigh1True when scan frequency too high bit is set for board 1
[out]scanFrequencyTooHigh2True when scan frequency too high bit is set for board 2
[out]scanFrequencyTooHigh3True when scan frequency too high bit is set for board 3
[out]scanFrequencyTooHigh4True when scan frequency too high bit is set for board 4
Returns

◆ DLLresetBitS0_32()

DllAccess es_status_codes DLLresetBitS0_32 ( uint32_t bitnumber,
uint32_t address )

Set bit to 0 in register at memory address for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]bitnumber0...31, 0 is LSB, 31 MSB
[in]addressregister address. Only 4 byte steps are valid.
Returns
es_status_codes

◆ DLLResetBlockFrequencyBit()

DllAccess es_status_codes DLLResetBlockFrequencyBit ( uint32_t drvno)

Resets the BlockFrequency bit.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLResetBlockFrequencyBit_multipleBoards()

DllAccess es_status_codes DLLResetBlockFrequencyBit_multipleBoards ( )

Resets the BlockFrequency bit.

Returns
es_status_codes

◆ DLLResetBlockTriggerDetected()

DllAccess es_status_codes DLLResetBlockTriggerDetected ( uint32_t drvno)

Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_block_trigger_detected to 0.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLResetBlockTriggerDetected_multipleBoards()

DllAccess es_status_codes DLLResetBlockTriggerDetected_multipleBoards ( )

◆ DLLResetDSC()

DllAccess es_status_codes DLLResetDSC ( uint32_t drvno,
uint8_t DSCNumber )

reset Delay Stage Counter

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]DSCNumber1: DSC 1; 2: DSC 2
Returns
es_status_codes

◆ DLLResetDSC_multipleBoards()

DllAccess es_status_codes DLLResetDSC_multipleBoards ( uint8_t DSCNumber)

reset Delay Stage Counter for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]DSCNumber1: DSC 1; 2: DSC 2
Returns
es_status_codes

◆ DLLResetScanFrequencyBit()

DllAccess es_status_codes DLLResetScanFrequencyBit ( uint32_t drvno)

Resets the ScanFrequency bit.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLResetScanFrequencyBit_multipleBoards()

DllAccess es_status_codes DLLResetScanFrequencyBit_multipleBoards ( )

Resets the ScanFrequency bit.

Returns
es_status_codes

◆ DLLResetScanTriggerDetected()

DllAccess es_status_codes DLLResetScanTriggerDetected ( uint32_t drvno)

Reset the bit PCIEFLAGS_bits_t::PCIEFLAGS_bit_scan_trigger_detected to 0.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
Returns
es_status_codes

◆ DLLResetScanTriggerDetected_multipleBoards()

DllAccess es_status_codes DLLResetScanTriggerDetected_multipleBoards ( )

◆ DLLSaveMeasurementDataToFile()

DllAccess es_status_codes DLLSaveMeasurementDataToFile ( const char * filename)

Export the measurement data to a file.

Depending on the file extension, the data is saved in a binary or HDF5 file.

Parameters
[in]filenameFilename with complete absolute path and either .bin or .h5 extension.
Returns
es_status_codes

◆ DLLSetAllBlocksDoneHook()

DllAccess void DLLSetAllBlocksDoneHook ( void(* hook )())

Set a function which will be executed every time when all blocks are done.

When measurement_settings::continuous_measurement is disabled, it is called one time at the end of the measurement. When measurement_settings::continuous_measurement is enabled, it is called one time at the end of each measurement cycle. The hook is called before the pause set by measurement_settings::cont_pause_in_microseconds.

Parameters
[in]hookPointer to the function which will be executed.

◆ DLLsetBitS0_32()

DllAccess es_status_codes DLLsetBitS0_32 ( uint32_t bitnumber,
uint32_t address )

Set bit to 1 in S0 register at memory address for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]bitnumber0...31, 0 is LSB, 31 MSB
[in]addressregister address. Only 4 byte steps are valid.
Returns
es_status_codes

◆ DLLSetBlockDoneHook()

DllAccess void DLLSetBlockDoneHook ( void(* hook )())

Set a function which will be executed every time when a block ends.

The end of a block doesn't indicate the availability of the data. Which data is available to copy is indicated by DLLGetCurrentScanNumber. The copy method is controlled by camera_settings::use_software_polling. When the block size is not aligned to camera_settings::dma_buffer_size_in_scans and camera_settings::use_software_polling is turned off, there will be no interrupt at the end of a block and so the data won't be available in this moment. Turn camera_settings::use_software_polling on to avoid this.

Parameters
[in]hookPointer to the function which will be executed.

◆ DLLSetBlockStartHook()

DllAccess void DLLSetBlockStartHook ( void(* hook )())

Set a function which will be executed every time when a block starts.

Parameters
[in]hookPointer to the function which will be executed.

◆ DLLSetBTimer()

DllAccess es_status_codes DLLSetBTimer ( uint32_t drvno,
uint32_t btime )

Sets time for block timer.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]btimeBlock time. The resolution of the time depends on the resolution mode set by SetTimerResolution(). 28 bit.
Returns
es_status_codes

◆ DLLSetContinuousMeasurement()

DllAccess void DLLSetContinuousMeasurement ( uint8_t on)

Control looping the measurement.

Parameters
[in]on1: measurement runs in a loop, 0: measurement only runs once.

◆ DLLSetDIRDSC()

DllAccess es_status_codes DLLSetDIRDSC ( uint32_t drvno,
uint8_t DSCNumber,
uint8_t dir )

set direction of Delay Stage Counter

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]DSCNumber1: DSC 1; 2: DSC 2
[in]dirtrue: up; false: down
Returns
es_status_codes

◆ DLLSetDIRDSC_multipleBoards()

DllAccess es_status_codes DLLSetDIRDSC_multipleBoards ( uint8_t DSCNumber,
uint8_t dir )

set direction of Delay Stage Counter for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]DSCNumber1: DSC 1; 2: DSC 2
[in]dirtrue: up; false: down
Returns
es_status_codes

◆ DLLSetGammaValue()

DllAccess void DLLSetGammaValue ( uint16_t white,
uint16_t black )

Set gamma value.

Parameters
[in]whiteset value for maximum brightness. Default: 0xFFFF (16 bit), 0x3FFF (14 bit)
[in]blackset value for minimum brightness. Default: 0

◆ DLLSetGeneralOutput()

DllAccess es_status_codes DLLSetGeneralOutput ( uint32_t drvno,
uint8_t output,
uint8_t state )

Control the general outputs of the PCIe card addition board.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]output0 ... 7
[in]statetrue = high, false = low
Returns
es_status_codes

◆ DLLSetMeasureDoneHook()

DllAccess void DLLSetMeasureDoneHook ( void(* hook )())

Set a function which will be executed every time when a measurement ends.

Regardless of measurement_settings::continuous_measurement this hook is call only one time at the end of the measurement. When measurement_settings::continuous_measurement is enabled, it is called after the loop is disabled. The hook is called after the pause set by measurement_settings::cont_pause_in_microseconds. When this hook is called all data is available, so DLLGetCurrentScanNumber should return sample = nos-1 and block = nob-1.

Parameters
[in]hookPointer to the function which will be executed.

◆ DLLSetMeasureStartHook()

DllAccess void DLLSetMeasureStartHook ( void(* hook )())

Set a function which will be executed every time when a measurement starts.

Parameters
[in]hookPointer to the function which will be executed.

◆ DLLSetShutterStates()

DllAccess es_status_codes DLLSetShutterStates ( uint32_t drvno,
uint16_t shutter_states )

Sets all shutter states in one call.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]shutter_states16 bit value where each bit of the lower 4 represents the state of one shutter.
  • bit 0: shutter 1, 1: closed, 0: open
  • bit 1: shutter 2, 1: closed, 0: open
  • bit 2: shutter 3, 1: closed, 0: open
  • bit 3: shutter 4, 1: closed, 0: open
Returns
es_status_codes

◆ DLLSetSTimer()

DllAccess es_status_codes DLLSetSTimer ( uint32_t drvno,
uint32_t stime )

Sets time for scan timer.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]stimeTrigger time. The resolution of the time depends on the resolution mode set by SetTimerResolution(). 28 bit.
Returns
es_status_codes

◆ DLLSetTemp()

DllAccess es_status_codes DLLSetTemp ( uint8_t level)

Set temperature level for cooled cameras for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]levellevel 0..7 / 0=off, 7=min -> see cooling manual
Returns
es_status_codes

◆ DLLSetTORReg()

DllAccess es_status_codes DLLSetTORReg ( uint32_t drvno,
uint8_t tor )

Set signal of output port of PCIe card.

Parameters
[in]drvnoidentifier of PCIe card, 0 ... MAXPCIECARDS, when there is only one PCIe board: always 0
[in]torselect output signal. See enum tor_out in enum_settings.h for options.
Returns
es_status_codes

◆ DLLSetTORReg_multipleBoards()

DllAccess es_status_codes DLLSetTORReg_multipleBoards ( uint8_t tor)

Set signal of output port of PCIe card for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]torselect output signal. See enum tor_out_t in enum_settings.h for options.
Returns
es_status_codes

◆ DLLShowNewBitmap()

DllAccess void DLLShowNewBitmap ( uint32_t drvno,
uint32_t block,
uint16_t camera,
uint16_t pixel,
uint32_t nos )

Update the displayed bitmap.

Parameters
[in]drvnoboard number
[in]blockcurrent number of blocks
[in]camerawhich camera to display (when camcnt is >1)
[in]pixelcount of pixel of one line
[in]nossamples in one block

◆ DLLStart2dViewer()

DllAccess void DLLStart2dViewer ( uint32_t drvno,
uint32_t block,
uint16_t camera,
uint16_t pixel,
uint32_t nos )

Start 2d viewer.

Parameters
[in]drvnoboard number
[in]blockcurrent number of block
[in]camerawhich camera to display (when camcnt is >1)
[in]pixelcount of pixel of one line
[in]nossamples in one block

◆ DLLStartMeasurement_blocking()

DllAccess es_status_codes DLLStartMeasurement_blocking ( )

This function is starting the measurement and returns when the measurement is done.

When there are multiple boards, all boards are starting the measurement. Create a new thread for calling this function, when you don't want to have a blocking call.

Returns
es_status_codes

◆ DLLStartMeasurement_nonblocking()

DllAccess void DLLStartMeasurement_nonblocking ( )

This function is starting the measurement and returns immediately.

StartMeasurement is run a new thread. When there are multiple boards, all boards are starting the measurement. You can check the status of the measurement with DLLGetMeasureOn and DLLGetBlockOn or create a blocking call with DLLWaitForMeasureDone and DLLWaitForBlockDone.

◆ DLLWaitForBlockDone()

DllAccess es_status_codes DLLWaitForBlockDone ( )

Returns when block on bit is 0 in all boards selected by settings parameter measurement_settings::board_sel.

Returns
es_status_codes

◆ DLLWaitForMeasureDone()

DllAccess es_status_codes DLLWaitForMeasureDone ( )

Returns when measure on bit is 0 in all boards selected by settings parameter measurement_settings::board_sel.

Returns
es_status_codes

◆ DLLwriteRegisterS0_32()

DllAccess es_status_codes DLLwriteRegisterS0_32 ( uint32_t data,
uint32_t address )

Write 4 bytes of a register in S0 space for all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]dataData to write.
[in]addressAddress of the register to read.
Returns
es_status_codes

◆ DLLwriteRegisterS0_8()

DllAccess es_status_codes DLLwriteRegisterS0_8 ( uint8_t data,
uint32_t address )

Write the same 1 byte to a register in S0 space of all boards selected by settings parameter measurement_settings::board_sel.

Parameters
[in]dataData to write.
[in]addressAddress of the register to write.
Returns
es_status_codes

◆ StartMeasurementThread()

unsigned __stdcall StartMeasurementThread ( void * param)

Internal use only.

Variable Documentation

◆ nProcessCount

int nProcessCount = 0

Internal use only.

◆ nThreadCount

int nThreadCount = 0

Internal use only.