EPICS Home

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

Subject: Re: dbGetField AI.DPVT
From: Charter via Tech-talk <tech-talk at aps.anl.gov>
To: Dave Bracey <dbracey at fnal.gov>
Cc: tech-talk at aps.anl.gov
Date: Mon, 22 Jul 2024 17:11:26 -0400
The value is probably an address which is private to the ioc alone.

John

On Jul 22, 2024, at 5:06 PM, Dave Bracey via Tech-talk <tech-talk at aps.anl.gov> wrote:



I find that I can PVPUT (cmd line) to an AI, and I feel that this is probably not a good thing.  It seems to me that the hardware should be the only thing that changes the value of an AI PV.

Without going into detail, I was going to use DPVT as a side-channel to ensure that only the hardware can put to the AI.

 

From: Johnson, Andrew N. <anj at anl.gov>
Date: Monday, July 22, 2024 at 3:48
PM
To: Dave Bracey <dbracey at fnal.gov>, tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Subject: Re: dbGetField AI.DPVT

[EXTERNAL] – This message is from an external sender

Hi Dave,

 

There's a reason the DPVT field is called "Device Private" — it's not intended to be accessible from outside the device support code which owns it. Think of it like a C++ private: class-member access specifier. That doesn't mean it's impossible for other software running inside the IOC to get to it, but dbGetField() can't do it by design.

 

What's the higher-level problem that you're trying to solve which seems to require this? Please describe that to the list and we can try to offer other approaches that wouldn't require you to break the encapsulation.

 

- Andrew

 

On 7/22/24, 2:47PM, "Tech-talk" <tech-talk-bounces at aps.anl.gov> wrote:

 

I want to use dbGetField to get the value of the DPVT field of an AI record.  Does this work?  What field type would I specify?

 

I tried with DBR_LONG and it didn’t like that.  I used the field_type returned from dbNameToAddr (17) and it didn’t like that.

 

Dave Bracey

Fermilab AD Instrumentation


References:
Re: dbGetField AI.DPVT Dave Bracey via Tech-talk

Navigate by Date:
Prev: Re: dbGetField AI.DPVT Dave Bracey via Tech-talk
Next: Re: dbGetField AI.DPVT Johnson, Andrew N. via Tech-talk
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  <20242025 
Navigate by Thread:
Prev: Re: dbGetField AI.DPVT Dave Bracey via Tech-talk
Next: Re: dbGetField AI.DPVT Johnson, Andrew N. via Tech-talk
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  <20242025