Skip to content
Snippets Groups Projects
Commit b0381eae authored by shined day's avatar shined day
Browse files

Merge branch 'enhance_threading' into 'master'

Enhance threading

See merge request be-pyamak/pyamak-ihm!3
parents b73c8f8a 160594e9
Branches
No related tags found
No related merge requests found
...@@ -18,13 +18,16 @@ class Controleur: ...@@ -18,13 +18,16 @@ class Controleur:
def __init__( def __init__(
self, self,
fenetre : 'Fenetre', fenetre : 'Fenetre',
amas : 'Amas' scheduler : 'SchedulerIHM'
) -> None : ) -> None :
self.__th = None self.__th = None
self.__fenetre = fenetre self.__fenetre = fenetre
self.__fenetre.attach(self) self.__fenetre.attach(self)
self.__amas = amas
self.__amas.attach(self) self.__scheduler = scheduler
self.__scheduler.attach(self)
self.__amas = scheduler.get_amas()
self.__is_run = False self.__is_run = False
def get_fenetre(self) -> 'Fenetre': def get_fenetre(self) -> 'Fenetre':
...@@ -33,6 +36,9 @@ class Controleur: ...@@ -33,6 +36,9 @@ class Controleur:
def get_amas(self) -> 'Amas': def get_amas(self) -> 'Amas':
return self.__amas return self.__amas
def get_scheduler(self) -> 'SchedulerIHM':
return self.__scheduler
""" """
Draw a rectangle with x,y coords, height, width and color Draw a rectangle with x,y coords, height, width and color
""" """
...@@ -215,26 +221,26 @@ class Controleur: ...@@ -215,26 +221,26 @@ class Controleur:
Set the execution speed of amas Set the execution speed of amas
""" """
def updateScale(self, value : int) -> None: def updateScale(self, value : int) -> None:
self.__amas.set_sleep(int(value)) self.__scheduler.set_sleep(int(value))
""" """
Start or Stop the execution depending on the current state Start or Stop the execution depending on the current state
""" """
def updateStartStop(self) -> None: def updateStartStop(self) -> None:
if(self.__is_run): if self.__is_run:
self.__is_run = False self.__is_run = False
self.__amas.take_token() self.__scheduler.stop()
else: else:
self.__is_run = True self.__is_run = True
self.__amas.put_token() self.__scheduler.start()
def updateCycle(self,env,amas) -> None: def updateCycle(self) -> None:
try: try:
self.updateWindow(env,amas) self.updateWindow()
except: except:
return return
def updateWindow(env,amas): def updateWindow(self):
pass pass
def initialisation(self) -> None: def initialisation(self) -> None:
...@@ -245,9 +251,9 @@ class Controleur: ...@@ -245,9 +251,9 @@ class Controleur:
""" """
def start(self) -> None: def start(self) -> None:
self.initialisation() self.initialisation()
self.__th = Thread(target=self.__amas.start) self.__th = Thread(target=self.__scheduler.run)
self.__th.start() self.__th.start()
self.__fenetre.display() self.__fenetre.display()
def updateClosing(self): def updateClosing(self):
self.__amas.exit_program() self.__scheduler.exit_program()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment