/home/epics/devel/areaDetector/ADApp/adscSrc/adsc.cpp File Reference

#include <stddef.h>
#include <stdlib.h>
#include <stdarg.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <libgen.h>
#include <epicsAssert.h>
#include <epicsTime.h>
#include <epicsThread.h>
#include <epicsEvent.h>
#include <epicsString.h>
#include <epicsStdio.h>
#include <epicsMutex.h>
#include <cantProceed.h>
#include <iocsh.h>
#include <epicsExport.h>
#include "ADDriver.h"
#include <detcon_entry.h>
#include <detcon_par.h>
#include <detcon_state.h>

Classes

struct  AdscSensor_t
 ADSC sensor structure. More...
class  adsc
 Driver for ADSC detectors (Q4, Q4r, Q210, Q210r, Q270, Q315, Q315r). More...

Defines

#define ADSC_CCD_INITIALIZE_SLEEP_TIME   0.5
#define ADSC_CCD_INITIALIZE_TIMEOUT   10.0
#define PATH_COMPONENT_SEPARATOR   "/"
#define START_EXPOSURE_TIMEOUT   30.0
#define STOP_EXPOSURE_TIMEOUT   10.0
#define STATE_POLL_DELAY   0.05
#define NUM_ADSC_MODELS
#define NUM_ADSC_CCD_STATES
#define NUM_START_TRIGGER_MODES
#define AdscReadConditionString   "ADSC_READ_CONDITION"
 Driver-specific parameters for the ADSC driver.
#define AdscStateString   "ADSC_STATE"
#define AdscStatusString   "ADSC_STATUS"
#define AdscLastErrorString   "ADSC_LAST_ERROR"
#define AdscSoftwareResetString   "ADSC_SOFTWARE_RESET"
#define AdscLastImageString   "ADSC_LAST_IMAGE"
#define AdscOkToExposeString   "ADSC_OK_TO_EXPOSE"
#define AdscExternSwTriggerControlString   "ADSC_EXTERN_SW_TRIGGER_CTRL"
#define AdscReuseDarksString   "ADSC_REUSE_DARKS"
#define AdscDezingerString   "ADSC_DEZINGER"
#define AdscAdcString   "ADSC_ADC"
#define AdscRawString   "ADSC_RAW"
#define AdscImageTransformString   "ADSC_IMAGE_TRANSFORM"
#define AdscStoredDarksString   "ADSC_STORED_DARKS"
#define AdscBeamCenterXString   "ADSC_BEAM_CENTER_X"
#define AdscBeamCenterYString   "ADSC_BEAM_CENTER_Y"
#define AdscDistanceString   "ADSC_DISTANCE"
#define AdscTwoThetaString   "ADSC_TWO_THETA"
#define AdscAxisString   "ADSC_AXIS"
#define AdscWavelengthString   "ADSC_WAVELENGTH"
#define AdscImageWidthString   "ADSC_IMAGE_WIDTH"
#define AdscPhiString   "ADSC_PHI"
#define AdscOmegaString   "ADSC_OMEGA"
#define AdscPrivateStopExpRetryCntString   "ADSC_PRVT_STOP_EXP_RTRY_CNT"
#define AdscKappaString   "ADSC_KAPPA"
#define FIRST_ADSC_PARAM   AdscReadCondition
#define LAST_ADSC_PARAM   AdscPrivateStopExpRetryCnt
#define NUM_ADSC_PARAMS   (&LAST_ADSC_PARAM - &FIRST_ADSC_PARAM + 1)

Enumerations

enum  AdscStatus_t {
  AdscStatusOk, AdscStatusInterrupt, AdscStatusTimeout, AdscStatusAgain,
  AdscStatusError
}
 Status choices. More...
enum  AdscExternSwTriggerControl_t { AdscExternSwTriggerControlStop, AdscExternSwTriggerControlStart, AdscExternSwTriggerControlOk, AdscExternSwTriggerControlAgain }
 Trigger choices. More...
enum  AdscModel_t {
  AdscQ4, AdscQ4r, AdscQ210, AdscQ210r,
  AdscQ270, AdscQ315, AdscQ315r
}
 Model choices. More...
enum  AdscTriggerStartMode_t { AdscTriggerStartInternal, AdscTriggerStartExternSw }
 These parameters describe the trigger modes of this driver; they must agree with the values in the mbbo/mbbi records in the adsc.template database (or the ADBase.template database if the default is used). More...

Functions

int adscConfig (const char *portName, const char *modelName)
 epicsExportRegistrar (adscRegister)

Define Documentation

#define ADSC_CCD_INITIALIZE_SLEEP_TIME   0.5

#define ADSC_CCD_INITIALIZE_TIMEOUT   10.0

#define AdscAdcString   "ADSC_ADC"

#define AdscAxisString   "ADSC_AXIS"

#define AdscBeamCenterXString   "ADSC_BEAM_CENTER_X"

#define AdscBeamCenterYString   "ADSC_BEAM_CENTER_Y"

#define AdscDezingerString   "ADSC_DEZINGER"

#define AdscDistanceString   "ADSC_DISTANCE"

#define AdscExternSwTriggerControlString   "ADSC_EXTERN_SW_TRIGGER_CTRL"

#define AdscImageTransformString   "ADSC_IMAGE_TRANSFORM"

#define AdscImageWidthString   "ADSC_IMAGE_WIDTH"

#define AdscKappaString   "ADSC_KAPPA"

#define AdscLastErrorString   "ADSC_LAST_ERROR"

#define AdscLastImageString   "ADSC_LAST_IMAGE"

#define AdscOkToExposeString   "ADSC_OK_TO_EXPOSE"

#define AdscOmegaString   "ADSC_OMEGA"

#define AdscPhiString   "ADSC_PHI"

#define AdscPrivateStopExpRetryCntString   "ADSC_PRVT_STOP_EXP_RTRY_CNT"

#define AdscRawString   "ADSC_RAW"

#define AdscReadConditionString   "ADSC_READ_CONDITION"

Driver-specific parameters for the ADSC driver.

#define AdscReuseDarksString   "ADSC_REUSE_DARKS"

#define AdscSoftwareResetString   "ADSC_SOFTWARE_RESET"

#define AdscStateString   "ADSC_STATE"

#define AdscStatusString   "ADSC_STATUS"

#define AdscStoredDarksString   "ADSC_STORED_DARKS"

#define AdscTwoThetaString   "ADSC_TWO_THETA"

#define AdscWavelengthString   "ADSC_WAVELENGTH"

#define FIRST_ADSC_PARAM   AdscReadCondition

#define LAST_ADSC_PARAM   AdscPrivateStopExpRetryCnt

#define NUM_ADSC_CCD_STATES

Value:

((int)(sizeof(AdscCcdStateStrings) / \
    sizeof(AdscCcdStateStrings[0])))

#define NUM_ADSC_MODELS

Value:

((int)(sizeof(AdscModelStrings) / \
    sizeof(AdscModelStrings[0])))

#define NUM_ADSC_PARAMS   (&LAST_ADSC_PARAM - &FIRST_ADSC_PARAM + 1)

#define NUM_START_TRIGGER_MODES

Value:

((int)(sizeof(AdscTriggerStartStrings) / \
    sizeof(AdscTriggerStartStrings[0])))

#define PATH_COMPONENT_SEPARATOR   "/"

#define START_EXPOSURE_TIMEOUT   30.0

#define STATE_POLL_DELAY   0.05

#define STOP_EXPOSURE_TIMEOUT   10.0


Enumeration Type Documentation

Trigger choices.

Enumerator:
AdscExternSwTriggerControlStop 
AdscExternSwTriggerControlStart 
AdscExternSwTriggerControlOk 
AdscExternSwTriggerControlAgain 

Model choices.

Enumerator:
AdscQ4 
AdscQ4r 
AdscQ210 
AdscQ210r 
AdscQ270 
AdscQ315 
AdscQ315r 

Status choices.

Enumerator:
AdscStatusOk 
AdscStatusInterrupt 
AdscStatusTimeout 
AdscStatusAgain 
AdscStatusError 

These parameters describe the trigger modes of this driver; they must agree with the values in the mbbo/mbbi records in the adsc.template database (or the ADBase.template database if the default is used).

Enumerator:
AdscTriggerStartInternal 
AdscTriggerStartExternSw 


Function Documentation

int adscConfig ( const char *  portName,
const char *  modelName 
)

epicsExportRegistrar ( adscRegister   ) 


Generated on Thu May 20 18:01:42 2010 for areaDetector by  doxygen 1.5.7.1