yaq-project / yaqd-scpi

GNU Lesser General Public License v3.0
0 stars 1 forks source link

yaqd-scpi

PyPI Conda yaq black ver log

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

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

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

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}