@@ -243,7 +243,35 @@ need to be configured on the scan server.
243243Default Device Settings
244244-----------------------
245245
246- TODO
246+ A command to turn a power supply on or set a voltage may be instantaneous::
247+
248+ commands = [ Set('PS42:Voltage', 12.0), Comment("PS is now on at 12 Volts")]
249+
250+ But this device behavior tends to be the exception.
251+ When controlling a motor, the EPICS motor support allows using a "put-callback"
252+ to the device which waits until the motor reaches the desired location.
253+ This mechanism is also referred to as "completion".
254+ A temperature controller might support completion on its temperature
255+ setpoint PV.
256+ On devices that do not support completion, it may be possible
257+ to read the current device state from a separate readback PV and wait until
258+ it agrees with the commanded value.
259+
260+ Based on the device at hand, we want to use the appropriate :class: `.Set ` command::
261+
262+ Set('SomePV', 42.3, completion=True, timeout=30)
263+ Set('SomePV', 42.3, completion=True, timeout=3000)
264+ Set('SomePV', 42.3, completion=True, timeout=3000, readback="SomePV.RBV", tolerance=0.1)
265+ Set('SomePV', 42.3, readback="OtherPV", tolerance=10, timeout=15)
266+
267+ Unfortunately, the "correct" way to set a PV is not discernible from the outside.
268+ It requires knowledge about the implementation of a PV in the IOC.
269+ And even if the correct way to set a PV is known, having to type
270+ all parameters for each `Set ` command can be cumbersone.
271+ The PyScanClient library offers :ref: `scan_settings ` where the ideal
272+ parameters for each PV can be configured once, and wrappers for the
273+ basic `Set ` and `Wait ` commands will then automatically use them as a default.
274+
247275
248276Table Scan
249277----------
0 commit comments