From 2fe09aaa7c08a73e2a626ad12d012018340b72a9 Mon Sep 17 00:00:00 2001 From: amiraj Date: Tue, 9 Jul 2019 13:31:06 -0700 Subject: [PATCH] Commit #7: eventHandler and event queue are unique between two apps now. (Similar to the samsung architecture for smartthings.) --- Extractor/extractedObjectsApp1.groovy | 2 +- Extractor/extractedObjectsApp2.groovy | 2 +- Extractor/outGlobal.groovy | 2 +- .../GlobalVariablesBothApps.groovy | 5 +- GlobalVariables/GlobalVariablesEachApp.groovy | 2 - Methods/eventHandler.groovy | 72 +++++++- Runner.py | 8 +- bin/main/App1.class | Bin 0 -> 18067 bytes bin/main/App2.class | Bin 0 -> 13426 bytes bin/main/ContactSensor/Contacting.class | Bin 0 -> 6342 bytes bin/main/ContactSensor/Contacts.class | Bin 0 -> 4257 bytes bin/main/Event/Event.class | Bin 0 -> 3674 bytes bin/main/Location/LocationVar.class | Bin 0 -> 3931 bytes bin/main/Location/Phrase.class | Bin 0 -> 3007 bytes bin/main/Lock/Locking$_lock_closure1.class | Bin 0 -> 2544 bytes bin/main/Lock/Locking$_unlock_closure2.class | Bin 0 -> 2552 bytes bin/main/Lock/Locking.class | Bin 0 -> 7963 bytes bin/main/Lock/Locks$_lock_closure1.class | Bin 0 -> 3486 bytes bin/main/Lock/Locks$_unlock_closure2.class | Bin 0 -> 3508 bytes bin/main/Lock/Locks.class | Bin 0 -> 6670 bytes bin/main/Logger/Logger.class | Bin 0 -> 3286 bytes bin/main/Switch/Switches$_off_closure2.class | Bin 0 -> 3503 bytes bin/main/Switch/Switches$_on_closure1.class | Bin 0 -> 3498 bytes bin/main/Switch/Switches.class | Bin 0 -> 6674 bytes bin/main/Switch/Switching$_off_closure2.class | Bin 0 -> 2557 bytes bin/main/Switch/Switching$_on_closure1.class | Bin 0 -> 2553 bytes bin/main/Switch/Switching.class | Bin 0 -> 7974 bytes bin/main/appTouch/Touched.class | Bin 0 -> 3652 bytes bin/main/main$_closure1.class | Bin 0 -> 2203 bytes bin/main/main.class | Bin 0 -> 14560 bytes main.groovy | 171 +++++++++++------- 31 files changed, 182 insertions(+), 82 deletions(-) create mode 100644 bin/main/App1.class create mode 100644 bin/main/App2.class create mode 100644 bin/main/ContactSensor/Contacting.class create mode 100644 bin/main/ContactSensor/Contacts.class create mode 100644 bin/main/Event/Event.class create mode 100644 bin/main/Location/LocationVar.class create mode 100644 bin/main/Location/Phrase.class create mode 100644 bin/main/Lock/Locking$_lock_closure1.class create mode 100644 bin/main/Lock/Locking$_unlock_closure2.class create mode 100644 bin/main/Lock/Locking.class create mode 100644 bin/main/Lock/Locks$_lock_closure1.class create mode 100644 bin/main/Lock/Locks$_unlock_closure2.class create mode 100644 bin/main/Lock/Locks.class create mode 100644 bin/main/Logger/Logger.class create mode 100644 bin/main/Switch/Switches$_off_closure2.class create mode 100644 bin/main/Switch/Switches$_on_closure1.class create mode 100644 bin/main/Switch/Switches.class create mode 100644 bin/main/Switch/Switching$_off_closure2.class create mode 100644 bin/main/Switch/Switching$_on_closure1.class create mode 100644 bin/main/Switch/Switching.class create mode 100644 bin/main/appTouch/Touched.class create mode 100644 bin/main/main$_closure1.class create mode 100644 bin/main/main.class diff --git a/Extractor/extractedObjectsApp1.groovy b/Extractor/extractedObjectsApp1.groovy index c3e09ad..d205217 100644 --- a/Extractor/extractedObjectsApp1.groovy +++ b/Extractor/extractedObjectsApp1.groovy @@ -5,7 +5,7 @@ def contact //Global variable for number! def minutesLater = 1 //Global variable for number! -def secondsLater = 2 +def secondsLater = 1 //Global variable for recipients! def recipients = ['AJ'] //Global variable for phone number! diff --git a/Extractor/extractedObjectsApp2.groovy b/Extractor/extractedObjectsApp2.groovy index 4363a18..77277fe 100644 --- a/Extractor/extractedObjectsApp2.groovy +++ b/Extractor/extractedObjectsApp2.groovy @@ -7,7 +7,7 @@ def lock1 //Global variable for mode! def newMode = "away" //Global variable for number! -def waitfor = 10 +def waitfor = 1 //Global Object for functions in subscribe method! def installed = this.&installed //Global Object for functions in subscribe method! diff --git a/Extractor/outGlobal.groovy b/Extractor/outGlobal.groovy index b22c362..c1c0918 100644 --- a/Extractor/outGlobal.groovy +++ b/Extractor/outGlobal.groovy @@ -3,4 +3,4 @@ //Global Object for class contactSensor! @Field def contactObject = new Contacting(sendEvent, 1) //Global Object for class Switch! -@Field def switchObject = new Switching(sendEvent, 2) +@Field def switchObject = new Switching(sendEvent, 1) diff --git a/GlobalVariables/GlobalVariablesBothApps.groovy b/GlobalVariables/GlobalVariablesBothApps.groovy index dea126a..0c6751b 100644 --- a/GlobalVariables/GlobalVariablesBothApps.groovy +++ b/GlobalVariables/GlobalVariablesBothApps.groovy @@ -1,9 +1,10 @@ //Create a global variable for send event @Field def sendEvent = {eventDataMap -> - app1.eventHandler(eventDataMap) - app2.eventHandler(eventDataMap) + eventHandler(eventDataMap) } //Object for location @Field def locationObject = new LocationVar() //Object for touch @Field def appObject = new Touched(sendEvent, 0) +//Create a global list for events +@Field def evt = [] diff --git a/GlobalVariables/GlobalVariablesEachApp.groovy b/GlobalVariables/GlobalVariablesEachApp.groovy index 7d44e0c..2b6544c 100644 --- a/GlobalVariables/GlobalVariablesEachApp.groovy +++ b/GlobalVariables/GlobalVariablesEachApp.groovy @@ -14,5 +14,3 @@ def eventList = [] def timersFuncList = [] //Create a global list for timer schedulers def timersList = [] -//Create a global list for events -def evt = [] diff --git a/Methods/eventHandler.groovy b/Methods/eventHandler.groovy index eee7a25..5c8fc2d 100644 --- a/Methods/eventHandler.groovy +++ b/Methods/eventHandler.groovy @@ -9,9 +9,23 @@ def eventHandler(LinkedHashMap eventDataMap) { def isStateChange = eventDataMap["isStateChange"] def unit = eventDataMap["unit"] def data = eventDataMap["data"] - - for (int i = 0;i < eventList.size();i++) { - if (eventList[i] == name) { + def minSize + def smallest + + //make search efficient + if (app1.eventList.size() == app2.eventList.size()) { + minSize = app1.eventList.size() + smallest = "equal" + } else if (app1.eventList.size() < app2.eventList.size()) { + minSize = app1.eventList.size() + smallest = "app1" + } else { + minSize = app2.eventList.size() + smallest = "app2" + } + + for (int i = 0;i < minSize;i++) { + if (app1.eventList[i] == name) { evt.add(new Event()) evt[-1].value = value evt[-1].name = name @@ -23,7 +37,57 @@ def eventHandler(LinkedHashMap eventDataMap) { evt[-1].isStateChange = isStateChange evt[-1].unit = unit evt[-1].data = data - functionList[i](evt[-1]) + app1.functionList[i](evt[-1]) + } + if (app2.eventList[i] == name) { + evt.add(new Event()) + evt[-1].value = value + evt[-1].name = name + evt[-1].deviceId = deviceId + evt[-1].descriptionText = descriptionText + evt[-1].displayed = displayed + evt[-1].linkText = linkText + evt[-1].displayName = linkText + evt[-1].isStateChange = isStateChange + evt[-1].unit = unit + evt[-1].data = data + app2.functionList[i](evt[-1]) } } + + if (smallest == "app1") { + for (int i = minSize;i < app2.eventList.size();i++) { + if (app2.eventList[i] == name) { + evt.add(new Event()) + evt[-1].value = value + evt[-1].name = name + evt[-1].deviceId = deviceId + evt[-1].descriptionText = descriptionText + evt[-1].displayed = displayed + evt[-1].linkText = linkText + evt[-1].displayName = linkText + evt[-1].isStateChange = isStateChange + evt[-1].unit = unit + evt[-1].data = data + app2.functionList[i](evt[-1]) + } + } + } else if (smallest == "app2") { + for (int i = minSize;i < app1.eventList.size();i++) { + if (app1.eventList[i] == name) { + evt.add(new Event()) + evt[-1].value = value + evt[-1].name = name + evt[-1].deviceId = deviceId + evt[-1].descriptionText = descriptionText + evt[-1].displayed = displayed + evt[-1].linkText = linkText + evt[-1].displayName = linkText + evt[-1].isStateChange = isStateChange + evt[-1].unit = unit + evt[-1].data = data + app1.functionList[i](evt[-1]) + } + } + } } diff --git a/Runner.py b/Runner.py index 2d32581..0514c39 100644 --- a/Runner.py +++ b/Runner.py @@ -42,6 +42,10 @@ Out.write("import Location.Phrase\n") Out.write("import appTouch.Touched\n") Out.write("import Event.Event\n") Out.write("\n") +Out.write("//Global eventHandler\n") +for line in eventHandler: + Out.write(line) +Out.write("\n") Out.write("//GlobalVariables for both Apps\n") for line in GlobalVariablesBothApps: Out.write(line) @@ -84,8 +88,6 @@ for line in sendNotificationToContacts: Out.write("\t"+line) for line in sendSms: Out.write("\t"+line) -for line in eventHandler: - Out.write("\t"+line) Out.write("\n") Start = 0 for line in App1: @@ -145,8 +147,6 @@ for line in sendNotificationToContacts: Out.write("\t"+line) for line in sendSms: Out.write("\t"+line) -for line in eventHandler: - Out.write("\t"+line) Out.write("\n") Start = 0 for line in App2: diff --git a/bin/main/App1.class b/bin/main/App1.class new file mode 100644 index 0000000000000000000000000000000000000000..796d062e69225a6e8228895d8b6aa223c4a74945 GIT binary patch literal 18067 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 literal 0 HcmV?d00001 diff --git a/bin/main/ContactSensor/Contacting.class b/bin/main/ContactSensor/Contacting.class new file mode 100644 index 0000000000000000000000000000000000000000..5f5e0b16d24bb8ff362c7a8724fdef45562a4ef6 GIT binary patch literal 6342 zcmcgw3v?V+8UAjv$!s>0G@T})OG|;8mb}WgK}%_%whgb)v_-Zwq=lC0?j%{doei^- zKvhKX1qz5FV9Q&?iee1~N(us15ft(L79WUjMNv7&b3FEd-#;_i2c4Am9FHg2fA9SF z-v9lYefHHyp8#+YUQw9Yle1kjrhLwPZ0Pg&jJla@ zqA!zoyA^8kmYqIh%(7ht!{06ug9jQ~@~-J-QaxESpYOE?a|-Q!IcF%5%B8Jgb2Og_ zq;#yoEG5t6>_p)#?`xYklfvpA3bTRiwpp&}Z7UqrSE}FY$qnAAJ~d-!++_;!*0M7_ z*<60qvATQP)>HqMAD7sBCRpucHx1#}L6Rg&D#k>8W23PlReKld7;qTE}3H&^lI!ff+Si9j`-2ovhwO zk&ABbwOwn-ax~1NiN?(AsI_)bp}DoUt;7kzA<{hotuf3;o5IRa+Xw2o+ehdVJDp`< zB~G^n&C#s8j<|J>Y3B!X&Ng~7XKUzSSY&MXe0xjoa)qYW5}tm9b+`5ESb!5_=tM$C z6g8s4B85eVVxLSonGtv8cGr^NSdlhITv72Pg;>h5OxKd2Q<&GfF@&LyD#oUcw_tG$ zZ^p?A_2qG^;S?ch=G}EUQBUFI5EV*zcoElKYT7_e9o;xpn4G2~hFVebtqLa|O36v} z#5vBOnX;B>Si#87RzEFcQXIOih%5rkz@AYghF zSC@5a|F(vYu$B4h(~rZs^qS-di(NWt4$^}cmh$t<&>^!W5b1Dj^-+9GY;~guXb6~5 z7y`~@!DX{7Z|ebhh1x93ao)Fz+-nrj6vYntZWeG99nAK(g7vJaye$PeE{E7OD>7^$ zQR&4pAVp3Fpm^rPKy)SKB_y`d~ke&Gp7>{8$9`Fel^wRO5i~_sykizWAlHyLb z;lx>%Z8`KnniXf(!P{PMvCS-ZbykA{Ro1TZiKwvCEhCX$8iudS^uY5at|{2M=&b-H zBMjv}r_?mTR>}P%p{V0gJYI`S@dQJU4mj7zjaZJ$k?jr2QNW}$qykBF?8ldcw%rm&bQg(lflW3@MrcT0tc>-aXlBN6oz&gVx?M8nS%$~@{PX=#Nl=qAJa z&trHVztHhbd`s%Xub5!P06)lp8h*`rjS;EiH+VLN7x7yiKg5qj;NJ_m=LGjh)1FrtiH4cnB4oQ6yN)l$yq%hf`D{)4kU zcu~dc5qOz2wqPdzVwlH>U&43kBqM&5@p~5|{vLkD8Qrfi>i>o5d|xosDI9?|p;4Kr zQ#Oa-9hjzWBs7BKmo(#m|Bc zM*Mrn@gxcP2GgNl<9j1teKdT~Q@@@&5ybf;($UZl`fAb-B*dMbgugyTgOyz>`LWC}~{3 zA2$?L__*vGOz0*Oy7@>66>YHr`T-ovn5kV(qs$46@~VUq|8L;NYy9cPH&rS2Fphhc zolmDm_=C-{q@5sK!%}NuF5`6$F6Z+teBRAx2@c=ly9*ZI&D~FU7T@tdu=q|I>ee?f z)NO}j@!Lu0jw2=X|F(DwZ99(^pHGXo(&BBj_&i#CK5g1ci?_Xj#qVV5dyR~xq0)EfBm8lznZI%sJ=|RIa5Fy1_)rZJA#(zLD|tsU?*ul? zPa75YBFe7#+3`KNzpvvNOcU$`_6+nri2FPC;$db5FG?L`^{79985(vsD0wd+6*gkp zK#B_Aw3s_{2cAY`yuW>by_j8CFva`T{2`Z>6aV005qvMdA7NWpm|&6di5dJB;i}s^ zcwcHTLe4*m$Aa^5sxJkij$(hYy`ys+`WT)c zU@?9Kzx3?FM^`Hz^i|H5HHZOFBJog Tf!cTg^%@6Ug@2M`1+@PHl;UUs literal 0 HcmV?d00001 diff --git a/bin/main/ContactSensor/Contacts.class b/bin/main/ContactSensor/Contacts.class new file mode 100644 index 0000000000000000000000000000000000000000..51bed714f2717584c88dde82eb99df081896ae37 GIT binary patch literal 4257 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 literal 0 HcmV?d00001 diff --git a/bin/main/Location/LocationVar.class b/bin/main/Location/LocationVar.class new file mode 100644 index 0000000000000000000000000000000000000000..6b600fdc9d8c27e599c910c243a36f6297f33ffe GIT binary patch literal 3931 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 GX#WAseH1GI literal 0 HcmV?d00001 diff --git a/bin/main/Lock/Locking$_lock_closure1.class b/bin/main/Lock/Locking$_lock_closure1.class new file mode 100644 index 0000000000000000000000000000000000000000..516079e9913c4cc23edf2d17adf78e7e6e2bb130 GIT binary patch literal 2544 zcmb7FU3U{z6x}x|OqmY-Ncpe=0$L$W3!z0pEubZqQkw!2tQM3oO>Wwu=}etW>grGM zhxm@*Dpi)sldR=$VyXMgOxlzVuEoRLxik0Pv(MRQpL75I=eIuqoX48Nk)l^w&dcDq zi-YAlC*?}rYczd5YCtLUFZ!Ohww|xs?qa?Wtr$ovjClTHzT#E&lHF|N<6VB!4V)F7 zpVF@O?Lb$zPV7H9d}t*uiK5KS$lPS zC|U{Kxw-IASAua1Cb|@Q2OEJMIF&-(ZZxLdnx~K}COWBWb)IuPmjT6l#}$lnnHFXX z3hJ)H-b;?_1XmPJ$G)^9?)G75PN8pbQ3nOPUN1R;p74EpU12OcbT8S7n5hc)H@H9F zI>>PPalk|h2QBm=W1<6x$xN{1G!%{%+c|qBVGN?X>@@@JPrKy8t!RbJZeJC;%3>{| zkD*pQ0arMc5NZP7X^IC-QX;pn3(LSss!gJu3I!E`PwC*6@2zS-Shw&Vj(6c*40gg~ zHbVh~q?ZDp;xuqtVf6nnOBLT)4X&;ST4XsscKvdDU~JRbSiH zl3gP`)9oRLY8c;5Slge-mt++VW5h%bXB1LSz{=T<;Leio{a`QDwSjXA2eJvIDjY4w zMHKk9+o*Z|%61u16z|};h~fhp7M+zsturD!^jcwnR$~JpYgB(6t>x8kz!1un|M3=3&cwAxn5$J$ij>sr3# z)q>l)rhUyiBgcmZE0k5BTXh^Zfbu98viI7Kwgkj}u}7L+qZ40J5=n;@E-)>LJiV^U zLeOz3P-WpJZi!-uH1_6341DuS?~8a&j71vNT@&-TXJHmMB*ovc+P4c}7hwj<3TbB5 zf{if~53pdNggfGJRpDTJf?N8U6PTLpT_kyS)L_rOd3$y6a36i;J=4AO!ef^$uyaV$ z^qBoQ+jpdB@5sO!V98aMc?ZScJ-nFojpoXN_TxVTx1+qwISq$LCS2E(D)n4em^JP4 zN(?#F{Op-@<(g$*qx#sC6wH#>^eg(BQ`ZGCN1o!XpG5`mIG*4lcu5Z6ZN6o81V_0hvtyj4IA?p|D5f-b z%l;!YHJeF|WKN9be#QGKWKKOtb`xhG;ZH87vC7ec`j>WzWYFvHIgt!@5ORQzfFI&F z_|*a*Kt2Q)$T6-7KCn3wIm+~e(q*k1NA z?*D~8jvJ^v=Yg3Q$ZSH-Ji~)|9$k8Z`?+6G-{Iham*_UA;xrnxYtp0;xI#$;e0N|U KNosPIg7F{d@u8Oh literal 0 HcmV?d00001 diff --git a/bin/main/Lock/Locking$_unlock_closure2.class b/bin/main/Lock/Locking$_unlock_closure2.class new file mode 100644 index 0000000000000000000000000000000000000000..90197ad4844de05a0e3522ff3f4999b472b57998 GIT binary patch literal 2552 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 literal 0 HcmV?d00001 diff --git a/bin/main/Lock/Locks$_lock_closure1.class b/bin/main/Lock/Locks$_lock_closure1.class new file mode 100644 index 0000000000000000000000000000000000000000..ca70ed11f4ca81a12bf3ef4a9b1df3b1d618545c GIT binary patch literal 3486 zcmb7GX?Gk)6}>exQnyBJNp3GeS+JDI@n|GvB87xt*&+7eMR;TTUPEcdP#K z@4x&Nz%?OS{GGJ`B$a>>OH3&Le|826n>CBZpgvOxSP&f!iuuh`laV454SvYlYIE za*2dnlLF>;PX)T?l&%;&23q%&X@R>_0!=|X%c22cNkw)e^;YOR?!wg4a#O<~Qxj#g z4M7ceDLt&Mu{YDR4IB-369ct;A}Yx^h!Zk=#P^n^AFdiGU|%;5VE87hu|FC{n5D2G z2kM^Z4_tP_#(+~lsAG(v3^>7nsyiArD;5mJ262u%C~aM z_oW*OJY1->w@$myliQW2fNkI%xL<|yfPyO{u!AKw)0Vy6g;c3`;h?G;mPD_Lslql4 z!dbi7k~$6xjK3M^R?T;o!=tOARGodKZZET>G`w5jmOzH>F>HV?a5klO+5(K)Z1VrY zq7Bs}IGV@9U_*AsiP3S4Syl4{;UuCH3LMf=&b5~q;CprC1v*yZaHj?Ix?FK;a;mQ5 zj5?YlEOi+~agqgQYDtTOW^;Yd3^}MFET@CLiTSV&5%nR%- zoNv!Ta)@nw9vAYc;sbP`Ne+w6e26)80*g!~%MJ1={rxaKZ;@U7P(cC)}7eTpQY;IiDY$}tntd~jLVbj&|WmN@ifv>WZ0_oO|t&q}m zd|hC7npS}an6Fd--{_``uEgf1@^ROK6#VGx56*f*pJdx5%0|6+^G5BL~#v=qC=<0%r5m~KJ+q1 z*YTdQbLR1bx&BqS$9fHq28>WyPv?n5V63r+M6}YUU$WRUb7U-BN8; z`#MdFqh`L3qi&w#*p*wy2l>sLa~!*)9mBLa-;s@XddwRCdZV2_Q*ypDORMW}taU6! zAzZ=V7=0F3I2sWD!K<7I4a-o7-pZupFo^s4IGMp+SR`})6Z?5+Fv5B-(FFfCuznS8 zgtbEWAoo7d)M`5&!@I literal 0 HcmV?d00001 diff --git a/bin/main/Lock/Locks$_unlock_closure2.class b/bin/main/Lock/Locks$_unlock_closure2.class new file mode 100644 index 0000000000000000000000000000000000000000..6a770130f73a08189a92391f48ec4cffa9642731 GIT binary patch literal 3508 zcmb7GX?Gk)6}>exQjc0~Np3GeNsQ$n$D@&yiDlvh%MP&z#}*#h!7XGa21I+Nq-kr^ zExLQ;h%IDc2?_g7SVAD|i?M?|!6%SUvb^$d~G>u6o;j_r0or z{QEC|1#kduf!iuxZLy?=V0frtL12%JGhdtiYJ( zFO+ItT{i4iP)bhuEjM(QWa)%-rEiC_enX;5z=+J;6(1GQH%x2D3v|ck1;z`Ni}s3L zYK2a-RB_xzSwCq9jcI#%awOh~oH=vhqO66J26Xfa3=9XM9Xhpg(++|ucis~yR#IJ* z^G(V*p388Ovy%ea+#EGbmj%Sb^yRSQI^q2S`x0L|EpGNcC%?Yp*-sQ z_Nu@{VdQ+e6A4Z=o)37wv@XbSwqd)D40agU3R6c8w+Q6Ih7$i3C=mT?d#WcZNpElWRKHBi9rUhKojO;%%nG>kG& zVM7kpJiaDf2zly2C zQVhabyV;U?91+<6R-juo-&qcit%g!n_tCn&OiF2ZufQ#V3_D|32VLN73U@jJj0$b? z|H7gJ)uTA3;{mWFyW_;H|tJN090=h@xg!n30c!dCUkP50-UL-3gYP_No&85ZSZA@Ub;br9h2TYo5sR~j3Jm`*Y1L^BG_jr9pK_6{}O5mZ2SyLST># z?ktiUTO@B@wN%xlDSQ*rV?r5t1gkoR@d*VZF}oovFq*>1H#215Q~0!s^)m*xps$DS zepaB6S|lmAhla;_xvjez-#te<&Bxx3q~8Q73W?g2_?(U>@cCHrjkpYa5tr1)Q*8Fb zs@HVfHoH11&X@Bg%bO3+%6Z9NRFgz==WtAda;Mnbe#P0;zD8OvvyF#MH;=C>7O(`q zPAUb`tsh@ugUjQa0^8HH3LIpSUZHPaiH0A%;o^=H zkQ$_F-apjwEPiC*X*{EH{}Wy@8)V;vq=uggWSMRQKT~b?dHmeKxA7h2@Gk^*bY?zz zqr`W_uhiLJvoqQ8>)`IU|2Ft7e%C`^f6q4f#@8B~MVb9t-T5AgF>CvdD$yA=usm3I zwM7>A$jCoTolIK)lxjW>u}`Bk&qa69+ZY!_!4&e>x)Qk9rN54yPbFRGdzGlwRM z*KtQR_cDg7*)enPMDZmQGqAc|##l9L-epyD=H1pc9C!)$W^r!JylRD;y1o|KK%Fga#j1Ik}Zd$?@TT51$n?92apA|HQpKbRfcdC(#5~ z>sY^ryu&Lqozm7hQ<($QzsaK~;1?(SL8EgFJNM!@pILko$FZKbv>;M1& literal 0 HcmV?d00001 diff --git a/bin/main/Lock/Locks.class b/bin/main/Lock/Locks.class new file mode 100644 index 0000000000000000000000000000000000000000..93aa14aa90fb5bba24d9e131c8185fd2b0f00b9e GIT binary patch literal 6670 zcmd5=d3+ni75+w+y|TP^>`fd;NuUlj#FlMDoQ4vc1RUqU#Bpe3>?*W18)y#WI25KqkI7A|F`=LZJR4eOiyC^z?XS=bnpFij>oTS$?X$2hufn?e`KfNb&sX$|^=S(+R+WJ+T zibxQhI88+W)l!8n6?Ir7M=ucQUa%n1iHvEBagHmRg43A}aXo7dWtyyb(b+0$ozbQW<};W(wjXjw_hr&q%gn{CjCpJ=TVxsv?iL9iS7VK zh)&JPY_mMdNURDVCeYS;LFs|sDc4g@0$mWqFkV77wy7Kh6F9pV1H4e#Q_8%If+}8y zQE9*ni7bwE0qmhs(ge`}5&`TIsI>DcfN@59!kA9Rjeag9>9>TDjho3SnG8e5rB(nm zB!hgCVCI6cK}y1+Cu28dGATo6@?0$QbhlS1cgfDvY!D`hzyapqUWfU#Ky5NB(ZlFt zc8*g(W}QDrJPhFF93^y158#yoYmVlys4eoQeU>3%x;LRuSu%8A&FU044Kg1{W_j?* z<^1DHYlplfqo}XJD9G>C9fkjZ1;`W%Ae? z9eI2yb+d{$;Y!K%&BWV6NDobznM?FNDMP_k%u<)Vt4W$+d5)f)kWzU);>iP_Oa>O` z%7nop8^GIWa2bpOXOt1ORID;=RlEc5l+pJt)__8?wv5V19F02_ZHH)9H!siyyHy;(K^cED)Yrj_txPL6CjzG(Z!@9b z5J4~H?au03!$2-!tm2a-fFr;D+O8m8EM0$0TV2OD@vDTb7ZFVlq`{Dn@$Da;(-jZxdR237Z;wnl^)qgst%NK zaw5atya*oLpe&8aGVmb#KB{z#G(H}VDjvi4Yw#$3z@VaU&NDMphH0_SEfUg2J&%y{ z=aP!Y@gvFd$7D$(6<8MK%luN(VCAsB^l;Bi9{dS+PvA*;`p=x0h!(Cc(qo>_vdt;a zuBI96=8fsZo6p?1u0?{o=O%E1=X~C0BGJs4waXYYc$bPB44$PePWkKeZW~=Ai@djP zFEo8E8w2kWa%L z`~A`9)Do70KDI*i2#c68n48>Vm_xEvkQd+#<6u}flk(f0tYr@t-^*UX{SNJN>^q#y zCP~$sPG{s5kG^G8_NNIywk-^P2BVpr88@~jQwCPi*nVCks(9D%$-5EV;FI?b`>ncf z-Z|`V-k9t+`+T52C^4DuE3p_$_`X735AAu{lXQ*b+k|E8-W%)|-p3mkaP zkW*)cf+Hb+cTK3KFxMNZ83|Q(t0A>8*B4SpLRH%4E^X^927KtQ4b{s1gQ41y+od{! zO5j8&yffFKgQ~6PMP`7?T}bsTDt8r@h{dGYNHc+7J8>T0a#V*GQAs(Hrt{e&X*?Ot zSIJ8ojVnjefR&`&g{W(ewWOD8PtqI%?b=XR_z;F;{(Iq%RfO-tTG}C6c`r7^Dzq0z zV}5OS^dMe33%vp(T<+b`;Zd+-M2io07AAT-CCxgAS-ocS)C|dGEE=oSCZe$_Egp?2 z+C|Y=Ab(h_zDi3)WA%!b<};v8@mcMkL5}aBb_t&~_KK?Q9zMcaZ!E*W}WGZ*>gFra-X`$Z%P?qeHuwGnsgswj8t%Z!+hSn@mSux>FD0P zd12oC_?$Oy{(tgjnBHusH#_LfPI~iH`Y%$}n>Wno&0Ab=-s{hQA`#K3`{tz=Gk6*nZ ze@RH{-jLK7kbZ1H4}oV8XFrg*OP?J*UFuq>&&Lk}9-oV>6h& z9yJm<_5=3|@4+Xb;)uj?J1L)qPmzBc6ny3gIeJpn5vPw>wwdHx2<=-v;xx^P(}a6m zaqc~~IDP-4IQTH|EPb%i!^#p!8?_odpqpXZH$S;VG&S4Gw zk_M`zIo1_qqd9C72>cRHxuiwvuPd-F(Eh3{+re^de_fvKU+E);omnK{W7rKqwDz!}i0_W<>S&L&6{9)|xwoFMOA% nD?}C}bIH@FQ`pe@1iLWigpWVLKrCV-a~t3FXb?@D_d)qD&+V1L literal 0 HcmV?d00001 diff --git a/bin/main/Logger/Logger.class b/bin/main/Logger/Logger.class new file mode 100644 index 0000000000000000000000000000000000000000..492d200a675a4bee9945604563e08893d995bb91 GIT binary patch literal 3286 zcmb7G>su669DWbGFt7}W3xX)#iga1P1uRqXhLnaZXf8oWg~Ku|qst7<4k(pbcC~wb z>ksHVX&Gc?pY(b9n|!kO%+Br(G4$k@nKS47F7J7NxB2VuU;hAb0N)AJB&|$Fw-fo7 z0wGX$SzFW+Sma9Un8vp+8+P&;oMrZZyoTV~G6 z>H^{-4Y%eT%`wvbSuK|vFlQ`*c+#>niL^DX&uR;~gy+N7XR`EbSZ1Oq+bf_Y^ZQR`HG{4X*kCPLb0|{ftG@xV{2w^#q{(; z%-YsfZ7QoPU^soXn766mm_XN)CZ&QC^e6LMmLB~v-AXRqO-8H_r)0XazPkS_VyU!k z%sZ!+99`CJ-?TRG$gFsg$tUZrn7RV({^TpBT5!3lID?lWIE?`n5md`O9~6iM0tsjj z3WfyK!VUAy<(S`n{*rCM)f`}ue4NAi2!`=;-f;0=DpIl{hcP0sy^u$xo+2y2Hnl9H zwqRi z$l!U~n%8ZI?QgH&iD%NEIK@<6(`7b96QHW%5~if@G<}njlJ9*1zI{1c$R^Tr*e|)E z^B`RnIx^DxEGJg0>=3@*zr&}&fs{yDGtLElMrQ{}>kMvVYueU1I|`lO9T}6|vLjCT zR135bXgSI4b1Gr7f4cKAYgS@jpdrYTz(E#iVES*=Ib8(3vf-7f$YM^W$^wVjlN(WR zRbWj7^5qkFF*)a!BDjXPR9watS-J19GD`hr9eWDi$ zMo!-2LsnBjoZCjF_m8FQCnQ*tV_U^7oTwt6&)9$a*`nl}G)#SXVQxydM`Ul69ob^M zM>X4!-`-~Pg*>&RM$X`FpJ`fhQ1c&#y^S+FePu|S_hcg}Yr#(Ir;V(RJp>r$u&h8i zSDf{bgP&cD?^{sa@0)UZyZhvbA*!Z4{|_kt1;5U^7J%I=*piI@f~N4XmiXk)Xl@yc z-^GsMPWiE`bL>YMTztuA1@(8)=2u*+T!UY`i3IrCJKfB;z*BgdPwC?~goqF5p^xFt zXlqYLXa(_AbcJvv+#DW@|Agl6QQsNu?uj>tSMgj3%fNlHjQi9I;Tt|X5PFPuE`)-k zj|rt*L79T%3c?Cb@(Db4!N_wLXCr-v$w?Dg*hx;>dGjtJmbl|mo?m&~a&-{TyXsvy zgu^u7fEFC#DqI(q|3ThOPVuCSn)}Gj3(>M4P#Isr+2z|vCfgrkliXdwh4JJaB-`)e z72bl15`#r0%+qnJ!oB6zp5B{XW;6p@L@X_Es f+!&|or+09jarnFx2gb4C5o#3{xxlydSO(=EJd{uU literal 0 HcmV?d00001 diff --git a/bin/main/Switch/Switches$_off_closure2.class b/bin/main/Switch/Switches$_off_closure2.class new file mode 100644 index 0000000000000000000000000000000000000000..973337d577853c76c9f1d27fce1b8e7b45420466 GIT binary patch literal 3503 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 literal 0 HcmV?d00001 diff --git a/bin/main/Switch/Switches.class b/bin/main/Switch/Switches.class new file mode 100644 index 0000000000000000000000000000000000000000..d24638013da048d2ec63b28117351c2f8daf5e7d GIT binary patch literal 6674 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 literal 0 HcmV?d00001 diff --git a/bin/main/appTouch/Touched.class b/bin/main/appTouch/Touched.class new file mode 100644 index 0000000000000000000000000000000000000000..563a7e4238dfc8493b463274e7912713e508f717 GIT binary patch literal 3652 zcmb7H`*#y%8h*Yu?UZy{+CYH{XvW}+7>xC_Py!-^`_&0fUpLa58CUojqPR^OjJMZOr?_a+C{`0Q@{1hK4 z^jOQwdAC|9WrC|N8c?KOuvV;0*>V;$XXh{If^VQzVb`MPx+|+S`l;Z#{$3Q zm)%O$)7goUX@%aQMeUDU<#NvU^>NR$Ruv8okDQMOS9N@QNoNY=uaG}e7tEU2j=m&X zutTABcx2i{3cHd>pkHB|n8*e0ufr2iBTcB*KT+3i>=9jiP4u953!m;X(Sa@UG)Tye zcuzRKUeum}pD;u#R=KLrE-366o*0QFC1j%ByKzqvL)foyA~yD+d;aP&bK(@sHjCt> zUa+cVKTlfTvz*F;>n$;pu47JLhP#BGIV)O2q!Wn^m)`W>JDY&02497+@X4V+U(cL=K+N63oYQBbcBz``` zD5PUgV>*dEW@?Jp{W38teVzv=+MasR`}H2noYIc=EMFJd6T3Hlmag_3t1KN8I{^(m zOM`5hb%P3bG*{^Qm#mCJvsOAJmfWJk;i%U+-{Ua&|EgF<7hQTXDj&9DB*LvrNsdftO6YfK@5MSGdS;U$ueP6q+(yYxr0nWy@bm;&r@XVg=93ta*#g+8Avc z0%_oF9uSyF6Yrps#1*`2;&=GH0RDrhs|xLXg*K~p7P2K8 ziE;+-N7k_OO!~jLBYh2b9!>No(sQ3-pg%D)dbF*-Og|--sP!-CuJ2p3EUPwKY#~AFqhCqw|JH& zn5hG)LkH8T!`E@F6*Gxrdn0D|&ZIxZzQmVE%(jl^)^PGFzNT0!{>iHe^#kp(S`9n_ z0hXfD1Y^<5NDT5iMv8#jLG$2S9o!fm!{bmr2{{dhkWP?Cxb`zHlc|<}qa(eBr>=gC zbCaVtu~n#RcxHC;6Pz2phVxg+ssb3S%(d_Ui;bBA4kYO9_kzZ7?*FLm)C1}?;8r7zKPTt{&@NeT$!cl2cO_F YJ^5=Ru`G=3-=W*!yioX%7TJLR1EKxHU;qFB literal 0 HcmV?d00001 diff --git a/bin/main/main$_closure1.class b/bin/main/main$_closure1.class new file mode 100644 index 0000000000000000000000000000000000000000..b5c9a14663760dc4f35ca9dd191794c493fa1195 GIT binary patch literal 2203 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 - app1.eventHandler(eventDataMap) - app2.eventHandler(eventDataMap) + eventHandler(eventDataMap) } //Object for location @Field def locationObject = new LocationVar() //Object for touch @Field def appObject = new Touched(sendEvent, 0) +//Create a global list for events +@Field def evt = [] //Extracted global objects for both Apps //Global Object for class lock! @@ -32,7 +128,7 @@ import Event.Event //Global Object for class contactSensor! @Field def contactObject = new Contacting(sendEvent, 1) //Global Object for class Switch! -@Field def switchObject = new Switching(sendEvent, 2) +@Field def switchObject = new Switching(sendEvent, 1) //Application #1 class App1 { @@ -48,7 +144,7 @@ class App1 { //Global variable for number! def minutesLater = 1 //Global variable for number! - def secondsLater = 2 + def secondsLater = 1 //Global variable for recipients! def recipients = ['AJ'] //Global variable for phone number! @@ -90,8 +186,6 @@ class App1 { def timersFuncList = [] //Create a global list for timer schedulers def timersList = [] - //Create a global list for events - def evt = [] //Methods ///////////////////////////////////////////////////////////////////// @@ -150,35 +244,6 @@ class App1 { def sendSms(long phoneNumber, String text) { println("Sending \""+text+"\" to "+phoneNumber.toString()) } - ///////////////////////////////////////////////////////////////////// - def eventHandler(LinkedHashMap eventDataMap) { - def value = eventDataMap["value"] - def name = eventDataMap["name"] - def deviceId = eventDataMap["deviceId"] - def descriptionText = eventDataMap["descriptionText"] - def displayed = eventDataMap["displayed"] - def linkText = eventDataMap["linkText"] - def isStateChange = eventDataMap["isStateChange"] - def unit = eventDataMap["unit"] - def data = eventDataMap["data"] - - for (int i = 0;i < eventList.size();i++) { - if (eventList[i] == name) { - evt.add(new Event()) - evt[-1].value = value - evt[-1].name = name - evt[-1].deviceId = deviceId - evt[-1].descriptionText = descriptionText - evt[-1].displayed = displayed - evt[-1].linkText = linkText - evt[-1].displayName = linkText - evt[-1].isStateChange = isStateChange - evt[-1].unit = unit - evt[-1].data = data - functionList[i](evt[-1]) - } - } - } def installed(){ initialize() @@ -284,7 +349,7 @@ class App2 { //Global variable for mode! def newMode = "away" //Global variable for number! - def waitfor = 10 + def waitfor = 1 //Global Object for functions in subscribe method! def installed = this.&installed //Global Object for functions in subscribe method! @@ -317,8 +382,6 @@ class App2 { def timersFuncList = [] //Create a global list for timer schedulers def timersList = [] - //Create a global list for events - def evt = [] //Methods ///////////////////////////////////////////////////////////////////// @@ -377,35 +440,6 @@ class App2 { def sendSms(long phoneNumber, String text) { println("Sending \""+text+"\" to "+phoneNumber.toString()) } - ///////////////////////////////////////////////////////////////////// - def eventHandler(LinkedHashMap eventDataMap) { - def value = eventDataMap["value"] - def name = eventDataMap["name"] - def deviceId = eventDataMap["deviceId"] - def descriptionText = eventDataMap["descriptionText"] - def displayed = eventDataMap["displayed"] - def linkText = eventDataMap["linkText"] - def isStateChange = eventDataMap["isStateChange"] - def unit = eventDataMap["unit"] - def data = eventDataMap["data"] - - for (int i = 0;i < eventList.size();i++) { - if (eventList[i] == name) { - evt.add(new Event()) - evt[-1].value = value - evt[-1].name = name - evt[-1].deviceId = deviceId - evt[-1].descriptionText = descriptionText - evt[-1].displayed = displayed - evt[-1].linkText = linkText - evt[-1].displayName = linkText - evt[-1].isStateChange = isStateChange - evt[-1].unit = unit - evt[-1].data = data - functionList[i](evt[-1]) - } - } - } def installed() { @@ -443,3 +477,6 @@ class App2 { @Field def app2 = new App2(this) app1.installed() app2.installed() +appObject.setValue([name: "Touched", value: "Touched", deviceId: 0, descriptionText: "", + displayed: true, linkText: "", isStateChange: false, unit: "", data: []]) + -- 2.34.1