-
Notifications
You must be signed in to change notification settings - Fork 13
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
Use pvRequest to mask monitor updates #11
Comments
I agree with @mrkraimer 's comment in epics-base/pvDataCPP#51 that if a request (and this doesn't just apply to monitor requests) is for a specific set of fields, the server shouldn't be sending anything else along with them. That was a fundamental design feature of pvAccess; a client may know that one of the other fields holds a large array which it is explicitly not requesting as it might not have the bandwidth for it, or maybe it's an alarm handler which monitors many PVs but has no interest in their value fields. A pvaSrv IOC sends exactly what was asked for, so this behavior of pva2pva is a regression for the project as a whole, I don't see it as just an enhancement request. Running pvaSrv's testDbPv IOC:
Running the Base-7.0 softIocPVA with the same database:
|
In this discussion I'm trying to make a distinction between whether the provided Structure has some field, and whether changes to this field are ever sent. Right now, fields are always present, and changes are always sent. After I have time to address this, fields will still always be present, however changes will be sent subject to the pvRequest blob. Technically it will probably be something like:
|
As mention in epics-base/pvDataCPP#51 (comment). When I next have time I'll be changing QSRV to use epics-base/pvAccessCPP#129 is also relevant as unused, or unchanging, fields are no longer printed except with full detail |
Need to translate the pvRequest 'fields' sub-struct into a BitSet and use it to mask out Monitor updates. This will all a client to monitor part of a structure (eg. alarm but not value).
The text was updated successfully, but these errors were encountered: