Hermes SDK 1.0.1A
Hermes_SDK.h File Reference
#include <stdio.h>
#include <math.h>
#include <string.h>

Go to the source code of this file.

Macros

#define MIN_DEAD_TIME   30
 
#define MAX_DEAD_TIME   150
 
#define MAX_GATE_WIDTH   100
 
#define MIN_GATE_WIDTH   0
 
#define MAX_GATE_SHIFT   +500
 
#define MIN_GATE_SHIFT   -500
 

Typedefs

typedef unsigned short UInt16
 
typedef short Int16
 
typedef unsigned UInt32
 
typedef struct _Hermes_H * Hermes_H
 
typedef unsigned char * BUFFER_H
 

Enumerations

enum  HermesReturn {
  OK = 0 , USB_DEVICE_NOT_RECOGNIZED = -1 , CAMERA_NOT_POWERING_UP =-3 , COMMUNICATION_ERROR =-5 ,
  OUT_OF_BOUND = -6 , MISSING_DLL = -7 , EMPTY_BUFFER = -8 , NOT_EN_MEMORY = -9 ,
  NULL_POINTER = -10 , INVALID_OP = -11 , UNABLE_CREATE_FILE = -12 , UNABLE_READ_FILE = -13 ,
  FIRMWARE_NOT_COMPATIBLE =-14 , POWER_SUPPLY_ERROR = -15 , TOO_MUCH_LIGHT = -16 , INVALID_NIMG_CORRELATION = -17 ,
  HERMES_MEMORY_FULL = -18 , PERSISTING_TOO_MUCH_LIGHT = -19
}
 
enum  OutFileFormat { HERMES_FILEFORMAT = 0 , TIFF_NO_COMPRESSION = 2 }
 
enum  GateMode { Continuous = 0 , Pulsed = 1 , Coarse = 2 }
 
enum  CameraMode { Normal = 0 , Advanced = 1 }
 
enum  TriggerMode { None = 0 , Gate_Clk = 1 , Frame = 2 }
 
enum  State { Disabled = 0 , Enabled = 1 }
 
enum  CorrelationMode { Linear = 0 , MultiTau = 1 }
 

Functions

HermesReturn HermesConstr (Hermes_H *Hermes_in, CameraMode m, char *Device_ID)
 
HermesReturn HermesDestr (Hermes_H Hermes)
 
void PrintErrorCode (FILE *fout, const char *FunName, HermesReturn retcode)
 
HermesReturn HermesSetCameraPar (Hermes_H Hermes, UInt16 Exposure, UInt32 NFrames, UInt16 NIntegFrames, UInt16 NCounters, State Force8bit, State Half_array, State Signed_data)
 
HermesReturn HermesSetCameraParSubArray (Hermes_H Hermes, UInt16 Exposure, UInt32 NFrames, UInt16 NIntegFrames, State Force8bit, UInt16 Npixels)
 
HermesReturn HermesSetDeadTime (Hermes_H Hermes, UInt16 Val)
 
HermesReturn HermesSetDeadTimeCorrection (Hermes_H Hermes, State s)
 
HermesReturn HermesSetAdvancedMode (Hermes_H Hermes, State s)
 
HermesReturn HermesSetBackgroundImg (Hermes_H Hermes, UInt16 *Img)
 
HermesReturn HermesSetBackgroundSubtraction (Hermes_H Hermes, State s)
 
HermesReturn HermesSetGateMode (Hermes_H Hermes, UInt16 counter, GateMode Mode)
 
HermesReturn HermesSetGateValues (Hermes_H Hermes, Int16 Shift, Int16 Length)
 
HermesReturn HermesSetDualGate (Hermes_H Hermes, State DualGate_State, int StartShift, int FirstGateWidth, int SecondGateWidth, int Gap)
 
HermesReturn HermesSetTripleGate (Hermes_H Hermes, State TripleGate_State, int StartShift, int FirstGateWidth, int SecondGateWidth, int ThirdGateWidth, int Gap1, int Gap2)
 
HermesReturn HermesSetCoarseGateValues (Hermes_H Hermes, UInt16 Counter, UInt16 Start, UInt16 Stop)
 
HermesReturn HermesSetTriggerOutState (Hermes_H Hermes, TriggerMode Mode)
 
HermesReturn HermesSetSyncInState (Hermes_H Hermes, State s, int frames)
 
HermesReturn HermesSetFlimPar (Hermes_H Hermes, UInt16 FLIM_steps, UInt16 FLIM_shift, Int16 FLIM_start, UInt16 Length, int *FLIM_frame_time)
 
HermesReturn HermesSetFlimState (Hermes_H Hermes, State FLIM_State)
 
HermesReturn HermesApplySettings (Hermes_H Hermes)
 
HermesReturn HermesGetDeadTime (Hermes_H Hermes, UInt16 Val, UInt16 *ReturnVal)
 
HermesReturn HermesGetGateWidth (Hermes_H Hermes, UInt16 counter, Int16 Val, double *ReturnVal)
 
HermesReturn HermesGetGateShift (Hermes_H Hermes, UInt16 counter, Int16 Val, Int16 *ReturnVal)
 
HermesReturn HermesIs16Bit (Hermes_H Hermes, short *is16bit)
 
HermesReturn HermesIsTriggered (Hermes_H Hermes, short *isTriggered)
 
HermesReturn HermesGetVersion (Hermes_H Hermes, double *Firmware_Version, double *Software_Version, char *Custom_version)
 
HermesReturn HermesGetSerial (Hermes_H Hermes, char *Camera_ID, char *Camera_serial)
 
HermesReturn HermesDeviceInfo (char *Device_ID, char *Camera_serial, double *Firmware_Version, double *Software_Version, char *Firmware_Custom_Version, char *Software_Custom_Version)
 
HermesReturn HermesLiveSetModeON (Hermes_H Hermes)
 
HermesReturn HermesLiveSetModeOFF (Hermes_H Hermes)
 
HermesReturn HermesLiveGetImg (Hermes_H Hermes, UInt16 *Img)
 
HermesReturn HermesSnapPrepare (Hermes_H Hermes)
 
HermesReturn HermesSnapAcquire (Hermes_H Hermes)
 
HermesReturn HermesSnapGetImageBuffer (Hermes_H Hermes, BUFFER_H *buffer, int *DataDepth)
 
HermesReturn HermesSnapGetImgPosition (Hermes_H Hermes, UInt16 *Img, UInt32 Position, UInt16 counter)
 
HermesReturn HermesContAcqToFileStart (Hermes_H Hermes, char *filename)
 
HermesReturn HermesContAcqToFileGetMemory (Hermes_H Hermes, double *total_bytes)
 
HermesReturn HermesContAcqToFileStop (Hermes_H Hermes)
 
HermesReturn HermesContAcqToMemoryStart (Hermes_H Hermes)
 
HermesReturn HermesContAcqToMemoryGetBuffer (Hermes_H Hermes, double *total_bytes, BUFFER_H *buffer)
 
HermesReturn HermesContAcqToMemoryStop (Hermes_H Hermes)
 
HermesReturn HermesSaveImgDisk (Hermes_H Hermes, UInt32 Start_Img, UInt32 End_Img, char *filename, OutFileFormat mode)
 
HermesReturn HermesSaveAveragedImgDisk (Hermes_H Hermes, UInt16 counter, char *filename, OutFileFormat mode, short isDouble)
 
HermesReturn HermesSaveFlimDisk (Hermes_H Hermes, char *filename, OutFileFormat mode)
 
HermesReturn HermesReadHermesFileFormatImage (char *filename, UInt32 ImgIdx, UInt16 counter, UInt16 *Img, char header[1024])
 
HermesReturn HermesAverageImg (Hermes_H Hermes, double *Img, UInt16 counter)
 
HermesReturn HermesStDevImg (Hermes_H Hermes, double *Img, UInt16 counter)
 
HermesReturn HermesSetCorrelationMode (Hermes_H Hermes, CorrelationMode CM, int NCorrChannels, State s)
 
HermesReturn HermesCorrelationImg (Hermes_H Hermes, UInt16 counter)
 
HermesReturn HermesSaveCorrelationImg (Hermes_H Hermes, char *filename)
 
HermesReturn HermesResetOverilluminationProtection (Hermes_H Hermes)
 

Detailed Description

Hermes software development kit.

This C header contains all the functions to operate the Hermes camera in user defined applications.

Macro Definition Documentation

◆ MAX_DEAD_TIME

#define MAX_DEAD_TIME   150

Maximum allowed dead-time in nanoseconds.

The dead-time is set to MAX_DEAD_TIME, when higher values are requested.

Examples
SDK_Example.c.

◆ MIN_DEAD_TIME

#define MIN_DEAD_TIME   30

Minimum allowed dead-time in nanoseconds.

The dark-counts rate and after-pulsing probability depend on the used dead-time setting: the lower the dead-time, the higher the dark-counts rate and after-pulsing probability. However, a long dead-time limits the maximum number of photons per second detected by the matrix of SPADs. It is recommended to set this parameter to an intermediate value, e.g. 50 ns.

Examples
SDK_Example.c.