Commit db13d8acac479ecad7c3a23522360196694145b8
1 parent
5a76fb80
Exists in
dev
updates: go_idle et affichage final fin process
Showing
5 changed files
with
43 additions
and
5 deletions
Show diff stats
README.md
pyros.py
... | ... | @@ -382,7 +382,8 @@ def start(agent:str, configfile:str): |
382 | 382 | cmd = f" Agent{agent_name[5:]}.py {configfile}" |
383 | 383 | |
384 | 384 | #if not test_mode(): execProcessFromVenv(cmd) |
385 | - if not test_mode(): current_processes.append( (execProcessFromVenvAsync(cmd), agent_name) ) | |
385 | + #if not test_mode(): current_processes.append( (execProcessFromVenvAsync(cmd), agent_name, 0) ) | |
386 | + if not test_mode(): current_processes.append( [execProcessFromVenvAsync(cmd), agent_name, -1] ) | |
386 | 387 | # self._change_dir("..") |
387 | 388 | os.chdir(current_dir) |
388 | 389 | |
... | ... | @@ -390,9 +391,12 @@ def start(agent:str, configfile:str): |
390 | 391 | # self._change_dir('..') |
391 | 392 | #os.chdir("..") |
392 | 393 | # Wait for end of each process execution |
393 | - for (p,agent) in current_processes: | |
394 | + #for (p,agent) in current_processes: | |
395 | + for process in current_processes: | |
396 | + p,agent,_ = process | |
394 | 397 | print(f"************ Waiting for end of execution of agent {agent} ************") |
395 | 398 | p.wait() |
399 | + process[2] = p.returncode | |
396 | 400 | print(f"************ END of execution of agent {agent} ************") |
397 | 401 | if p.returncode == 0: |
398 | 402 | printFullTerm(Colors.GREEN, f"Process {agent} executed successfully") |
... | ... | @@ -401,8 +405,22 @@ def start(agent:str, configfile:str): |
401 | 405 | printFullTerm(Colors.WARNING, f"Process {agent} execution failed") |
402 | 406 | # self.addError(self.current_command, command) |
403 | 407 | |
408 | + print() | |
409 | + print() | |
410 | + print("Synthesis of the results:") | |
411 | + for process in current_processes: | |
412 | + p,agent,returncode = process | |
413 | + print(process) | |
414 | + if returncode == 0: | |
415 | + printFullTerm(Colors.GREEN, f"Process {agent} executed successfully") | |
416 | + # self.addExecuted(self.current_command, command) | |
417 | + else: | |
418 | + printFullTerm(Colors.WARNING, f"Process {agent} execution failed") | |
419 | + # self.addError(self.current_command, command) | |
420 | + | |
404 | 421 | #print("************ end of START() ************") |
405 | 422 | # Only according to the last process status: |
423 | + #return True if p.returncode==0 else False | |
406 | 424 | return True if p.returncode==0 else False |
407 | 425 | |
408 | 426 | ... | ... |
src/agent/Agent.py
... | ... | @@ -295,7 +295,8 @@ class Agent: |
295 | 295 | self.SIMULATOR_COMMANDS = iter(self.SIMULATOR_COMMANDS_LIST) |
296 | 296 | self.RUN_IN_THREAD = RUN_IN_THREAD |
297 | 297 | self.set_status(self.STATUS_LAUNCH) |
298 | - self.set_mode(self.MODE_IDLE) | |
298 | + self.set_idle() | |
299 | + #self.set_mode(self.MODE_IDLE) | |
299 | 300 | if not config_filename: |
300 | 301 | config_filename = self.DEFAULT_CONFIG_FILE_NAME |
301 | 302 | |
... | ... | @@ -317,7 +318,8 @@ class Agent: |
317 | 318 | |
318 | 319 | self.set_mode_from_config(name) |
319 | 320 | # TODO: remove |
320 | - self.set_idle() | |
321 | + #self.set_idle() | |
322 | + self.set_active() | |
321 | 323 | |
322 | 324 | # Create 1st survey if none |
323 | 325 | #tmp = AgentSurvey.objects.filter(name=self.name) |
... | ... | @@ -463,6 +465,9 @@ class Agent: |
463 | 465 | at each iteration |
464 | 466 | """ |
465 | 467 | self.set_status(self.STATUS_ROUTINE_PROCESS) |
468 | + if not self.is_active(): | |
469 | + self.print("I am IDLE, so I bypass the routine_process (do not send any new command)") | |
470 | + return | |
466 | 471 | |
467 | 472 | if self.cmdts is None: |
468 | 473 | self.cmdts = self.simulator_get_next_command_to_send() | ... | ... |
... | ... | @@ -32,10 +32,15 @@ class AgentA(Agent): |
32 | 32 | |
33 | 33 | "go_active", |
34 | 34 | |
35 | + # Because of this command, the receiver agent | |
36 | + # will no more send any new command | |
35 | 37 | "go_idle", |
38 | + | |
36 | 39 | # Not executed because receiver agent is now "idle" |
37 | 40 | #"specific0", |
38 | 41 | |
42 | + # Because of this command, the receiver agent | |
43 | + # will now be able to send new commands | |
39 | 44 | "go_active", |
40 | 45 | |
41 | 46 | # Executed because receiver agent is now "active" | ... | ... |
... | ... | @@ -27,8 +27,18 @@ class AgentB(Agent): |
27 | 27 | SIMULATOR_COMMANDS_DEST = "AgentA" |
28 | 28 | # Scenario to be executed |
29 | 29 | SIMULATOR_COMMANDS_LIST = [ |
30 | + "flush_commands", | |
30 | 31 | "go_active", |
32 | + | |
33 | + # Because of this command, the receiver agent | |
34 | + # will no more send any new command | |
35 | + "go_idle", | |
36 | + "go_idle", | |
31 | 37 | "go_idle", |
38 | + | |
39 | + # Because of this command, the receiver agent | |
40 | + # will now be able to send new commands | |
41 | + "go_active", | |
32 | 42 | ] |
33 | 43 | """ |
34 | 44 | "go_active", | ... | ... |