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  <20092010  2011  2012  2013  2014  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  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: get_ioint_info missing
From: "Hinko Kocevar" <[email protected]>
To: "Mark Rivers" <[email protected]>, <[email protected]>
Date: Mon, 25 May 2009 13:26:43 +0200
Title: RE: get_ioint_info missing

Hi Mark,

Thank you for prompt response.
As you pointed out I was really missing the DTYP field in the db. After adding the missing

 field(DTYP, "asynInt32")

line to the db record $(DEVICE)ENV_KX_MONITOR the message about the missing
get_ioint_info disappeared!

Also the monitor now reacts to put value call to LIBERA01:ENV:ENV_KX_SP.

Thank you!

-----Original Message-----
From: Mark Rivers [mailto:[email protected]]
Sent: Mon 5/25/2009 1:06 PM
To: Hinko Kocevar; [email protected]
Subject: RE: get_ioint_info missing

Hi Hinko,

I can think of a couple of possible problems.  This was your definition of the longin record:

record(longin, "$(DEVICE)ENV_KX_MONITOR") {
        field(SCAN, "I/O Intr")
        field(INP, "@asyn($(PORT),700)")
        field(PINI, "YES")
}

Is this really how it's defined?  If so, there appears to be a missing definition of the DTYP field.  Without the DTYP field it will default to using the soft device support from EPICS base, not the standard asyn device support which you want to use.  Note that for your longout record you have the line:

        field(DTYP, "asynInt32")

You probably need the same line in the .db file for your longin record.  If that line really does exist in your .db file, (but not in your e-mail) then it could be that your driver is not registering itself as capable of doing asynInt32 callbacks.  It appears that you are using standard asyn device support, which does implement get_ioint_info.

Mark


________________________________

From: [email protected] on behalf of Hinko Kocevar
Sent: Mon 5/25/2009 5:41 AM
To: [email protected]
Subject: get_ioint_info missing




Hello,

I'm trying to learn EPICS (complete newbie:) through an existing IOC application - instrumentation technologies libera IOC support application that uses asyn driver.
Since the existing driver is a bit complex, I'm trying to build my own version of the driver in order to understand mechanics of the EPICS. Also
existing libera IOC application is written in C++, while I'm trying to implement it in standard C instead.

I've successfully manages to get read/write operations on a PV to behave as expected. One thing that iocsh spews out during startup is this message:

PV: LIBERA01:ENV:ENV_KX_MONITOR scanAdd: I/O Intr not valid (no get_ioint_info)

the PVs are defined as follows (in db):
record(longin, "$(DEVICE)ENV_KX_MONITOR") {
        field(SCAN, "I/O Intr")
        field(INP, "@asyn($(PORT),700)")
        field(PINI, "YES")
}

record(longout, "$(DEVICE)ENV_KX_SP") {
        field(DTYP, "asynInt32")
        field(OUT, "@asyn($(PORT),700)")
}

Methods for read/write 32 int value:
static asynInt32 drvLiberaInt32 = {
   writeInt32,
   readInt32,
   NULL,
   NULL,
   NULL
};

As I said, reading from LIBERA01:ENV:ENV_KX_SP variable returns correct value and writing to the LIBERA01:ENV:ENV_KX_SP variable sets the value in the
desired device/port too. Using the LIBERA01:ENV:ENV_KX_MONITOR (via camonitor) does not reflect the same variable value as it should - same as LIBERA01:ENV:ENV_KX_SP.

How and where should one define 'get_ioint_info'?

I can't seem to get any reference to the get_ioint_info in existing C++ implementation of the driver..

Thank you,
Hinko



References:
get_ioint_info missing Hinko Kocevar
RE: get_ioint_info missing Mark Rivers

Navigate by Date:
Prev: RE: get_ioint_info missing Mark Rivers
Next: First IOC_Overview example does not work. Pacios Rodriguez Luis Orlando
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: get_ioint_info missing Mark Rivers
Next: Visibility PV problem in EDM Prachi Chitnis
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·