Skip to content

PvaClientNTMultiMonitor lacks a method to check which channels returned with change after poll #66

Open

Description

@marciodo

I have the impression that, after a poll, I have to examine the contents of the "values" array if I want to check which channels have changed. For the ones that return as none, I know they had no change during the last poll. I would say that this is an indirect and unclear way of checking this. I may be wrong, but I couldn't find this explanation in the documentation.

Activity

  1. sveseli commented on Jan 19, 2021

    @sveseli

    This issue should be resolved with PR #67

  2. mrkraimer commented on Jan 26, 2021

    @mrkraimer
    Contributor

    marciodo's comment is correct. Thanks for raising this issue.

    After private discussion with sveseli, it was decided that no code change is necessary.
    I will close PR #67

    I agree that documentation should be better.
    I will work on it.
    When I tried to run doxygen in pcaClientCPP it failed.
    Looks like I have some work to do.

    Marty

  3. mrkraimer commented on Feb 2, 2021

    @mrkraimer
    Contributor

    I am going to start work on improving documentation.
    I will also review code while working on documentation.

  4. mrkraimer commented on Feb 12, 2021

    @mrkraimer
    Contributor

    Sinisa Veseli prepared a test case that shows that PvaClientNTMuiliMonitor does not work properly.
    I am going add a method like Sinisa suggested but the implementation will be different.
    I will also carefully look at the PvaClientNTMuiliMonitor code.

  5. mrkraimer commented on Feb 17, 2021

    @mrkraimer
    Contributor

    I made changes on branch pvaClientChannel_changes.

    1. Added method PvaClientNTMultiData::getChannelChangeFlags.
    2. In pvaClientMultiChannel, methods not intended for client are now protected.
    3. Fixed many connection related problems.
    4. Cleaned up doxygen.

    I also pushed changes to
    https://github.com/epics-base/exampleCPP

    1. multiGetDouble, multiMonitorDouble, and multiPutDouble are new.
    2. ntMulti* have default for multiple channelNames.
    3. ntMultiMonitor has #ifndef that uses previous monitor semantics.
      If this is changed to #ifdef than the new pvaClient getChannelChangeFlags is used.
      This results in only channels that changed since the last put show new values.

    It would be great if both of You get a chance to try the new version before I merge the branch into master

  6. sveseli commented on Feb 17, 2021

    @sveseli

    I just took a brief look at the new pvaClientNTMultiData.cpp, and it seems that line 146 will cause the same problem that PR#67 addressed (commit fe74c59).

  7. mrkraimer commented on Feb 18, 2021

    @mrkraimer
    Contributor

    I will remove lines 145 and 146.
    Note that if a value field does not exists in the channel then I suspect that this code will never be executed.
    But the lines should be removed.
    I want to do more testing before I push this change.

  8. added a commit that references this issue on Feb 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions