Files
sf-op/script/Devices/WireScan.py
voulot_d 33dce4dda3 Startup
2017-04-10 10:53:04 +02:00

47 lines
1.8 KiB
Python

class WireScan:
Garage, W1X, W1Y, W2X, W2Y, Foil = "GARAGE", "W1X", "W1Y", "W2X", "W2Y", "Foil"
def __init__(self, prefix, sel = None):
self.prefix = prefix
self.velocity = Channel(self.prefix + ":SCAN_VELO_SP")
self.cycles = Channel(self.prefix + ":NB_CYCL_SP")
self.currCycl = Channel(self.prefix + ":CURR_CYCL", callback = self.on_cycle_change)
self.currCycl.set_monitored(True)
#self.current_cycle = self.currCycl.get()
self.selection = None
self.u0 = None
self.offset = None
self.range = None
self.start = None
self.end = None
if sel is not None:
self.set_selection(sel)
def on_cycle_change(self, val):
print "On cycle chenge: ", val
self.current_cycle = val
def set_selection(self, sel):
if not sel in [WireScan.Garage, WireScan.W1X, WireScan.W1Y, WireScan.W2X, WireScan.W2Y, WireScan.Foil]:
raise Exception("Invalid Wire Scan selection: " + str(sel))
self.selection = sel
self.u0 = Channel(self.prefix + ":" + self.selection + "_U0_SP")
self.offset = Channel(self.prefix + ":" + self.selection + "_OFF_SP")
self.range = Channel(self.prefix + ":" + self.selection + "_RANGE_SP")
self.start = Channel(self.prefix + ":" + self.selection + "_START_SP")
self.end = Channel(self.prefix + ":" + self.selection + "_END_SP")
def close(self):
self.velocity.close()
self.cycles.close()
self.currCycl.close()
if self.u0 is not None: self.u0.close()
if self.offset is not None: self.offset.close()
if self.range is not None: self.range.close()
if self.start is not None: self.start.close()
if self.end is not None: self.end.close()