EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: AreaDetector ADAndor - iXon Ultra 888
From: Mark Rivers <[email protected]>
To: "'Dunning, Michael'" <[email protected]>, EPICS Tech-Talk <[email protected]>
Date: Tue, 5 Jan 2016 00:54:05 +0000

Hi Michael,

 

The problem is coming in the call to AndorCCD::setupShutter.  This is called from the AndorCCD constructor as follows:

 

  status |= setupShutter(-1);

 

If it returns an error then the constructor will fail, and you will get the errors you see.  So we need to figure out why AndorCCD::setupShutter is failing.

 

This is the code:

 

/** Controls shutter

* @param[in] command 0=close, 1=open, -1=no change, only set other parameters */

asynStatus AndorCCD::setupShutter(int command)

{

  double dTemp;

  int openTime, closeTime;

  int shutterExTTL;

  int shutterMode;

  asynStatus status=asynSuccess;

  static const char *functionName = "setupShutter";

 

  getDoubleParam(ADShutterOpenDelay, &dTemp);

  // Convert to ms

  openTime = (int)(dTemp * 1000.);

  getDoubleParam(ADShutterCloseDelay, &dTemp);

  closeTime = (int)(dTemp * 1000.);

  getIntegerParam(AndorShutterMode, &shutterMode);

  getIntegerParam(AndorShutterExTTL, &shutterExTTL);

 

  if (command == ADShutterClosed) {

    shutterMode = AShutterClose;

    setIntegerParam(ADShutterStatus, ADShutterClosed);

  }

  else if (command == ADShutterOpen) {

    if (shutterMode == AShutterOpen) {

      setIntegerParam(ADShutterStatus, ADShutterOpen);

    }

    // No need to change shutterMode, we leave it alone and it shutter

    // will do correct thing, i.e. auto or open depending shutterMode

  }

 

  try {

    asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW,

      "%s:%s:, SetShutter(%d,%d,%d,%d)\n",

      driverName, functionName, shutterExTTL, shutterMode, closeTime, openTime);

    checkStatus(SetShutter(shutterExTTL, shutterMode, closeTime, openTime));

 

  } catch (const std::string &e) {

    asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,

      "%s:%s: %s\n",

      driverName, functionName, e.c_str());

    status = asynError;

  }

  return status;

}

 

This is the error you are getting:

2016/01/04 15:25:05.348 andorCCD:setupShutter: ERROR: Parameter 3 not valid.

 

So the error is coming in the call to the Andor vendor library function SetShutter(), and the error is "Parameter 3 not valid".  Parameter 3 is closeTime.  So it appears that an invalid value for closeTime is being passed.  closeTime is the value of the ADShutterCloseDelay parameter, converted to milliseconds.  ADShutterCloseDelay is defined by the following record in ADBase.template:

 

record(ao, "$(P)$(R)ShutterCloseDelay")

{

   field(PINI, "YES")

   field(DTYP, "asynFloat64")

   field(OUT,  "@asyn($(PORT),$(ADDR),$(TIMEOUT))SHUTTER_CLOSE_DELAY")

   field(PREC, "3")

   field(VAL,  "0.0")

   info(autosaveFields, "VAL")

}

 

So the default value is 0.0.  Have you modified this record, or could there be a non-zero value in autosave? 

 

You can see that there is an asynPrint() statement just before the call to SetShutter in the above function which will print the values of all of the arguments being passed to SetShutter().  It is a bit tricky to enable ASYN_TRACE_FLOW in the constructor, so the simplest thing to do is just change that asynPrint() statement to a printf().  Then you can see what value of closeTime is being passed to SetShutter().  Hopefully the documentation for your camera gives the valid range of closeTime, or else you can just experiment to find a valid value.  Then you will need to create a new database that modifies the value of $(P)$(R)ShutterCloseDelay, or modify the one in ADCore/ADApp/Db/ADBase.template (which is probably not a good idea).

 

Mark

 

 

 

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Dunning, Michael
Sent: Monday, January 04, 2016 6:23 PM
To: EPICS Tech-Talk
Subject: AreaDetector ADAndor - iXon Ultra 888

 

I'm having problems running ADAndor (R2-4) on RHEL6 64-bit (kernel

2.6.32-573.8.1.el6.x86_64) with an Andor iXon Ultra 888 USB 3.0 CCD.

I'm able to acquire an image with the Andor SDK (version 2.99.30000.1)

using their example programs, but I get the following when running

AreaDetector:

 

$ ./st.cmd

#!../../bin/linux-x86_64/andorCCDApp

< envPaths

epicsEnvSet("ARCH","linux-x86_64")

epicsEnvSet("IOC","sioc-asta-ada01")

epicsEnvSet("TOP","/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.4/iocTop/andor/R2.4")

epicsEnvSet("EPICS_SITE_TOP","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4")

epicsEnvSet("EPICS_MODULES","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules")

epicsEnvSet("TOOLSDIR","/afs/slac/g/testfac/tools")

epicsEnvSet("HDF5","/afs/slac/g/testfac/tools/hdf5")

epicsEnvSet("SZIP","/afs/slac/g/testfac/tools/szip")

epicsEnvSet("MCA","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/mca/R7.6")

epicsEnvSet("AREAD","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4")

epicsEnvSet("ADANDOR","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADAndor")

epicsEnvSet("SUPPORT","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules")

epicsEnvSet("AREA_DETECTOR","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4")

epicsEnvSet("EPICS_BASE","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/base")

epicsEnvSet("ASYN","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/asyn/R4.27")

epicsEnvSet("ADBINARIES","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADBinaries")

epicsEnvSet("ADCORE","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADCore")

epicsEnvSet("AUTOSAVE","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/autosave/R5.7.1")

epicsEnvSet("BUSY","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/busy/R1.6.1")

epicsEnvSet("CALC","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/calc/R3.6.1")

epicsEnvSet("SSCAN","/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/sscan/R2.10")

errlogInit(20000)

dbLoadDatabase("/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.4/iocTop/andor/R2.4/dbd/andorCCDApp.dbd")

andorCCDApp_registerRecordDeviceDriver(pdbbase)

epicsEnvSet("PREFIX", "ANDOR1:")

epicsEnvSet("XSIZE",  "1024")

epicsEnvSet("YSIZE",  "1024")

epicsEnvSet("NELEM",  "1100000")

epicsEnvSet("PORT",   "ANDOR")

epicsEnvSet("QSIZE",  "20")

epicsEnvSet("NCHANS", "2048")

epicsEnvSet("CBUFFS", "500")

epicsEnvSet("EPICS_DB_INCLUDE_PATH",

"/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADCore/db")

# andorCCDConfig(const char *portName, const char *installPath, int shamrockID,

#                   int maxBuffers, size_t maxMemory, int priority,

int stackSize)

#andorCCDConfig("$(PORT)","/usr/local/etc/andor/",0,-1,-1,0,0)

andorCCDConfig("ANDOR","/usr/local/etc/andor/",0,0,0,0,0)

andorCCD:AndorCCD: initializing camera

2016/01/04 15:25:05.348 andorCCD:setupShutter: ERROR: Parameter 3 not valid.

andorCCD:AndorCCD: unable to set camera parameters

#dbLoadRecords("$(ADCORE)/db/ADBase.template","P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1")

#dbLoadRecords("$(ADCORE)/db/NDFile.template","P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1")

dbLoadRecords("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADAndor/db/andorCCD.template",

  "P=ANDOR1:,R=cam1:,PORT=ANDOR,ADDR=0,TIMEOUT=1")

# Create a standard arrays plugin

NDStdArraysConfigure("Image1", 5, 0, "ANDOR", 0, 0)

#dbLoadRecords("$(ADCORE)/db/NDPluginBase.template","P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),NDARRAY_ADDR=0")

# Make NELEMENTS in the following be a little bigger than 2048*2048

# Use the following command for 32-bit images.  This is needed for

32-bit detectors or for 16-bit detectors in acccumulate mode if it

would overflow 16 bits

#dbLoadRecords("$(ADCORE)/db/NDStdArrays.template",

"P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,TYPE=Int32,FTVL=LONG,NELEMENTS=4200000")

# Use the following command for 16-bit images.  This can be used for

16-bit detector as long as accumulate mode would not result in 16-bit

overflow

dbLoadRecords("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADCore/db/NDStdArrays.template",

"P=ANDOR1:,R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR,TYPE=Int16,FTVL=SHORT,NELEMENTS=1100000")

#asynSetTraceMask($(PORT), 0, 255)

dbLoadRecords("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/asyn/R4.27/db/asynRecord.db","P=ANDOR1::,R=cam1:,PORT=cam1,ADDR=0,OMAX=0,IMAX=0")

# Load all other plugins using commonPlugins.cmd

< /afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADCore/iocBoot/commonPlugins.cmd

# Create a netCDF file saving plugin.

NDFileNetCDFConfigure("FileNetCDF1", 20, 0, "ANDOR", 0)

dbLoadRecords("NDFileNetCDF.template","P=ANDOR1:,R=netCDF1:,PORT=FileNetCDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create a TIFF file saving plugin

NDFileTIFFConfigure("FileTIFF1", 20, 0, "ANDOR", 0)

dbLoadRecords("NDFileTIFF.template",

"P=ANDOR1:,R=TIFF1:,PORT=FileTIFF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create a JPEG file saving plugin

NDFileJPEGConfigure("FileJPEG1", 20, 0, "ANDOR", 0)

dbLoadRecords("NDFileJPEG.template",

"P=ANDOR1:,R=JPEG1:,PORT=FileJPEG1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create a NeXus file saving plugin

NDFileNexusConfigure("FileNexus1", 20, 0, "ANDOR", 0)

dbLoadRecords("NDFileNexus.template",

"P=ANDOR1:,R=Nexus1:,PORT=FileNexus1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create an HDF5 file saving plugin

NDFileHDF5Configure("FileHDF1", 20, 0, "ANDOR", 0)

Warning: program compiled against libxml 209 using older 207

dbLoadRecords("NDFileHDF5.template",

"P=ANDOR1:,R=HDF1:,PORT=FileHDF1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create a Magick file saving plugin

NDFileMagickConfigure("FileMagick1", 20, 0, "ANDOR", 0)

dbLoadRecords("NDFileMagick.template","P=ANDOR1:,R=Magick1:,PORT=FileMagick1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create 4 ROI plugins

NDROIConfigure("ROI1", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDROI.template",       "P=ANDOR1:,R=ROI1:,

PORT=ROI1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

NDROIConfigure("ROI2", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDROI.template",       "P=ANDOR1:,R=ROI2:,

PORT=ROI2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

NDROIConfigure("ROI3", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDROI.template",       "P=ANDOR1:,R=ROI3:,

PORT=ROI3,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

NDROIConfigure("ROI4", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDROI.template",       "P=ANDOR1:,R=ROI4:,

PORT=ROI4,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create 8 ROIStat plugins

NDROIStatConfigure("ROISTAT1", 20, 0, "ANDOR", 0, 8, 0, 0)

dbLoadRecords("NDROIStat.template",   "P=ANDOR1:,R=ROIStat1:

,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:1:,PORT=ROISTAT1,ADDR=0,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:2:,PORT=ROISTAT1,ADDR=1,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:3:,PORT=ROISTAT1,ADDR=2,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:4:,PORT=ROISTAT1,ADDR=3,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:5:,PORT=ROISTAT1,ADDR=4,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:6:,PORT=ROISTAT1,ADDR=5,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:7:,PORT=ROISTAT1,ADDR=6,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDROIStatN.template",

"P=ANDOR1:,R=ROIStat1:8:,PORT=ROISTAT1,ADDR=7,TIMEOUT=1,NCHANS=2048")

# Create a processing plugin

NDProcessConfigure("PROC1", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDProcess.template",   "P=ANDOR1:,R=Proc1:,

PORT=PROC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create 5 statistics plugins

NDStatsConfigure("STATS1", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDStats.template",     "P=ANDOR1:,R=Stats1:,

PORT=STATS1,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1024,YSIZE=1024,NCHANS=2048,NDARRAY_PORT=ANDOR")

NDStatsConfigure("STATS2", 20, 0, "ROI1", 0, 0, 0)

dbLoadRecords("NDStats.template",     "P=ANDOR1:,R=Stats2:,

PORT=STATS2,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1024,YSIZE=1024,NCHANS=2048,NDARRAY_PORT=ANDOR")

NDStatsConfigure("STATS3", 20, 0, "ROI2", 0, 0, 0)

dbLoadRecords("NDStats.template",     "P=ANDOR1:,R=Stats3:,

PORT=STATS3,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1024,YSIZE=1024,NCHANS=2048,NDARRAY_PORT=ANDOR")

NDStatsConfigure("STATS4", 20, 0, "ROI3", 0, 0, 0)

dbLoadRecords("NDStats.template",     "P=ANDOR1:,R=Stats4:,

PORT=STATS4,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1024,YSIZE=1024,NCHANS=2048,NDARRAY_PORT=ANDOR")

NDStatsConfigure("STATS5", 20, 0, "ROI4", 0, 0, 0)

dbLoadRecords("NDStats.template",     "P=ANDOR1:,R=Stats5:,

PORT=STATS5,ADDR=0,TIMEOUT=1,HIST_SIZE=256,XSIZE=1024,YSIZE=1024,NCHANS=2048,NDARRAY_PORT=ANDOR")

# Create a transform plugin

NDTransformConfigure("TRANS1", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDTransform.template", "P=ANDOR1:,R=Trans1:,

PORT=TRANS1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create an overlay plugin with 8 overlays

NDOverlayConfigure("OVER1", 20, 0, "ANDOR", 0, 8, 0, 0)

dbLoadRecords("NDOverlay.template", "P=ANDOR1:,R=Over1:,

PORT=OVER1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:1:,NAME=ROI1,

SHAPE=1,O=Over1:,XPOS=ANDOR1:ROI1:MinX_RBV,YPOS=ANDOR1:ROI1:MinY_RBV,XSIZE=ANDOR1:ROI1:SizeX_RBV,YSIZE=ANDOR1:ROI1:SizeY_RBV,PORT=OVER1,ADDR=0,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:2:,NAME=ROI2,

SHAPE=1,O=Over1:,XPOS=ANDOR1:ROI2:MinX_RBV,YPOS=ANDOR1:ROI2:MinY_RBV,XSIZE=ANDOR1:ROI2:SizeX_RBV,YSIZE=ANDOR1:ROI2:SizeY_RBV,PORT=OVER1,ADDR=1,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:3:,NAME=ROI3,

SHAPE=1,O=Over1:,XPOS=ANDOR1:ROI3:MinX_RBV,YPOS=ANDOR1:ROI3:MinY_RBV,XSIZE=ANDOR1:ROI3:SizeX_RBV,YSIZE=ANDOR1:ROI3:SizeY_RBV,PORT=OVER1,ADDR=2,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:4:,NAME=ROI4,

SHAPE=1,O=Over1:,XPOS=ANDOR1:ROI4:MinX_RBV,YPOS=ANDOR1:ROI4:MinY_RBV,XSIZE=ANDOR1:ROI4:SizeX_RBV,YSIZE=ANDOR1:ROI4:SizeY_RBV,PORT=OVER1,ADDR=3,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:5:,NAME=Cursor1,SHAPE=1,O=Over1:,XPOS=junk,

                 YPOS=junk,                  XSIZE=junk,

    YSIZE=junk,                   PORT=OVER1,ADDR=4,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:6:,NAME=Cursor2,SHAPE=1,O=Over1:,XPOS=junk,

                 YPOS=junk,                  XSIZE=junk,

    YSIZE=junk,                   PORT=OVER1,ADDR=5,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:7:,NAME=Box1,

SHAPE=1,O=Over1:,XPOS=junk,                  YPOS=junk,

  XSIZE=junk,                   YSIZE=junk,

PORT=OVER1,ADDR=6,TIMEOUT=1")

dbLoadRecords("NDOverlayN.template","P=ANDOR1:,R=Over1:8:,NAME=Box2,

SHAPE=1,O=Over1:,XPOS=junk,                  YPOS=junk,

  XSIZE=junk,                   YSIZE=junk,

PORT=OVER1,ADDR=7,TIMEOUT=1")

# Create 2 color conversion plugins

NDColorConvertConfigure("CC1", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDColorConvert.template", "P=ANDOR1:,R=CC1:,

PORT=CC1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

NDColorConvertConfigure("CC2", 20, 0, "ANDOR", 0, 0, 0)

dbLoadRecords("NDColorConvert.template", "P=ANDOR1:,R=CC2:,

PORT=CC2,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create a circular buffer plugin

NDCircularBuffConfigure("CB1", 20, 0, "ANDOR", 0, 500, 0)

dbLoadRecords("NDCircularBuff.template", "P=ANDOR1:,R=CB1:,

PORT=CB1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=ANDOR")

# Create an NDAttribute plugin with 8 attributes

NDAttrConfigure("ATTR1", 20, 0, "ANDOR", 0, 8, 0, 0, 0)

dbLoadRecords("NDAttribute.template",  "P=ANDOR1:,R=Attr1:,

PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048,NDARRAY_PORT=ANDOR")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:1:,

PORT=ATTR1,ADDR=0,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:2:,

PORT=ATTR1,ADDR=1,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:3:,

PORT=ATTR1,ADDR=2,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:4:,

PORT=ATTR1,ADDR=3,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:5:,

PORT=ATTR1,ADDR=4,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:6:,

PORT=ATTR1,ADDR=5,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:7:,

PORT=ATTR1,ADDR=6,TIMEOUT=1,NCHANS=2048")

dbLoadRecords("NDAttributeN.template", "P=ANDOR1:,R=Attr1:8:,

PORT=ATTR1,ADDR=7,TIMEOUT=1,NCHANS=2048")

set_requestfile_path("./")

set_requestfile_path("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADCore/ADApp/Db")

set_requestfile_path("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADCore/iocBoot")

set_savefile_path("./autosave")

set_pass0_restoreFile("auto_settings.sav")

set_pass1_restoreFile("auto_settings.sav")

save_restoreSet_status_prefix("ANDOR1:")

dbLoadRecords("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/autosave/R5.7.1/asApp/Db/save_restoreStatus.db",

"P=ANDOR1:")

# Optional: load NDPluginEdge plugin

#NDEdgeConfigure("EDGE1", $(QSIZE), 0, "$(PORT)", 0, 0, 0, 0)

#dbLoadRecords("NDEdge.template",  "P=$(PREFIX),R=Edge1:,

PORT=EDGE1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)")

#set_requestfile_path("$(ADPLUGINEDGE)/edgeApp/Db")

# Optional: load scan records

dbLoadRecords("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/sscan/R2.10/sscanApp/Db/scan.db",

"P=ANDOR1:,MAXPTS1=2000,MAXPTS2=200,MAXPTS3=20,MAXPTS4=10,MAXPTSH=10")

set_requestfile_path("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/sscan/R2.10/sscanApp/Db")

# Optional: load sseq record for acquisition sequence

dbLoadRecords("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/calc/R3.6.1/calcApp/Db/yySseq.db",

"P=ANDOR1:, S=AcquireSequence")

set_requestfile_path("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/calc/R3.6.1/calcApp/Db")

# Optional: load devIocStats records (requires DEVIOCSTATS module)

macLib: macro DEVIOCSTATS is undefined (expanding string

dbLoadRecords("$(DEVIOCSTATS)/db/iocAdminSoft.db", "IOC=$(PREFIX)"))

# Optional: load alive record (requires ALIVE module)

#dbLoadRecords("$(ALIVE)/aliveApp/Db/alive.db",

"P=$(PREFIX),RHOST=192.168.1.254")

# Load mpfit routine

#< $(TOP)/iocBoot/mpfit.cmd

# Override or add to common autosave settings

set_requestfile_path("./")

set_requestfile_path("../")

set_requestfile_path("/afs/slac/g/testfac/rhel6/epics/R3.14.12.4/modules/areaD/R2.4/ADAndor/andorApp/Db")

set_savefile_path("/nfs/slac/g/testfac/asta/sioc-asta-ada01/autosave")

#set_savefile_path("./autosave")

set_pass0_restoreFile("auto_settings.sav")

set_pass1_restoreFile("auto_settings.sav")

save_restoreSet_status_prefix("ANDOR1:")

#asynSetTraceMask("$(PORT)",0,9)

#asynSetTraceIOMask("$(PORT)",0,3)

iocInit()

Starting iocInit

############################################################################

## EPICS R3.14.12.4 $Date: Mon 2013-12-16 15:51:45 -0600$

## EPICS Base built Jun 20 2014

############################################################################

reboot_restore: entry for file 'auto_settings.sav'

reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.

*** restoring from

'/nfs/slac/g/testfac/asta/sioc-asta-ada01/autosave/auto_settings.sav'

at initHookState 6 (before record/device init) ***

1 PV had no saved value.

reboot_restore: done with file 'auto_settings.sav'

 

reboot_restore: entry for file 'auto_settings.sav'

reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.

*** restoring from

'/nfs/slac/g/testfac/asta/sioc-asta-ada01/autosave/auto_settings.sav'

at initHookState 6 (before record/device init) ***

1 PV had no saved value.

reboot_restore: done with file 'auto_settings.sav'

 

2016/01/04 15:25:05.413 ANDOR1::cam1:: Connect error, status=3,

asynManager:connectDevice port cam1 not found

reboot_restore: entry for file 'auto_settings.sav'

reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.

*** restoring from

'/nfs/slac/g/testfac/asta/sioc-asta-ada01/autosave/auto_settings.sav'

at initHookState 7 (after record/device init) ***

1 PV had no saved value.

reboot_restore: done with file 'auto_settings.sav'

 

reboot_restore: entry for file 'auto_settings.sav'

reboot_restore: Found filename 'auto_settings.sav' in restoreFileList.

*** restoring from

'/nfs/slac/g/testfac/asta/sioc-asta-ada01/autosave/auto_settings.sav'

at initHookState 7 (after record/device init) ***

1 PV had no saved value.

reboot_restore: done with file 'auto_settings.sav'

 

2016/01/04 15:25:05.921 NDPluginCircularBuff::writeOctet error

processing infix _expression_=, error=NULL or empty input argument to

postfix()

2016/01/04 15:25:05.921 ANDOR1:CB1:TriggerCalc devAsynOctet::writeIt

failed NDPluginCircularBuff:writeOctet: status=-1, function=60, value=

iocRun: All initialization complete

# save things every thirty seconds

create_monitor_set("auto_settings.req", 30,"P=ANDOR1:,D=cam1:")

2016/01/04 15:25:05.970 andorCCD:setupShutter: ERROR: Parameter 3 not valid.

2016/01/04 15:25:05.970 andorCCD:writeFloat64: error, status=3

function=75, value=0.000000

2016/01/04 15:25:05.970 ANDOR1:cam1:ShutterCloseDelay devAsynFloat64

pPvt->result.status=3, process error

2016/01/04 15:25:05.970 andorCCD:setupShutter: ERROR: Parameter 3 not valid.

2016/01/04 15:25:05.970 andorCCD:writeFloat64: error, status=3

function=74, value=0.000000

2016/01/04 15:25:05.970 ANDOR1:cam1:ShutterOpenDelay devAsynFloat64

pPvt->result.status=3, process error

2016/01/04 15:25:05.970 andorCCD:writeFloat64: error, status=3

function=76, value=25.000000

2016/01/04 15:25:05.970 ANDOR1:cam1:Temperature devAsynFloat64

pPvt->result.status=3, process error

2016/01/04 15:25:05.970 andorCCD:setupShutter: ERROR: Parameter 3 not valid.

2016/01/04 15:25:05.970 andorCCD:writeInt32: error, status=3

function=86, value=1

2016/01/04 15:25:05.970 ANDOR1:cam1:AndorShutterExTTL devAsynInt32 process error

2016/01/04 15:25:06.110 andorCCD:setupShutter: ERROR: Parameter 3 not valid.

2016/01/04 15:25:06.110 andorCCD:writeInt32: error, status=3

function=85, value=0

2016/01/04 15:25:06.110 ANDOR1:cam1:AndorShutterMode devAsynInt32 process error

epics> save_restore: connect failed for channel 'ANDOR1:cam1:RESOLUTION'

auto_settings.sav: 110 of 111 PV's connected

 

epics>

epics>

 

 

 

Other modules I'm using are:

asyn 4-27

busy 1-6-1

calc 3-6-1

sscan 2-10

 

I've tried using an earlier version of the SDK (2.98.30000.0) and

earlier versions of AreaDetector (R2-2, R1-9-1) but I get similar

errors.  Has anyone gotten an iXon USB camera working with

AreaDetector?

Incidentally, an Andor iDus USB 2.0 CCD does work with the same

versions of AreaDetector and the Andor SDK.

 

 

Any help would be greatly appreciated.

 

 

 

 

Michael Dunning

SLAC National Accelerator Laboratory

Accelerator Research Division Test Facilities

2575 Sand Hill Road, MS 63

Menlo Park, CA 94025

+1 (650) 926-5200


Replies:
Re: AreaDetector ADAndor - iXon Ultra 888 Dunning, Michael
References:
AreaDetector ADAndor - iXon Ultra 888 Dunning, Michael

Navigate by Date:
Prev: RE: I have some question.. in .proto and .db files Mark Rivers
Next: Re: AreaDetector ADAndor - iXon Ultra 888 Dunning, Michael
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: AreaDetector ADAndor - iXon Ultra 888 Dunning, Michael
Next: Re: AreaDetector ADAndor - iXon Ultra 888 Dunning, Michael
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 15 Jul 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·