EPICS Home

Experimental Physics and Industrial Control System


 
2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Adding userTag to epicsTimeStamp
From: Michael Davidsaver <[email protected]>
To: "Kasemir, Kay" <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 12 Oct 2017 10:52:45 +0200
On 10/09/2017 05:09 PM, Kasemir, Kay wrote:
>> Not saying that this specific tag should not be 64 bits wide, but to change an existing approved design,
>> I would like to see a minimum amount of justification and discussion.
> 
> A time tag change from 32 to 64 bits makes no difference to those who simply use pvAccess via qsrv/pvaSrv since the EPICS database never provided a value, anyway.

As a proof of concept QSRV can be made to mask out the list significant
N bits of the nanoseconds and store them in userTag.  This is selected
with an info() tag "Q:time:tag" having a value "nsec:lsb:#" where # is a
number between 0 and 31 inclusive.

> And even though the time stamp is part of most updates, if I understand correctly this change will hardly affect the network package size because when you leave the tag at its default value of 0 and don't change, the monitor deltas won't include the tag, only the secs & nanosecs, correct?
> 
> The SNS beam line neutron data does use the user tag for a sequence number, incremented by server to allow double-checking for missing updates. So our software might need to be updated. I believe this could be done beam line by beam line, won't be a show stopper.

To me, having to agree on 32 vs. 64 bit, sign/unsign, for the userTag
field in order to produce working client code is a big step backwards!

IMO PVA clients should be able to accept userTag being, at minimum, any
integer type.

Unlike CA, PVA doesn't allow clients to force server side type
conversions.  So this *must* be done by any robust clients.


FYI. On the C++ side this is simplified by the getAs()/putFrom() methods
of PVScalar and PVScalarArray.  So there is no need for clients to eg.
deal with PVInt vs. PVLong.

References:
Adding userTag to epicsTimeStamp Johnson, Andrew N.
Re: Adding userTag to epicsTimeStamp Ralph Lange
Re: Adding userTag to epicsTimeStamp Marty Kraimer
RE: Adding userTag to epicsTimeStamp Mark Rivers
Re: Adding userTag to epicsTimeStamp Kasemir, Kay

Navigate by Date:
Prev: Re: Adding userTag to epicsTimeStamp Marty Kraimer
Next: pva2pva build on APS Jenkins Andrew Johnson
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Adding userTag to epicsTimeStamp Marty Kraimer
Next: Re: Adding userTag to epicsTimeStamp Benjamin Franksen
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024