47 lines
1.8 KiB
Python
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()
|
|
|
|
|
|
|
|
|