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

Subject: Re: Some questions from a first-time driver author
From: Mark Rivers <[email protected]>
To: Zik Saleeba <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 30 Jul 2018 12:07:18 +0000
> I'm new to EPICS and I'm writing a new driver for an IP connected xray pulse detection device.


Is this device the Southern Innovation SITORO?  If so, I have written an asyn driver for the version of the SITORO called the FalconX from XIA, using their Handel library.  I assume you want to use your native library, but even so you might want to look at that driver to see how to use asyn to take care of much of the code for interfacing to records, etc.  It polls in a separate fast thread so it can detect acquisition completion quickly.  It also inherits from the asynNDArrayDriver in areaDetector, which gives it access to all the plugins, including file saving.  This allows the driver to stream the data to an HDF5 file, for example, without having to rely on a client for this.


Mark



________________________________
From: [email protected] <[email protected]> on behalf of Zik Saleeba <[email protected]>
Sent: Sunday, July 29, 2018 8:41 PM
To: [email protected]
Subject: Some questions from a first-time driver author

I'm new to EPICS and I'm writing a new driver for an IP connected xray pulse detection device. I was wondering if more experienced people can help me with a couple of questions I have.

I've written a driver using PVs as the method for accessing the device state and it works but in some ways it seems unnecessarily awkward:

1. I use separate longin and longout record types for getting and setting integer device variables. Is it possible to use just a single record for both input and output of the same variable? That seems like it would avoid unnecessary duplication and confusion between the two records.

2. My C code registers dsets for each of the input and output types I use. These each provide an init method and either a read or write method depending on the direction. PV client writes result in immediate calls to my write callback from the dset which is what I expected but PV client reads only access the internal stored state of the record, they don't call my read method. Instead I have to get the value into the record using a SCAN field to regularly update the record. This seems to call the read method correctly. Is there a way to get the PV read to directly call my read method so I can provide the instantaneously correct value rather than just the most recently polled value?

Thanks for your help,
--
  Zik Saleeba, Senior Software Engineer
  [email protected]

Replies:
Re: Some questions from a first-time driver author Zik Saleeba
References:
Some questions from a first-time driver author Zik Saleeba

Navigate by Date:
Prev: Re: Some questions from a first-time driver author Dirk Zimoch
Next: Aerotech Ensemble coordinated motion Douglas Henrique C . de Araújo
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  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Some questions from a first-time driver author Zik Saleeba
Next: Re: Some questions from a first-time driver author Zik Saleeba
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  <20182019  2020  2021  2022  2023  2024 
ANJ, 30 Jul 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·