1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 <2016> 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== 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----- 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 |