From 78623fbcc6c7092859d48f68498fa9f7525381b8 Mon Sep 17 00:00:00 2001
From: Sebastien GOYON <shinedday@gmail.com>
Date: Wed, 3 Aug 2022 08:55:51 +0200
Subject: [PATCH] Last push

---
 ant.zip                       | Bin 2097 -> 2225 bytes
 ant/amas.py                   |  15 ++++++++++++++-
 ant/config.json               |   8 +++++++-
 ant_communicating.zip         | Bin 2341 -> 2329 bytes
 ant_communicating/amas.py     |   2 +-
 ant_communicating/config.json |   2 +-
 box.zip                       | Bin 1539 -> 1532 bytes
 box/amas.py                   |   2 +-
 box/config.json               |   2 +-
 demonstrator.zip              | Bin 2075 -> 2062 bytes
 demonstrator/amas.py          |   2 +-
 demonstrator/config.json      |   2 +-
 philosophers.zip              | Bin 3181 -> 0 bytes
 13 files changed, 27 insertions(+), 8 deletions(-)
 delete mode 100644 philosophers.zip

diff --git a/ant.zip b/ant.zip
index d80181d9e9a677256bae64057edba365daca45d9..97ec78859c67f94f9e2bb70a5d80359d1bf945b7 100644
GIT binary patch
delta 859
zcmdleuu*Wsd#3tZz86ERkM2Jv!^FVA&c?vN&A`Brm{+2on44IvS5Uch%Gtcz20X{#
zv;N|1(cfx)J%evA%jt%=vOC-?jS9EB4xgE3<f)g$Qu)2JOGrCDyYZ!h^A-R4OCqjs
z%)Fuvnk#D}vaUKFf6HYM@jpZQ%&gP5Y7ZStocdee>o^P7)Y|v;Ki)T$-}&*f;y@&C
zU_XE8>E6b2&jp^Dr<SF#n`dogITo-eRmXHu?6U)<m&=`^j9HUQ`8HkYF+b<9T!F`l
zJ3lpSqZfA`>lrsQrQf|5GQ;NVne%0{1&8WiyHDQ~68ILaSi-OUZEuK_#DXO;CQ5rn
zy?Xi|Ui<23ZTq>W&9m|Bs``+<e3}mIzjpSt7Q8f1F#8-WuD4~w-f15uZ+DwBSMss(
z8sV^HQ}vmwFW-FozdWeUHTBNzUD~_E{VsCMR=cgzJbm{$zcU(^HCmQ6jzu1uEY3;w
zs>XhoxTI^dd&hoD_wxoWeTVI<zF7O*)9YF(wJK~wkck8rM_k<jebu8TWiCtWTf~>D
z9KB|=M&G;R!q<)@zW<9dL%gmXe=|pPruFV~>nh7nmpo|`>RoZhK6KaV^|7Jp?du$P
zo}St})9v%wtTREqQ+t~@I`7Th?OD?_IrBtQ_4j)d;sd0g&YHUT*>%TvdB^A0eAuS`
z@WRVW*Jae!N7l7Z+oK$@WzlZ6Z`aj!xi!74S9{LsU*zF6YgI}ipZjUsr`#(8Cz&66
zan{!GTH%x)+tv`t@~g+?UjIsa^{e_})ZODXn@-%3-_x3H)cQ`<biw`rZ)O$|1_lNW
zh9LioA%}n1a#S-gFkE3^VBm))q~!d(w9It9tm6E<-rj>;hYSQ<-Z%Z<@Mh<f3V|i|
z^}*9h&a#>6dajvrsoq@r_U_}A{WBxat22B_UM6n)Yi9DN<O6&cwk+G57+kvP(Ba=N
zn_qu6+W2Y<%j#`a-igaXKCIfvkoaCjxun2!+0BQ?`6J7gWmvz`yA*Qt{?}&LeeQli
z^Yr(7#@^Y7aOgtUb0IEoriRaAU|{$;c^^Cb<^tB!jC`mWVX`N?wgNUUF)%PNFfu4G
eFfeGbPM*SU&3I|@1$J}BDU&%kl-VrULDB%gje{Ei

delta 693
zcmdlexKUukd#3t@uIECMG<<h&VPs&~!NS16&A`Brm{+2on44IvS5Ub$<Y3-y1D?I?
zC+r1wUdan)wtXX{!&-H-&^|z<CFe9>uy>YfWryLH``%W5Z&G}t6KpsPetwbDwVimT
z`?H{v__NKYteM@8@?Mxw`?b(cn(N7<=D_najkLa;W;}XRVa3n-H5nls9}-w4gd#6Z
zebTu2im1Y*r5!U^?uK{=?91!jX1GSdWk1X8>JU@)6mcHK3v13Nl|)pmUDWoqW3Iw&
z@wbyrtXIkWyqqa~?ptZl*?9_YJWt--w{~UOQyYZ|tm|{uPVSGIdFXiA>7w&<b*A)o
z3s-Vwm|mTIXKS4Wds4~%XTkMmt9~)9xnBFy=lJUzRoweSguk4exAA0yo4fzf#TRTi
z&)?tvKl$YT!$#N2YW%0)I+=BL`R3>)1=WFXIwUoB>uc`L4=8&))nkgtq7R#HPnL}-
zzHhEm!h6@H;>U5hU&8O|=2)(J(dCxBE?X*wW&8IJw<Gt?;_96L;*5XTd!?Ytcgneq
zdF~pz4~@6DJj|)Im@7Q_<GtKp`t$N5x78d_G5q*zx{vtB=(5sX^1LeR?`tg<Jn9_Y
z;Wp8AkJK0D?R63|HatRd9+La-+xM6IznpZwdIImv{M<wG?*qJ<Swt8Z7&sU}@jFL}
zOFo%_fuV7-Bdb`t?rBG^1_goEhqV`E+akMnbS^mEvEoTU<Pu52ySD04``$mlo6Fp=
zC2jKzPx1ZgQObM`URpO7|0vpYaCh=Di&r(d^NM#Zditw0JIQe6r?Z=#KA5!i7&t7S
z^5dh*^uzf+{QKvNgRGyd%^|h<1M6u<K9Ca-No?{-c5MZa5ZqM^3=I4X5WvWwz`($8
bh-I<}hc#o+<NywHMv=)K9Lj7v*gy&ZG~6&K

diff --git a/ant/amas.py b/ant/amas.py
index 822eb7a..f0485b1 100644
--- a/ant/amas.py
+++ b/ant/amas.py
@@ -1,5 +1,6 @@
 import sys
 from math import sqrt
+from random import random, randint
 
 from iotAmak.amas.amas import Amas
 
@@ -12,7 +13,7 @@ class AntAmas(Amas):
 
     def on_initial_agents_creation(self):
         for _ in range(self.agent_to_create):
-            self.add_agent("ant")
+            self.add_agent()
 
     def is_neighbour(self, id_a, id_b):
         if id_a == id_b:
@@ -38,6 +39,18 @@ class AntAmas(Amas):
                     self.agent_neighbour(j, i)
 
 
+    def to_graph(self) -> dict:
+        return {
+            "cycle": self.nbr_cycle,
+            "point": [
+                {
+                    "value": randint(0, 10),
+                    "name": elem
+                }
+                for elem in ["a", "b", "c"]
+            ]
+        }
+
 if __name__ == '__main__':
     s = AntAmas(str(sys.argv[1]), 15)
     s.run()
diff --git a/ant/config.json b/ant/config.json
index bb33cfc..1b03e65 100644
--- a/ant/config.json
+++ b/ant/config.json
@@ -1,10 +1,16 @@
 {
-  "iotamak_version": "0.0.7",
+  "iotamak_version": "0.0.8",
   "scheduling_type": "sync",
 
   "canvas": {
     "height" : 500,
     "width" : 500
+  },
+
+  "graph" : {
+    "height" : 500,
+    "width" : 500,
+    "refresh": 10
   }
 
 }
\ No newline at end of file
diff --git a/ant_communicating.zip b/ant_communicating.zip
index f125378b6c59172994475573018d535ed5586d03..b0646eab6e2fabd5a4733f78b2304c943b78cc12 100644
GIT binary patch
delta 523
zcmZ1~G*f7U53}G^-wPp6EV~|TW@KR4!ot8HIr$^2XnkUCVzFL9<<gLYevb_V_J+T*
z@2OHu^k&h1yL6Fu;lmUB3MNHD>OP%s9~A~DAKAZt?y}z7x!XOg+2zyb-LEd3=bM$g
zhWTBE)yg%23tFmKrFOl)=Bs|Vp{F|Fk*=^;!TvV^`%W{O&K2oRXk(XcnA4&f+hX@a
zE0wil$w@^uo!RwSe21>BopkFX(~X;!FYYW_QLFr>X(5xz>)kJS#KO4L6D^aJQ+7`?
z^W41m)I9rMUx~ZtJx!vS?oFC>aqrrQ-9};p9?hb=rk&K(HmunaJuUj(6Ni}+TbKMY
zHD4>+*I=_D{_~8ERdo!fQ|+xLZMd{G?C|1@2)Q?se+{)>>WH3id{(dep{DMyy!SuZ
zX@%Q9?td|7?wV<OGjr24@5~Xso$Pk%ol@#|-cxzgj@fx9iC5HKn9Lhfecyi11=Es=
zA3pTjevx}uclVy$(UmW{+>-RNrIc9A_dh(Dv9n{T(~K7yK2doxL6tI#7-D+^W*y#t
zVIkMz(|3Q$969qoc4__Nzx904ezpd!T}^cpU+UC7EuNcqpOq^-o?BJWxoe%kRE6FO
z(-)h!@2fWb<2~WWb&b!{zd!!@PId0#^Nv%EZ@(&7{EuO?1?zq$UX+NP%)$}Ds53d1
a!;A6M<P{vQjI$=c<1l3NVP{}qU;qFe@%3u}

delta 542
zcmbO!v{Yz=4>NCZ(b*7zJwlWBGcqt7pB%}oT%UK_fM+lJ344K^SKb9Jmfhfef#=22
z<Nq821vcsK_R(E6^@-B44fXO*EjCUz&2Id-fcfW-dz)P*pIKeXSo8e(=2MZ(ZmsDH
z6n{TERAVM`qRo17oKfnO_x-kBo9q@n+q@|7-eFny1^$mFu1k_r@rq?sGGsk+<n^+s
zrlQhp6ZZW~_40RwEXr48c^=V|P;%OA*L^VQ;TA5bYszI!Iq_S)FTGh%^uT|)n$Gvq
zptF4k-g}%Z%FkXE8_CXb<blX_tDh%MiP+uJJuO?lDS%0DjiGL^qEd{0-<b*S*Fx-{
zZ!0~#cEXo$>2^<-t<pbGb$7a7$Xvd)$veV(ue;kWPVIMNcRyO6yri<rW`Es(dGCLs
z(>89K8g8AgzIyAOt7Q`pU5(txoVMhR-O@Mv9B%gd3oTZWS6Y9jZd0rG$G^TUdJAWB
z@ZZ1Tod59I@vmP`wur`F%s5l(dpP9aRsV_&Yr=z9TEv$a#jn}UxYB0sYL2@-0a1tc
zUohl4{q$d5-!Y#m^OyH4Dxcfm_{138bMj67sS>gM6L<QRuWou|mXK<aG-naF%i<0}
zeYRTtYu~$Fra3EdYfb+D^Y6!Jnz4tzJ6=s+_tZt_594MX*8NOq(fWfug3)4fAcq&@
qwaI}TqLVjr7%(kko4k!pK`g+Vm5qUcfq{*IjbS?@149Hmhz9@!&-?2D

diff --git a/ant_communicating/amas.py b/ant_communicating/amas.py
index cc5ce22..3e4b76f 100644
--- a/ant_communicating/amas.py
+++ b/ant_communicating/amas.py
@@ -12,7 +12,7 @@ class AntAmas(Amas):
 
     def on_initial_agents_creation(self):
         for _ in range(self.agent_to_create):
-            self.add_agent("ant_communicating")
+            self.add_agent()
 
     def is_neighbour(self, id_a, id_b):
         if id_a == id_b:
diff --git a/ant_communicating/config.json b/ant_communicating/config.json
index bb33cfc..1337e24 100644
--- a/ant_communicating/config.json
+++ b/ant_communicating/config.json
@@ -1,5 +1,5 @@
 {
-  "iotamak_version": "0.0.7",
+  "iotamak_version": "0.0.8",
   "scheduling_type": "sync",
 
   "canvas": {
diff --git a/box.zip b/box.zip
index 1341005ebc9deb871cb11248c71264bfbc027384..2bbfc77f487ad16ddba641099de911dfe2cffd46 100644
GIT binary patch
delta 349
zcmZqX`NO?Ild=A)?}d<uRlfi3GcYhrW@KRCW?*1Q%CFE*%uOuTE2#9H;G1>CfT#6)
z;~mG{8y8CKl0A`B)te}wR2X#e2H&(`tL^LSojSs{-CLe+zwx${k3#;--TP)I7aUNu
zmH8`Cq|)}}t-Fr<gEl)ab>`9q?~hG&d7%Ag>NG3YT79J_v)=I3cf7Gw)Y|y^52MKR
zyOHys@J&i`e5i5LTzab6^8=l)R>yw`O^=#5ZP6nMT~)q)`wB|uIJ2;Q6F8|KwsxCh
zTFlN{aW{W8D_t@%O}=XIBzK3O?a$PG%_{!qUTtI7(>yIJ*v6RG(RV}n9$$Uq!#hEI
zYd;<H<@^5oPfcd6g4(;dm-UnNm<pKBxt`p-kg14?7bP$zE3kSos!z^lm6Si{dNPE2
p<%D&%3=9m83=9nX3=qJ`puoVu&^viCs}1A#$q!g%**aN3G61n%lCl5*

delta 363
zcmeyv-ORH=ld*nR<cW~qe~eq6F)%R9Vq{?8W?*1Q%CFE*%uOuTE2#9H;M;ZBfT#6)
z;~mG6VCk-fx1Gf1W=~Nv>73lv`8L6F>E6FLJUK3&y7v3am&18nhK)5#*S%WRe~_`g
zr2I?ziHQ=E*5_}uX$=1oXCxWH^=g%@CrjO-<x8&Uy^0o8bWg9YcSt$U8Q3ZNn>#=z
zExmS<v_}_ft8U7?oRC{@Sglv}*B#Wiy4+zRB6>SRv+#p=`{HDIC4&v^9(5bCwrD5a
znkar-dACo1%d1^iBj(l}eqPcz)otFa<d4nspNXne7KN>U{$NwiPi3de2P7{FRv-C%
z&27QW{;B2RKR>9w|4|n+KZ-lQqjPikFZlp(W|qnJtWuL*nSz*CWuDkPi>Zi-7bS2e
zOR{>&>M=orCn>)|ub?u(n~_O`L4<*UfrDXH=84G-tkR5ACeLBDVf;7wCaWyl1QrGc
G1_l5@A)9;v

diff --git a/box/amas.py b/box/amas.py
index d9b787f..863cda8 100644
--- a/box/amas.py
+++ b/box/amas.py
@@ -10,7 +10,7 @@ class BoxAmas(AsyncAmas):
 
     def on_initial_agents_creation(self):
         for i in range(len(self.clients)):
-            self.add_agent("box", client_ip=self.clients[i].hostname)
+            self.add_agent(client_ip=self.clients[i].hostname)
 
 
 if __name__ == '__main__':
diff --git a/box/config.json b/box/config.json
index c771fea..f956d8e 100644
--- a/box/config.json
+++ b/box/config.json
@@ -1,4 +1,4 @@
 {
-  "iotamak_version": "0.0.7",
+  "iotamak_version": "0.0.8",
   "scheduling_type": "async"
 }
\ No newline at end of file
diff --git a/demonstrator.zip b/demonstrator.zip
index 986fcb0cf7f061607b934e5721516a50504782be..7ef26b5ae2a8cd36cec5c01ebfc428b30842e948 100644
GIT binary patch
delta 316
zcmbO&&?m6LiJAAR?}d;{J(rXoFfcI8pX|>pQ$OKgSBn8p+xw>X6K-$WAo9)XL1O=J
z9wo($(nGhxX6@RLzdu)0P_5lzvVQ%n`FF*Vn0`*)mO0y!ja}x_^u_YdeM{6HFrT{W
zwe{?dNgOrd0U@5hB415N-ejz>>3PeFBkMl12gH=6*G^LR=wfX(PPv~Gaw~>eeAWA^
zgV*gYcWs%HqStpZ=+T4MZMz@IC>d;M_o&;LwUs^T*woc;=B~BZ@SU~HIYL(A)3v+H
ztK`mTdwhD5W9z=_pKs-bcFUM|`YK8#vNi&;8{KQ>%x2wndRI>Sse7|^e%`L<i<;lj
zxjX#lNB#hBW|qme>{6RcS$dez{LjZ8%;+^aiQSdy8OvmTR?*4(*tM88u};3tDm|H%
NLx3%wje&uI0RZ|Li}(Nl

delta 338
zcmeAZm@TluiJ4c%{Y1#@TqnD?3=9nGC;KzY)K5Iy)ndSN{C(4VfoDd#Jgs~ADsDWs
zJFK9XQF{1R*et6J`TKK41<l$WCddE#sj=Ji2+Jq!+{<RcJbV^Q{N3%_WIRg`SWj6z
zHEVXFqTr8J3syY(viXSO?F@B?l=GZ{ow3W<1Ll~g*G^LR=wfX>oD!WIa%&E&`l|I+
z2d~>)ZZfH#uETdR=+T4h_SKI>lngesd(>^q+Gw5B*1G!5)V0D>RC*ult;t(ldhofX
zW@|<Dfw;CkW#LoBzdy6~`1B+v)_>Ra{eFAz^&fpI*Xq);uGxB#^0$uf$wH0qY*O>q
ze2Sl;^Ruq@OO$*^=j`yGAK3%EnOQ^_7#KJhT*6L;{M!;1G1-otXLANi4-;C@FtP_T
jhEEP<cV+xMc{aNP(|*>;=UAmD|6mtj%VA?+U|;|MY_XDt

diff --git a/demonstrator/amas.py b/demonstrator/amas.py
index 775492b..3469eb8 100644
--- a/demonstrator/amas.py
+++ b/demonstrator/amas.py
@@ -10,7 +10,7 @@ class IotAmas(Amas):
 
     def on_initial_agents_creation(self):
         for i in range(len(self.clients)):
-            self.add_agent("demonstrator", client_ip=self.clients[i].hostname, args=[len(self.clients)])
+            self.add_agent(client_ip=self.clients[i].hostname, args=[len(self.clients)])
 
 
 if __name__ == '__main__':
diff --git a/demonstrator/config.json b/demonstrator/config.json
index 4bb3bf2..771bb3b 100644
--- a/demonstrator/config.json
+++ b/demonstrator/config.json
@@ -1,5 +1,5 @@
 {
-  "iotamak_version": "0.0.7",
+  "iotamak_version": "0.0.8",
   "scheduling_type": "sync",
 
   "com_graph": {
diff --git a/philosophers.zip b/philosophers.zip
deleted file mode 100644
index 36a06f59b5c16b862e0b44f85cc23505f35b0377..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3181
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
O2ZIa~1A{dehz9_Z1{22s

-- 
GitLab