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  2016  2017  2018  <20192020  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  <20192020 
<== Date ==> <== Thread ==>

Subject: RE: ADPIcam driver question
From: Mark Rivers via Tech-talk <tech-talk@aps.anl.gov>
To: 'Jörn Dreyer' <j.wuestenfeld@t-online.de>
Cc: "tech-talk@aps.anl.gov" <tech-talk@aps.anl.gov>
Date: Tue, 12 Mar 2019 17:49:03 +0000

Hi Jörn,

 

For the PIXIS cameras we are using the ADLightField driver at our beamlines, mostly because it also provides control of the PIActon spectrometers as well.  I have not used the ADPICam driver, and I don't think it has gotten a lot of use yet.

 

I didn't write the ADPICam driver, but taking a quick look I can answer some of your questions:

 

Ø   1) When does the driver set the parameters in the camera? As soon as I change them, or only on start of acquisition?

 

In general they get set as soon as you change them.  This is from the writeFloat64 method, for example:

 

    else if (constraintType == PicamConstraintType_Collection) {

        error = Picam_SetParameterFloatingPointValue(currentCameraHandle,

                                                     picamParameter, (piflt) value);

 

Ø  2) I observe a strange behavior of the TriggerMode parameter in the ADBase panel in CSS. According to the database file it should offer two options:

Ø  Internal and External. Instead it offers three options for my detector which fit to the real possibilities of the camera, but TriggerMode and TriggerMode_RBV do not match!

Ø  Where do these settings get changed?

 

In general the TriggerMode options defined in ADBase.template can be overridden in 2 ways:

-          They could be redefined in ADPICam.template.  That does not seem to be the case.

-          They can be redefined by the driver itself, using the asynEnum interface.  That must be what is happening here in this function:

 

asynStatus ADPICam::piUpdateParameterListValues(

        PicamParameter picamParameter, int driverParameter){

    const char *functionName = "piUpdateParameterListValues";

    int status = asynSuccess;

    char *strings[MAX_ENUM_STATES];

    int values[MAX_ENUM_STATES];

    int severities[MAX_ENUM_STATES];

    size_t nIn;

 

    asynPrint(pasynUserSelf, ASYN_TRACE_FLOW,

            "%s:%s Enter\n",

            driverName,

            __func__);

    for (int ii=0; ii<MAX_ENUM_STATES; ii++) {

        strings[ii] = 0;

    }

    nIn = 0;

    piGenerateListValuesFromCollection(pasynUserSelf, strings,

            values, severities, &nIn,

            driverParameter, picamParameter);

 

    doCallbacksEnum(strings, values, severities, nIn, driverParameter,

            0);

 

I would expect TriggerMode_RBV to match TriggerMode unless there was an error trying to set the requested TriggerMode.

 

Ø  3) If I change the acquire time of the camera, it looks as this setting does not have an effect. Probably this refers back to question one, but we tried to stop and start the acquisition of the camera without any change in readout speed when changing the acquire time from 1s to 10 seconds.

 

I’m not sure why you would be seeing that. 

 

I see that the driver does have quite a few debugging statements, using ASYN_TRACE_FLOW.  You can enable asynTrace from the iocsh command line to see the debugging information.

 

Mark

 

 

 

-----Original Message-----

From: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> On Behalf Of Jörn Dreyer via Tech-talk

Sent: Tuesday, March 12, 2019 7:32 AM

To: tech-talk tech-talk <tech-talk@aps.anl.gov>

Subject: ADPIcam driver question

 

Hi Folks,

 

I'm trying to get a PIXIS camera from Priceton Instruments working with the ADPIcam driver and PIcamSDK 5.6.1 under Linux. The driver compiles fine (after some changes to the Makefile). It can see the camera and extract all information about existing and relevance status of the camera parameters.

 

Her are my questions:

 

1) When does the driver set the parameters in the camera? As soon as I change them, or only on start of acquisition?

 

2) I observe a strange behavior of the TriggerMode parameter in the ADBase panel in CSS. According to the database file it should offer two options:

Internal and External. Instead it offers three options for my detector which fit to the real possibilities of the camera, but TriggerMode and TriggerMode_RBV do not match! Where do these settings get changed?

 

3) If I change the acquire time of the camera, it looks as this setting does not have an effect. Probably this refers back to question one, but we tried to stop and start the acquisition of the camera without any change in readout speed when changing the acquire time from 1s to 10 seconds.

 

Can anybody shed some light on these questions?

 

With kind regards,

 

Jörn Dreyer

 

 


References:
ADPIcam driver question Jörn Dreyer via Tech-talk

Navigate by Date:
Prev: IOC for Brooks SLA series Luciano Carneiro Guedes via Tech-talk
Next: RE: generalTime/epicsTimeGetCurrent and casr questions Mark Rivers via Tech-talk
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  <20192020 
Navigate by Thread:
Prev: ADPIcam driver question Jörn Dreyer via Tech-talk
Next: IOC for Brooks SLA series Luciano Carneiro Guedes via Tech-talk
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  <20192020 
ANJ, 12 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·