Scope application displays arbitrary information from a pvAccess channel as a time series graph. To start:
c2dv --app scope --pv=<PV>
From the application UI, select the fields to plot under "Channels" options. Click the "Start" checkbox to start plotting. You can also set fields and connect on startup as follows:
c2dv --app scope --pv=<PV> --fields=<FIELD1>,<FIELD2>,.. --connect-on-start
See c2dv -h
for all options.
To zoom, scroll using the scroll wheel or trackpad. To pan, left click and drag. To see all mouse interactions, see pyqtgraph's documentation.
You can also configure the X/Y range, by right-click, select options from either the X-axis or Y-axis menus.
Scope application supports software triggering via external v3 PV. When trigger mode is configured and trigger occur,
selected displayed channels will be updated for the trigger time. Number of samples displayed can be controlled via Buffer
parameter.
Trigger timestamp is always at the middle of the displayed waveform and is marked with the red line.
Configuring the trigger:
- Stop acquisition if needed
- Set PV
- Set trigger PV. If the trigger PV uses
pva
protocol, then set the trigger time field. - Set trigger mode to "On Change".
- Set data time field for the PV. This field is used to determine if the trigger PV timestamp falls within the PV waveform
- Select desired input channels
- Start the acquisition
When the trigger condition is meet, the waveform will draw/update.
PVs can be specified by a configuration file.
Example
[DEFAULT]
APP=SCOPE
[SCOPE]
SECTION=ACQUISITION,CHANNELS
[ACQUISITION]
PV=MyPV:Data
ConnectOnStart=true
[CHANNELS]
Chan1.Field=x
Chan2.Field=y
Scope configurations must start with:
[DEFAULT]
APP=SCOPE
[SCOPE]
SECTION=<SECTION LIST>
Where <SECTION_LIST> is a list of the sections in the file. Below are configuration settings specific to the scope app for each section. Note that fields and values are case insensitive.
Setting | Description |
---|---|
Section | List of sections to read in the config file |
Setting | Description |
---|---|
PV | EPICS PV name. By default uses PVAccess protocol. Can specify protocol by starting name with [proto]://pvname, where [proto] is either 'ca' or 'pva' |
ConnectOnStart | Attempt to connect to PV on startup. Set to true or false |
BufferUnit | Units for buffer size. Can set to 'Samples' or 'Objects'. If set to Objects, then the buffer size is in terms of number of objects |
Buffer | Buffer size |
Setting | Description |
---|---|
Chan[ID].Field | PV field to plot. Field have scalar array data. Can have up to 4 instances specified (see example above). Can specify fields inside of nested structures with struct1.struct2.field1 notation where struct1 , struct2 are the structure names, and field1 is the field name |
Chan[ID].DcOffset | Extra offset added on top of sample values. Will cause plot Y values to be shifted. |
Setting | Description |
---|---|
Refresh | Refresh time in milliseconds |
Autoscale | Enable autoscale. Set to true or false |
Mode | Set display mode. Valid values are: "normal", "fft", "psd", "diff", "xy" |
Single_Axis | Enable single axis. Set to true or false |
Histogram | Turns on histogram mode. Set to true or false |
Setting | Description |
---|---|
XAxes | PV field to use for X-axis values in X vs Y mode |
MajorTicks | Sample interval length for major ticks |
MinorTicks | Sample interval length for minor ticks |