##// END OF EJS Templates
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported
Rewrite controller, remove MPDecorator to units (keep for plots an writers) use of queues for interproc comm instead of zmq, self operations are no longer supported

File last commit:

r1167:1f521b07c958
r1287:af11e4aac00c
Show More
controller_api.py
178 lines | 3.7 KiB | text/x-python | PythonLexer
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 import threading
George Yong
Python 2to3, Spectra (all operations) working
r1167 from queue import Queue
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636
from schainpy.controller import Project
Miguel Valdez
External plotter simplified.
r716 from schainpy.model.graphics.jroplotter import PlotManager
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636
class ControllerThread(threading.Thread, Project):
José Chávez
1.0
r944
Miguel Valdez
v2.2.0: Controller updated
r708 def __init__(self, plotter_queue=None):
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 threading.Thread.__init__(self)
Miguel Valdez
v2.2.0: Controller updated
r708 Project.__init__(self, plotter_queue)
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 self.setDaemon(True)
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock = threading.Lock()
José Chávez
this fixes bug #1074 and bug #1101
r1011 self.control = { 'stop':False, 'pause':False }
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636
def __del__(self):
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 self.control['stop'] = True
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 def stop(self):
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock.acquire()
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 self.control['stop'] = True
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock.release()
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 def pause(self):
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock.acquire()
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 self.control['pause'] = not(self.control['pause'])
Miguel Valdez
Version: 2.1.3.2...
r672 paused = self.control['pause']
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock.release()
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 return paused
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 def isPaused(self):
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock.acquire()
paused = self.control['pause']
self.lock.release()
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 return paused
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 def isStopped(self):
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 self.lock.acquire()
stopped = self.control['stop']
self.lock.release()
José Chávez
1.0
r944
Miguel Valdez
Version: 2.1.3.2...
r672 return stopped
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 def run(self):
self.control['stop'] = False
self.control['pause'] = False
José Chávez
1.0
r944
Miguel Valdez
v2.2.0: Controller updated
r708 self.writeXml()
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 self.createObjects()
self.connectObjects()
Project.run(self)
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 def isRunning(self):
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 return self.is_alive()
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 def isFinished(self):
José Chávez
1.0
r944
Miguel Valdez
ControllerThread was eliminated from controller.py and it was added to controller_api.py
r636 return not self.is_alive()
Miguel Valdez
r681
Miguel Valdez
External plotter simplified.
r716 def setPlotters(self):
José Chávez
1.0
r944
Miguel Valdez
minor changes
r736 plotterList = PlotManager.plotterList
José Chávez
1.0
r944
George Yong
Python 2to3, Spectra (all operations) working
r1167 for thisPUConfObj in list(self.procUnitConfObjDict.values()):
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 inputId = thisPUConfObj.getInputId()
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 if int(inputId) == 0:
continue
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 for thisOpObj in thisPUConfObj.getOperationObjList():
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 if thisOpObj.type == "self":
continue
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 if thisOpObj.name in plotterList:
José Chávez
this fixes bug #1074 and bug #1101
r1011 thisOpObj.type = "other"
Miguel Valdez
External plotter simplified.
r716
def setPlotterQueue(self, plotter_queue):
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 self.plotterQueue = plotter_queue
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 def getPlotterQueue(self):
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 return self.plotterQueue
def useExternalPlotter(self):
José Chávez
1.0
r944
Miguel Valdez
Version 2.2.5
r827 self.plotterQueue = Queue(10)
Miguel Valdez
External plotter simplified.
r716 self.setPlotters()
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 plotManagerObj = PlotManager(self.plotterQueue)
plotManagerObj.setController(self)
José Chávez
1.0
r944
Miguel Valdez
External plotter simplified.
r716 return plotManagerObj
José Chávez
1.0
r944
Miguel Valdez
r681 # from PyQt4 import QtCore
# from PyQt4.QtCore import SIGNAL
José Chávez
1.0
r944 #
Miguel Valdez
r681 # class ControllerQThread(QtCore.QThread, Project):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def __init__(self, filename):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # QtCore.QThread.__init__(self)
# Project.__init__(self)
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.filename = filename
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock = threading.Lock()
# self.control = {'stop':False, 'pause':False}
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def __del__(self):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.control['stop'] = True
# self.wait()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def stop(self):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock.acquire()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.control['stop'] = True
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock.release()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def pause(self):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock.acquire()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.control['pause'] = not(self.control['pause'])
# paused = self.control['pause']
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock.release()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # return paused
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def isPaused(self):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock.acquire()
# paused = self.control['pause']
# self.lock.release()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # return paused
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def isStopped(self):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.lock.acquire()
# stopped = self.control['stop']
# self.lock.release()
José Chávez
1.0
r944 #
Miguel Valdez
r681 # return stopped
José Chávez
1.0
r944 #
Miguel Valdez
r681 # def run(self):
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.control['stop'] = False
# self.control['pause'] = False
José Chávez
1.0
r944 #
Miguel Valdez
r681 # self.readXml(self.filename)
# self.createObjects()
# self.connectObjects()
# self.emit( SIGNAL( "jobStarted( PyQt_PyObject )" ), 1)
# Project.run(self)
# self.emit( SIGNAL( "jobFinished( PyQt_PyObject )" ), 1)
George Yong
Python 2to3, Spectra (all operations) working
r1167 #