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

Subject: RE: asynError IOC message
From: Mark Rivers <rivers@cars.uchicago.edu>
To: Vikram Bhagat <vbhagat@rocketmail.com>, epics talk <tech-talk@aps.anl.gov>
Date: Wed, 16 Oct 2013 12:28:20 +0000
Hi Vikram,

Please answer the following questions:

Are you using an asyn port driver that you wrote?

Are using standard asyn device support?

What record type are you using?

You seem to be using standard devAsynUInt32Digital device support.  But it sounds like you are reading temperature, which I would have thought would use an "ai" record.  But devAsynUInt32Digital does not support the ai record.  For that one would use devAsynInt32.  Why are using devAsynUInt32Digital rather than devAsynInt32 (if the device returns an integer) or devAsynFloat64 (if the device returns a floating point number).

Are you saying that in your driver you are reading 10, and you would like the record to have INVALID alarm in this case, even though the hardware support as low as -10?

If so, I really don't think you should be putting that logic in your driver, because someone else might want to use your driver and want to allow values less than 10.  That logic belongs instead in your database, where you would set the LOLO field of an ai record to 10.  That way your record will have a MAJOR alarm because the value is less than 10.

But if you really want to put the logic in your driver then you can put the record into INVALID alarm without printing an error message as follows:

In your driver set the pasynUser->auxStatus field to asynError in your read() function or the callback function to device support.  That will set the record alarm without printing an error message.  Don't return asynError as the function return, return asynSuccess instead.

Mark



________________________________
From: tech-talk-bounces@aps.anl.gov [tech-talk-bounces@aps.anl.gov] on behalf of Vikram Bhagat [vbhagat@rocketmail.com]
Sent: Wednesday, October 16, 2013 4:51 AM
To: epics talk
Subject: asynError IOC message

Hello,
  If we return asynError instead of asynSuccess , the message display like "devAsynUInt32Digital::process read error" on IOC shell.   This is just indicating something wrong in record processing.  Is it possible to print user define message on IOC shell instead of this standard message?

Actually i am reading data from serial port and that is form -10 to 100 degree. The value below 10 is INVALID for me. so i want   <EPICS PV>.SEVR should write INVALID.   for that i am returning asynError. Which make .SEVR to invalid but parallel it indicate the above message.
Que.
(1) Instead of standard message i want my own message ,
(2) i don't want message to be printed on the IOC, just  <EPICS PV>.SEVR should  be INVALID.

Thanks
Vikram


Replies:
Re: asynError IOC message Vikram Bhagat
References:
asynError IOC message Vikram Bhagat

Navigate by Date:
Prev: how to put value to other record in subroutine record Silver
Next: RE: how to put value to other record in subroutine record Steiner, Mathias
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 
Navigate by Thread:
Prev: asynError IOC message Vikram Bhagat
Next: Re: asynError IOC message Vikram Bhagat
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 
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 ·