Skip to content

PVI structure does not include RBV #346

@shihab-dls

Description

@shihab-dls

Currently, if we have an AttrRW, we add:

p4p_raw_value[pv_leaf][attribute.access_mode] = pv

where attribute.access_mode is rw; thus, our served structure is:

structure a
    string rw P4P_TEST_DEVICE:A

However, we also do:

case AttrRW():
    attribute_pv = make_shared_write_pv(attribute)
    attribute_pv_rbv = make_shared_read_pv(attribute)
    provider.add(f"{full_pv_name}", attribute_pv)
    provider.add(f"{full_pv_name}_RBV", attribute_pv_rbv)

so we end up serving an _RBV, but not including it into the pvi structure. On ophyd-async, this leads to the same read_pv and write_pv, and thus a get_value() on a SignalRW returns the setpoint value.

Steps To Reproduce

Steps to reproduce the behavior:

  1. Launch an example IOC on FastCS
  2. Check PVI structure, then check generated gui
  3. See served "_RBV" not included in PVI structure

Acceptance Criteria

  • If AttrRW, add entries for both r and w into the PVI structure

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions