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  <20132014  2015  2016  2017  2018  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  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Recommendations for developing an IOC for PCI
From: Mark Rivers <[email protected]>
To: "'Igor H. Soares Nunes'" <[email protected]>, "[email protected]" <[email protected]>
Date: Mon, 4 Mar 2013 16:12:14 +0000
Hi Igor,

I would recommend that you consider writing an asyn driver.  Then you do not need to write any device support, you can use the standard asyn device support.  If you write your driver in C++ and derive it from asynPortDriver (which is part of asyn) it will save you a lot of work.

There are 2 relatively simple example drivers you could use an example.

The first is for the Systran IP-DAC128V, which is an Industry Pack digital to analog converter.  It uses the EPICS "ipac" module, which is a library to interface with Industry Pack modules.  The asyn driver for the DAC128V is only 165 lines of C++ code.  You can find it here:

http://cars.uchicago.edu/software/epics/dac128V.html

The second is the driver for the Measurement Computing USB-1608GX-2AO.  This is a USB device that it interfaced through a library provided by Measurement Computing.  The full driver is here:

http://cars.uchicago.edu/software/epics/measComp.html


I used this device as an example during the EPICS asyn training class at SLAC in 2012.  I gave 3 talks that you can find on the Web:

The first is an introduction to asyn:

https://portal.slac.stanford.edu/sites/conf_public/epics_2012_04/presentations/asynTalk.pdf

The second is an introduction to the asynPortDriver C++ base class:

https://portal.slac.stanford.edu/sites/conf_public/epics_2012_04/presentations/asynPortDriver%20talk.pdf

The third is a step-by-step guide to writing an asyn driver using asynPortDriver, with the Measurement Computing USB-1608GX-2AO as an example.  It starts with a very simple driver that only does limited functions, and is only 131 lines of code.  The final version supports all the features of the device and is 1254 lines of code.

https://portal.slac.stanford.edu/sites/conf_public/epics_2012_04/presentations/measCompDriverTalk.pdf

The source code for the versions of the driver used in that course is here:

https://portal.slac.stanford.edu/sites/conf_public/epics_2012_04/presentations/asynTraining2012.zip

Cheers,
Mark








-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Igor H. Soares Nunes
Sent: Monday, March 04, 2013 8:03 AM
To: [email protected]
Subject: Recommendations for developing an IOC for PCI

Hello everyone,

I am a beginner on developing IOCs and I would like to read some suggestions of more experienced people.

I need to develop an IOC to read from a PCI . I already have a driver linux to communicate whit the bus, but no device support. What do you recommend to develop the device support and the entirely IOC? I have read something about ASYN to develop device support, but I am not pretty sure if that is what I need.

Thanks,

Igor S. Nunes


References:
Recommendations for developing an IOC for PCI Igor H. Soares Nunes

Navigate by Date:
Prev: C++ logging framework for epics Sinisa Veseli
Next: RE: C++ logging framework for epics matthew.pearson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Recommendations for developing an IOC for PCI Igor H. Soares Nunes
Next: C++ logging framework for epics Sinisa Veseli
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  <20132014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 20 Apr 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·