Skip to content

VXI-11, HiSLIP,.. support wrap up: loose ends #638

Description

@hb020

Done in PR #645 :

  • investigate gaps remaining:
    • events (check VPP-4.3)
    • locking on serial/socket (check VPP-4.3)
    • mandatory attributes (VPP-4.3 page 5-66 .. 5-73)
  • document gaps remaining:
    • VXI-11+HiSLIP:
      • shared locking and nested locking,
      • authentication
    • secure channel on HiSLIP
  • document additions:
  • doCMD example

See also PRs #651, #653, #655, #657, #659

TODO: split the below up in several PRs

(This list is made with the help from berg's tool; some of it is already documented in compliance.rst, and some may be mentioned multiple times)

VXI-11:

  • add viTerminate/abort
  • add viFlush
  • add shared and nested locking (provokes many failures with berg's script, excluded from the list below)
  • VI_ATTR_MAX_QUEUE_LENGTH is writeable before viEnableEvent: setting VI_ATTR_MAX_QUEUE_LENGTH on a fresh session returned <StatusCode.error_nonsupported_attribute_state: -1073807330>; 3.2.5 makes it writeable until viEnableEvent is called [VPP-4.3 3.2.5]
  • VI_ATTR_MAX_QUEUE_LENGTH is read-only after viEnableEvent: the write was refused with <StatusCode.error_nonsupported_attribute_state: -1073807330> but the value changed to 50 anyway [VPP-4.3 3.2.6]

HiSLIP:

like VXI-11:

  • add viFlush
  • add shared and nested locking (provokes many failures with berg's script, excluded from the list below)
  • VI_ATTR_MAX_QUEUE_LENGTH is writeable before viEnableEvent: setting VI_ATTR_MAX_QUEUE_LENGTH on a fresh session returned <StatusCode.error_nonsupported_attribute_state: -1073807330>; 3.2.5 makes it writeable until viEnableEvent is called [VPP-4.3 3.2.5]
  • VI_ATTR_MAX_QUEUE_LENGTH is read-only after viEnableEvent: the write was refused with <StatusCode.error_nonsupported_attribute_state: -1073807330> but the value changed to 50 anyway [VPP-4.3 3.2.6]

Others:

  • repeated terminate/recover cycles all succeed: did not return within 30s [VPP-4.3 §3.5.1.1]
  • clear discards an uncollected response: viClear raised instead of returning a status: RuntimeError: expected message type 'DeviceClearAcknowledge', received 'DataEnd: bytearray(b'stale-marker\n')' [VPP-4.3 3.2.3]
  • clear resyncs mid-message: viClear raised instead of returning a status: RuntimeError: protocol synchronization error [VPP-4.3 3.2.3]
  • large reads still intact after clears: unexpected exception
  • viClear discards an uncollected response: unexpected exception
  • a connection lost mid-reply is reported, not hung: expected a connection-lost or timeout error, got RuntimeError: Connection was dropped by server. [VPP-4.3 §6.1.1]

For both:

Cannot be solved in pyvisa-py:

  • every component of the resource name is case-insensitive: 4.3.17 requires a case-insensitive compare, but lowercasing the resource class suffix was refused with VI_ERROR_INV_RSRC_NAME (-1073807342), the the whole name was refused with VI_ERROR_INV_RSRC_NAME (-1073807342) [VPP-4.3 4.3.17]

    This is not good, some instruments require specific case. I might however improve case insensitivity on the "TCPIP" and "INSTR" comparisons, but that is inside pyvisa/rname

Activity

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