From 67cf8542a19d9871beca89c2cf865a0f33e51efd Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 10 Oct 2013 15:54:14 +0200 Subject: [PATCH 1/1] Ensure we call the superclass implementation where applicable --- statemachine.odg | Bin 16944 -> 16438 bytes statemachine.py | 10 ++++++++++ 2 files changed, 10 insertions(+) diff --git a/statemachine.odg b/statemachine.odg index 4af232092f4b0147e540dabc7711badf538d7466..a26f172981038c82c3d50b010000de977e4ac51c 100644 GIT binary patch delta 13182 zcmb7rWmF!`vhIt!yK8U=?ry=I5Zv9}86>z{aQ7fVg1fr~cXxM(n{V&)W1q9mU3cC3 zQ#0LF&(!qH>gs-Kb@g|!27fRlC0PhaOb`eb1bViSiAPdE{;R|oBx+7R@Iassym(6y z0B=BATtv+y^DN8T1!Ey=@Rwc#gQk?<&@X@e)X-?8zM7z{ODX@r#JFP1bawt_QS`<^ zs#1K(%DsH!JT!%{vXhcrV1_td~ z#*=!Xqiw?}DGJRWyLjUl##vVu`x9fy!0pTWORIg+${7_bxq4C^5g25eyb>s^FdPQV z<*&H8Reh_;udJ*rErrc&NlL=xW=a_yH>*=9QKi9TO|xkz2!}<}2XjGmrKF}DHNBoK zR14O*TAG{OFPYGwpA*{=vy`?p%ixj7a`L6?V8d?~ox3^ca zpr)dtqPf}gW`A4_9dUMrt_v^Eqwne@67aIzCXANvz z`1O}RTWRTJY z6@RQA9sH(a)Vba+#@P~)tgLbW?LM)a$?}2=d*raPR(aOvW;U%#7Q01j6{)b@ar`Z=9jCYRmnH&s;#KB4!k*tDR(Vrgkvt*WjbJS>C` zs}E-L+hiV79W^)*7qPJJCZ4$6reC$NG8z*r{?=vNsk@x%fh-|j(|%5d%~KMvFi7Rra7!RTKA(hytS%!;{3Ng!!qnJ&v3`p z;S2UE7q=kn6XL1Hcx9littTU&U0i_A!~KPmP%m|kPeN+yHys_H=i8$q*_4>5DE}j| zgp0t}-ZNqXf*Gs&Y6#ZD<703V+I;<7pi1jkU;+^n%xTcIF>onP$?pS2YWw~aVrds%n>~u?`To%?VvhJ55r+}Uq{(4(ta-kPXDMzJgL{3>(m>00SJ2a6g z-SpvieOz8xD9*_#$&O#^d?5coo!!SBC$Ds39vCboCf1uT5m{SThk=ehYjsEetF6}K zYWw}&kJ(-79njX+X2gzMvxB)9GGOkL1byb}M2yLi$qRfV8g=j6443kFgx@UaQ6IqK z@bvU**4baLuCZSl88fN8fe{L9#2zhl8{Cm8@^Ns`xp1I$zX-V{LSM?uyUNav@8>I* zl(aEfgMbg_zk5(uI^}mgzP4>NMY+?Snc=W&qz?7(0*GBKFvJergr7cr(tp2B`K;Rl8Ejmn0=M@)7y(D}IQ+GXdW_P<;CR#*@g27N9@}u6 z-oM~Wt3L2%V|!*>U%%IDwsO99u`r8S-*Ep+SNrm1Bd6u0>NSgx-r9OYtFa2zP4C%w zX18$01i=5yAg5VNxzmp$q#!SEWz%-uhp~r%UFhb5*nTyz#N*s0p!`*R+}64kI$(Ss zE?FjTx^(ke$`^VF%s^X7scRP$ibC>!_X~JCt(!b{;k^tNMyao_7rDUTP2LdndG69^ zf=PSJQTOYuQ1J5#ePBCZ3vHxes zzT?RiA6LAm!|mam3#u@Ns+KeH+^nSFTw%IDdXe?Nto6DAHPbOu_TjUa{t z(j$Ts#w1ps!?|Gmf0H=*KdgISOn)JHyX-}Qfq@w}W8;2%San8en>)E1i-*OA=z7L0 zctCim*pP!rbKTA(Lv->lETpVH<-2IZ(8&!Y@x!eR%*!KFk}xzhbacGh8%-gjci_z` zDk^enCcK7R6s`G|r$i{^=QEzpVaT5ZSikKQ6pKesoVg8St=nTo2wW5F5yD2{qmo{c zf`-58B3yxx9Gj0mG|y3w#<9;m{)xlC2dlT|yRx#fvF^22_b&}LR%5!5pIdU$^m~x})BHhy(*kof((+)_ z7NadLGNyr+KN<`p$brW#pP*9TqAwX_H0;9RKmS=y3A81~(bcvWv4vX+odr*rC`C2{ z0mV$QXf}=w@xXuqolHuj1VRHSFh?a%aPVnB;(u~MsM0~;!jwqxpm_HGwV_V|B-jq} z;YBvUpk<~1dpFyM*ZOe8J3xq12$^<@WA`vwfGZ@P&^HUUeIztSICyR(#gJCd+SOHb zPnjiBAX^iyosfVe(rbJjD;|{k18fl({!p?{Y18+tEDPxF9 zG*I4yu0Dj?vu>^{V<+}ea+~^4XI;v^Bo4)>Bl8QlBzr8DBkeK~8&q)l()+C!7c440 z9-Q1726hDjzBj$391k-JH@pnA7-Zr5GbnYd?p0mb;EjbIPHrJL2p$@XT-XT6f_NPJ z33o1-#WhnBEf>X+Cvuiij+)e0!Dh{b%Hc?J>SU|SohEFumEQXIms3ZR75@qy#`e0* zYlc}Po&=6+PlXDfXM#x+E=48-_Wg^qzH>f#P2ZvUyaH#Q+I!#P`{Snoqf|I_bYU^Y z-u&MZY9Riv#1R7HEf*7hUvZ59?mv!{ia9v!jB(&bSY5x{a>H6tMSR@@BDdD6+%L2p zNZ|d$G(eQ8&_?z#en|0O=%&Ne!;BUi4fXp-7*)g>KXwIEU8=?Sm(!0UBg-%e3ntFJ{)_lLA>c+KwXrsrZd5qF0DQ0NYR za`B#3q{{hI{-(#@@pbfKfkajd?zw#ybSyoS<@@2zem73fsmIT!RLwx&$Q>JE=>CM= zgTJie7WX{^;&Sm#4OGmI7w~m!E8LLz7KO>rzn_m{GDQHXfw9m|c38?wRr@V6l@0}*rGJry5Wr#L|Kr$a>?SD+ zZMJdhlf-j!70%g%4q6%BYP59gK#R{tGw8U??|fFhJc!-sAtAfF{4#|7h#+U|k7m1C z^{Y>t9%V)7V`mb`kmW)cJT+2P=QtVb02R-(t%->eKM9JJq-~ru`5kEJe;Q3m+!@>w zsL>j((gn*ocS*=2OGpsibz-e&0uY%`=y6ryZt3IRN^Uq`EZ)re)O26=O7=x+cTVM&i;+xKf6r)x^h+V9hF z&Lrob{HzTQsjn?bVDZgEoEIjdmnFMB%YRj%V48*W)gT(t`FGj9O`4~czT5>aLPPrT zW9t2i(xa85-PKcIOfFu!OlQ{DtScVdbD>ewYF_=M@zX?nKo{bIccsBok2q}z7b8Fo zPX^OZ)szZ|+89ydmRh4UD@8RlCGzXc4~-zX&Ln5Ck_%(Q>k|cuMAlL6E(>Qft3k{r z8=ViIUf8dq1Z&V7U9V=Ab+jt~8n66%Sf6=R~~Lu(V1R zBzR`#$nA%(s-eBx*(zeJKcQUx8t`=|Sbog)|p1>ss*D|=e%StoB% zPCo?za{n^59ZBeEtS%R8vr_16p*Q{+`!uq+yE*{EZkk-lgDLJdCUzOU9*$K}i>@wa zv7#3PKDk6G<41vWvx;HKM<8AUo~M`DJ(F8SgT21ro8G!g_ryWY!Zkh&Mf3UucC+a8 z{3TGm;dSbuQY%ufc+q+5DPv~$5zP6rEB*{HO6&(@M|gKg6jNcK4pkq0yWbB(uhU1^ z4bs;iy3iPt_e)I>#$9{sE{r%R_IaPisuXn8tC_ZQzI8(?GC6`~N}F5$em?KF*n_r> z)m4MBCRfv~U!nGWk!;WIsbb@zF7;4ZsHEvxZ*kpkBc^sv`yTjp`~p~kLrt(SfkOe< z4D`~Y3i}h;lr&~FEZ+OD3Lvs=4N6tMt=p)k^}yCD{|^78GnDP~SVEYmk>On;2h{cQ&a+ijpk-*;{pB>j3s+VD~H zK|USw*@)ft5{5J}ar&jQVv!lEniW7=TIA3;6E_zH9pkt^jv=1}*s5vH(sfj`7weqI z7)=}jQl6%eMBzUG9tLAHUj3hQToHX@^kaL$9)3TMU4Dc1uB{e^{F6O}S^y162g*+H zZ*0iA(2kMX;P&G~cr!b01}JEr*7ZY z`I9DT46)?H*=g|plWy_c+jS< zjGV!Ffjq3cz0>j%AvjePylcp3&UzGv1c!~y)l+iTuM;iKU2~m4&iu4~#gvWzN~=}X zu#0yMT>&u+H*8S5O8f!56MIoC71&PdFeLu?JMTRMWz^JmgtvT@60>2SFi=B5J&(je z$mrZNz`&N%)H&~kONZECYaHhF!hPqm?!7n8DuQ5?Xq5$t&F66%sKifg0O-5%yG!z+!gIy`e9v(R3A+@EoPuKR zy*l!uDVZ|3>IW>n`ClCnX)znt8ZizuTSRqbnexHNl6K0L>QJSz6N4&?uG9 z&E46HU19PcnQ9|vzsK6sCXXQCFm;tNpO5W81vi;MD`o;^cPKhm3k1&Svsx)LTWN2q zk_=*RT4F77Orb<6qh(y{*Rd~d9!z<@JS5%>ZPeswUueK{^{#^y-%^SmDpUl_H6_wq zAJfedllbhXLr9u*nRd26X9=RlfTRqNs#C^N;l$c?bKY*E>$N}bW~ZpH`v@JENgtK9XeT~F}{dkZ#B(9i$9 zm~nDht9&yy(|!thYS$HW%V6Vpk>pF?z*jM8K#c$`8W(gGUXQZwV-a+F-AYE=j*0YE zA0&NxPdD(?(xcEL84+K+Ak1}v{j?R8k9q3BG)#^OhC07k+9v^Rr8w)g%#^V?=W!_# zBM)q_)BQOM<~ea6@|hKaaAE_uhoT5X2N~8gIcmor`lSEeM7dlCza%>qA&m6f;ha9o zaSpZZDd=EaVYB3*wTr+BJmL63Sgn#WfH6NZl=NRNHoo}XY}se)-Q9L1zOd7cPmE-Z z(b|OwbF+puL6ho}@5UXh_tihgfO9#Hh68~_!VJBhpCW~!P{UfTFA%k0a(&v$k74@u zwxKUG$f`|A6D1aL!0XmGng9!*!(cJ{;k9GL69K^)ul2A=FhzDqzD$kuFlms1nCtgK z^xBj-5_DF{A!pT+rghO=^uPz$98iygP$>i8R5D#4U4-7oL5z_Sa~IhYi4hG-1%5eI z9321JH_H~_Q&KVVnfLB1u}i{6*=6Oic{7FeCV%N=uKkT+WNL|y29=Kn5?iP~HIjW9 z3PXbI5;$SGl@U#Vb@Y1%>{k22I&;hhp$e|k68bE9 zi_{oQmb7&irY~;tCVmP|s)qqHLvnsmlMch-tg>0|&U5NiWTmcN%YJcP1Z(kdN#)?#}nc&e`C)P1QJ4pl*HR}$e z2EqTzhxNu@J4Yj-aAtd{3}yLJoc;&!KQtdJvdJz5#xkt3 zW(PFOo=H+0utJZ0YMu1v*)69`5`M+DI-HoLL3TPM0TlD2n5F3gjR~Su8%0?f_9X#? z<)SipqH{PZ+|}>R*12guk0*g0<-A*7|r#Kf|fTx)B6dYF5m6_Ou3dtT4o#mh}|t`Qo|EnW;>Hd^01D2?Gh>>0)p z$=*#qyMQrcHzday(m;6h39nNY1|1|kKda^AU*AH)Ujb;upTne2BUK_d)eou)?4S5T zWvIo%7Eov`z#yMn0F2WF_l>i^YlEQ?8RRosG+ZXaK|Im6bU}$JaM+By6NKKTh!rMm z8LCZZm=+8YNeq&lz??_SE*C@A0Ac*pcclKcM$tBw93~onQf7QuF*rLGIr|aP@jZSe z&;nc%91vH{-oY}4h3lh@vla}C-adRzOT=E z`)^hQA1B(a^9QYkC!kLqLIi*}fi()wmN+GHbSgO@CHb9gEZCO*pij<5&|xB{s7|I& zGNuTUZoz~#AgJr2b*&{<_*Ieq6r0)t?Z*@q#>hSnwq|iO<&f}dcDBGg2y6M{zO%&_i$%S z-O^j`)ng)vs08Y`{2k`#?E+oP!#l^9spt04tMDaoK5loIYjrpBNBNEYo0e9L`8(hO z`&G4d-l_p>t)>46cQiXk{uk6jX*`Elfc(_lo#>N4?B5ajOx6JJJcwIeIm3p#@q*2t z+1dFzoZ`lC@z~_9R};?%w5;vts+O8hK7@ymXn(Es|FY zh!O#Nqz;s&3y@El{|Fe$w0hykQ)V{mDuVb9f+r)0PBNhT~h&Jph^&$}cLRkj*l{`Y%o0C*VF?39rAS$!-DvChjVpg)o<6Fr@( zrG|McO39fEdJId#QEPCeZzD(lL|OZ9N(NT6Ph(LM66#;PjQ^&=HOXKuNEEz1*8>U) z75y7}n1&K4FAzUW_MgIm2pDMsG!!$^6hefM5@-g31JyhiRE(qr@CSgy!i+&~Lt}!- zE&tL({=>kkKL8GkaT~Y|fhnA7;Hu=~|1bK7)Q1@(4C3ElW3Xe8eaP?z#ktVpNbscK zxp$E`n8J`goSYPW^vce4wBTkGT_lr-g?G z{S|2m1@S6TgTQ~6j9_75|0x+IA`wyn1_Zs(3tintS1xuLo9ejq^>kn{sIcFS(q&!gx*OjHnIRPCT17kCq^M{XD(r)u z4C!@m>b$!ubyp54lzBq)y_Z=WfC&H1 zBa(T*bGrmJvV^s8SA0b?k!#UcXh0UjtW%xX>n$(8SYI>&%V%bN5bC5K&0(%9YwgP+ zFuf1val#@Bm$`wk+)&%B;n))**SJ>dX~W4@nQU{x$Y!|FB#1YWp)HFifWfWM?&kVP z*MCWDGqL%xw!dKa*}R&!4OeXxNR~e-h3~{P`~H9(6PO=?Mnxt`HuAt-K%37U>C`ql zWtVaW?-8WzAjzc`bN{`;4OAZ7#v6EeW49AKoH44I@YNE_RIG47#fhqPiTLoYAr@e-Z7 zsl+9-6mH^Bw0X_zwJax@nqOb>YZGx$6Ugm7=Vl_@!B+?UuQf-#GjC;GFPvXWWPQBy z1=%5PcTk(?q?Ke);;FrOQ^w~`e&8Uii<6hxIH3pH&~=8RUEclP-#-M*L>s)WM`!>$ zPv@e1v*xyM3<@~rB{XJxRt3{E)b(QM7+FLSwfOBkBxoB^ zoETpbWD$R<(;e*1ZJbQA7M?0Gu{G=(<635voWkg%DfEgNjxA=X|EgHF_ud)5cd6qP zE!?kPxT;1Dx;H(}oQnm})lt)Nd8A1Q2(+_{Z90^`wMoRLa9j-XY?QJiAHtGiM77>Y?>=lNe;K8vZ_`Z-{}6Y(?n2sBH~!kw3El>JC_ZM3duK#z$Im zh@SR)3`6vY%?GG!TM`loU(&%$aSV0_&r6v;sOc{z(2e3_G%4p&V-I9|ak7q(Tx*IS z;QDvLeutT+-=9&NHOIpGuR|{V15T@e>&zjBH3o~hO$+W5b z2##TX8b8)D6(5%XGW~8mtvXC!lkA4#7+kkk2B^`QCR&$aYi^hKf;x{G`LrdUW7Kv# zjmA;m%wgBLie3e0iQJMDK&m(d9-#szP1Z(NFXv=tr0e6{_mBIv?>{lF+qFY)*{e=0ek zCK^jZ#8IH4G!3mo%GOw}8o3!%xTugB@wp`MEjR%SQ|_g1DuXNz^7wt+svTPJJs-Zq zQw}<;nM(+J#OP#X3(r>loEIMu+4kNnw;eyKUJyTrv@KY9TNG$u6nr$zxOS4l2aCnf zZ>C!OBK$!CIQV?v%wMgI^Fp&uw}$Me6Ey$Op2CtQ!(R)ic*kIAJHXrCM9p9$w&R4p z)+=cbIR!(X-I6bw3;IUs`9iT)q<~qoR{-fKfyvWRb*NH=!^={0`N%wG>HGRBTY>b* z@rh=XJvc`ubGgO}k0NZ|D?c>v$S1vHOIJ1$jwXx{IMdB}MU3MQYe2xE? zj+qr1j&xIzY)F*~j*zJ*A{LeoA#F3v(Qrgv&?FJ1hPJ&U25ZEL&K0c`*j z%T(Hok5QHLb{vDdw$h1(Q4@_NRx|_WD1&&K<4+VERN4VtwKhgEp=EcHM4ZQlXW@_R z2V5B(bJtT0Xgj(yNH3tE3;B@+-o@_^9&@HJZjC@Q-N%o~O0!YE4|e5=m&Ww_4JBCu z7+A%Gp*u(@5Ga-6f6kA>6vV)2!cJ52+N4JHUTREQ7*#M1iIPTffo%#A(Rl-r?p`>Y zJ)vB9!lFbte1eMESC6g!Q*)k-v^Ad)_c!XdPtIV1kYV4&i&8Z;c{CAPA$BU|$ zTf)vGI--Ls<~iGrHtI0HYERZ)HrN}JA;_p_OwM#fUtITPm*n2fQ88=>DX)IIdhVUG z(8SCb_VDrcK3P?v9>+Ew;~^PcHtU*^w5uCOr{&0qDWF8p+A}`gbYyIeh^W4J{9eIZ zc<1JdVcM>afo*90l}j@z2$mnH0-1FZl-aWToME?5*K6a>^6Q3Z+Gk1|64ANLlhC;o zH|PfU|6%Uze)KL)BG~{M2h|&nS5o5U)HuescYkkVg8MLS<2ncCNMJ zI|S(bGWsQwXt!qywr7~rIPn!VbY&oT_@UwWmf?oDBBf}^x!6f}YFhxb3G)H%kC%sy z_6(*1^(LGcMTC_r-p@UEdTdX03SN`oL-@i3RXgiSsI`?viEzxg9Op507KvsOY$7-B zk{~a#=$Ie=NkGPqiz?eVH*fF|2>bS*3fd|&R3KFXX*7a2IiD?+*!*-e*J}HAb$e;9*;q3E^#|0Zrb(i zds1OyY(^jtH^n`FrsO?CI@Qx%#-CL7{;!^l1HK&3RFPsJj7uMY5mbKQr(ea1#c@xr z)f)tUVRA&LV~w8ClnTyvA!xws+M(q%7Zh&HDVnGNF~4)e>9h&SYynJc2e%`nhS4qYL~ z5*Mi7^Tlr)RkQ`#>X7Vs%Lg=@^X{p1Xku6FT86abaWtDW2WDD4FwDr&<8a)Tq*ALj zQ^zIme9Nisp=roQB5(~Dp-I;qEQps!*&~ID1I136!*Qx-fz^Ep{!S7i*mLolBRw0e zAiOX-+B`Jx_@c&p)(9L~gH+Gd-6Gax82NyolS~4Jpg6PJ$^*LwDjuPDF{}JoPp;dBX;c{(w;FvI5D=$L9oAMz!&!1JX?aG$e zw>2}zGdVf|tl#brT4=2f^s}yE8!1tftg_p`IK6OY!!;7|U=G+Tb@|Vn`kBr6M8G6i z=;5Zg$J+uc)}1OIn(qGOl>51K<<$H9-#it;%C)BJnDt|3$+eUGlfxIL_2HgR>^JGs z@k+><75e@CZ$5ykx=q)tWcbhWHr9DOf>b!4Ip2To7RYocbpuvUZn;xRbQQ|_s`+%N z&zOpuLi6nC)9ZL|4Q&;&FN`Zgyt+O@X#uHY?_z*Wv+Nle@{;bTHqV-_X3IE5>dPHs zH917E6(qV`dn>R39(Y)>5hTMl(^)b<`*3l@pWIEu%hvZ$9IC6L3Lb=oQ>m34LOXQjTOrD)1y&@39<}p zSIXXpusSroW|s^q8+vOC(<-a-IjeExD*}EtNt-{6OVryty-5xn89fw6Ey`}_=F!7VV!lFDwG<_stNN@ z4xh8SBJOTBK3;b24>~^-i{8esIPI;HDpwLqXjy=hwD3BH@uWieL|5hVlfFE?W~qkw zcIh40_{e@JLn0TEnlGa$CdsDP;4o3o>LNT5KgIpNeyVL?K#QK`!72N6XbQL&c`~|p zg6T>~quZyGaq=z=sfq(tFBZN%%mOBF{m(%<@{DrG2&(zrN&JY#0pP0ONd>*^4zG#K zZ#w{$R_{;0{)5qO^A^1?GvwnfUD8pT{DED3h(8es8|AEJT}0rn2zv@ z#lhT}?d~a^svRYG)RNOix8L}sKNqWv*?d+=5>;PhYzM+a?4New6bZ@AT_YT0lpR&oUz2OsCG-eX-725M-_^L9PM@#DxSpzgOE;ftK=?8n zM&Xq(%$%~XTEKd2puy4XUE7+Xnfzz{ytPgG!b&|eGjGFG=*?K5X1!Zpln;LTs;Z!BzMa6ob`eCU=5n}NxLkGy@?CGg&tb9>ZN+&k(4^M<(vz$_Ylia zeCHM%q>EN+`w~Qn#_R$=jY=EP6fO}KFA?bc?fZr1cT`-m%f`s52?>*M-9UHF!NMT% z+?a2KGo#!l{C(HZxyDJ_`XS}x3)j6sMCE6k{sru3o5kUV$*p1-@LMTiQm~&(%oVx6 zplR+2tAtafWDm1q6+01f7X2rMyQ!%<9KNA`;S=8bV+LBxI%Ay;R+0oa5m~$OKRmG& zOj-FoynB4iQo2jPtkI7X^hkLwJ=yDyJ7Bv&A)Jl>#Sq4N0%rR(>>(V1U*}}!=uBPKy72sY@8B3k>2N8LKp37 z6q!UfOG4c32>u-O*hJc<+El{JFch3~_7!ANX;?BoEwot>UXtNV&l5H&D2tMz-S@FH z-p6=6f62nL+*cjlc`wQ!9>KF( z@PJ@Mir}ITC zRgtq35I1#%HxqPzk*Y*MvT{N=Lp6* zjr&DC7>t+#QcPgS`9){lNtABF9tLRN$A}q1HA#I9?02>O&^BrlvDbxQwG4Hc@qO?I zh^SoECae8i8C+*;WyEEPSSo@Qb2aqmNglvE%iLEIXjUb9&0_SNB_^$bvoO9TglFv6Aro`4_-I;ymoS+#= zriqeFF6-X7mS6ELK*DT!BaW-e0yxs-m8*(-x$sV^T?Ygc$-R1<2IoiA;;VnT;|_dj z+1D!IrEHPj(Vh6SOKr3LCe)m~DWar>Va|e!o$44k!RT)ft{l}#EJo-}=WDoBvZ+)u z?qS5Lo%%EpzExbpHcDt`pXac-Uy1A_nRvg6M1!34J-45(AU%9%@7S|1yM$noePErs zFb96O+3$u=sD2ee$<7swn(85rvcf_AvDnuOFw>{PNTzo!1{wU&@sN98hTN4^IadAV zJKfb-sRzwQc<2}5n@te{n~7ItTIRT^ln;fC36A6hVh$DR!ge()lgCwkFolak`@tP$ zZSK5H<%asW7$_BVzG;m!AS_&1KOOuc6zdRp?hLl%PpeX6E9Zjk45qS6>h;N-QhHn* zm~XF_o745fjSALf0fi}&8PvmytPX@h8r^Kv;ri@obW=Ab+%~cG% zjlbVWvZYdWi-Ah#qSZxn60w_TVi25@MS&qyzsCJ@O1Xu68*Ea0WTS*h{~TeIZ71gg;KwT{@%|u_gghS^{{OOUh#6+ zhz9J6Ic#fL`Ukwhz7!48*zhCyWL)|?XRvHAc4`sdw^t>KWs2b*dW*#NA}JO*;ahY@ ze9xfVf#9&a&*q(x5Wqy%i<6>gH44RB>WH)rguq#1D(}?FbhSHdvQY9`EdXM*}J5^!6$7!y`<(17Us5v^l=mc)b32E!V~wtlZ^&N z#*@h>*@~oStqjEs-e#s{wFR>%zU_ zAHG>PGzkQ>wKrofC=q?LDKKq1hRKWuGByEUC=~+9RQ!4&UC}Ak&^4bb;Lvd?rlMI< z`$~9SZijNM!>V}SLVT%}6fjb>A$W6+FYGc?4A_FM+El}izk=QG;wdsPa5i~&aEBhY zbZp{NMRCCGZYf>0LnJUMT?1i}6`FVWB z9L`B1vKHdz<9yX$S@?kYhZ(L@ioeA{1A!{M{|EC?hrzKA3-J&6|0Jei988yOx^K2taycEX!S9pjb1iXlBe}P;)ZA|}H zn14LM|I3~Fzroz`B^ruw{0k;cgaBNQKe0iC@n3It@Y6C5{V$ci4gmsT{WqU*{=^(X PoJ4$4ROoeqe|r88cVEYg delta 13674 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 F`7f!W^CbWP diff --git a/statemachine.py b/statemachine.py index 81b6b87..dc00ca5 100644 --- a/statemachine.py +++ b/statemachine.py @@ -74,6 +74,7 @@ class StateMachine(): class StateStart(State): def handle_pins_event(self): + super().handle_pins_event() thepins = self.pins() for pin in thepins: if pin is None: @@ -85,10 +86,12 @@ class StateMachine(): class StateZu(State): def handle_pins_event(self): + super().handle_pins_event() pins = self.pins() if not pins.door_locked: return StateAboutToOpen(self.state_machine) def handle_open_event(self,callback): + # intentionally not calling super() implementation return StateOpening(callback,self.state_machine) class StateOpening(State): @@ -104,14 +107,17 @@ class StateMachine(): if cb is not None: cb(s) def handle_pins_event(self): + super().handle_pins_event() pins = self.pins() if not pins.door_locked: self.notify(True) return StateAboutToOpen(self.state_machine) def handle_open_event(self,callback): + # intentionally not calling super() implementation # FIXME: 202 notification also here if possible self.callbacks.append(callback) def handle_wakeup_event(self): + super().handle_wakeup_event() over = time.time() - self.time_entered nexttry = (self.tries+1) * OPEN_REPEAT_TIMEOUT if over > nexttry: @@ -125,6 +131,7 @@ class StateMachine(): class AbstractStateWhereOpeningIsRedundant(State): def handle_open_event(self, callback): + # intentionally not calling super() implementation # FIXME contradicting original plan where open would be ignored in StateAboutToOpen? callback("299 redundant: Space seems to be already open. Still processing your request tough.") logger.warning("Received OPEN command in StateAboutToOpen. This should not be necessary.") @@ -132,12 +139,14 @@ class StateMachine(): class StateAboutToOpen(AbstractStateWhereOpeningIsRedundant): def handle_pins_event(self): + super().handle_pins_event() pins = self.pins() if pins.door_locked: return StateZu(self.state_machine) elif pins.space_active: return StateAuf(self.state_machine) def handle_wakeup_event(self): + super().handle_wakeup_event() now = time.time() lasttime = self.last_wakeup - self.time_entered thistime = now - self.time_entered @@ -151,6 +160,7 @@ class StateMachine(): super().__init__(sm) self.last_buzzed = None def handle_pins_event(self): + super().handle_pins_event() pins = self.pins() if pins.bell_ringing: now = time.time() -- 2.30.2