yaq daemons for SCPI hardware. This package contains a few very generic daemons for interacting with the SCPI bus from yaq. The generic approach works well for many simple applications, but more complex hardware interaction may require a more hardware-specific daemon.
scpi-sensor
allows yaq users to treat one or more scalar queries as a standard yaq sensor.
Multiple queries are treated as multiple channels.
Users can define channel names and units via config.
An example config follows:
[rigol]
port = 39999
visa_address = "TCPIP0::128.104.68.66::INSTR"
[rigol.channels]
[rigol.channels.trigger_level]
query = "TRIG:EDGE:LEV?"
units = "V"
[rigol.channels.time_offset]
query = "TIM:MAIN:OFFS?"
units = "s"
scpi-set-continuous
allows yaq users to address a single scalar settable.
Limits and units can be provided via config.
An example config follows:
[rigol_ch1_freq]
port = 39998
visa_address = "TCPIP0::128.104.68.66::INSTR"
limits = [0.1, 25e9]
scpi_command = "SOUR1:FREQ"
[rigol_ch2_freq]
port = 39999
visa_address = "TCPIP0::128.104.68.66::INSTR"
limits = [0.1, 25e9]
scpi_command = "SOUR1:FREQ"
scpi-set-discrete
allows yaq users to address a single non-scalar settable according to user-friendly names.
Identifiers must be provided via config.
An example config follows:
[rigol_ch1_func]
port = 39999
visa_address = "TCPIP0::128.104.68.66::INSTR"
scpi_command = "SOUR1:FUNC"
identifiers = {"SIN"=0, "SQU"=1, "RAMP"=2, "PULS"=3, "NOIS"=4, "DC"=5}