Hi Mark,
I am using asynPortDriver class. The records are initialized after IOC
init and the record in question looks like this:
epics> dbpr CHA:LO:2531-1-2:CWORD,3
ACKS: NO_ALARM ACKT: YES ADEL: 0 ALST: 0
ASG: BKPT: 00 DESC: DISA: 0
DISP: 0 DISS: NO_ALARM DISV: 1 DOL:CONSTANT
DRVH: 0 DRVL: 0 DTYP: asynInt32 EGU:
EVNT: 0 FLNK:CONSTANT 0 HHSV: NO_ALARM HIGH: 0
HIHI: 0 HOPR: 0 HSV: NO_ALARM HYST: 0
IVOA: Continue normally IVOV: 0 LALM: 0
LCNT: 0 LLSV: NO_ALARM LOLO: 0 LOPR: 0
LOW: 0 LSV: NO_ALARM MDEL: 0 MLST: 0
NAME: CHA:LO:2531-1-2:CWORD NSEV: NO_ALARM NSTA: NO_ALARM
OMSL: supervisory OUT:INST_IO @asyn(2531-1,0,1)LO_CWORD PACT: 0
PHAS: 0 PINI: NO PRIO: LOW PROC: 0
PUTF: 0 RPRO: 0 SCAN: Passive SDIS:CONSTANT
SEVR: INVALID SIML:CONSTANT SIMM: NO SIMS: NO_ALARM
SIOL:CONSTANT STAT: UDF TIME: 2015-02-27 15:41:07.126179705
TPRO: 0 TSE: 0 TSEL:CONSTANT UDF: 0
VAL: 0
epics>
I verified that processing the record, it goes into a healthy state. I
suppose there is no harm to process the record, since it will write back
to the hardware which was just read in. The reason I noticed this is
that the EDM byte monitor widget displays the data as uninitialized...
The question still remains, since the record should have been processed
when the value was written to it and yet the record looks like it was
not processed, so what happened?
Thanks Mark,
Zen
On 02/27/15 16:54, Mark Rivers wrote:
I think STAT and SEVR only get set when the record processes.
When are you doing the callback to device support, before or after iocInit?
If you do the callback after iocInit then the callback will cause the record to process, because it calls scanOnce(). However, if you call it before iocInit it will not call scanOnce() because that will crash the IOC.
Are you using the asynPortDriver C++ base class? If so that takes care of the problem for you because it has a thread that waits for interruptAccept to be true, and then does all of the callbacks to device support.
Mark
-----Original Message-----
From: Zenon Szalata [mailto:[email protected]]
Sent: Friday, February 27, 2015 5:59 PM
To: Mark Rivers; [email protected]
Subject: asyn R4.26
Hi Mark,
I am beginning to use asyn R4.26, where the new feature that you have
added to allow initialization of output records, is of interest.
It works well, except I have noticed one thing.
In my case I am initializing a longout record from the device driver.
It gets the value correctly, UDF is set to 0 but STAT has UDF and SEVR
is INVALID. Do I need to do something else in addition to just push a
new value to the record? I don't want to process the record, which most
likely would put the record in a good state.
Sorry for bugging you and thanks,
Zen
- Replies:
- RE: asyn R4.26 Mark Rivers
- References:
- asyn R4.26 Zenon Szalata
- RE: asyn R4.26 Mark Rivers
- Navigate by Date:
- Prev:
LinuxRT remote reboot from EPICS Luchini, Kristi L.
- Next:
RE: asyn R4.26 Mark Rivers
- 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: asyn R4.26 Mark Rivers
- Next:
RE: asyn R4.26 Mark Rivers
- 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
|