Script execution
This commit is contained in:
@@ -4,15 +4,14 @@ from datetime import datetime
|
||||
class Detector(ReadonlyRegisterBase):
|
||||
def __init__(self, name):
|
||||
ReadonlyRegisterBase.__init__(self, name)
|
||||
self.id = None
|
||||
self.sn = None
|
||||
self.status = None
|
||||
self.type = None
|
||||
self.set_inputs({})
|
||||
self.reset()
|
||||
|
||||
def set_inputs(self, inputs):
|
||||
self.inputs = inputs
|
||||
self.setCache(inputs.values(), None)
|
||||
if self.take() != inputs.values():
|
||||
self.setCache(inputs.values(), None)
|
||||
if self.getParent()!=None:
|
||||
self.getParent().updateCache()
|
||||
if (len(self.take()) == 0):
|
||||
self.setState(State.Offline)
|
||||
else:
|
||||
@@ -20,15 +19,25 @@ class Detector(ReadonlyRegisterBase):
|
||||
|
||||
def set_input(self, index, val):
|
||||
self.inputs[index] = val
|
||||
self.set_inputs(self.inputs)
|
||||
self.set_inputs(self.inputs)
|
||||
|
||||
def reset(self):
|
||||
self.id = None
|
||||
self.sn = None
|
||||
self.status = None
|
||||
self.type = None
|
||||
self.set_inputs({})
|
||||
|
||||
class Esera(TcpDevice):
|
||||
def __init__(self, name, server, timeout = 1000, retries = 1):
|
||||
TcpDevice.__init__(self, name, server)
|
||||
self.setMode(self.Mode.FullDuplex)
|
||||
self.detectors = []
|
||||
for i in range(30):
|
||||
self.detectors.append(Detector("Detector " + str(i+1)))
|
||||
self.setChildren(self.detectors)
|
||||
self.completed_initializatiod = False
|
||||
self.debug = False
|
||||
self.debug = False
|
||||
|
||||
def start(self):
|
||||
self.getLogger().info("Starting controller")
|
||||
@@ -49,9 +58,8 @@ class Esera(TcpDevice):
|
||||
self.init_timestamp = time.time()
|
||||
try:
|
||||
self.setState(State.Ready) #So can communicate
|
||||
self.detectors = []
|
||||
for i in range(30):
|
||||
self.detectors.append(Detector("Detector " + str(i+1)))
|
||||
for det in self.detectors:
|
||||
det.reset()
|
||||
self.list()
|
||||
time.sleep(1.0)
|
||||
self.check_started()
|
||||
@@ -63,7 +71,15 @@ class Esera(TcpDevice):
|
||||
|
||||
def doUpdate(self):
|
||||
self.check_started()
|
||||
self.req_data()
|
||||
self.req_data()
|
||||
|
||||
def updateCache(self):
|
||||
print "Update"
|
||||
cache = []
|
||||
for det in self.detectors:
|
||||
cache.append(det.take())
|
||||
self.setCache(cache, None)
|
||||
|
||||
|
||||
def check_started(self):
|
||||
if not self.completed_initializatiod:
|
||||
|
||||
Reference in New Issue
Block a user