From 33f2e89e44382c1d11158bab020414ab773a4576 Mon Sep 17 00:00:00 2001 From: shinedday <shinedday@gmail.com> Date: Tue, 14 Jun 2022 15:36:19 +0200 Subject: [PATCH] Update to 0.0.7 --- ant.zip | Bin 2029 -> 2097 bytes ant/agent.py | 10 +++++++- ant/amas.py | 2 +- ant/config.json | 5 ++-- ant/env.py | 2 +- ant/scheduler.py | 2 +- ant_communicating.zip | Bin 2279 -> 2341 bytes ant_communicating/agent.py | 11 +++++++-- ant_communicating/amas.py | 2 +- ant_communicating/config.json | 5 ++-- ant_communicating/env.py | 2 +- ant_communicating/scheduler.py | 2 +- demonstrator.zip | Bin 1894 -> 2075 bytes demonstrator/agent.py | 42 ++++++++++++++++++++++++++------- demonstrator/config.json | 8 ++++++- 15 files changed, 68 insertions(+), 25 deletions(-) diff --git a/ant.zip b/ant.zip index 64f65499b46aa579f4afbf1c9ddb7ad78e624126..d80181d9e9a677256bae64057edba365daca45d9 100644 GIT binary patch delta 1783 zcmaFMzfoX<dHq7yb0PK@r3?F*7#Mc3GcfQlFfb(MmFOp?r{<OD6;w_Qz1??PL7=vO zO8tx~`D+<_!#2I#7va0~k3+pemq7Mooh%+fwUu{Q{lCZfX2uQAt*4vypYxoNOk;B? z4Y}2jwkhChjoP35yVpM7tO?5sZ45{Y-Z)?Lc5&t(VXMu(e>c{*eU7Y4DCL#TOk$su zW5+DxB$Xv{_NrrM#9{gVTN_U(R7LC%RAt_?r698Jp?H37r$F4-?kTDK|G(-#zqred z^?ILvoN<JT;+@K~2{U7&t=CKLQF-ioA)9UW!HxelDmX>{aye(le0HA6aQSy|>+PWQ z0O`B=eX`U1r9*Z|B);XXUvvMMHwR<ARgvuEFOPman$)suO39uC_K&kA7cLR@c<|Hu zPrxMhLwz&OUp%wtEdQK+ANT&aVj?oFxbRu|^Bp%-#D9M`Uz**so>|IS|HTn2mBLeH z=AWWI#E5*ay?5bc(dYV3UYoVM{XE}tdu!L#`963#)o0RoM(@CHr|S;qNqjg^e?OG- z%eS|-zt^R(J!8E6pyliPS7{Bujc(~JIKtl*n|1VE<)5i<*o;pb-hT7x+Pr?29j4oF z{Lj2m`EuUu8Kv(}7z!#{@3uZ2kakvG$uO#YiIdo#PVH+)-pv>Iv1y-dz5Mi0K{=aq zyTvQgPs(y$mARsS;{MDtmJ+O2PZ}Iv-_mPTzuP0B^R9=1{^|4Fv-P$qJ)ZY<?(x)* z53AN)oDp^>W8!bi#<lIa^LIKkhpPIidmfHdS)<aQyIAek*S|M?Zk8q7)_i@rext<G z=;Go_n~eFCH_kr#Wad@pH?1dp&1Oo?`B>(%=)mQhJB3`09?hDUb<F3s@!J_6e{FX7 zd*slvmD?xe*WY@cYfu#4vSE93is*8YYuOb`wj?<P{kq|Lq-Nofiohck{L3pQ%-?=m z_NCX9rN2~ii~cbNcr&wzFfcH1Fn|(ol7{c@EsP8dJ6ISPxM7JmH?df+pmJ%*!MxiB zJbT$s*bD5uk{8Tu`$kBIwd!V}eSk<y&S}12@2q;&$_~RX_r0zB-lX_OC)jWp{QM%P zYdi5w_h&&T@n@S)Su?vG<-IVW_G_V?G}n_y&4K4<8fkqw&3N>t!it}3GD0{$B(O>d zMP8cvq;c^TQH4oMJ7%!l4e<`xm)E<^aE*e?ewNwQA*Sjn;yj8M)|^i&iKtk+sO@XV zT!q`>Zzr2r*RPWKc{x+~+_%!8v-1?*c%HnuZ|%ymr#1=`Sl8#Qo!lQa^U(3K(?#d! z>P+eF7Ov#VFugka&el2$_N0>i&w|ZX{bE{kz4oQg@z*!1xc7$$e>pjC<H-g$cmJb{ zFW7LNzrX!|^2z;&jjol|_)oueGVAQ}&CyE=ssrD2NNVoZ*W8^SP+#_Vs>c+OMIScZ zo-7+veBWHBg!isX#gF51zl7h_&9PkdqRTCLUA9yV%l7XdZb$B&#nn0g#Toyw_ew#P z@01(!+%<F`8gFrVm{VynS9tQrd%3^#=jBIkt2v-z`0>|tAMuaTWu?31c~#cm*IF!i z)H%GvZKCTQsV~gi>m+1sc!cEYJtX(vx9>0ae>v%V^#tCT`MHPW-=jwG93?LKWCjL? zMg|53erN<I=jWwmrt4)D=jZ93cI0YM5NLf^dqK7>vU^A8g3}!<o&-cLkrcdZs~)xQ z{qwuI%ne)8HqY=B->)8}%-7(hb#w8LqD=>PCoi+GeN~e?uXxv@r@u<GlMGjWI=k8F zgGpPDfy44CKR&8VKb-Hwzkj|ss)JnKObwsKz`*d6VX_XZe*K%bxi?GHo=p0GdVb5J z87j?sRW?`NsJbqgvirq-y$><nDuq0A8pD3<+J0@}@du#`AIFG%UVh6vbm0->FAW|( zk{2^1ehF7p`ifriIw)q<>)2CjU$*>OXh`ji;|(0S+`LI&j&z(&TXdn0|Dw*aKTo@k z)>z+PdzV99So$|OCkP|50>jnkZ^{@L7&cG-#A+Snv_Zs3@l<mnlY;NeOs<a~D?4|t z{P>Y;+cvIOA3yHwoLTwt<EyYeF<cH4RwQ&^SP&S)bY$w$s!rFJsTbQe&a&dtP;!${ zI<|4vtbpb(U0$C}Oc*DZuzB)<@*JYVn0%T|Cjumdo(&lo7#J8C6c`v7o-#pe6iB8F z@MdHZVL&(<J$exu4^8%Gmy-t>jtFrE1}=~SxZy#Qd)OrvKx*KgXJB9uKv5&YHu)&K K659?okSG94xg@Iq delta 1719 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 diff --git a/ant/agent.py b/ant/agent.py index 6492e4d..4b376f8 100644 --- a/ant/agent.py +++ b/ant/agent.py @@ -1,7 +1,7 @@ import random import sys -from iotAmak.agent import Agent +from iotAmak.agent.agent import Agent class Ant(Agent): @@ -67,6 +67,14 @@ class Ant(Agent): metric["color"] = self.color return metric + def to_canvas(self) -> dict: + return { + "id": self.id, + "x": self.x, + "y": self.y, + "color": self.color, + "cycle": self.nbr_cycle + } if __name__ == '__main__': a = Ant(str(sys.argv[1])) diff --git a/ant/amas.py b/ant/amas.py index db8368d..822eb7a 100644 --- a/ant/amas.py +++ b/ant/amas.py @@ -1,7 +1,7 @@ import sys from math import sqrt -from iotAmak.amas import Amas +from iotAmak.amas.amas import Amas class AntAmas(Amas): diff --git a/ant/config.json b/ant/config.json index d96ea1d..bb33cfc 100644 --- a/ant/config.json +++ b/ant/config.json @@ -1,7 +1,6 @@ { - "iotamak_version": "0.0.4", - - "seed" : 0, + "iotamak_version": "0.0.7", + "scheduling_type": "sync", "canvas": { "height" : 500, diff --git a/ant/env.py b/ant/env.py index ebadace..5487a7b 100644 --- a/ant/env.py +++ b/ant/env.py @@ -1,7 +1,7 @@ import sys -from iotAmak.environment import Environment +from iotAmak.env.environment import Environment class AntEnv(Environment): diff --git a/ant/scheduler.py b/ant/scheduler.py index 01638e3..4a21e61 100644 --- a/ant/scheduler.py +++ b/ant/scheduler.py @@ -1,6 +1,6 @@ import sys -from iotAmak.scheduler import Scheduler +from iotAmak.scheduler.scheduler import Scheduler if __name__ == '__main__': a = Scheduler(str(sys.argv[1]), str(sys.argv[2]), str(sys.argv[3])) diff --git a/ant_communicating.zip b/ant_communicating.zip index 2db59209b24cdbea563f93791e888e8b9e7a2e14..f125378b6c59172994475573018d535ed5586d03 100644 GIT binary patch delta 1733 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 Wz`!5}Q3thp+2jozhHMe+AVB~=Bng}V delta 1674 zcmZ1~^jvU)tDvvz!H`duvmY&FVqo~q&cGlw`6H|7#B9#`(7SoF4Mg_!Pbs%pEPhnW zbzx-w1tZN{f8!Lobi{c!vX!wcYYwgb{*%3fc}di9-h#UQpXV0mgw1nRU8rOu`n2lk zoBX?1Utg`78oG!@?a4ls{fAtpq#llRQh98tX8Ba8>a+a1to5e1s`q+v1zq3p{L=jB z1r>Xlz8dIl6tNI&T~VLFo*%YqzAw+cyT@$e3IyGw=A;IHoV@iKSNI;;rj(lsb=&nP z2QCleSSQ>cnS6s~-H!88<0<v)35fuwGWs%I3N4o%DO+C7unZPOBWN^X=AQ2zu(f zGGk@(id54Hi{;nyN4FLjPb}r$)Oc)Ti{jG^#V4I%%6Hp&Q(iHzHhUpie`4i-QQ7r1 zvy9i)i1Zb>FF3K*tzdEbl7#w@epd5T#fm?C_N>eOEYnSegwHSW=IV;iIA`~CS%d17 zy_aU&EsOJutg8|XUAyWn>)IoWOVZwInK~Z-pIq?a!mddhoL2X4|5quvmbqB-gQKqR z3%`sR!7sD#fAHDmG~o(|P4Xkfl9u{*Sr_32wX0TZRlN(Ewc(3dF?Y^nmpY%4)rvQY zRj%l>-m0(Rd+<>5EZcW^ok+8mzsvlZShuNZ8{R12{^ob-&Wv|g1TU<(Yc6BeSm6~N zGpS5MV!7_Zz*Tlz{;f$4ta0J~5j)xNi{QRD(*pUDm;Qb)*SqYlJc~<SZ0ir+lbs)0 z>YGFY%qDqMwdOeeQ)}>$74rxbua&!Mb3@FRpMCeEDa*~%J@mQcx2MD$R5jV!)%>;K z_nkaOZ(ETA(ffHfHvg2pIXj~vDR$+Wh@^=YAJ;~d-<?yr>e>Mpr-iRu?+9+%)O@|_ zcw*G8o!fS2?B02;NlsVoazx<GkUi$xwi?t{76ds2^(1a@u3oeAfyDjqTLo@w#NSok zx9fy+Y0`eVMTHig5vDQIKZ*x<GqZ>=Ffed1xVjw-DLyRQx|flG;SdW0gCr;&PcCA% ztbf4#^UJ;NFHT15ud#lZJO8{^I<JK2yvDY7v$;RtG*FO!*Hd+JN?;xTgtq>MpKCIv zd@ndI_;~UU&+v`>K}**$Oq{`#^r$pg*Ky}A(^<{&jr@6>bF4$Qnmp2!&~n<mulr!q z!!2A=*Obeea^kmoUwX5k=z;%oHJ$IpL1+68y!SXcS)0Y6e$LzdKc~!IRmbqU)ZQwv z)M`uL!#LA8`MHw1)h1RJT5`%~gP;8T`ul&xr}Z0pHm}`t%hEb>?bCJJx<%HV>ykB4 zPW`T#`knPuUd^Nk)t>^Ds^3nE=^g!UF1V{DPs!%bF}W&kbNhAc{e{9xTo)T&H|1T~ zw0i!Bgvj;Ff(+wJCh6B-yWJ2n@0pg9x$=~0AM{Js94gwmfBxbbCvW=xGLO4wDfhEM z^P0-<`9^b(=Br$PnHL&xhiy%dTaV^02a_&|k4YE4C)MuvNU>DeG~4K>{eJs<HcP#K z*sb_=X6u}eR(nJw9Io6Mk`tbi9>KuCP{P2#Aj`nOkeF8zKRJq3vVQfmr$GS$r_Shm zp7A}?r|+$+b?(gh;7vgRMi-1P7zbW@_>@Uo!_U_@Fla-NK?A3X`m?F3V$7mp%{v?# zd#;@M(jzoMDwuhK)`o=2G%ruK5FV8f?n|-U3<&Fa{Pu-JIp|f*U|?YQ%D})N0ku9k zKR35@@?Tct`hPp0{{N)D&_eCxf^IqftyP|a8c+3pZRfU`tkTzLe1R+O`!%Z%5__~t z=5#0ji>Y3zCt~Z&-*IG$U~k((`^M?lLloDF<Xp<+Nm}!JqxIHxi)J0RV{^%f&Jb9v z?v}Gnp!HjIN1EYN^>C$Uw}0lnb+edx;|4#%eQi9!2SeVtaLAN0Ffgo~yqC>0Fz7^! z23H$r!<4jTnn#X5SADkZ*m3O}x3pFqKmJ@T?b*@etD`>_X)-u2YSMLTb}Qr*2p4;; zDz<dGtMsv~R~idCBoaF$j%Q^#@m|u_I(zv73&Z3H_HaJbLVfaHb}I#p{J{VLj0_44 z3=AU7lh3n@PS)WNlE)T@Af*t69Ft=?bmXxGG(yen$tyV2<=c?`%D})N2U5VmzyL8P ObMiY5LpCXPkRSkgbjFzg diff --git a/ant_communicating/agent.py b/ant_communicating/agent.py index e6a074d..58bd335 100644 --- a/ant_communicating/agent.py +++ b/ant_communicating/agent.py @@ -1,7 +1,7 @@ import random import sys -from iotAmak.communicating_agent import CommunicatingAgent +from iotAmak.agent.communicating_agent import CommunicatingAgent class Ant(CommunicatingAgent): @@ -65,13 +65,20 @@ class Ant(CommunicatingAgent): for n in self.neighbors: self.send_mail(n.get("id"), {"color": self.color}) + def to_canvas(self) -> dict: + return { + "id": self.id, + "x": self.x, + "y": self.y, + "color": self.color, + "cycle": self.nbr_cycle + } def send_metric(self): metric = super(Ant, self).send_metric() metric["x"] = self.x metric["y"] = self.y - metric["color"] = self.color return metric diff --git a/ant_communicating/amas.py b/ant_communicating/amas.py index f79ec7a..cc5ce22 100644 --- a/ant_communicating/amas.py +++ b/ant_communicating/amas.py @@ -1,7 +1,7 @@ import sys from math import sqrt -from iotAmak.amas import Amas +from iotAmak.amas.amas import Amas class AntAmas(Amas): diff --git a/ant_communicating/config.json b/ant_communicating/config.json index d96ea1d..bb33cfc 100644 --- a/ant_communicating/config.json +++ b/ant_communicating/config.json @@ -1,7 +1,6 @@ { - "iotamak_version": "0.0.4", - - "seed" : 0, + "iotamak_version": "0.0.7", + "scheduling_type": "sync", "canvas": { "height" : 500, diff --git a/ant_communicating/env.py b/ant_communicating/env.py index ebadace..5487a7b 100644 --- a/ant_communicating/env.py +++ b/ant_communicating/env.py @@ -1,7 +1,7 @@ import sys -from iotAmak.environment import Environment +from iotAmak.env.environment import Environment class AntEnv(Environment): diff --git a/ant_communicating/scheduler.py b/ant_communicating/scheduler.py index 01638e3..4a21e61 100644 --- a/ant_communicating/scheduler.py +++ b/ant_communicating/scheduler.py @@ -1,6 +1,6 @@ import sys -from iotAmak.scheduler import Scheduler +from iotAmak.scheduler.scheduler import Scheduler if __name__ == '__main__': a = Scheduler(str(sys.argv[1]), str(sys.argv[2]), str(sys.argv[3])) diff --git a/demonstrator.zip b/demonstrator.zip index 035d3cff04ceab08e99d3f5296d749f0af940548..986fcb0cf7f061607b934e5721516a50504782be 100644 GIT binary patch delta 966 zcmaFHH(OwW1D{gpsgTEZ1sBgVF);k$oaiTAzclP*-faVcz0x1-c}hA(PH&pK_#%rz z)vKktRWDQpINTPADhXu<YzqGV`n2NKAfZiD+O|$G&fj)?VMXDjRZOm~THQ~ZZeRZt zr6+#+Xy8ev9c%blYdbTJxrnN6(m2<ozU7gUavERO()E9rGOtrORy6U+7M+K)+YVaR z>xjJx<oQzXaZ`}vVN-a^57pECiUCvSa_fe?Tev2K<B@0N=IRGwqOTf1T`Z7%XI<(3 z!RfQH_SOT*Z`NG+)Veg7yQ#4JS549>{zccGU%S0Pev(Mq+{<(RUrqE*OyW-X%W!{b zLLN_0^Cd5>+%wlyz2>R<&-njh?H++Wrg3>6H+_7Rpta6VIKSRX@Sk4G-D{;<JJl?e z{dFFHmYZAhQO5Lb+@T+>y(Ly_ucyy5J~8v?(KD<cSl?CcSbJD<bw|SbU+4cW=r@dC zw)mW{W92&UoTVS0dj2bX@bjXFt9sR0)vKy|+2053`{U+ueqt`~tXJ+|N|Kbm8WyuH zx{~iBIFIdMK>yR=u)2*-arO5$E$q3lJ7-D`->GNmPx9aTJlM3@FJ$idyg>Gc0%_eX zH`yf4<*my3nwBw7etY4Y3o5Cc{>N1^1JpWPCufDlRNr|1-8N_Wo+|O*#|!u+wEO-a z&5_K1opkB>rhSHYbBoW;xT+H=_1QLJZcYTRTG_{d+ZT#*QvU{Ozdj$a^Y4nO^|#MQ z-1Lc*oFck#*^Em)m2$f$8C!2)o!Oaf+?DN6e!H&l{<(>A(sMI*&&iYy<~e%Ku^{`m z(wmtj=Jk5U_n9yMOW>CaS`lQsi*3WKj*HFm_R=5g1l3&FpL_3LKl?}3yxU8pE#{S7 z{&r=>@{L7N=Q^)v^;J(@8((}a``)`dFJ3!^ypG;o`DL^6mD4JZ6W{NUXi2mFo|3}n z<-IyqX4~;YJ?YL|kNO{9pRj;cnPqdKvp|SIQLyxqsI`CB8ExJ3YOzDAc&;ADN9Gl? zcXrP{+~D>~=fjG>?3<4>sWb9(Ft~)B3i-DsEFz78fuVWwUuO9<)iaJ<4GIFS4{IOD z9w}{E+oY$Ql<c|EFihdn-Qt|z^~UQr^c6pRv~=&itIRWEc#@tu@fFQ*xo<I(ciQiQ z#L#fNMvJEj9<yh^xZ3sW&MFbDtv7d{y`p~M$NMW?34%g*dna8wz3V&kW;>SCjA(gn zvN&5XlLhnS95w|dG?y_jFi0>!03(9}0|P@i%j9)zE{vZie`a%F+&|fbU571)4Ws}7 D1E0;h delta 794 zcmbO&@QiPQ1D}lhiI8tDCN6PI3=FH;C;Ca(&kc24zsNvf-|QdqYB6%5F7vmW77A}( zzIV^v%W*xKS|M@DTi7maf4Bbr%%&#RxJR!Uou1F0nZNH`z|^@uaZY+AIh#Iugw8*@ zRigjcV&^=gfMs`59!Ye$yfW(XnKpN8m&?kMLvQ7-_}SlD#v7?|tU_ezB8>;?Z3}Jp zb0=#zF|MnRkZUMj8hUbP{E06D4JRfSw=GCwb)Ct+;CtoNGS*c^tyO|{H71959kf2s z?QwpS!-2Br5iW&OHfCGQPkFcbgWo&9?yWnebKiO`c_n`>eT#0>!8g`>Bz0pqu{C#H zdNN~;Rf9p5xz?nA*Jf8SRv1_LyfFM;wq||9vB_}}8~1ZOh_2rnlXlV6OZEO~7v9T3 z?QU+}?O&zDbQ#t%8-;1;FZElpKc#Q(v}s&BZ$@ann`M7b^w_$yQ<y*62F~)ht0mtr zo%Z3>E=HXd6Re)i3|QH}G2o1E;UDKmmCk%CJ!{_k*4?;sPvm!>%}i~Ld2uRNUF+&j z?Co_E5>gJjxadW4{y!_J`Uiy*6m2@Qvsy$~CEi~getG{wi@6(e<{#Ol=)p3xSk!oV z)=aS?jgX^zg;y^-d}rF4?iJa!7qq5L>}sEC^-%xNM}fefk+YX=di7|QvU2XU*q?JO zo&PRtK6F=Ym1x=S8wbB6J}&+KLih4Loz3Z+&+MC&`YC7H$?#2Q=ASispYrmjU{atv z?_B-f_I>Buax>bStZz7KFTFjjY|cSG-ZcjnGav2Ddzg6Z^XrcfuD_SwqwC2(B~*Ow zqSM~pK1F`J_7*%^W?8>-CwIuJI^HO*@HuO3b}n$yS@3(+&B%9omsJn_SyTJx2mfXZ zW_3n>28O+!he8hDb$+eHz`&q1IgdqNshXEdK|v`qza%j?F+092wWv5VKTpX@LCHYR zK+jBxm#cR3XO`29XsLGc8Ma`i<4ltk*%g$~Ol4qTkYIoSMg|2228L(Mlatw9nCw_4 c^RtRh-p8)R#Kk)KHmmexRt^ES?W`cB0F$R@8~^|S diff --git a/demonstrator/agent.py b/demonstrator/agent.py index 6c256d0..ba63bcf 100644 --- a/demonstrator/agent.py +++ b/demonstrator/agent.py @@ -10,34 +10,44 @@ class IotAgent(CommunicatingAgent): self.nbr_agent: int = nbr_agent self.values = [] self.asked = [] + self.nei = [] super().__init__(arguments) def on_initialization(self) -> None: self.operator = random.choice(["+", "-", "*", "/"]) - self.value = random.randint(0, 9999999) + self.value = random.randint(1, 10) def on_cycle_begin(self) -> None: - if self.nbr_cycle == 0: - for i in range(2): - nei = self.id - while self.id == nei: - nei = random.randint(0, self.nbr_agent - 1) - self.send_mail(nei, "AskValue") - self.log("New nei "+str(nei)) + pass def on_perceive(self) -> None: + + while len(self.nei) < 2: + self.get_new_nei() + self.values = [] for mail in self.mailbox: if mail.payload == "AskValue": self.asked.append(int(mail.sender_id)) + elif mail.payload == "Remove": + self.asked.remove(int(mail.sender_id)) else: self.values.append(int(mail.payload)) self.mailbox = [] + if random.randint(0, 100) == 1: + self.nei = [self.nei[0]] + def on_decide(self) -> None: pass def on_act(self) -> None: + if self.value == 0: + self.value = random.randint(1, 10) + + if self.value > 1000000: + self.value = random.randint(1, 10) + if len(self.values) == 2: if self.operator == "+": self.value = self.values[0] + self.values[1] @@ -46,7 +56,10 @@ class IotAgent(CommunicatingAgent): elif self.operator == "*": self.value = self.values[0] * self.values[1] elif self.operator == "/": - self.value = self.values[0] / self.values[1] + if self.values[1] == 0: + self.nei = [self.nei[0]] + else: + self.value = self.values[0] / self.values[1] def on_cycle_end(self) -> None: for n in self.asked: @@ -55,6 +68,17 @@ class IotAgent(CommunicatingAgent): " OP : " + self.operator ) + def get_new_nei(self): + nei = self.id + while self.id == nei: + nei = random.randint(0, self.nbr_agent - 1) + self.nei = [nei] + self.nei + self.send_mail(nei, "AskValue") + + def remove_nei(self): + self.send_mail(self.nei[1], "Remove") + self.nei = [self.nei[0]] + if __name__ == '__main__': a = IotAgent(str(sys.argv[1]), int(sys.argv[2])) diff --git a/demonstrator/config.json b/demonstrator/config.json index 6c22a08..4bb3bf2 100644 --- a/demonstrator/config.json +++ b/demonstrator/config.json @@ -1,3 +1,9 @@ { - "iotamak_version": "0.0.6" + "iotamak_version": "0.0.7", + "scheduling_type": "sync", + + "com_graph": { + "fun": "linear", + "refresh": 10 + } } \ No newline at end of file -- GitLab