V4 Use Cases
Use Cases
These are examples that need to get handled by the CA client user API, the network protocol, the database, down to drivers and back up to the client.
Command-line tools for debugging and scripting
1. Dump the current "value" of the channel "fred". 2. Dump all properties, their type, current value for a given channel. 3. Dump the timestamp, value, units, status, severity of "fred" once a second. 4. ... whenever any of the timestamp, ... severity change. 5. List all events that a PV supports: On change, 1Hz, RF Pulse, Beam Pulse, ... 6. Dump the value of the cavity waveform for every beam pulse.
Display Manager
1. Display an analog input value on a bar
Get limits, subscribe to values, receive value & display it, receive change-of-display-range notification,...
2. Display a menu output for a 2 state valve on a text update
Get state strings, subscribe to (numeric?) value, display incoming data, receive state string updates, ...
3. Give a controller for a 2 state valve controller on a radio button
Handle same as 2?
4. Display a waveform on an xy plot
Similar to 1, but array data?
5. Attempt to display a string on a bar 6. Universal PV Inspector:
Get properties, allow user to select properties. If writeable string -> display text entry field If read-only string -> display text update field If writeable numeric with limits -> display slider with range of number ....
7. Display as bars, a list of BPMs where I can set the offset in time to fetch (assuming that these BPMs are read as arrays that are all triggered at one time – but I want to see them at different points in time as it goes down the beamline).
Physics Application
1. BPM-related ideas 1.1. List all channels available that are BPMs 1.2. Select all of them in sector 6 1.3 Display them when the beam is going to the end station A (one of 8 destinations possible) 1.4 Same, but display all BPMs on the .1 Hz event 2. Scan a probe in the beam line 2.1 Find PVs for some beam line device:
Stepper motors for probe's X & Y position, intensity of beam transmitted by probe, beam shutter open/close, beam available
2.2 Scan sequence:
Assert shutter is closed; move X/Y to 0/0, wait for completion until done: open shutter, wait until open measure intensity for 1 second while beam_available close shutter move to next position, wait until you get there
Archiver
1. Get value, timestamp, status/severity of a channel once per second 2. Archive default properties of a channel using the default deadband
How are they defined? How does the archiver learn about them?
3. Given that there is a new view defined in the stepper motor that includes all motor readback data:
Subscribe to counterClockWiseLimit, clockWiseLimit, moving, doneRetries, homeLimit at 10 Hz.