From 1b624c0bae0c215cea54c847ae8229ffe1d4e7bc Mon Sep 17 00:00:00 2001 From: Quentin Rouland Date: Wed, 25 Jan 2017 07:57:14 +0100 Subject: [PATCH] save --- MultiModal/multiModale.py | 34 +++++++++++++------------ Palette/palette.py | 25 +++++++------------ Simu/Simu.py | 52 +++++++++++++++++++++++++++++++++++++++ Simu/__init__.py | 0 Vocal/grammar.grxml | 4 ++- 5 files changed, 82 insertions(+), 33 deletions(-) create mode 100644 Simu/Simu.py create mode 100644 Simu/__init__.py diff --git a/MultiModal/multiModale.py b/MultiModal/multiModale.py index 1b677c0..adb7cb2 100644 --- a/MultiModal/multiModale.py +++ b/MultiModal/multiModale.py @@ -22,16 +22,16 @@ class automate: print("state = " + str(self.state)) if self.state == 0: - if larg[0] == "Rectangle" or larg[0] == "Cercle": + if larg[0] == "RECTANGLE" or larg[0] == "ROND": self.__reinit_timer() self.form = larg[0] self.state = 1 - elif larg[0] == "Deplacer": + elif larg[0] == "Z": self.__reinit_timer() self.state = 4 - elif larg[0] == "Supprimer": + elif larg[0] == "TRAIT": self.__reinit_timer() self.state = 7 @@ -60,7 +60,7 @@ class automate: self.__reinit_timer() self.xy = (larg[0], larg[1]) self.__maybe_send_delete() - self.state = 1 + self.state = 7 print("endstate = " + str(self.state)) @@ -103,34 +103,34 @@ class automate: def new_vocal_action(self, agent, *larg): print("new vocal action" + str(larg)) print("state = " + str(self.state)) - if self.state == 1 and larg[0].split(" ")[0] == "ici": + if self.state == 1 and larg[0].split(" ")[0] == "ici" and int(larg[0].split(",")[1][0:2]) > 85: self.__reinit_timer() self.__maybe_send_create() self.state = 1 - if self.state == 4 and larg[0].split(" ")[0] == "la": + elif self.state == 4 and larg[0].split(" ")[0] == "la" and int(larg[0].split(",")[1][0:2]) > 85: self.__reinit_timer() self.la_xy = self.xy self.state = 6 - if self.state == 4 and larg[0].split(" ")[0] == "ça": + elif self.state == 4 and larg[0].split(" ")[0] == "ça" and int(larg[0].split(",")[1][0:2]) > 85: self.__reinit_timer() self.ca_xy = self.xy self.state = 5 - if self.state == 5 and larg[0].split(" ")[0] == "la": + elif self.state == 5 and larg[0].split(" ")[0] == "la" and int(larg[0].split(",")[1][0:2]) > 85: self.__reinit_timer() self.la_xy = self.xy self.__maybe_send_deplacer() self.state = 4 - if self.state == 7 and larg[0].split(" ")[0] in ("Ce retangle", "Cette ellipse"): + elif self.state == 7 and ("ce rectangle" in larg[0] or "ce rond" in larg[0]) and int(larg[0].split(",")[1][0:2]) > 85: self.__reinit_timer() - if larg[0].split(" ")[0] == "Ce rectangle": + if "ce rectangle" in larg[0]: self.form = "RECTANGLE" - elif larg[0].split(" ")[0] == "Cette ellipse": - self.form = "ELLIPSE" - self.__maybe_send_deplacer() + if "ce rond" in larg[0]: + self.form = "ROND" + print(self.form) self.state = 8 print("endstate = " + str(self.state)) @@ -142,6 +142,7 @@ class automate: if self.state in [1, 4]: self.form = None self.state = 0 + elif self.state in [2, 3]: self.xy = None self.color = None @@ -164,13 +165,13 @@ class automate: def __maybe_send_create(self): if None not in (self.form, self.xy, self.color): print("Send Forme") - IvySendMsg("MULTIMODAL:creer forme={} x={} y={} couleur={}".format(self.form, self.xy[0], self.xy[1], self.color)) + IvySendMsg("MULTIMODAL:creer forme={} x={} y={} couleur={}".format(self.form, self.xy[0], self.xy[1], self.color)) self.xy = None self.color = None def __maybe_send_deplacer(self): if None not in (self.la_xy, self.ca_xy): - print("Send Forme") + print("Send Deplacer") IvySendMsg("MULTIMODAL:deplacer ca_x={} ca_y={} la_x={} la_y={} couleur={}" .format(self.ca_xy[0], self.ca_xy[1], self.la_xy[0], self.la_xy[1], self.color if not None else "")) @@ -180,8 +181,9 @@ class automate: self.color = None def __maybe_send_delete(self): + print(self.form) if None not in (self.form, self.xy): - print("Send Forme") + print("Send Delete") IvySendMsg("MULTIMODAL:supprimer forme={} x={} y={} couleur={}" .format(self.form, self.xy[0], self.xy[1], self.color if not None else "")) diff --git a/Palette/palette.py b/Palette/palette.py index 6f8a3cd..45c101a 100644 --- a/Palette/palette.py +++ b/Palette/palette.py @@ -42,7 +42,7 @@ class Form: @staticmethod def aim_delete(l_form, type_form, x, y, color=""): for form in l_form: - if form.__class__.__name__.upper() == type_form and form.is_in(x, y) \ + if form.__class__.__name__.upper() == type_form.upper() and form.is_in(x, y) \ and color in ("", form.color): form.delete() l_form.remove(form) @@ -66,7 +66,7 @@ class Form: return l_form -class Ellipse(Form): +class Rond(Form): def __init__(self, t, x, y, radius=50, color="red"): super().__init__(t, x, y, color) self.radius = radius @@ -135,16 +135,19 @@ class MyIvyPalette(myIvy.MyIvy): r = Rectangle(myturtle, self.__my_int(larg[1]), self.__my_int(larg[2]), color=larg[3]) r.draw() self.LIST_FORM.append(r) - elif larg[0] == "ELLIPSE": - c = Ellipse(myturtle, self.__my_int(larg[1]), self.__my_int(larg[2]), color=larg[3]) + elif larg[0] == "ROND": + c = Rond(myturtle, self.__my_int(larg[1]), self.__my_int(larg[2]), color=larg[3]) c.draw() self.LIST_FORM.append(c) def move(self, agent, *larg): - self.LIST_FORM = Form.aim_move(self.LIST_FORM, larg[0], larg[1], larg[2], larg[3], larg[4]) + self.LIST_FORM = Form.aim_move(self.LIST_FORM, larg[0], + self.__my_int(larg[1]), self.__my_int(larg[2]), + self.__my_int(larg[3]), color=larg[4]) def delete(self, agent, *larg): - self.LIST_FORM = Form.aim_delete(self.LIST_FORM, larg[0], larg[1], larg[2], larg[3]) + self.LIST_FORM = Form.aim_delete(self.LIST_FORM, larg[0], + self.__my_int(larg[1]), self.__my_int(larg[2]), color=larg[3]) def __my_int(self, str): return int(str.split(".")[0]) @@ -156,15 +159,5 @@ myturtle.color("green") my_ivy = MyIvyPalette("Palette", "127.255.255.255:2010") - -r = Rectangle(myturtle, 500, 400, color="red") -r.draw() - -e = Ellipse(myturtle, 100, 200, color="green") -e.draw() - - -Form.aim_delete(my_ivy.LIST_FORM, "RECTANGLE", 522, 403) - myturtle.screen._root.mainloop() diff --git a/Simu/Simu.py b/Simu/Simu.py new file mode 100644 index 0000000..8e425a1 --- /dev/null +++ b/Simu/Simu.py @@ -0,0 +1,52 @@ +from time import sleep + +from ivy.std_api import IvySendMsg + +from LibCommon import myIvy + +ivy = myIvy.MyIvy("Simu", "127.255.255.255:2010") + +list_cmds = [ + ( + # Test création RECTANGLE xy en premier -> REC1 + "Geste forme={}".format("RECTANGLE"), + "PALETTE x={} y={}".format(25, 70), + "sra5 Parsed=VOCAL couleur={} confiance=0,99".format("rouge"), + "sra5 Parsed=VOCAL action={} confiance=0,99".format("ici"), + ), + ( + # Test création ROND xy en premier -> RON1 + "Geste forme={}".format("ROND"), + "PALETTE x={} y={}".format(250, 300), + "sra5 Parsed=VOCAL couleur={} confiance=0,99".format("bleu"), + "sra5 Parsed=VOCAL action={} confiance=0,99".format("ici"), + ), + ( + # Test création RECTANGLE couleur en premier REC2 + "Geste forme={}".format("RECTANGLE"), + "PALETTE x={} y={}".format(10, 425), + "sra5 Parsed=VOCAL couleur={} confiance=0,99".format("jaune"), + "sra5 Parsed=VOCAL action={} confiance=0,99".format("ici"), + ), + ( + # Test création ROND couleur en premier RON2 + "Geste forme={}".format("ROND"), + "PALETTE x={} y={}".format(300, 400), + "sra5 Parsed=VOCAL couleur={} confiance=0,99".format("vert"), + "sra5 Parsed=VOCAL action={} confiance=0,99".format("ici"), + ), + ( + # Test supression Rond couleur en premier REC2 + "Geste forme={}".format("TRAIT"), + "sra5 Parsed=VOCAL action={} confiance=0,99".format("ce rectangle"), + "PALETTE x={} y={}".format(15, 435), + ), +] + +for cmds in list_cmds: + sleep(5) + for cmd in cmds: + print(cmd) + IvySendMsg(cmd) + sleep(1) +exit(0) diff --git a/Simu/__init__.py b/Simu/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Vocal/grammar.grxml b/Vocal/grammar.grxml index b2781be..24c977e 100755 --- a/Vocal/grammar.grxml +++ b/Vocal/grammar.grxml @@ -29,7 +29,9 @@ ici ça - + ce rond + ce rectangle + out.text = "VOCAL action=" + meta.current().text;