On 10/09/2017 11:09 AM, 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.
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?
Not quite but can be fixed.
I think the only problem is in the timeStamp support code.
In particular
bool PVTimeStamp::set(TimeStamp const & timeStamp)
{
if(pvSecs.get()==NULL) {
throw std::logic_error(notAttached);
}
if(pvSecs->isImmutable() || pvNano->isImmutable()) return false;
pvSecs->put(timeStamp.getSecondsPastEpoch());
pvUserTag->put(timeStamp.getUserTag());
pvNano->put(timeStamp.getNanoseconds());
return true;
}
Note that it always sets userTag. The same problem exists in Java.
Both timeStamp and pvTimeStamp require changes in both Java and C++.
I agree that going to a 64 bit integer is a good idea.
But it should be a signed 64 bit integer for two reasons:
1) Keeps better compatibility between Java and C++.
2) The other fields of a timeStamp are signed, which is useful for
computing time differences.
If we are going to make this change for first release of EPICS 7 changes
must be made soon in both C++ and Java.
Will this also require changes to any of normativeTypes, pvaPy, and p4p?
Will this cause compatibility problems?
Marty
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.
-Kay
- Replies:
- Re: Adding userTag to epicsTimeStamp Johnson, Andrew N.
- 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:
Build failed in Jenkins: epics-base-3.16-mac-test #155 APS Jenkins
- Next:
Jenkins build is back to normal : epics-base-3.16-mac-test #156 APS Jenkins
- Index:
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: Adding userTag to epicsTimeStamp Kasemir, Kay
- Next:
Re: Adding userTag to epicsTimeStamp Johnson, Andrew N.
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
|