Ajout demonstration final

This commit is contained in:
LéopoldClement 2021-12-02 13:44:40 +01:00
parent 5002bba5a2
commit 24965b27e7
2 changed files with 90 additions and 51 deletions

35
demo_boucle.py Normal file
View file

@ -0,0 +1,35 @@
#! /bin/python3
import socket
import time
import numpy as np
from coapthon.client.helperclient import HelperClient
from coapthon.client.superviseur import (SuperviseurGlobal,
SuperviseurLocalFiltre)
from coapthon.utils import parse_uri
from utils_learning import RequettePeriodique
host, port, path = parse_uri("coap://polaris.kokarde.fr/basic")
try:
tmp = socket.gethostbyname(host)
host = tmp
except socket.gaierror:
pass
nombreCapteur = 25
periodeRequette = 1
periodeControl = 15
clients = [HelperClient(server=(host, port)) for _ in range(nombreCapteur)]
super_g = SuperviseurGlobal(clients, SuperviseurLocalFiltre)
requests = [RequettePeriodique(client, periodeRequette, path, name="Spamer {}".format(
n)) for n, client in enumerate(clients)]
[request.start() for request in requests]
for _ in range(10):
super_g.reset()
time.sleep(periodeControl)
print(super_g.state)

View file

@ -7,11 +7,7 @@ import time
from typing import Any, Callable, Iterable, Mapping, Optional from typing import Any, Callable, Iterable, Mapping, Optional
import numpy as np import numpy as np
import tensorflow as tf
from tf_agents.environments import (py_environment, tf_environment,
tf_py_environment, utils, wrappers)
from tf_agents.specs import array_spec
from tf_agents.trajectories import time_step as ts
from coapthon.client.helperclient import HelperClient from coapthon.client.helperclient import HelperClient
from coapthon.client.superviseur import (SuperviseurGlobal, from coapthon.client.superviseur import (SuperviseurGlobal,
@ -46,8 +42,13 @@ class RequettePeriodique(threading.Thread):
else: else:
raise ValueError raise ValueError
try :
class MaquetteCoapEnv(py_environment.PyEnvironment): import tensorflow as tf
from tf_agents.environments import (py_environment, tf_environment,
tf_py_environment, utils, wrappers)
from tf_agents.specs import array_spec
from tf_agents.trajectories import time_step as ts
class MaquetteCoapEnv(py_environment.PyEnvironment):
def __init__(self, clients: Iterable[HelperClient], superviseur_local_type: type, superviseur_global_type: type, request_path: str, args_reward: Iterable[Any] = (), def __init__(self, clients: Iterable[HelperClient], superviseur_local_type: type, superviseur_global_type: type, request_path: str, args_reward: Iterable[Any] = (),
control_period: float = 30, request_period: Iterable[float] = None) -> None: control_period: float = 30, request_period: Iterable[float] = None) -> None:
@ -105,3 +106,6 @@ class MaquetteCoapEnv(py_environment.PyEnvironment):
return ts.termination(etat, -10000) return ts.termination(etat, -10000)
else: else:
return ts.transition(etat, reward=recompense) return ts.transition(etat, reward=recompense)
except ImportError :
print("Pas de fonctionalité d'apprentissage")