handle PV put return value

This commit is contained in:
2021-08-24 18:43:01 +02:00
parent ce4a031de4
commit 26e22897ee
+16 -1
View File
@@ -74,7 +74,8 @@ class PVAdjustable(Adjustable):
tname = typename(self)
raise AdjustableError(f"waiting for {tname} \"{self.name}\" to be ready for change to {value} {self.units} timed out")
self.pvs.setvalue.put(value, wait=True, use_complete=True) # use_complete=True enables status in PV.put_complete
ret = self.pvs.setvalue.put(value, wait=True, use_complete=True) # use_complete=True enables status in PV.put_complete
handle_put_return_value(ret)
time.sleep(self.process_time)
# wait for done
@@ -140,4 +141,18 @@ def make_pcm(pvname_done_moving, pvname_moving):
return PVChangeMonitor(pvname_done_moving, inverted=True)
def handle_put_return_value(ret):
if ret == 1: # success
return
if ret == -1:
error = "time out"
elif ret is None:
error = "disconnected PV"
else:
error = f"unknown error (return code: {ret})"
raise AdjustableError(f"changing {tname} \"{self.name}\" to {value} {self.units} failed due to {error}")