| 0,0 → 1,1325 |
| /*! |
| ----------------------------------------------------------------------------- |
| |
| --- CAEN SpA - Computing Systems Division --- |
| |
| ----------------------------------------------------------------------------- |
| |
| CAENVMElib.h |
| |
| ----------------------------------------------------------------------------- |
| |
| Created: March 2004 |
| |
| ----------------------------------------------------------------------------- |
| */ |
| #ifndef __CAENVMELIB_H |
| #define __CAENVMELIB_H |
| |
| #include <stdio.h> |
| // Rev. 2.5 |
| #ifdef LINUX |
| #include <stdint.h> |
| #endif |
| #include <stdlib.h> |
| #ifndef _CVI_ |
| #include <malloc.h> |
| #endif |
| #include "CAENVMEoslib.h" |
| #include "CAENVMEtypes.h" |
| |
| #ifdef WIN32 |
| #ifdef _CVI_ |
| typedef char int8_t; |
| typedef unsigned char uint8_t; |
| typedef short int16_t; |
| typedef unsigned short uint16_t; |
| typedef int int32_t; |
| typedef unsigned int uint32_t; |
| // typedef INT64 int64_t; |
| // typedef UINT64 uint64_t; |
| #else |
| typedef INT8 int8_t; |
| typedef UINT8 uint8_t; |
| typedef INT16 int16_t; |
| typedef UINT16 uint16_t; |
| typedef INT32 int32_t; |
| typedef UINT32 uint32_t; |
| typedef INT64 int64_t; |
| typedef UINT64 uint64_t; |
| #endif |
| #endif |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif // __cplusplus |
| /* |
| CAENVME_DecodeError |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Code : The error code to decode. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An string describing the error condition. |
| ----------------------------------------------------------------------------- |
| Description: |
| Decode the error. |
| */ |
| const char * |
| #ifdef WIN32 |
| __stdcall |
| #endif |
| CAENVME_DecodeError(CVErrorCodes Code); |
| |
| /* |
| CAENVME_API CAENVME_SWRelease |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [out] SwRel : Returns the software release of the library. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| Permits to read the software release of the library. |
| */ |
| CAENVME_API |
| CAENVME_SWRelease(char *SwRel); |
| |
| /* |
| CAENVME_BoardFWRelease. |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] FWRel : Returns the firmware release of the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| Permits to read the firmware release loaded into the device. |
| */ |
| CAENVME_API |
| CAENVME_BoardFWRelease(int32_t Handle, char *FWRel); |
| |
| /* |
| CAENVME_DriverRelease. |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Rel : Returns the software release of the device driver |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| Permits to read the software release of the device driver. |
| */ |
| CAENVME_API |
| CAENVME_DriverRelease(int32_t Handle, char *Rel); |
| |
| /* |
| CAENVME_DeviceReset |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| Permits to reset the device. |
| Implemented for A2818, A2719, V2718 on Linux platform only |
| */ |
| CAENVME_API |
| CAENVME_DeviceReset(int32_t dev); |
| |
| |
| /* |
| CAENVME_Init |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] BdType : The model of the bridge (V1718/V2718). |
| [in] Link : The link number (don't care for V1718). |
| [in] BdNum : The board number in the link. |
| [out] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function generates an opaque handle to identify a module |
| attached to the PC. In the case of V1718 bridge it must be |
| specified only the module index (BdNum) because the link is USB. |
| In the case of V2718 it must be specified also the link because |
| you can have some A2818 optical link inside the PC. |
| */ |
| CAENVME_API |
| CAENVME_Init(CVBoardTypes BdType, short Link, short BdNum, int32_t *Handle); |
| |
| /* |
| CAENVME_End |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| Notifies the library the end of work and free the allocated |
| resources. |
| */ |
| CAENVME_API |
| CAENVME_End(int32_t Handle); |
| |
| /* |
| CAENVME_ReadCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [out] Data : The data read from the VME bus. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a single VME read cycle. |
| */ |
| CAENVME_API |
| CAENVME_ReadCycle(int32_t Handle, uint32_t Address, void *Data, |
| CVAddressModifier AM, CVDataWidth DW); |
| |
| /* |
| CAENVME_RMWCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address: The VME bus address. |
| [in/out] Data : The data read and then written to the VME bus. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a Read-Modify-Write cycle. The Data parameter |
| is bidirectional: it is used to write the value to the VME bus and to |
| return the value read. |
| */ |
| CAENVME_API |
| CAENVME_RMWCycle(int32_t Handle, uint32_t Address, void *Data, |
| CVAddressModifier AM, CVDataWidth DW); |
| |
| /* |
| CAENVME_WriteCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] Data : The data written to the VME bus. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a single VME write cycle. |
| */ |
| CAENVME_API |
| CAENVME_WriteCycle(int32_t Handle, uint32_t Address, void *Data, |
| CVAddressModifier AM, CVDataWidth DW); |
| |
| /* |
| CAENVME_MultiRead (Ver. 2.2) |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Addrs : The VME bus addresses. |
| [out] Buffer : The data read from the VME bus. |
| [in] NCycles : The number of read cycles to perform. |
| [in] AMs : The address modifiers (see CVAddressModifier enum). |
| [in] DWs : The data widths.(see CVDataWidth enum). |
| [out] ECs : The error codes relaive to each cycle. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a block of single VME read cycles. |
| */ |
| CAENVME_API |
| CAENVME_MultiRead(int32_t Handle, uint32_t *Addrs, uint32_t *Buffer, |
| int NCycles, CVAddressModifier *AMs, CVDataWidth *DWs, CVErrorCodes *ECs); |
| |
| /* |
| CAENVME_MultiWrite (Ver. 2.2) |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Addrs : The VME bus addresses. |
| [in] Buffer : The data to write to the VME bus. |
| [in] NCycles : The number of read cycles to perform. |
| [in] AMs : The address modifiers (see CVAddressModifier enum). |
| [in] DWs : The data widths.(see CVDataWidth enum). |
| [out] ECs : The error codes relaive to each cycle. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a block of single VME write cycles. |
| */ |
| CAENVME_API |
| CAENVME_MultiWrite(int32_t Handle, uint32_t *Addrs, uint32_t *Buffer, |
| int NCycles, CVAddressModifier *AMs, CVDataWidth *DWs, CVErrorCodes *ECs); |
| |
| /* |
| CAENVME_BLTReadCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [out] Buffer : The data read from the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME block transfer read cycle. It can be used to |
| perform MBLT transfers using 64 bit data width. |
| */ |
| CAENVME_API |
| CAENVME_BLTReadCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int Size, CVAddressModifier AM, CVDataWidth DW, int *count); |
| |
| /* |
| Ver. 2.3 - New function |
| |
| CAENVME_FIFOBLTReadCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [out] Buffer : The data read from the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME block transfer read cycle. It can be used to |
| perform MBLT transfers using 64 bit data width. The Address is not |
| incremented on the VMEBus during the cycle. |
| */ |
| CAENVME_API |
| CAENVME_FIFOBLTReadCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int Size, CVAddressModifier AM, CVDataWidth DW, int *count); |
| |
| /* |
| CAENVME_MBLTReadCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [out] Buffer : The data read from the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME multiplexed block transfer read cycle. |
| */ |
| CAENVME_API |
| CAENVME_MBLTReadCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int Size, CVAddressModifier AM, int *count); |
| |
| /* |
| Ver. 2.3 - New function |
| |
| CAENVME_FIFOMBLTReadCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [out] Buffer : The data read from the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME multiplexed block transfer read cycle. |
| The Address is not incremented on the VMEBus during the cycle. |
| */ |
| CAENVME_API |
| CAENVME_FIFOMBLTReadCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int Size, CVAddressModifier AM, int *count); |
| |
| /* |
| CAENVME_BLTWriteCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] Buffer : The data to be written to the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME block transfer write cycle. |
| */ |
| CAENVME_API |
| CAENVME_BLTWriteCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int size, CVAddressModifier AM, CVDataWidth DW, int *count); |
| |
| /* |
| Ver. 2.3 - New function |
| |
| CAENVME_FIFOBLTWriteCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] Buffer : The data to be written to the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME block transfer write cycle. The address |
| is not incremented during the cycle. |
| */ |
| CAENVME_API |
| CAENVME_FIFOBLTWriteCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int size, CVAddressModifier AM, CVDataWidth DW, int *count); |
| |
| /* |
| CAENVME_MBLTWriteCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] Buffer : The data to be written to the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME multiplexed block transfer write cycle. |
| */ |
| CAENVME_API |
| CAENVME_MBLTWriteCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int size, CVAddressModifier AM, int *count); |
| |
| /* |
| Ver. 2.3 - New function |
| |
| CAENVME_FIFOMBLTWriteCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] Buffer : The data to be written to the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [out] count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME multiplexed block transfer write cycle. |
| The address is not incremented during the cycle. |
| */ |
| CAENVME_API |
| CAENVME_FIFOMBLTWriteCycle(int32_t Handle, uint32_t Address, void *Buffer, |
| int size, CVAddressModifier AM, int *count); |
| |
| /* |
| CAENVME_ADOCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME address only cycle. It can be used to |
| perform MBLT transfers using 64 bit data width. |
| */ |
| CAENVME_API |
| CAENVME_ADOCycle(int32_t Handle, uint32_t Address, CVAddressModifier AM); |
| |
| /* |
| CAENVME_ADOHCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME address only with handshake cycle. |
| */ |
| CAENVME_API |
| CAENVME_ADOHCycle(int32_t Handle, uint32_t Address, CVAddressModifier AM); |
| |
| /* |
| CAENVME_IACKCycle |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Level : The IRQ level to acknowledge (see CVIRQLevels enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a VME interrupt acknowledge cycle. |
| */ |
| CAENVME_API |
| CAENVME_IACKCycle(int32_t Handle, CVIRQLevels Level, void *Vector, CVDataWidth DW); |
| |
| /* |
| CAENVME_IRQCheck |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Mask : A bit-mask indicating the active IRQ lines. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function returns a bit mask indicating the active IRQ lines. |
| */ |
| CAENVME_API |
| CAENVME_IRQCheck(int32_t Handle, CAEN_BYTE *Mask); |
| |
| /* |
| CAENVME_IRQEnable |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Mask : A bit-mask indicating the IRQ lines. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function enables the IRQ lines specified by Mask. |
| */ |
| CAENVME_API |
| CAENVME_IRQEnable(int32_t Handle, uint32_t Mask); |
| |
| /* |
| CAENVME_IRQDisable |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Mask : A bit-mask indicating the IRQ lines. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function disables the IRQ lines specified by Mask. |
| */ |
| CAENVME_API |
| CAENVME_IRQDisable(int32_t Handle, uint32_t Mask); |
| |
| /* |
| CAENVME_IRQWait |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Mask : A bit-mask indicating the IRQ lines. |
| [in] Timeout : Timeout in milliseconds. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function wait the IRQ lines specified by Mask until one of |
| them raise or timeout expires. |
| */ |
| CAENVME_API |
| CAENVME_IRQWait(int32_t Handle, uint32_t Mask, uint32_t Timeout); |
| |
| /* |
| CAENVME_SetPulserConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] PulSel : The pulser to configure (see CVPulserSelect enum). |
| [in] Period : The period of the pulse in time units. |
| [in] Width : The width of the pulse in time units. |
| [in] Unit : The time unit for the pulser configuration (see |
| CVTimeUnits enum). |
| [in] PulseNo : The number of pulses to generate (0 = infinite). |
| [in] Start : The source signal to start the pulse burst (see |
| CVIOSources enum). |
| [in] Reset : The source signal to stop the pulse burst (see |
| CVIOSources enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to configure the pulsers. All the timing parameters |
| are expressed in the time units specified. The start signal source can be |
| one of: front panel button or software (cvManualSW), input signal 0 |
| (cvInputSrc0),input signal 1 (cvInputSrc1) or input coincidence |
| (cvCoincidence). The reset signal source can be: front panel button or |
| software (cvManualSW) or, for pulser A the input signal 0 (cvInputSrc0), |
| for pulser B the input signal 1 (cvInputSrc1). |
| */ |
| CAENVME_API |
| CAENVME_SetPulserConf(int32_t Handle, CVPulserSelect PulSel, unsigned char Period, |
| unsigned char Width, CVTimeUnits Unit, unsigned char PulseNo, |
| CVIOSources Start, CVIOSources Reset); |
| |
| /* |
| CAENVME_SetScalerConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Limit : The counter limit for the scaler. |
| [in] AutoReset : Enable/disable the counter auto reset. |
| [in] Hit : The source signal for the signal to count (see |
| CVIOSources enum). |
| [in] Gate : The source signal for the gate (see CVIOSources enum). |
| [in] Reset : The source signal to stop the counter (see |
| CVIOSources enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to configure the scaler. Limit range is 0 - 1024 |
| (10 bit). The hit signal source can be: input signal 0 (cvInputSrc0) |
| or input coincidence (cvCoincidence). The gate signal source can be: |
| front panel button or software (cvManualSW) or input signal 1 |
| (cvInputSrc1). The reset signal source can be: front panel button or |
| software (cvManualSW) or input signal 1 (cvInputSrc1). |
| */ |
| CAENVME_API |
| CAENVME_SetScalerConf(int32_t Handle, short Limit, short AutoReset, |
| CVIOSources Hit, CVIOSources Gate, CVIOSources Reset); |
| |
| /* |
| CAENVME_SetOutputConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] OutSel : The output line to configure (see CVOutputSelect |
| enum). |
| [in] OutPol : The output line polarity (see CVIOPolarity enum). |
| [in] LEDPol : The output LED polarity (see CVLEDPolarity enum). |
| [in] Source : The source signal to propagate to the output line |
| (see CVIOSources enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to configure the output lines of the module. It |
| can be specified the polarity for the line and for the LED. The |
| output line source depends on the line as figured out by the |
| following table: |
| |
| +-----------------------------------------------------------+ |
| ! S O U R C E S E L E C T I O N ! |
| +--------------+---------------+---------------+------------+ |
| ! cvVMESignals ! cvCoincidence ! cvMiscSignals ! cvManualSW ! |
| +---+---+--------------+---------------+---------------+------------+ |
| ! ! 0 ! DS ! Input Coinc. ! Pulser A ! Manual/SW ! |
| ! O +---+--------------+---------------+---------------+------------+ |
| ! U ! 1 ! AS ! Input Coinc. ! Pulser A ! Manual/SW ! |
| ! T +---+--------------+---------------+---------------+------------+ |
| ! P ! 2 ! DTACK ! Input Coinc. ! Pulser B ! Manual/SW ! |
| ! U +---+--------------+---------------+---------------+------------+ |
| ! T ! 3 ! BERR ! Input Coinc. ! Pulser B ! Manual/SW ! |
| ! +---+--------------+---------------+---------------+------------+ |
| ! ! 4 ! LMON ! Input Coinc. ! Scaler end ! Manual/SW ! |
| +---+---+--------------+---------------+---------------+------------+ |
| */ |
| CAENVME_API |
| CAENVME_SetOutputConf(int32_t Handle, CVOutputSelect OutSel, CVIOPolarity OutPol, |
| CVLEDPolarity LEDPol, CVIOSources Source); |
| |
| /* |
| CAENVME_SetInputConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] InSel : The input line to configure (see CVInputSelect enum). |
| [in] InPol : The input line polarity (see CVIOPolarity enum). |
| [in] LEDPol : The output LED polarity (see CVLEDPolarity enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to configure the input lines of the module. It |
| ca be specified the polarity for the line and for the LED. |
| */ |
| CAENVME_API |
| CAENVME_SetInputConf(int32_t Handle, CVInputSelect InSel, CVIOPolarity InPol, |
| CVLEDPolarity LEDPol); |
| |
| /* |
| CAENVME_GetPulserConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] PulSel : The pulser to configure (see CVPulserSelect enum). |
| [out] Period : The period of the pulse in time units. |
| [out] Width : The width of the pulse in time units. |
| [out] Unit : The time unit for the pulser configuration (see |
| CVTimeUnits enum). |
| [out] PulseNo : The number of pulses to generate (0 = infinite). |
| [out] Start : The source signal to start the pulse burst (see |
| CVIOSources enum). |
| [out] Reset : The source signal to stop the pulse burst (see |
| CVIOSources enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to read the configuration of the pulsers. |
| */ |
| CAENVME_API |
| CAENVME_GetPulserConf(int32_t Handle, CVPulserSelect PulSel, unsigned char *Period, |
| unsigned char *Width, CVTimeUnits *Unit, unsigned char *PulseNo, |
| CVIOSources *Start, CVIOSources *Reset); |
| |
| /* |
| CAENVME_GetScalerConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Limit : The counter limit for the scaler. |
| [out] AutoReset : The auto reset configuration. |
| [out] Hit : The source signal for the signal to count (see |
| CVIOSources enum). |
| [out] Gate : The source signal for the gate (see CVIOSources enum). |
| [out] Reset : The source signal to stop the counter (see |
| CVIOSources enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to read the configuration of the scaler. |
| */ |
| CAENVME_API |
| CAENVME_GetScalerConf(int32_t Handle, short *Limit, short *AutoReset, |
| CVIOSources *Hit, CVIOSources *Gate, CVIOSources *Reset); |
| |
| |
| /* |
| CAENVME_SetOutputConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] OutSel : The output line to configure (see CVOutputSelect enum). |
| [out] OutPol : The output line polarity (see CVIOPolarity enum). |
| [out] LEDPol : The output LED polarity (see CVLEDPolarity enum). |
| [out] Source : The source signal to propagate to the output line (see |
| CVIOSources enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to read the configuration of the output lines. |
| */ |
| CAENVME_API |
| CAENVME_GetOutputConf(int32_t Handle, CVOutputSelect OutSel, CVIOPolarity *OutPol, |
| CVLEDPolarity *LEDPol, CVIOSources *Source); |
| |
| /* |
| CAENVME_SetInputConf |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] InSel : The input line to configure (see CVInputSelect enum). |
| [out] InPol : The input line polarity (see CVIOPolarity enum). |
| [out] LEDPol : The output LED polarity (see CVLEDPolarity enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to read the configuration of the input lines. |
| */ |
| CAENVME_API |
| CAENVME_GetInputConf(int32_t Handle, CVInputSelect InSel, CVIOPolarity *InPol, |
| CVLEDPolarity *LEDPol); |
| |
| /* |
| CAENVME_ReadRegister |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Reg : The internal register to read (see CVRegisters enum). |
| [out] Data : The data read from the module. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to read all internal registers. |
| */ |
| CAENVME_API |
| CAENVME_ReadRegister(int32_t Handle, CVRegisters Reg, unsigned int *Data); |
| |
| /* |
| CAENVME_WriteRegister |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Reg : The internal register to read (see CVRegisters enum). |
| [in] Data : The data to be written to the module. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function permits to write to all internal registers. |
| */ |
| CAENVME_API |
| CAENVME_WriteRegister(int32_t Handle, CVRegisters Reg, unsigned int Data); |
| |
| /* |
| CAENVME_SetOutputRegister |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Mask : The lines to be set. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the lines specified. Refer the CVOutputRegisterBits |
| enum to compose and decoding the bit mask. |
| */ |
| CAENVME_API |
| CAENVME_SetOutputRegister(int32_t Handle, unsigned short Mask); |
| |
| /* |
| CAENVME_ClearOutputRegister |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Mask : The IRQ lines to be cleared. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function clears the lines specified. Refer the CVOutputRegisterBits |
| enum to compose and decoding the bit mask. |
| */ |
| CAENVME_API |
| CAENVME_ClearOutputRegister(int32_t Handle, unsigned short Mask); |
| |
| /* |
| CAENVME_PulseOutputRegister |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Mask : The lines to be pulsed. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function produces a pulse with the lines specified by setting and |
| then clearing them. Refer the CVOutputRegisterBits enum to compose and |
| decoding the bit mask. |
| */ |
| CAENVME_API |
| CAENVME_PulseOutputRegister(int32_t Handle, unsigned short Mask); |
| |
| /* |
| CAENVME_ReadDisplay |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The values read from the module (see CVDisplay enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function reads the VME data display on the front panel of the module. |
| Refer to the CVDisplay data type definition and comments to decode the |
| value returned. |
| */ |
| CAENVME_API |
| CAENVME_ReadDisplay(int32_t Handle, CVDisplay *Value); |
| |
| /* |
| CAENVME_SetArbiterType |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Value : The type of VME bus arbitration to implement (see |
| CVArbiterTypes enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the behaviour of the VME bus arbiter on the module. |
| */ |
| CAENVME_API |
| CAENVME_SetArbiterType(int32_t Handle, CVArbiterTypes Value); |
| |
| /* |
| CAENVME_SetRequesterType |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Value : The type of VME bus requester to implement (see |
| CVRequesterTypes enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the behaviour of the VME bus requester on the module. |
| */ |
| CAENVME_API |
| CAENVME_SetRequesterType(int32_t Handle, CVRequesterTypes Value); |
| |
| /* |
| CAENVME_SetReleaseType |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Value : The type of VME bus release policy to implement (see |
| CVReleaseTypes enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the release policy of the VME bus on the module. |
| */ |
| CAENVME_API |
| CAENVME_SetReleaseType(int32_t Handle, CVReleaseTypes Value); |
| |
| /* |
| CAENVME_SetBusReqLevel |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Value : The type of VME bus requester priority level to set |
| (see CVBusReqLevels enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the specified VME bus requester priority level on |
| the module. |
| */ |
| CAENVME_API |
| CAENVME_SetBusReqLevel(int32_t Handle, CVBusReqLevels Value); |
| |
| /* |
| CAENVME_SetTimeout |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Value : The value of VME bus timeout to set (see |
| CVVMETimeouts enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the specified VME bus timeout on the module. |
| */ |
| CAENVME_API |
| CAENVME_SetTimeout(int32_t Handle, CVVMETimeouts Value); |
| |
| /* |
| CAENVME_SetLocationMonitor |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The addres to be monitored. |
| [in] Write : Flag to specify read or write cycle types. |
| [in] Lword : Flag to specify long word cycle type. |
| [in] Iack : Flag to specify interrupt acknowledge cycle type. |
| |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the Location Monitor. |
| */ |
| CAENVME_API |
| CAENVME_SetLocationMonitor(int32_t Handle, uint32_t Address, CVAddressModifier Am, |
| short Write, short Lword, short Iack); |
| /* |
| CAENVME_SetFIFOMode |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Value : Enable/disable the FIFO mode. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function enables/disables the auto increment of the VME addresses |
| during the block transfer cycles. With the FIFO mode enabled the |
| addresses are not incremented. |
| */ |
| CAENVME_API |
| CAENVME_SetFIFOMode(int32_t Handle, short Value); |
| |
| /* |
| CAENVME_GetArbiterType |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The type of VME bus arbitration implemented (see |
| CVArbiterTypes enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function get the type of VME bus arbiter implemented on the module. |
| */ |
| CAENVME_API |
| CAENVME_GetArbiterType(int32_t Handle, CVArbiterTypes *Value); |
| |
| /* |
| CAENVME_GetRequesterType |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The type of VME bus requester implemented (see |
| CVRequesterTypes enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function get the type of VME bus requester implemented on the module. |
| */ |
| CAENVME_API |
| CAENVME_GetRequesterType(int32_t Handle, CVRequesterTypes *Value); |
| |
| /* |
| CAENVME_GetReleaseType |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The type of VME bus release policy implemented (see |
| CVReleaseTypes enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function get the type of VME bus release implemented on the module. |
| */ |
| CAENVME_API |
| CAENVME_GetReleaseType(int32_t Handle, CVReleaseTypes *Value); |
| |
| /* |
| CAENVME_GetBusReqLevel |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The type of VME bus requester priority level (see |
| CVBusReqLevels enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function reads the specified VME bus requester priority level on |
| the module. |
| */ |
| CAENVME_API |
| CAENVME_GetBusReqLevel(int32_t Handle, CVBusReqLevels *Value); |
| |
| /* |
| CAENVME_GetTimeout |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The value of VME bus timeout (see CVVMETimeouts enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function sets the specified VME bus timeout on the module. |
| */ |
| CAENVME_API |
| CAENVME_GetTimeout(int32_t Handle, CVVMETimeouts *Value); |
| |
| /* |
| CAENVME_GetFIFOMode |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Value : The FIFO mode read setting. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function read if the auto increment of the VME addresses during the |
| block transfer cycles is enabled (0) or disabled (!=0). |
| */ |
| CAENVME_API |
| CAENVME_GetFIFOMode(int32_t Handle, short *Value); |
| |
| /* |
| CAENVME_SystemReset |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function performs a system reset on the module. |
| */ |
| CAENVME_API |
| CAENVME_SystemReset(int32_t Handle); |
| |
| /* |
| CAENVME_ResetScalerCount |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function resets the counter of the scaler.. |
| */ |
| CAENVME_API |
| CAENVME_ResetScalerCount(int32_t Handle); |
| |
| /* |
| CAENVME_EnableScalerGate |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function enables the gate of the scaler. |
| */ |
| CAENVME_API |
| CAENVME_EnableScalerGate(int32_t Handle); |
| |
| /* |
| CAENVME_DisableScalerGate |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function disables the gate of the scaler. |
| */ |
| CAENVME_API |
| CAENVME_DisableScalerGate(int32_t Handle); |
| |
| /* |
| CAENVME_StartPulser |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] PulSel : The pulser to configure (see CVPulserSelect enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function starts the generation of pulse burst if the specified |
| pulser is configured for manual/software operation. |
| */ |
| CAENVME_API |
| CAENVME_StartPulser(int32_t Handle, CVPulserSelect PulSel); |
| |
| /* |
| CAENVME_StopPulser |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] PulSel : The pulser to configure (see CVPulserSelect enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function stops the generation of pulse burst if the specified |
| pulser is configured for manual/software operation. |
| */ |
| CAENVME_API |
| CAENVME_StopPulser(int32_t Handle, CVPulserSelect PulSel); |
| |
| /* |
| CAENVME_WriteFlashPage |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Data : The data to write. |
| [in] PageNum : The flash page number to write. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function writes the data into the specified flash page. |
| */ |
| CAENVME_API |
| CAENVME_WriteFlashPage(int32_t Handle, unsigned char *Data, int PageNum); |
| |
| /* |
| CAENVME_ReadFlashPage |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Data : The data to write. |
| [in] PageNum : The flash page number to write. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function reads the data from the specified flash page. |
| */ |
| CAENVME_API |
| CAENVME_ReadFlashPage(int32_t Handle, unsigned char *Data, int PageNum); |
| |
| /* |
| CAENVME_EraseFlashPage |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] PageNum : The flash page number to write. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function erases the specified flash page. |
| */ |
| CAENVME_API |
| CAENVME_EraseFlashPage(int32_t Handle, int Pagenum); |
| |
| #ifdef LINUX |
| /* |
| CAENVME_BLTReadAsync |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [in] Address : The VME bus address. |
| [out] Buffer : The data read from the VME bus. |
| [in] Size : The size of the transfer in bytes. |
| [in] AM : The address modifier (see CVAddressModifier enum). |
| [in] DW : The data width.(see CVDataWidth enum). |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function starts a VME block transfer read cycle. It can be used |
| to perform MBLT transfers using 64 bit data width. |
| This function cannot be used with the V1718 USB bridge. |
| This function can be used only on Linux platforms. |
| Take care to call the CAENVME_BLTReadWait function before any other |
| call to a CAENVMElib function with the same handle. |
| */ |
| CAENVME_API |
| CAENVME_BLTReadAsync(int32_t Handle, uint32_t Address, void *Buffer, |
| int Size, CVAddressModifier AM, CVDataWidth DW); |
| |
| /* |
| CAENVME_BLTReadWait |
| ----------------------------------------------------------------------------- |
| Parameters: |
| [in] Handle : The handle that identifies the device. |
| [out] Count : The number of bytes transferred. |
| ----------------------------------------------------------------------------- |
| Returns: |
| An error code about the execution of the function. |
| ----------------------------------------------------------------------------- |
| Description: |
| The function wait for the completion of a VME block transfer read |
| cycle started with the CAENVME_BLTReadAsync function call. |
| This function cannot be used with the V1718 USB bridge. |
| This function can be used only on Linux platforms. |
| */ |
| CAENVME_API |
| CAENVME_BLTReadWait(int32_t Handle, int *Count); |
| |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif // __cplusplus |
| |
| #endif // __CAENVMELIB_H |