areaDetector  3-5-0
EPICS areaDetector framework
Classes | Macros | Functions
shamrock.cpp File Reference
#include <iocsh.h>
#include <stdlib.h>
#include <string.h>
#include <epicsString.h>
#include <asynPortDriver.h>
#include "atmcdLXd.h"
#include <ShamrockCIF.h>
#include <epicsExport.h>

Classes

class  shamrock
 Driver for Andor Shamrock spectrographs. More...
 

Macros

#define SRWavelengthString   "SR_WAVELENGTH"
 
#define SRMinWavelengthString   "SR_MIN_WAVELENGTH"
 
#define SRMaxWavelengthString   "SR_MAX_WAVELENGTH"
 
#define SRCalibrationString   "SR_CALIBRATION"
 
#define SRGratingString   "SR_GRATING"
 
#define SRNumGratingsString   "SR_NUM_GRATINGS"
 
#define SRGratingExistsString   "SR_GRATING_EXISTS"
 
#define SRFlipperMirrorExistsString   "SR_FLIPPER_MIRROR_EXISTS"
 
#define SRFlipperMirrorPortString   "SR_FLIPPER_MIRROR_PORT"
 
#define SRSlitExistsString   "SR_SLIT_EXISTS"
 
#define SRSlitSizeString   "SR_SLIT_SIZE"
 
#define MAX_ERROR_MESSAGE_SIZE   100
 
#define MAX_SLITS   4
 
#define MAX_GRATINGS   3
 
#define MAX_FLIPPER_MIRRORS   2
 
#define MAX_ADDR   4
 
#define FIRST_SR_PARAM   SRWavelength_
 Wavelength (float64 read/write) More...
 
#define LAST_SR_PARAM   SRSlitSize_
 Slit width (float64 read/write) More...
 
#define NUM_SR_PARAMS   ((int)(&LAST_SR_PARAM - &FIRST_SR_PARAM + 1))
 Number of asynPortDriver parameters this driver supports. More...
 

Functions

int shamrockConfig (const char *portName, int shamrockId, const char *iniPath, int priority, int stackSize)
 Configuration function to configure one spectrograph. More...
 
 epicsExportRegistrar (shamrockRegister)
 

Macro Definition Documentation

◆ FIRST_SR_PARAM

#define FIRST_SR_PARAM   SRWavelength_

Wavelength (float64 read/write)

◆ LAST_SR_PARAM

#define LAST_SR_PARAM   SRSlitSize_

Slit width (float64 read/write)

◆ MAX_ADDR

#define MAX_ADDR   4

◆ MAX_ERROR_MESSAGE_SIZE

#define MAX_ERROR_MESSAGE_SIZE   100

◆ MAX_FLIPPER_MIRRORS

#define MAX_FLIPPER_MIRRORS   2

◆ MAX_GRATINGS

#define MAX_GRATINGS   3

◆ MAX_SLITS

#define MAX_SLITS   4

◆ NUM_SR_PARAMS

#define NUM_SR_PARAMS   ((int)(&LAST_SR_PARAM - &FIRST_SR_PARAM + 1))

Number of asynPortDriver parameters this driver supports.

◆ SRCalibrationString

#define SRCalibrationString   "SR_CALIBRATION"

◆ SRFlipperMirrorExistsString

#define SRFlipperMirrorExistsString   "SR_FLIPPER_MIRROR_EXISTS"

◆ SRFlipperMirrorPortString

#define SRFlipperMirrorPortString   "SR_FLIPPER_MIRROR_PORT"

◆ SRGratingExistsString

#define SRGratingExistsString   "SR_GRATING_EXISTS"

◆ SRGratingString

#define SRGratingString   "SR_GRATING"

◆ SRMaxWavelengthString

#define SRMaxWavelengthString   "SR_MAX_WAVELENGTH"

◆ SRMinWavelengthString

#define SRMinWavelengthString   "SR_MIN_WAVELENGTH"

◆ SRNumGratingsString

#define SRNumGratingsString   "SR_NUM_GRATINGS"

◆ SRSlitExistsString

#define SRSlitExistsString   "SR_SLIT_EXISTS"

◆ SRSlitSizeString

#define SRSlitSizeString   "SR_SLIT_SIZE"

◆ SRWavelengthString

#define SRWavelengthString   "SR_WAVELENGTH"

Function Documentation

◆ epicsExportRegistrar()

epicsExportRegistrar ( shamrockRegister  )

◆ shamrockConfig()

int shamrockConfig ( const char *  portName,
int  shamrockId,
const char *  iniPath,
int  priority,
int  stackSize 
)

Configuration function to configure one spectrograph.

This function need to be called once for each spectrography to be used by the IOC. A call to this function instanciates one object from the shamrock class.

Parameters
[in]portNameasyn port name to assign to the camera.
[in]shamrockIdThe spectrograph index.
[in]iniPathThe path to the camera ini file
[in]priorityThe EPICS thread priority for this driver. 0=use asyn default.
[in]stackSizeThe size of the stack for the EPICS port thread. 0=use asyn default.