> 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
<2018>
2019
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
<2018>
2019
2020
2021
2022
2023
2024
|