Skip to content

Multiple getters and setters for a property? #69

Description

@dougthor42

The Keysight and Agilent instrument lines typically implement commands that can have various forms. For example, all of these are the same command:

# Definition:
[:SOURce[c]]:FUNCtion[:SHAPe] shape
shape: PULSe|DC

# Accepted:
:SOURCE1:FUNCTION:SHAPE DC
:SOURCE1:FUNC:SHAP PULS
:SOURCE:FUNC:SHAPE PULSE
:FUNCTION dc
:func:shape pulse
... and many more.

Is there support for multiple getters and setters for a property? A naive implementation would allow just repeating the property name:

properties:
  source_function_shape:
    getter:
      q: ":SOURCE:FUNCTION:SHAPE?"
      r: {}
    setter:
      q: ":SOURCE:FUCTION:SHAPE {}"
    valid: ["DC", "PULS", "PULSE"]
  source_function_shape:  # same property name so that ":SOUR:FUNC:SHAP?" returns the same as ":SOURCE:FUNCTION:SHAPE?"
    getter:
      q: ":SOUR:FUNC:SHAP?"
      r: {}
    setter:
      q: ":SOUR:FUCN:SHAP {}"
    valid: ["DC", "PULS", "PULSE"]

But this ends up being very verbose.

Can regex be used for getter and setter commands?

properties:
  source_function_shape:
    getter:
      q: ':(SOUR(CE)?\d?)?:FUNC(TION)?:SHAPE?\?'
      r: {}
    setter:
      q: ':(SOUR(CE)?\d?)?:FUNC(TION)?:SHAP(E)? \{\}'
    valid: ["DC", "PULS", "PULSE"]

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