From 9cd7e7712c6b4df8744ec4615712336b75788f60 Mon Sep 17 00:00:00 2001 From: shinedday <shinedday@gmail.com> Date: Thu, 19 May 2022 10:33:05 +0200 Subject: [PATCH] Greatly improved wait --- README.md | 71 ++++++++++++++++++++++++++++ dist/iotAmak-0.0.3-py3-none-any.whl | Bin 0 -> 11157 bytes iotAmak/tool/schedulable.py | 11 ++--- setup.py | 2 +- 4 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 dist/iotAmak-0.0.3-py3-none-any.whl diff --git a/README.md b/README.md index f1ca783..4847251 100644 --- a/README.md +++ b/README.md @@ -175,3 +175,74 @@ Pour ajouter des attributs a l'initialisation aux agents il suffit de rajouter d **A AJOUTER** un .config dans les experience avec la version du coeur +# diagrame de classe + +```mermaid +classDiagram + + class Amas{ + int next_id + List~Cmd~ agent_cmd + List~Dict~ agents_metrics + on_initialization() + on_initial_agents_creation() + add_agent() + push_agent() + agent_log() + agent_metric() + on_cycle_begin() + on_cycle_end() + run() + } + + class Agent{ + List~Dict~ neighbors + List~Dict~ next_neighbors + on_initialization() + on_cycle_begin() + on_cycle_end() + add_neighbor() + log(message) + publish() + on_perceive() + on_decide() + on_act() + send_metric() Dict + run() + } + + class Env{ + on_initialization() + on_cycle_begin() + on_cycle_end() + run() + } + + class Scheduler + + class MqttClient{ + ~Paho mqtt client~ client + subscribe(topic, fun) + publish(topic, message) + } + + class Schedulable{ + int exit_bool + int nbr_cycle + int wait_delay + int wake_up_token + wake_up() + wait() + exit_procedure() + } + + class SSHClient + + + MqttClient <|-- Schedulable + Schedulable <|-- Scheduler + Schedulable <|-- Agent + Schedulable <|-- Env + Schedulable <|-- Amas + SSHClient <|-- Amas +``` \ No newline at end of file diff --git a/dist/iotAmak-0.0.3-py3-none-any.whl b/dist/iotAmak-0.0.3-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..d507a96c580dba28375964768a3027df3086f88c GIT binary patch literal 11157 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 literal 0 HcmV?d00001 diff --git a/iotAmak/tool/schedulable.py b/iotAmak/tool/schedulable.py index 0abff6e..b827eac 100644 --- a/iotAmak/tool/schedulable.py +++ b/iotAmak/tool/schedulable.py @@ -5,6 +5,7 @@ from time import sleep import sys import pathlib +import threading sys.path.insert(0, str(pathlib.Path(__file__).parent.parent)) @@ -23,14 +24,14 @@ class Schedulable(MqttClient): self.subscribe("ihm/exit", self.exit_procedure) self.nbr_cycle: int = 0 - self.wait_delay: float = 0.01 - self.wake_up_token: int = 0 + + self.semaphore = threading.Semaphore(0) def wake_up(self, client, userdata, message) -> None: """ Called by the scheduler to wake up the schedulable """ - self.wake_up_token += 1 + self.semaphore.release() # print("Waked up") def wait(self) -> None: @@ -38,9 +39,7 @@ class Schedulable(MqttClient): Basic wait method """ # print("Waiting") - while self.wake_up_token == 0: - sleep(self.wait_delay) - self.wake_up_token -= 1 + self.semaphore.release() # print("End wait") def exit_procedure(self, client, userdata, message) -> None: diff --git a/setup.py b/setup.py index 0388a00..a2f08fd 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import setup, find_packages setup( name='iotAmak', packages=find_packages(), - version='0.0.2', + version='0.0.3', description='AmakFramework in python', author='SMAC - GOYON Sebastien', install_requires=[], -- GitLab