Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Command-line tools

Verified · no code on this page · docs-verify

The badge reports the whole docs-verify suite, not this chapter alone.

spvirit-tools ships twelve binaries. They are named sp* rather than pv* so they can sit alongside an EPICS Base installation without shadowing pvget, pvput, and friends.

ToolKindWhat it does
spgetclientread a PV once
spputclientwrite a PV
spmonitorclientsubscribe to changes
spinfoclientprint a PV's type structure
splistclientdiscover servers and their PVs
spexploreclient, TUIbrowse a server interactively
spsearchclient, TUIpassively watch PVA search traffic
spsineclientdrive a PV with a sine wave
spget_compareofflinereplay a captured GET frame
spserverserverserve a .db file
sptableserver, TUIan interactive spreadsheet IOC
spdodecaserverserve a rotating wireframe as an image

Building them

The binaries are gated behind Cargo features, so a plain cargo build -p spvirit-tools produces none of them:

cargo build -p spvirit-tools --all-features
FeatureTools it enables
clientspget, spput, spmonitor, spinfo, splist, spsine, spget_compare
serverspserver, spdodeca
client + tuispexplore, spsearch
server + tuisptable

Flags every client shares

The seven client tools take the same connection options, because they share one argument-parser helper. Rather than repeat the table on each page, it is here:

FlagMeaning
-w, --timeouttimeout in seconds
--servertalk to ip:port directly, skipping search
--search-addrsearch target IP; defaults to EPICS_PVA_ADDR_LIST or broadcast
--bind-addrlocal IP to bind the search socket to
--name-serverPVA name server host:port; repeatable via EPICS_PVA_NAME_SERVERS
--udp-portsearch port (default 5076)
--tcp-portdefault server port (default 5075)
--no-broadcastdisable UDP broadcast/multicast search; same as EPICS_PVA_AUTO_ADDR_LIST=NO
--authnz-useroverride the AuthNZ user sent at connect
--authnz-hostoverride the AuthNZ host sent at connect
-F, --fieldscomma-separated dotted field paths to request; empty means all
-d, --debugverbose protocol logging

spsearch is the exception — it never opens a TCP channel, so it takes only --udp-port, --bind-addr, and --debug.

Environment variables

The standard EPICS PVAccess variables are honoured: EPICS_PVA_ADDR_LIST, EPICS_PVA_AUTO_ADDR_LIST, EPICS_PVA_NAME_SERVERS. Explicit flags win over the environment.

A server to try them against

Every page below assumes something is serving. The quickest option:

cargo run -p spvirit-server --example complete_ioc

That is the capstone IOC, which publishes a scalar, a setpoint, a derived PV, and an array.