Skip to content

Enumerated EPICS variables cannot be reverted in SDF

If the setpoint is a number.

Possibly due to SDF handling the number as a string.

On the large test stand, x2lsc has the value X2:LSC-YARM_FM_TRIG_INVERT. This channel shows setpoint of 0.0000000e0, EPICS value of normal.

Upon revert, the following error is output from the epics process:

''' rts_epics_exec[17295]: Illegal choice PV: X2:LSC-YARM_FM_TRIG_INVERT 0.000000000000000e+00 '''

0.000000e+00 is in the safe.snap as a number, not a string.

There are two problems:

  1. SDF should be able to handle numbers for enumerated types since caput can.
  2. Generated sdf files should output strings for enumerated types, not numbers. This will help for readability, and would be a workaround for this problem.

Note that once accepted, SDF writes the string out to the snap file.

Edited by Erik von Reis