Skip to content
Snippets Groups Projects
Commit 92d4525a authored by BRONES Romain's avatar BRONES Romain
Browse files

Migrate two commands to threads

* Commands start() and align_fa()
* Workers are declared in separate files
parent 545ed2ab
No related branches found
No related tags found
No related merge requests found
......@@ -22,11 +22,11 @@ from tango import AttrQuality, DispLevel, DevState
from tango import AttrWriteType, PipeWriteType
# Additional import
#----- PROTECTED REGION ID(DG_PY_FOFBTool.additionnal_import) ENABLED START -----#
import FOFBToolWorker
import FofbTool
import FofbTool.Operation
import FofbTool.Configuration
import logging
import multiprocessing
import numpy as np
#----- PROTECTED REGION END -----# // DG_PY_FOFBTool.additionnal_import
......@@ -377,25 +377,8 @@ class DG_PY_FOFBTool(Device):
:return:None
"""
self.info_stream("Starting all")
self.d_status["nodes"]="FofbNode: starting"
if self._include_lbp:
self.debug_stream("Starting comlbp")
for cn in self.tangopath_cellnode:
FofbTool.Operation.start_comlbp(cn)
else:
self.debug_stream("Skipping comlbp")
self.debug_stream("Starting combpm")
for cn in self.tangopath_cellnode:
FofbTool.Operation.start_combpm(cn)
self.debug_stream("Starting ccn")
for cn in self.tangopath_cellnode:
FofbTool.Operation.start_ccn(cn)
FofbTool.Operation.start_ccn(self.tangopath_centralnode)
self.d_status["nodes"]="FofbNode: started"
T=FOFBToolWorker.Work_Start(self)
T.start()
# PROTECTED REGION END # // DG_PY_FOFBTool.start
......@@ -435,21 +418,11 @@ class DG_PY_FOFBTool(Device):
:return:None
"""
cn=self.tangopath_cellnode[argin]
self.debug_stream("Launch align FA on {}".format(cn))
seqoffset = FofbTool.Operation.align_ccn(cn, 0)
if (seqoffset is None) or seqoffset in (-1,0,1):
self.error_stream("Could not align all ccn")
self.d_status["align"]="FA Align: failed"
return
for cn in self.tangopath_cellnode:
FofbTool.Configuration.cellnode_configure_comlbp(cn, seqoffset)
T = FOFBToolWorker.Work_AlignFA(self, self.tangopath_cellnode[argin])
T.start()
self.d_status["align"]="FA Align: OK"
# PROTECTED REGION END # // DG_PY_FOFBTool.align_fa
# ----------
......
import threading
import FofbTool.Configuration
import FofbTool.Operation
class Work_AlignFA(threading.Thread):
def __init__(self, parent, cellnodepath):
threading.Thread.__init__(self)
self.parent=parent
self.cellnodepath = cellnodepath
def run(self):
# Run align ccn on cellnode
self.parent.d_status["align"]="FA Align: Running"
seqoffset = FofbTool.Operation.align_ccn(self.cellnodepath, 0)
if (seqoffset is None) or seqoffset in (-1,0,1):
self.parent.error_stream("Could not align all ccn")
self.parent.d_status["align"]="FA Align: failed"
return
for cn in self.parent.tangopath_cellnode:
FofbTool.Configuration.cellnode_configure_comlbp(cn, seqoffset)
self.parent.d_status["align"]="FA Align: Done"
class Work_Start(threading.Thread):
def __init__(self, parent):
threading.Thread.__init__(self)
self.parent=parent
def run(self):
self.parent.d_status["nodes"]="FofbNode: starting"
if self.parent._include_lbp:
self.parent.debug_stream("Starting comlbp")
for cn in self.parent.tangopath_cellnode:
FofbTool.Operation.start_comlbp(cn)
else:
self.parent.debug_stream("Skipping comlbp")
self.parent.debug_stream("Starting combpm")
for cn in self.parent.tangopath_cellnode:
FofbTool.Operation.start_combpm(cn)
self.parent.debug_stream("Starting ccn")
for cn in self.parent.tangopath_cellnode:
FofbTool.Operation.start_ccn(cn)
FofbTool.Operation.start_ccn(self.tangopath_centralnode)
self.parent.d_status["nodes"]="FofbNode: started"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment