-
Notifications
You must be signed in to change notification settings - Fork 9
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
Add int64in/out record support #161
Conversation
Unit Test Results 8 files ± 0 8 suites ±0 10m 12s ⏱️ +18s Results for commit d38df9b. ± Comparison against base commit 4bbc933. This pull request removes 14 and adds 27 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is necessary as ChannelAccess does not support int64 natively, instead transferring it using a double. This means the value returned from caget is actually a float, which is inconvenient. Fortunately p4p (using PVAccess) does support int64! I deleted some test cases as they were really testing the behaviour of caget/caput, and not pythonSoftIoc itself.
e5fa971
to
d38df9b
Compare
Requested changes have been made. Tests are failing due to #158 still waiting for upstream dependencies for Python 3.12. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine.
Add support for the int64in and int64out record types.
There's two TODOs and some test failures that needs discussion:
DBR_*
types we use come fromepicscorelibs
, however its latest version does not define the (new)DBR_INT64
andDBR_UINT64
types. Is it worth trying to get a PR through that module that adds these codes before merging this?caget
not being able to transport an int64, instead transporting it as a float. Should I special-case these tests to accept this, or is there a better mechanism to force what we want? I see thatcaget
does NOT claim to supportdatatype=DBR_INT64
.Various reference materials:
Changelog for introduction of the records: https://github.com/epics-base/epics-base/blob/7.0/documentation/RELEASE_NOTES.md#ioc-database-support-for-64-bit-integers
EPICS header file that defines both DBR_ and DBF_ codes: https://github.com/epics-base/epics-base/blob/7.0/modules/database/src/ioc/dbStatic/dbFldTypes.h
Closes #160 Closes #118