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"]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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