areaDetector  3-12-1
EPICS areaDetector framework
Classes | Macros | Enumerations | Functions
LightField.cpp File Reference
#include "stdafx.h"
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <epicsTime.h>
#include <epicsThread.h>
#include <epicsEvent.h>
#include <epicsMutex.h>
#include <epicsString.h>
#include <epicsStdio.h>
#include <cantProceed.h>
#include <ellLib.h>
#include <epicsExit.h>
#include <iocsh.h>
#include "ADDriver.h"
#include <epicsExport.h>

Classes

struct  settingMap
 
class  LightField
 Driver for Princeton Instruments cameras using the LightField Automation software. More...
 

Macros

#define DRIVER_VERSION   "2.6.0"
 
#define LIGHTFIELD_VERSION   "6.4.1"
 
#define LF_POLL_TIME   1.0
 
#define MAX_ENUM_STATES   16
 
#define LFGainString   "LF_GAIN"
 Driver-specific parameters for the Lightfield driver. More...
 
#define LFNumAccumulationsString   "LF_NUM_ACCUMULATIONS"
 
#define LFNumAcquisitionsString   "LF_NUM_ACQUISITIONS"
 
#define LFGratingString   "LF_GRATING"
 
#define LFGratingWavelengthString   "LF_GRATING_WAVELENGTH"
 
#define LFSAGEnableString   "LF_SAG_ENABLE"
 
#define LFSAGStartingWavelengthString   "LF_SAG_STARTING_WAVELENGTH"
 
#define LFSAGEndingWavelengthString   "LF_SAG_ENDING_WAVELENGTH"
 
#define LFEntranceSideWidthString   "LF_ENTRANCE_SIDE_WIDTH"
 
#define LFEntranceSelectedString   "LF_ENTRANCE_SELECTED"
 
#define LFExitSelectedString   "LF_EXIT_SELECTED"
 
#define LFExperimentNameString   "LF_EXPERIMENT_NAME"
 
#define LFUpdateExperimentsString   "LF_UPDATE_EXPERIMENTS"
 
#define LFShutterModeString   "LF_SHUTTER_MODE"
 
#define LFBackgroundPathString   "LF_BACKGROUND_PATH"
 
#define LFBackgroundPathExistsString   "LF_BACKGROUND_PATH_EXISTS"
 
#define LFBackgroundFileString   "LF_BACKGROUND_FILE"
 
#define LFBackgroundFullFileString   "LF_BACKGROUND_FULL_FILE"
 
#define LFBackgroundEnableString   "LF_BACKGROUND_ENABLE"
 
#define LFIntensifierEnableString   "LF_INTENSIFIER_ENABLE"
 
#define LFIntensifierGainString   "LF_INTENSIFIER_GAIN"
 
#define LFGatingModeString   "LF_GATING_MODE"
 
#define LFTriggerFrequencyString   "LF_TRIGGER_FREQUENCY"
 
#define LFSyncMasterEnableString   "LF_SYNCMASTER_ENABLE"
 
#define LFSyncMaster2DelayString   "LF_SYNCMASTER2_DELAY"
 
#define LFRepGateWidthString   "LF_REP_GATE_WIDTH"
 
#define LFRepGateDelayString   "LF_REP_GATE_DELAY"
 
#define LFSeqStartGateWidthString   "LF_SEQ_START_GATE_WIDTH"
 
#define LFSeqStartGateDelayString   "LF_SEQ_START_GATE_DELAY"
 
#define LFSeqEndGateWidthString   "LF_SEQ_END_GATE_WIDTH"
 
#define LFSeqEndGateDelayString   "LF_SEQ_END_GATE_DELAY"
 
#define LFAuxWidthString   "LF_AUX_WIDTH"
 
#define LFAuxDelayString   "LF_AUX_DELAY"
 
#define LFReadyToRunString   "LF_READY_TO_RUN"
 
#define LFFilePathString   "LF_FILE_PATH"
 
#define LFFileNameString   "LF_FILE_NAME"
 
#define FIRST_LF_PARAM   LFGain_
 
#define LAST_LF_PARAM   LFFileName_
 
#define NUM_LF_PARAMS   ((int)(&LAST_LF_PARAM - &FIRST_LF_PARAM + 1))
 

Enumerations

enum  LFImageMode_t { LFImageModeNormal, LFImageModePreview, LFImageModeBackground }
 
enum  LFSetting_t {
  LFSettingInt32, LFSettingInt64, LFSettingEnum, LFSettingBoolean,
  LFSettingDouble, LFSettingString, LFSettingPulse, LFSettingROI
}
 

Functions

void completionEventHandler (System::Object^ sender, ExperimentCompletedEventArgs^ args)
 
void imageDataEventHandler (System::Object^ sender, ImageDataSetReceivedEventArgs^ args)
 
void settingChangedEventHandler (System::Object^ sender, SettingChangedEventArgs^ args)
 
void LFExitHandler (void *args)
 
void LFPollerTask (void *args)
 
int LightFieldConfig (const char *portName, const char *experimentName, int maxBuffers, size_t maxMemory, int priority, int stackSize)
 
 epicsExportRegistrar (LightFieldRegister)
 

Macro Definition Documentation

◆ DRIVER_VERSION

#define DRIVER_VERSION   "2.6.0"

◆ FIRST_LF_PARAM

#define FIRST_LF_PARAM   LFGain_

◆ LAST_LF_PARAM

#define LAST_LF_PARAM   LFFileName_

◆ LF_POLL_TIME

#define LF_POLL_TIME   1.0

◆ LFAuxDelayString

#define LFAuxDelayString   "LF_AUX_DELAY"

◆ LFAuxWidthString

#define LFAuxWidthString   "LF_AUX_WIDTH"

◆ LFBackgroundEnableString

#define LFBackgroundEnableString   "LF_BACKGROUND_ENABLE"

◆ LFBackgroundFileString

#define LFBackgroundFileString   "LF_BACKGROUND_FILE"

◆ LFBackgroundFullFileString

#define LFBackgroundFullFileString   "LF_BACKGROUND_FULL_FILE"

◆ LFBackgroundPathExistsString

#define LFBackgroundPathExistsString   "LF_BACKGROUND_PATH_EXISTS"

◆ LFBackgroundPathString

#define LFBackgroundPathString   "LF_BACKGROUND_PATH"

◆ LFEntranceSelectedString

#define LFEntranceSelectedString   "LF_ENTRANCE_SELECTED"

◆ LFEntranceSideWidthString

#define LFEntranceSideWidthString   "LF_ENTRANCE_SIDE_WIDTH"

◆ LFExitSelectedString

#define LFExitSelectedString   "LF_EXIT_SELECTED"

◆ LFExperimentNameString

#define LFExperimentNameString   "LF_EXPERIMENT_NAME"

◆ LFFileNameString

#define LFFileNameString   "LF_FILE_NAME"

◆ LFFilePathString

#define LFFilePathString   "LF_FILE_PATH"

◆ LFGainString

#define LFGainString   "LF_GAIN"

Driver-specific parameters for the Lightfield driver.

◆ LFGatingModeString

#define LFGatingModeString   "LF_GATING_MODE"

◆ LFGratingString

#define LFGratingString   "LF_GRATING"

◆ LFGratingWavelengthString

#define LFGratingWavelengthString   "LF_GRATING_WAVELENGTH"

◆ LFIntensifierEnableString

#define LFIntensifierEnableString   "LF_INTENSIFIER_ENABLE"

◆ LFIntensifierGainString

#define LFIntensifierGainString   "LF_INTENSIFIER_GAIN"

◆ LFNumAccumulationsString

#define LFNumAccumulationsString   "LF_NUM_ACCUMULATIONS"

◆ LFNumAcquisitionsString

#define LFNumAcquisitionsString   "LF_NUM_ACQUISITIONS"

◆ LFReadyToRunString

#define LFReadyToRunString   "LF_READY_TO_RUN"

◆ LFRepGateDelayString

#define LFRepGateDelayString   "LF_REP_GATE_DELAY"

◆ LFRepGateWidthString

#define LFRepGateWidthString   "LF_REP_GATE_WIDTH"

◆ LFSAGEnableString

#define LFSAGEnableString   "LF_SAG_ENABLE"

◆ LFSAGEndingWavelengthString

#define LFSAGEndingWavelengthString   "LF_SAG_ENDING_WAVELENGTH"

◆ LFSAGStartingWavelengthString

#define LFSAGStartingWavelengthString   "LF_SAG_STARTING_WAVELENGTH"

◆ LFSeqEndGateDelayString

#define LFSeqEndGateDelayString   "LF_SEQ_END_GATE_DELAY"

◆ LFSeqEndGateWidthString

#define LFSeqEndGateWidthString   "LF_SEQ_END_GATE_WIDTH"

◆ LFSeqStartGateDelayString

#define LFSeqStartGateDelayString   "LF_SEQ_START_GATE_DELAY"

◆ LFSeqStartGateWidthString

#define LFSeqStartGateWidthString   "LF_SEQ_START_GATE_WIDTH"

◆ LFShutterModeString

#define LFShutterModeString   "LF_SHUTTER_MODE"

◆ LFSyncMaster2DelayString

#define LFSyncMaster2DelayString   "LF_SYNCMASTER2_DELAY"

◆ LFSyncMasterEnableString

#define LFSyncMasterEnableString   "LF_SYNCMASTER_ENABLE"

◆ LFTriggerFrequencyString

#define LFTriggerFrequencyString   "LF_TRIGGER_FREQUENCY"

◆ LFUpdateExperimentsString

#define LFUpdateExperimentsString   "LF_UPDATE_EXPERIMENTS"

◆ LIGHTFIELD_VERSION

#define LIGHTFIELD_VERSION   "6.4.1"

◆ MAX_ENUM_STATES

#define MAX_ENUM_STATES   16

◆ NUM_LF_PARAMS

#define NUM_LF_PARAMS   ((int)(&LAST_LF_PARAM - &FIRST_LF_PARAM + 1))

Enumeration Type Documentation

◆ LFImageMode_t

Enumerator
LFImageModeNormal 
LFImageModePreview 
LFImageModeBackground 

◆ LFSetting_t

Enumerator
LFSettingInt32 
LFSettingInt64 
LFSettingEnum 
LFSettingBoolean 
LFSettingDouble 
LFSettingString 
LFSettingPulse 
LFSettingROI 

Function Documentation

◆ completionEventHandler()

void completionEventHandler ( System::Object^  sender,
ExperimentCompletedEventArgs^  args 
)

◆ epicsExportRegistrar()

epicsExportRegistrar ( LightFieldRegister  )

◆ imageDataEventHandler()

void imageDataEventHandler ( System::Object^  sender,
ImageDataSetReceivedEventArgs^  args 
)

◆ LFExitHandler()

void LFExitHandler ( void *  args)

◆ LFPollerTask()

void LFPollerTask ( void *  args)

◆ LightFieldConfig()

int LightFieldConfig ( const char *  portName,
const char *  experimentName,
int  maxBuffers,
size_t  maxMemory,
int  priority,
int  stackSize 
)

◆ settingChangedEventHandler()

void settingChangedEventHandler ( System::Object^  sender,
SettingChangedEventArgs^  args 
)