Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor New for E36xx to handle different types of DCPwr instruments #4

Open
matthewrankin opened this issue Jul 13, 2017 · 1 comment

Comments

@matthewrankin
Copy link
Contributor

If a single driver is going to handle multiple models, I'll need to implement one or possibly multiple of the following new functions:

  1. Have specific new functions for each supported model, such as NewE3631A(inst) instead of New(inst)
  2. Have a NewQuery(inst) function that queries the instrument and confirms it is supported.
  3. Have a New(inst, model) function that specifies the model of the instrument to create.

In all of these, how do I handle passing in an option to reset the device? Is that always a boolean that is provided? What if I want to specify NewE3631A(inst) and I also want to query the device to ensure it actually that? I could simply mandate that a query is always performed.

@matthewrankin
Copy link
Contributor Author

Thoughts on the API to create a new DC power supply in the case where one IVI driver supports multiple models, such as handling models with different number of outputs.

type inst ivi.Instrument
type Config struct {
    model string
    queryId bool
    reset bool
}
config := Config{"E3631A", true, false}
dc, err := agilente36xx.New(inst, config)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant