EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

<19941995  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  Index <19941995  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 
<== Date ==> <== Thread ==>

Subject: common API
From: [email protected] (William Lupton)
Date: Tue, 9 Aug 94 11:49:31 HST
Dear all,

This is triggered by the mail from Kay Rehlich about a common API for
different underlying communication protocols. I don't know the
background to these discussions or how far they have gone but I
thought that people might be interested in our approach to this problem,
which is to define an API which is is completely independent of the
underlying communication protocol and then to implement "drivers" which
are in fact run-time-activated shareable libraries.

The API is called KTL (Keck Task Library) and a compressed five page
PostScript document can be obtained from (or mail me and I will send
it):

ftp://ftp.keck.hawaii.edu/pub/doc/ktl_paper.ps.Z

(the same directory also contains some related documents including a
detailed programming manual including, dare I mention it, automatically
extracted routine descriptions!)

The driver is identified by two character strings, a "service" (which
identifies which sub-system to connect to) and a "style" (which
defines the way in which high-level code interacts with the underlying
system). We have defined two styles so far:

keyword - where the applications work in terms of named keywords and
          their values

message - where the applications work in terms of message types and
          message structures

The driver implements seven routines: open, close, ioctl, read, write,
event and respond, which are responsible for all the interactions with
the underlying communication system.

The high-level (service and style-independent) KTL library handles
callbacks, maintains context, handles callbacks, and so on.

We currently have message style implementations that run on top of a
home-grown message system and on raw sockets. We also have keyword style
implementations that use the same home-grown system, and that are
layered directly on top of RPCs.

The way that one would handle CA would be to define a CA service and
style which works in terms of process variable names and values. One
would define various CA-specific KTL ioctls (or use CA-specific flags on
ktl_read() / ktl_write() calls) to handle things like group puts and
gets. We will be doing this at some stage since we will want KTL clients
to be able to talk to EPICS systems.

William Lupton

Navigate by Date:
Prev: MVME-167A Carl Dickey
Next: Re: MVME-167A watson
Index: <19941995  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: common API Kay Rehlich
Next: MVME-167A Carl Dickey
Index: <19941995  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 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·