23 measured_channel, desired_channel, tolerance):
25 measured_iovs = iovs.select_channels(measured_channel)
26 desired_iovs = iovs.select_channels(desired_channel)
28 events = process_iovs(measured_iovs, desired_iovs)
30 for since, until, (measured, desired)
in events:
38 if measured
is not None:
40 if measured.value
is None:
42 elif measured.value <= tolerance:
44 defect = system +
'_OFF'
54 elif ((system ==
'GLOBAL_SOLENOID' and abs(measured.value - 7730.) < tolerance)
55 or (system ==
'GLOBAL_TOROID' and abs(measured.value - 20400.) < tolerance)):
60 defect = system +
'_RAMPING'
65 mcurrent =
'%.1f' % measured.value
if measured.value
is not None else 'None'
66 scurrent =
'%.1f' % desired.value
if desired.value
is not None else 'None'
67 yield DefectIOV(since, until, defect,
True,
68 comment=
'Measured current: %s, Set current: %s' % (mcurrent, scurrent))