You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In this SCPI dialect, normal commands and queries usually(?) start with a mandatory ":".
Currently INSTRUMENT.chan.("OFF") sends CHAN OFF to the device. For the Owon to not ignore command, it must begin with a colon: i.e. :CHAN OFF to turn off the signal generator channel.
As expected, INSTRUMENT.:chan("OFF") and variants make Python throw errors, while easy-scpi already properly injects colons deeper in the hierarchy: INSTRUMENT.foo.bar(42) translates to <>FOO<:>BAR 42 (<> marks the spots).
So my issue is just a way to add the missing first colon on (some?) sent commands.
Possible implementation for this:
In the invoking script, permit the use of some horribly long "unique" string such as REPLACEBYCOLON as prefix to <SCPI-CLASS-NAME>.
Then mangle the used top class name of the command before sending by substituting REPLACEBYCOLON with just a colon. A global prefix on sending will probably have to implement exceptions, as e.g. the Owon dialect and esp. the programming guide are a bit - hmmm - funny.
Maybe make REPLACEBYCOLON configurable for the caller, thus that on collision or via eval the user can can change it or turn it off for a bit..
Thx,
Peter
The text was updated successfully, but these errors were encountered:
So adding 2 ways to mangle the top class name: Above scheme, plus a black/whitelist, or maybe just an optionally mangling callback, with a usable predefined example callback using in-instance attributes for above scheme and some black/whitelist and maybe a regex based substitution?
Maje these attributes into the instance that needs mangling, and there's no need for on/off, as I use different instances for different devices. Say, a instance that to mangling for the OWON scopemeter and one without for say a RIGOL scope and a 3rd for talking to a KORAD power supply?
And I can also get a contrib directory (owon use requires using a slightly patched usb2hdi, as I only managed to get tcp sockets to work for it in pyvisa). So a timestamped copy of hid2tcp, with a pair of patches (one minimal, one to better cope with the OWON's sleep habbits, upto yet-to-code infrequent reconnecting attempts)?
I will require a bit of review, otherwise easy-scpi will end up with with a few shiny spots of syntactically correct PYTHON line noise (or whatever PERL's pet name is these days).
Use case: Owon HDS200 series scope meter.
In this SCPI dialect, normal commands and queries usually(?) start with a mandatory ":".
Currently
INSTRUMENT.chan.("OFF")
sendsCHAN OFF
to the device. For the Owon to not ignore command, it must begin with a colon: i.e.:CHAN OFF
to turn off the signal generator channel.As expected,
INSTRUMENT.:chan("OFF")
and variants make Python throw errors, while easy-scpi already properly injects colons deeper in the hierarchy:INSTRUMENT.foo.bar(42)
translates to<>FOO<:>BAR 42
(<> marks the spots).So my issue is just a way to add the missing first colon on (some?) sent commands.
Possible implementation for this:
In the invoking script, permit the use of some horribly long "unique" string such as
REPLACEBYCOLON
as prefix to<SCPI-CLASS-NAME>
.Then mangle the used top class name of the command before sending by substituting
REPLACEBYCOLON
with just a colon. A global prefix on sending will probably have to implement exceptions, as e.g. the Owon dialect and esp. the programming guide are a bit - hmmm - funny.Maybe make
REPLACEBYCOLON
configurable for the caller, thus that on collision or via eval the user can can change it or turn it off for a bit..Thx,
Peter
The text was updated successfully, but these errors were encountered: