Thanks Mark,
I actually implemented this with an overlaid rectangle with a visibility rule. Generally I avoid piling number of widgets on top of each other, so I was looking for a solution to avoid that.
Zen
> -----Original Message-----
> From: Mark Rivers [mailto:[email protected]]
> Sent: Saturday, March 26, 2011 4:11 PM
> To: Szalata, Zenon M.
> Cc: [email protected]
> Subject: RE: asynPortDriver Question
>
> Hi Zen,
>
> I don't think you can do that. The first order problem is that there is no
> connection from the asyn driver to the AO:SC record, since it uses soft device
> support, not asyn device support. I don't think there is a way to propogate
> alarm status between records at the database level except by using the MS
> qualifier on input and output links. But I'm not a database programming
> expert, perhaps there is a way to do this.
>
> But if you want to indicate a problem to the user in the edm screen you can
> have another widget whose visibility or color is controlled by the AO record's
> alarm status.
>
> Mark
>
>
> ________________________________
>
> From: Szalata, Zenon M. [mailto:[email protected]]
> Sent: Sat 3/26/2011 2:54 PM
> To: Mark Rivers
> Cc: [email protected]
> Subject: asynPortDriver Question
>
>
>
> Hi Mark,
>
> I am using a four record set to write analog data to a set point register in a
> power supply and to keep reading and writing this register in sync. This
> technique is what you suggested as a solution to a question I had. Here are
> the four records:
>
>
>
> #---- $(DESC) ------------------------------
>
> record( ao, "$(P):AO:SC:$(ITEM)"){
>
> field( DESC, "$(DESC):")
>
> field( OUT, "$(P):AO:$(ITEM) PP")
>
> field( DRVL, "$(DRVL)")
>
> field( DRVH, "$(DRVH)")
>
> }
>
> record( ao, "$(P):AO:$(ITEM)"){
>
> field( SDIS, "$(P):AO:$(ITEM):Sync.PACT")
>
> field( DISV, "1")
>
> field( DTYP, "asynFloat64")
>
> field( OUT, "@asyn($(PORT),0,1)AO_$(ITEM)")
>
> }
>
> record( ai, "$(P):AI:$(ITEM)"){
>
> field( DTYP, "asynFloat64")
>
> field( INP, "@asyn($(PORT),0,1)AI_$(ITEM)")
>
> field( SCAN, "I/O Intr")
>
> field( EGU, "$(EGU)")
>
> field( FLNK, "$(P):AO:$(ITEM):Sync")
>
> }
>
> record( ao, "$(P):AO:$(ITEM):Sync"){
>
> field( DOL, "$(P):AI:$(ITEM) NPP")
>
> field( OMSL, "closed_loop")
>
> field( OUT, "$(P):AO:SC:$(ITEM) PP")
>
> }
>
>
>
> An EDM Text Control widget connected to the "AO:SC" record is used to write a
> new value to the set point register. Depending on some other configuration
> parameters that the power supply is set up with, write set point might fail.
> When that happens, my writeFloat64 routine returns asynError and the SEVR
> gets set INVALID in the "$(P):AO:$(ITEM)" record. I would like the EDM widget
> to reflect this alarm condition. It does not do it because it is not connected to
> the AO record that is in an alarm state and I don't know how to transfer this
> alarm information to the record the EDM widget is connected to.
>
>
>
> I wonder if it is possible to control alarm state of an EPICS record via
> asynPortDriver, a record that is not being processed at the moment? That is,
> is there a way other than returning a failed completion code from a
> processing routine (like writeInt32) to put a record in an alarm state?
>
>
>
> Thanks,
>
> Zen
- References:
- asynPortDriver Question Szalata, Zenon M.
- RE: asynPortDriver Question Mark Rivers
- Navigate by Date:
- Prev:
Re: GPIB DCL Eric Norum
- Next:
Re: asynPortDriver Question Ralph Lange
- 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: asynPortDriver Question Mark Rivers
- Next:
Re: asynPortDriver Question Ralph Lange
- 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
|