Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect dataTimeStamp #17

Open
till-s opened this issue Jul 20, 2022 · 1 comment
Open

Incorrect dataTimeStamp #17

till-s opened this issue Jul 20, 2022 · 1 comment

Comments

@till-s
Copy link

till-s commented Jul 20, 2022

In ntndArrayConverter::fromDataTimeStamp() we find

// pvAccess uses Posix time, NDArray uses EPICS time, need to convert
seconds += POSIX_TIME_AT_EPICS_EPOCH;

however, ADAravis passes the timestamp from the camera unmodified. Since there are probably not many cameras out there using timestamps based on the EPICS epoch this is guaranteed to be wrong. I would therefore suggest to let ADAravis convert the camera timestamp into an EPICS timestamp (by subtracting POSIX_TIME_AT_EPICS_EPOCH).

A bigger problem, unfortunately, is that GigE-Vision 2.0 cameras actually support PTP timestamps which use TAI; therefore, ADAravis should (at least optionally, if the camera supports PTP) convert TAI -> EPICS Time. The problem is that I know of no portable, efficient and automatic way to do that (while using a hack such as a global parameter that holds the 'current' offset and ignoring the fact that during a leap-second there my be inconsistent time stamps is easy).

Note that ADSpinnaker and ADVimba are also affected (I have seen that both vendors advertise GigE cameras with PTP support).

@jeinstei
Copy link

jeinstei commented Aug 1, 2024

I think this is really more of an ADCore question, as there might need to be a global parameter for selecting/reading back the time base with some sort of inline callback. At least then it can be polled as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants