EPICS Home

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  <20172018  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  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Area Detector base class parameters
From: Mark Rivers <[email protected]>
To: Iain Marcuson <[email protected]>, "[email protected] >> EPICS Tech Talk" <[email protected]>
Date: Thu, 27 Apr 2017 15:34:59 +0000
If your detector supports binning then you need to handle ADBinX in your derived class writeInt32() method.

Here is an example from ADProsilica:

/** Called when asyn clients call pasynInt32->write().
  * This function performs actions for some parameters, including ADAcquire, ADBinX, etc.
  * For all parameters it sets the value in the parameter library and calls any registered callbacks..
  * \param[in] pasynUser pasynUser structure that encodes the reason and address.
  * \param[in] value Value to write. */
asynStatus prosilica::writeInt32(asynUser *pasynUser, epicsInt32 value)
{
    int function = pasynUser->reason;
    int status = asynSuccess;
    tPvUint32 syncs;
    static const char *functionName = "writeInt32";

    /* Set the parameter and readback in the parameter library.  This may be overwritten when we read back the
     * status at the end, but that's OK */
    status |= setIntegerParam(function, value);

    if ((function == ADBinX) ||
        (function == ADBinY) ||
        (function == ADMinX) ||
        (function == ADSizeX) ||
        (function == ADMinY) ||
        (function == ADSizeY)) {
        /* These commands change the chip readout geometry.  We need to cache them and apply them in the
         * correct order */
        status |= setGeometry();


Mark

________________________________________
From: [email protected] [[email protected]] on behalf of Iain Marcuson [[email protected]]
Sent: Thursday, April 27, 2017 10:25 AM
To: [email protected] >> EPICS Tech Talk
Subject: Area Detector base class parameters

I have been reviewing the Area Detector code and examining the interface between C and EPICS.  I am not clear on how parameters from the base class are sent to the detector.  For example, the parameter ADBinX is handled by ADDriver::writeInt32(), but nothing in that function actually outputs the new value to the device.  Where is the transmission occurring?

Thank you,

Iain Marcuson.

References:
Area Detector base class parameters Iain Marcuson

Navigate by Date:
Prev: Area Detector base class parameters Iain Marcuson
Next: Re: CA gatway runs away when zero length PV name in UDP search request Kasemir, Kay
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Area Detector base class parameters Iain Marcuson
Next: CSS perspective from OPI [email protected]
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024