From f84359ec7a79c07bc2ae86ad81db823e1912a9e8 Mon Sep 17 00:00:00 2001 From: Loic Guegan Date: Wed, 28 Jun 2023 15:46:15 +0200 Subject: Add nodes groups features --- esds/platform.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'esds/platform.py') diff --git a/esds/platform.py b/esds/platform.py index 341ca13..40f8301 100644 --- a/esds/platform.py +++ b/esds/platform.py @@ -58,6 +58,7 @@ class YAMLPlatformFile: "node_count": 0, "implementations": [], "arguments": [], + "groups": dict(), "interfaces": dict() } @@ -145,6 +146,14 @@ class YAMLPlatformFile: self.default["node_count"]=nodes["count"] else: self.parsing_error("node count not provided") + if "groups" in nodes: + if type(nodes["groups"]) != list: + self.parsing_error("nodes groups should be a list") + for grp in nodes["groups"]: + words=grp.split() + r=UnitsParser.node_range(words[0],self.default["node_count"]) + for node in r: + self.default["groups"][node]=words[1] if "implementations" in nodes: if type(nodes["implementations"]) != list: self.parsing_error("nodes implementations should be a list of file path") @@ -210,7 +219,10 @@ class YAMLPlatformFile: ##### Create simulator simulator=Simulator(self.default["interfaces"]) for node_id in range(0,self.default["node_count"]): - simulator.create_node(self.default["implementations"][node_id], args=self.default["arguments"][node_id]) + if node_id in self.default["groups"]: + simulator.create_node(self.default["implementations"][node_id], args=self.default["arguments"][node_id],grp=self.default["groups"][node_id]) + else: + simulator.create_node(self.default["implementations"][node_id], args=self.default["arguments"][node_id]) ##### Run simulation simulator.run( breakpoints=self.default["breakpoints"], -- cgit v1.2.3