From e8d92fe16797c0c088d0f93822e6c30be20a6475 Mon Sep 17 00:00:00 2001 From: DxMarch Date: Tue, 21 Apr 2026 08:43:16 +0200 Subject: [PATCH 1/6] docs: updated diagrams to match current code - Diagrams are very simple, can be improved --- docs/diagrams/HallButtonFSM.png | Bin 30386 -> 0 bytes docs/diagrams/hall_button_fsm.puml | 35 ---------- docs/diagrams/hall_order_fsm.puml | 24 +++++++ docs/diagrams/modules.png | Bin 86318 -> 0 bytes docs/diagrams/modules.puml | 102 ++++++++--------------------- 5 files changed, 50 insertions(+), 111 deletions(-) delete mode 100644 docs/diagrams/HallButtonFSM.png delete mode 100644 docs/diagrams/hall_button_fsm.puml create mode 100644 docs/diagrams/hall_order_fsm.puml delete mode 100644 docs/diagrams/modules.png diff --git a/docs/diagrams/HallButtonFSM.png b/docs/diagrams/HallButtonFSM.png deleted file mode 100644 index 4e33424cc851afc58421957c2344d8292326392d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30386 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 Unknown : System start -note right of Unknown -Can go to any state by -receiving from another node -end note - -Idle: counter = 0 -Idle: entry/ Turn off light - -Pending: counter = 1 -Pending: entry/ calculate score -Pending: list_nodes_in_pending - -Scoring: counter = 2 -Scoring: score_map - -Confirmed: counter = 2 -Confirmed: entry/ Turn on light -' note left of Agreed -' All nodes have been updated to decided -' Largest score starts serving -' end note - -' Transitions -Unknown --> Pending : Button pressed -Idle -down-> Pending : Button pressed -Pending -down-> Scoring : Received from all -Scoring -up-> Confirmed : Score map full -Confirmed -right-> Idle : Arrived at floor - -@enduml diff --git a/docs/diagrams/hall_order_fsm.puml b/docs/diagrams/hall_order_fsm.puml new file mode 100644 index 0000000..345648c --- /dev/null +++ b/docs/diagrams/hall_order_fsm.puml @@ -0,0 +1,24 @@ +@startuml HallOrderFSM +title Hall Order FSM + +[*] --> Idle +Idle --> Pending : button_press +Pending --> Handling : barrier full /\n calculate cost +Handling --> Arrived : arrived +Arrived --> Idle : barrier full + +state Idle : no known order\nlight OFF +state Pending : barrier: nodes that know\nlight OFF +state Handling : cost map by node\nlight ON +state Arrived : barrier: nodes that know served\nlight OFF + +' note as n1 +' receive_external merge rules: +' - resolve by cyclic precedence +' - pending/arrived: union barrier sets +' - handling: merge cost map (min per node) +' - ensure self in barrier/cost map +' - barrier-full check may advance state +' end note + +@enduml diff --git a/docs/diagrams/modules.png b/docs/diagrams/modules.png deleted file mode 100644 index 80ee48481d8226c997cec41db586608eafed8024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86318 zcmc$GWmr{hx9&nzLE)f(kTssbV)B3Eg+rJ zdBy_teZRf;wXf@3=g0Z+eelX!b3XHVM%?2b_n7aWNDAYfCOM5jAn-&UKaxQpj^BX) z-9B{;^Do=DLGXj#N>Is42We(+toO_cA*^SrXQ5@Kr+Zb~{_1lpD>F+jCMGjuEmJFN z6Jtglq=`*S10@21ecnJ$$?DI)Be38)b`f*(63D(gXG^yg7uj&qKHM|<@a>Ab_AcrN z>+`nUQWB5m8+md1>5xzT*m4 zJ;S?jLKZDV+|};rd>S@RSH`^?|BdndlVJ~KmE6HLzj6LvvU-V@6B>CNs>fGG+hd}# z$VOy-6XyTgvb}%pxlZO~r?O0%JK_vRfoE^u{d_b3fkD99+K}(|hH(b%=N$R@^bb2(}w$IKn)CDMO#C)kkx;G_c-oSdQP~UGs{i6QZ z=|Iv%vTUa;_afhWdtZK_nk>C`^)n^r9*U#{o+roi7m6{S`snuHnD;1~8G=OFms2K` z$bwYw;XT|?{E#!c=+9*e-1l*;p5K!Tp49tb`_XandWfWB$eS;Z9*oO2+R4@lNHvjF zDyT2NkvW<3(#Y!J!Xk-r?YhD5?6J<7%hg7;w>jeK3+A(KY-YC<>h#OihrWvGN-D>` zaKg|?B`9#r-b^bgMkVXIekTFr8=>^qr~Ro4ZBua;v!4*N%MrY+E5L0|u=QTzN+-Jd z#_u-inQ`sM376=L67*>$zHd#gFeTcjs$AAJW|Y3QG@hRP_+n;p-^`5F*$f%HGrsAh zO0mqvi=61SIJZID%E9sA6j7Dd^Z@}WCCi1rmHykc*TokrfR4=*jtnfd1$-TcrQ`p3n!)zhpaLPdPp^Pye#5m`n&a!S&oIBh|Ly5?_Mf4d>)6PjqvGHr z!4swxrW~ymJki7PW>oeHUWdOH7tfmyDZ)u34=%YDm#ceKB#Cx>qASP>lT|I0EYV^( zd9D*@MIq5l*yl&{xKB4i(V{xfk6Pw!KaUSPX^W&^Mt|jTYu?6o(o7I~m0x<|XLw1moPh299%5~YfB&Q54|W8?4I%RAft;Pj?7$f{dA+iI z^AhS$1n*in$j<(#d3+-GlHC0Vg3Y*kLK4LiJqBTh38|f_-^C0StM4uOq4g@Z-Mm4V(M;GZ9@sduPW__I@Z`-zw28S({NVpHOafSUagY zL+WU2mwp3pw9F+C+0l-6s79rH<=+^71-DzD zAK0$*rP9;WvmJ8&Y9(UT=CHjoMHN2NowmK!huq&=FE3y1Rvjp|?I}Va$~-bLJ5$^p z+_=tWg5KEPCL$!PkIjwO_QX91w7+_twpuKiKp_%ry<} z8FoH4njzH57z_%zX0ki)+mR^M`0On{d2aKw=CJx-Es@+znq{f-2n3(c!ClI`TN@hu zgkUA(=H02vHH;U|pT9bnQNE|rS7J8u(pXfw&$u@`UMHh0Bf3$G>du`fefQee1C3+l zb(Mk{)hS$emi+t((#{};Q%;d0hO2WMZ4I2@Ahfi!+Jl4*NQ?L8&a=gRR$nm+7e)PW zSaptX%hVD`yUnOklC&~ya@#n9(^81i*y`u^_uKQu876)CXhs)z%`^nUi4aV(BxFg& zb#1n{J?gH$w@&af8~vP@%vN5R4f~s%uhQz4&8+QvzrvBZ&Ed=j(f(?C->?S~u~2q9d=sR_$-i zWbkj#=A^3^lQ??KVRqS1L{6?#b8ndlmlo$7g<64`)>qSk+`%Yb$8@EvpBqb~L`)j} zxd#5TUFEK>2mA1aUl0pX@^VQ<^Rtx!r8DW1WW@}P{Z-9qD-t1_sGxREP>%c~=ii(soP1m@on{eEIdEvp@L%^qd6-<=j`x2JPY(3p6*z{Y< z*^e|vB*NK}$>HyANa?B?97?CF!IjHNozjYo>P4Mj9-devy6@NtL^>F#%d*YOK*rYCVzYu=tz**-QDfWHRvdH zv@QLbp1z zEmflojnX39g~4mruH9D67nhRax0wy$-Uw3yf+7i^#V_ zNt4^A2VqtuO78ys``X$u#?$KPIzk48mD%1L<(y|VrBNd zJxlue^Jkf<{=(lO%sP9&`S)dum%E8GO7d*f)YPP7GXN&XZDjrX5{A$WXY0yF0yo0!MRp*cUn;< zl-o8vpVOc{4jTs_6K_5cF$HbK`tW_}B0qP#?IFwiwK$ItAL6ftI}HA)firDhez~() zb*_f|%$YOsGtKNn_by`&Su;i>kK5e~4kh1oK&9C9GHe1lt6}FRmaVFO` zw(`9#Ba@Q+(6BK2a7yPD-~2+$3CUXLy!;!-4HkyVHTwc|>M=pqlZucvY;0%q_uk$f zfuN|E*uMH^qF@|3gj8#jOi6;5v(^LFJqF=5o2>8Ozn9s>gmQ_wSFbRET*73BHri>q z1OH@OTibG25`<_(g`yg#@lNq_hYG|Thlxnr{O4^Ci`}|iZ$B;B>qbN5>12a&ZaixO zAv%}(#q)3?Mm4j3MI)S(Ck?~Fy;v>Cz&t~xuD1%ZLHfEj*Q4PmfyVe%xAo4((gi9Z zFy;iUDtEL-`;VeriL^A|cRwc<lv$L~Z_kKsC2fBRt_X@g={@hxVW@V~l;`{rHzu4couCxjFs98#2po2fM zZ1dOfw^szXMbRc0$dKoIaJbv~)}~=Io?yZpVj)rEG#IF-rza`0gqee*K*XQM zVv})>PBvk3{o0j`MDmQZK##SyuNKafL_~?ZqThNWuR!t$9CdehZ@2)7e9LjZP`@>b zx5n2aO!B&96c3&7dWzbs+|?r8_Zp=RtS0D{qM7u@mKL^_&2ClX?#=|iqIZn*iphQI z-lg)rner7zy|`FN@|;^^_5NK4X0V+cTijFM7T?q%&!`@Pa3m2zMc!8!MgKdA_~pEc;qPunwBg0H(FuNrrj>oo?| z8|{s}r98A9b}INcIFbYi=NRO65RUEcvKo(#kBgw{8XC3`m#2ry_w#x*inXdv!a7Pi z<_C()x97RXFJU7xNm-2_H~rY-I*vdnRt*ig{%Q*C|9BE%li==!N6J=5tPMbk`{`%M zJM~5_NH)ZV=g!WKFO_fuuHdq}MGO`K^_GNCv14}pgb37SfFQ$+ z;cO;;mJM(}*h)8E4BnovTJe+%vKI z=$M#>icDrkrTE*5kqeT{k>C|nKF(Wf_743WefcK-8rC=!Uom?Sbj`RzqZ_F97E13mVU}JtYE6?dmiwmBn5w zQ5SU!tExA6#b&D8x(UV1q7iv)5f`(SdZ$P;Pl(_PywzV3TZk@pe4|tGq)b;F{qY5r zu-6S_1ubUBFblZ6w=oud!yuL3p_N%hZkw74=PWq~;4|y%72AJ4vz|7T$+z|k6>)6U zmPF?n&qe?9Jv>SF9f*DWEOyW6yWda@qsVESi|fdW^*;|*8yFnCJ{>t}7hUti(PeJp zKJi^mEhU-&jN4314(Kd6D~zIpX?<3dlP=% z-HnBsU5)qW-(&mdWty*FT%WE^)F7X^!bah|<}+IBqj+%jQ>RXG0Gd`wyHR{gqlDx3 z?PjG}@Gn1Vv55b;UR=N!F@uKU^+ze1x!sjD5v#w+u-%u$*5-Q3qqz*^TYf%x^yoXF z_D)0U-f>8yupK8(oKP9ZpvR>e()dYZwomDQH`RK!-+XC%f&M~FJ*z}+rf;!hyiUa( zm-;g1EavGrc>`HugVp~2{vSVnK=cF~w}-G&bFRIsrUYuOs<-EQ=&RiE905$PGFCVr z8PxD-WuJRS|JU?xErB&~@HAK!&C)Qye1LGSlb_%I{Q2|x_3Qb_q4cgi^_FPDi=Afo8Dy-VvyP5Vmq>~QGX-qUMhz*l6TQW_Q1ZLw)j7V6 z3hZ+wQ22-v4bvQ%>Y{mlaw+*j?+@hp{kcho{;PbJeTbgcb?VUAW&G+Uk?O znka2O(`_y^(bjM$ zyjv-LYiM6pXRf5Z5T~*q=>_m}XRD_iAHdY9Q_qLWcKxOJlvPx|SabHpSLU8cy7>25 zV3qZB_1>-zoSOGbkcMjFPR2Qxo5Qx)=gvD;Da`?y2w-qRpCU{C}n8Y@@jS8kgwY{pSz09d!v>XmTpV?I*5j{3%G~s+S&}Y!t9vk^FlJcUy(x}uL#Bg;7L7N0uHULYc(6}!#I$Vf+5-`cv+lM$`Z;}heH zZGy^tfWI;xtjV|XLtwq%QYx=1;x;a#-wXCW(^L4Z7lXnhQPBo(a_*JpS2*YLjd~=F zW_s3JYB1iJoSf{S?!LR(>e|gt*c{FtOy2cHz~j!=bV>%G#oT#zLeQr{ynCD}xIUDdL@h(AW=GVs%(~PHZ;hyxttmzrQ$A z<)AKd!F9WDsJ){@HP3KdvEH1SL|^RK(TR+%Y5^7*vYSH2X%2;Z7VhtD(@I9%^lEBq z!lAIcKbQXH)2F8m0d$Z#@bK}Y_?(Lr7rjSUSe=@k_f z{T31&G@FR-fRin?-%PX)KiYF*Bsz^-> z9%#N|X>t-l4D%frA`h1_hfDG+dXxSF>GV!)Z0uLBUdhVJ{$5@NTZ|NIsd;L3 z`y+}~(YzZJadC0E&)crwyLXS5*Li<$SB00BmiGGf7@!o0b2P98SLbB!Kx>I#Wf-vV3Z@&btgO| zNKlCcGmcJ3qNk-5_Pej4p&=sj9*RJy&{TrS7&tjMD_&ruf1&e?GK%Mm0C_ZIjWP4^ zsGTDXXGaE&QTfEj#}m+Qt<8mphAPk9FgG_}K7EOZsBvWZ_wVi1nZz!v3W-BkvqBYU z$Hy$A)nndt2Z`C}$!5R3cLUc7xSEm@wG>)vYG)|YRQjYJK743unqEfN8w+-+qDsRA zd};BGu1U^Ebs7$+$08!VSvqeAtrv&CfkhaY==uF>4j0QP!$r&sVd8TQQKfs-^)CaR zB!HgPf#10YbT-qq2b9A%IXIMLJj&=ylAoJ|&H*ptpa{|L{YBapiQCi9=Ky*L1!Cyp zPY&Bv1DL%sVFyO&G7{bMZZcX*(B;Lbt#u#?6_9j`C z`|HzbY2u7jk#F!^U0wC-AA~--bm@|KD2pCEC(8&pRiFkUN%g=qX9?KA(|aJ}K!#p{ znzLN7SOvHhv0%n7c1uf3FJx@{3}FI*5_PC?R~V^kGe7qMZwVZc$_Y0v!Got|)DjSn z=HsQOpDvt;y1SxC1s=o0({I=Jb?Kz}XkAx|B6slvr`@ep;Gus1YUXy?*?@Sjr+eV+ z;(h@ExrSX|Ag0&f05V_}=%y?p#5AUSc}nbqPwK5Xef6!8t$(whpC6=!-Q5LO_7z1Y z1_m*05r{M7{9E03rd`1igqMZ<*A<`l_Cp&k`E*hpiHYjYiCaYQE3fBB8#0^6X&Oqv0dMHm2yi>XHJ z9-*G>ejt}qC(^U>Nm(7AG^L#PMo=XmVyVR1ayOHw(k3^V+cMB z&Nv7(qsZGqOqvvwl$4h)bpmAp>6?PzrJtiFgFabTSN9e$fcww3D0_Q*0VcC6AS!AP zqrfD9Y^3D`=egVvu9bvY{?x4%?7U*X%cQwNR#sLT8iPOZQwGcQ$W|_#-SdGqu$K0Ddw5JjjH**P60zfBCPeFqk8qml&3QnC+$)^27LD_aJuW=06**cmcM|^6%ST8{E~E zt>s*2jpm9oTC3`!@$#4^c+--_@Hd62#OLNhYO@0Ttg-;~VI}1%_VDk+N3}v_RsdCn zbN0%oym)3{O26zPhK&yXhT=6wxDEU-IqRQ1rgpnl>YK$I^9;ZlFR*b8=b)m>%)FEK z)#fg@e^5}(+ya6gbImgs*wPi|uD>Yj`ImXZW5NmE)S3Q1Sn9a>R1-mnajrL~NLK~U z5uCYv3mBqI4J0a4%ig|_B_Ta7KK?e4_-V&7G2pd=rR+Q#Lg%7QHdO6e?TqtBH3A4 z<(U%V;&u+8Eo(!B3f0xC6&nn`hE?wMmiMM)x|OBvUEh(lC}BMnI0%e9?8a6h*6X`Q zQBhlaa&t!Q-Ms_9c)tKjKZTDEu)CWbI<#rGr7$eGL$Cs~DgEBs*Yfzp#IJ^34H+`A zLSDH=xxhxIoU?=_K!SMf?oPpD_XNFs)5OHHK0*aR?!Jds)fi`(72Ql~l9MG7JoTRk zf5Eh4SlM0gfC^dr*4QK2_ykAZHjkWuASTa?XugGBNJK;gQhZR78DJV{=gqtdER8T3 zblu;*NGq9|v~#l$1C<#x%v;{QdlwUPJEv|8?{xU=;At8D}gpI&K7K98k z*5q3=WXzM#mxCTMzH#HmE%hR~p{C|$)-s>R8QdvXPMka$#bYmH1Rdmh<|`pc(}AMZ z;PRdLdt>Hcjw(wYmd|u`0T4?Wk&kKR6@#gU z>+UMcE1u~Uxq7`WBUp3uM zVd(Ep!@$5mPyfYyw8lGn*YJwGbMHseMmvhW~>dA7WT=rPg1NU@F4=-$U9x(a^O}F zdXADKirIKWUYPtig72`9Ag_Y5mH6Pi;WB?pS$E=@Aq~CV3mG@>-nE2Cslp8$lU=aA zsi~=wlG1K^A-<1kZ%5YfdDfpl9n{DajDkw{(#_0?gVG93&tbZsP-AN)m`W{n$>3{! zyUdPTb4H@>Qr__C0ACD7jmR__pfjDy!;^5?QCRYj+J+4aYU6h0KH>kV#4kj{M=BS z`=3&DrY0-&@JWe@>16YeLoQ1{t80Fj=ER0r)z4=`PoW!tX4PW!hJ3vIN;*^tHnS+^ zt5-kCCQ3qW7dYdh9B2$gyAjkuTQ{KN{Neq319Wb3>dxjwG(U7&2KBPkAl78)7J>$G8}m)SjTO#M%kb)teY)rXurVK%*W*z>FsRN*D~%PV>o%CEA- zkReXRQ17kIq!*{77gB|k#q+RN-0NSA2~M`he<&~CXL8*Xn_I{u)whZ0A9K{TxTKz! zVNxAv!@kMM&O-dlxRB)jLQ zi#ZrkJ1078uk@s5^mE)thBW;uK#Vqd`-hjX&Hb0NW0VSAd#A0b z#2QgBJGGzBO-7&k2R?R&a3Hh4+{i@fF!>pJHMQop`h;GcK;0Vcbf>C*m0V~iZ7CbD zFfiI_X^`ups8g~c8~*tMnDiX&Y7fw{K;eHs-89fSP~!K3Z%*u$(31R?qn&(~ZLFVh zUrjAyM~sP)F-ZMS1?A=0c!%?K^lw*%yp3yC`A_|ce$`qzK&#UM+-GN3916H={_pG}>`i6>-N&-2$LYUTJ8T5U)1tR<2gh#GsAm_e z@lL9DS=fkN!+U>OMU}BFK%$;Pg`1jM57Q4+C4=k_2}-5UNy|Y!`KCI6ye)E)FfdjT zX(Ljc@YL^*)04)Q9~*_=5*Sh3EH_@2u!mAo#36XlY;7(GMMGri5G*b~_rg=K7Au|X zCLiD4fbCFMu~mcdR>J0bU9WV6w1%pFarjOIX($jM`8kT8pd++Q^;sc>g|TYvyi3cz za@WtdKYCwEXxyh_+710v^pB2{e-O}YvU@rg(v;>u&OF=Y+x5$9c=&1I#(&RmP+Uqz zaC}A@25+eJ9X$7TZ;t+Ix*=zA+(-AN(qZp#6{>spa;4+lp?mcF$NlN{?xH55gq}c; z_VI;hPKbcF|WEh>jc@Vu>qDa}U>wA~DHh0Jl zMSpSTg&YXrr|UsiqyssVfVDRvmA{ybKg69-O3Be#ze;8G-hey9v+d2RZ|YBYRo`sPu85bgAL!EYj?u$hHJJiq9F{nPMYPY{Ot6bs z&Go$}p>mhJ1_u`(Q>0FO3{6H_j$+k@rKv7UlWuQ|2A1@bCwKH30-$HnFb^qSu{b5Y zckFyux`OP%GuiNX=m^r$WAm)(C%nYeJ0BszRuH+cYR%~K8jJ4_2O1^nCB32_lFPK3 zl5xJv&fXKqen!4=$C;|dTf1G)g+t;9+Dqsw(zdXTD=903Dk`$R5(rK}krzshVD($C z8yp}&0!@&JRFE6I%4dwalV+k8ST72-q*N47avr-0dTdsSW`}H0ht^MXuJvPx_ryEkA9a(xz z2zZ}!r%%hI$oCjqyfaixNv=NkIp+j7MRiuprPA?#Jtls}kjYMS&6tVhm)&L|Nl8gN zyMiS)1x3?W>D?fTl9+#IZF9+=@pqNMbt)>z@G0e+-+H^==QJNucaJGJ4omrQIsmCg z>NICa`J6W1U7*6J?*SKEmyy}s9`_?UEi1XCc)Wx<76kJwG z3bt$NY?~CJWYu-OMl&2r86p38@qNbRcss~!y?W4@g$U9$EmWfyLKcJWGBjKgm^A+8 zEo`28QxLfsntT;QF>I-j2vSg^w6y4;NW0oWo2TL zTCm8!Q+SD#)ld$c_vOo%Akr}{(NaY@VrsZC+5DbRvK+u8t{&Aw7qv9Cvl zTqX#md>j?9)|O%+$iV;5Aq%}=@do1lrnJ?8>C|}Cw-)-=-_dVOH(Nga_$-iH25m8K zb~pfnlkyiUC*G>+y%v$CAlpG%d7Adjp}ROVwu)l}pii$saq+Ody7@N+ZdgzoRMRbf zC;LqfQQQx7d&oTlnJyOwj^bxuB7vQ>nf&n}?O6T+zN(3>I{B$^E0ft`tPXUH!9hW$ zLuI89%ViV9rG*hk9|Fxl2G{hbq6CTzKdw`fYP&|P$U&aD)-2n}A6i>0Qw_AQkL4fo zVcxKwSx<}yV`z<8Okepweyf^M-`zcH{Ra^CSzZnb3Q}OAj5%RPbHvv8{AyS&V$dO@ zbL=uDsQy=7if*3rels^v+_N$9;IPLIy|cyV>1u|>EH%E|=~G0vl$ zeZ_D(aD(h&AYl!;Nv8a7?woa1S50UJk%kTN$vrvgX9~}$jF!GYeF0?64~}+$%QRz? zn4Ts(7WVD|QG*khi$KZR=}VPZG6)D12!6%Sg7 zSwNeDuQxHV>p59iEJLlI+YGIa#y8nKu(6_7CP7;J>{&v09ykZ!I#Ucr%HeT;`*tR{ z(m^0mQJlu}!w3JK&ln|(po@!3xyx>VvqW78aFHZLIi>?#r76>>XnN7$Y~^A_*6Y`Q zc1ZDe(Jn>2c@I($T-q&~r}}>i%%=Uu=^w!?6iVDQmNR2-yLm6}q30k0zkdC?zhBK+ zmQl!YW%6_0_~%RvB!XAS0#j5$^Z!si67FrWtdEZp>yZHe}A+~qF8q zf#xC`D3;h(86!uHy?5yMeagz{J^+!}Uc6Ey!(5(_F_1!X{`}Jtrb^4p3exuc?{7&B z9Y3@~Psk)T%3p{65KdA39C-&xk&qC0Nst0>CFI7(z_M<--b62v^gMRJ)VWB|;jn$_ zgjxWIh{qYZdFfE4LpeH0HU6n3JL^&5-2X^bELBQQsp)(?p#SlDN>5*&r{-8 z8sc-7iiRHJPivz-HfoOM73AOwK6vmgfKJvOpPb$wWH#yyVN6P+Tdbw#%&esewrq)6 z1Q#wy%gO1cI@VRv(+>#|5)&It9-sYiVDyJ{+ZERwX14u!L)RQ&8~&!yjWUwb`Bd$= zl?EP6y7XunGm!)4hsR><-C!PQDJ&aRwqtjhB+&We2z(Xr4ea>@JF%n?1QSQuWs7 z3iD6sw*f(e1}(CcRqmi3i%L1GV^24*M;OhYT6jzAB5n@Lh8O$bk79Ay-C4U&DkWc_ zuadn7?W8H|bIPbAw$SR(>9~yTF4QupJBERd!wn0&)6m(US|aS8NZK)*gQkFcrZhVo zL&-swAm(<*!*sw5C#Urbu3J|Jc0NFuQ6F3gWORs%mVat|4d+$)RsQd$I=dio8kXj{ zZX6ICoI)#ra3ckgr!MFard{6+)NFymsUo)16@`MR2vDW#_ch~R(AhAoUxUMl4RTAN z643#{A}Ai^{?Qu6?^U@gL1~zhnU$qe3)u*hLJZ$}m9DglVfu|=>Yez*^tY5Uhuh=D zrd?kSBx``a3eh@pK?~c)2D-4o*nmJGnLMACcourY3Mp=iN4l!}&P9L^9UO`RqrFB2 z!7RFAWzck2m_wA{90{(bJHWUooff|}1~a9QC*5Fbi4pwJNk7bcB*S`wgbEs!p~=73 zTKXRL9a`Y~pg}dn8K(a82~hB&+Tz86p^OuqyDyJXvG=5@CMsYteLK{Iy>KvtK2AtT z2q<@w$jve#!C+yZOp>n~GJveCb$a6o5gr%%cb?5^|h1=jA-R5aBCFt~_ zp%i^b>m?d%0+^;kr8$q-q)pbT9fv*vE>?Sx;?H`B3WoBju)x9*g8R6;Er=ej5 zi9Qt;^8U|4K;m$%=R4>+4RO-Zx4-uLMMq~SVEKGMI=iBEP%aJHPeiuzu1BC>6nzX1 z4vvaS|Bp{po?$vm$+rWmQRIF?weV}=OFC+e3UI!4)K#?^!$TrX~wlbj;F|_lG9qbHoWM@fPAc83YhznAxQ1lCj z<=yomQ0JE>B|V-)Oq2e(4#?wg@$tDpI5)(Z#t2n5hhLrhBLAuE$ZtNKECVeEs6`|q zx#Z{WJ8#203zzk@6%;sm*hz|iZuUYSZqvfOu(MQ4*@bWCh7q*&7nmCo{{4uVJkX(# z76b*~ps`xbAiPaZKDU?ScH25K6s%zAP}9=T`~u51#NnwgFdx-$+0@HB-AVc9WR#&u zhq0cGyfv`kvJMM|=ZQKBNW-W1 z7T@yotf6!a38TIwC1JAGkn4Ua8mklM=r$qX+-u-2%i!x`b8a}K&?pIGHR_~)LV0vJ z!<~Sbi)`i`raS5Ku%k>Mw7?O`rrdWPKGeP5Uxlg^aP-81keFftP8vGHAf5o(bmO0$ zC4t}$cTxkhKw~jo8!86DJA_V)qdk4H3(**YUf+SP+0F+-=m1O#K)tQVjW9a82rBsX z={z}u%GbEI{pPh`kx4ccDVUT3Rtxze?`XlZGjRHfVlc`DJ_LGx7(eR7w+qL}$RoL| z=@}UnxDjXmT(XDChbKmE4-|AY-@lXbI>;qgiIr~r{Lsp`ovL!;)=~J-l7)2V>EQvf z*iT~u(;!l^2?QJh;9+XD6juMuZEF>csO{#}lr?C+vmwmv7`Hd<7Q!L38IPj0o}C zFUN6_3?gAI1_lQI{)S5C(-(1PZW{xwQCm}kPs%n699%dTe%VhjC+Dq|-a^YnG*$ue zp)0$SgQ=Jh+~oqM9KvfvM2SfsoAq(077s!OA#bu|1uXW_L*vYhMWIm8q=Zjl2%dg+ z#FOY(-tE8Y1w6*KbUTik<5d0VB zjl}Y>&BDW?K$^|>%dn~jdXcFb@s)~o?25ZCRgDmGtiiHjPyY28P>RQC#QgnCU{H{d zurQ!qjX6YrYy#|sn-6HE=_=i&9G2^8?O&1IlI?)>P*H2AjJgSeZ#cn8W~sILzC>B^ zM2y}MMi;MJPs!U>$X_+yh%4XUUC7GH0^M6A?Ck>yj1Zl2R6gE_-23;?Z@th}H@ck;A-?FDic+GrP+ z`CkRNz5disIkx>Yh^eUbO1MrKdS{NLKrrlpnN5H}(h!?fj&6Da)bCY`eeUaGQjG(p zmCR3XYO)9kHP|iJbWs^^WP&uYq=W~;W8UEg)|{!Vk=2Qsj*iOzGRa%}TzW3pGhit@ znCpV!yUdX)AlH$FgyOA{^#I4_Nd}lppIC!t3TwoS&bVB^j zT7zA$*qVIeZ)0e(d2I=z7PW$zG$lnv0q#HHcH@#i+F2{i&Mri@_bu^xeO})|x4vKz zTJv*O-*ox{Bq%=!8bK=!Q%B%<#CM)n)Oaac2N!CZ#J()kNz=!OgNB0q{VjXcZIk6c zNp`JZjEEUJbZ}Hb9|Jxes>r8e{s$F#@GQgKB!2~Ku*TP~j~9+@&1mie3hV`McIwU6 zD|J|vsqK1{7JEz!TcHT#Wnky{qFTy zEuEzm{QDJr}CP+nTFMh6Eg%E(*? zLv;IWU4INma#xva3uXaic%ZfxNZcus($Lg&ukZoSwQE|CH@2RE+HX`f%E}=gdfGMRn(3ZadXlBr z)Pb8&Q5`A3h{Q7AWAYJXd@xuUZnqSLzm8`2D^%ZQzlk#76!U)<(Wf1`0~DGt!Ltw2 zhFx%ot^K{BeQvwO;cUG|f{PdP1|uRO78e&m+KAByP{hyK-Tf+=@kmGrVzz>-e;`YH zAm?h$*6NJF!-vpAu!YJN(r&s&DHkWFGVv$~UAGH%*ZRh3HR&`8%pN2oSpSIwsC*Mu zpRp)!y6e01pH&9$Sdh_dYb-4oziV%AUmC3iBK0#Uv@vNXkbfF@7RVu81?D>Xl(I8Q zz8t_1v?WPXrTyes_OK+e^{swfaq8^Zv-tRu5)#dgjh1AiFov*=$}>^~Ad49-yd_$| zYI-d1$=~gPI3y(^5gNi<&HR{Wb-EyA1NH2780#t$eQnKMf2dCGWSvHK27~JZvX=8~ z#)8^w0OULaF@4Pf+|GwbfwxUd0JQW&ox2GUFA2TvtH#7?8sS@9}7b`{BhZ{G0YdVpFq!KjqsJ_>0n zt1xwF6bSWMK7=30zL10~U3Y3-&$F4W9=X}VDbg^Q6$|JL(5Nq^uwTnMoN*$@y#gwa zR(lXaKnEc@6odJ3-q0k_n?+^aeb)3`R)id{^U2?=85^_wI~l?_ z8?&B?suR|`|P)uX`_5^o8)_%kKJlhl6qlH(VjDXKH1JXf%MP|_ARh~@OIQ%{goyfk% zBjs}1Sd?HNh#Mf6L{)Sh?f5BDGmlIyDY)<);LZ9(>Cci!@c^!UAfR02#OznKmJU3y zMZe-Ov5@DL3ltRT3R*~zQxpL5-ID5&JG_%Dj+Vgg{>UPsg1Z-t^_h(~1WuoRk^xhn zi9t`1nodjAAO&NB_X_M`+ob=4Qy8jhV90f2OuOPY`4Q#B|8(M?=gQ_VPI`+o?0Y~} zQD#~m9y~N1BtZkp;V_ri)9G5#a+EV)<8eTawt>0=`tzjxE>0>cDlpd!Gku^cfSHa3 zRRMV40RoXub%2l*8(Uk!Tc!g0XMFW3!w)A$lz;a+*hl0|d(lR@vLxGD7#e=@l(xlA ze+@LN8Tr9|OXOho5tXHboObE>K1)Y%C&F1mbHieNV;+i9|E1|mZU-}hGt*a%7j4;` z{Hk5`bx5>gy&qd#;WQkp`25PkHpA@fl?KK6`9J}eyDLEb&>}0WF%%u)A%;OE3$|ew4C0DGx>8zQDI3p=|HE9|1L8Z*BaM&=$A2deA2gYduFeQM`9VtD zOq@huVKXlpyH-o2)L-|cb^Di<0oYd(Lc�nn!S1i;~M_=$aVfT4QE5{%lmEtWNaS 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 diff --git a/docs/diagrams/modules.puml b/docs/diagrams/modules.puml index c8762e8..97d2046 100644 --- a/docs/diagrams/modules.puml +++ b/docs/diagrams/modules.puml @@ -1,84 +1,34 @@ @startuml modules title Modules -' Simple class diagram for the elevator modules - -package SingleElevator { - interface Driver { - + motor - + lights - + buttons - + floor sensors - } - - class FSM { - - elev_state - - my_orders - + init() - + on_arrival(floor) - + on_door_timeout()feat: ping function and docs for each function - + on_request_button(button) - } - - class Controller { - - button_poller() - - order_poller() - + read_floor_sensor() - + read_all_buttons() - + clear_all_lights() - + clear_light(button) - + open_door() - } - - class Requests { - + should_stop(elev_state, orders, floor) - + choose_direction(elev_state, orders) - + should_clear_immidiately(elev_state, floor) - } - - FSM --> Requests - FSM --> Controller - Controller --> Driver -} - -class Communicator { - - broadcast_state() - - receive_state() - + who_is_alive() +' Module-level component architecture + +skinparam componentStyle rectangle +skinparam linetype ortho +' left to right direction + +package "Controller" as Controller { + component "FSM.State" as State + component "Hardware" as Hardware + component "Decision" as Decision + component "FSM.Action" as Action + + Hardware --> State : update state + State --> Hardware : set outputs + Action --> State + Action --> Decision } -class CabOrders { - - orders: map - - version: uint64 - + cast: receive_state() - + cast: update_orders(newOrders, version) - + cast: clear_floor(floor) - + call: button_press(floor) - + call: get_orders() -} - -class HallOrders { - - orders: map - - count: uint - - others - + cast: arrived_floor(floor, dir) - + cast: receive_state(orders) - + cast: btn_press(floor, dir) - + call: get_orders() - + call: get_my_orders() -} +package "Orders" as Orders { + component "Communicator" as Communicator + component "HallOrders" as HallOrders + component "CabOrders" as CabOrders -class Scoring { - + score_request(elevator_state, orders, new_request) + ' HallOrders <-[Hidden]- CabOrders + Communicator --> HallOrders + Communicator --> CabOrders } -Controller --> HallOrders -Controller --> CabOrders - -Communicator <--> CabOrders - -HallOrders --> Scoring -HallOrders --> CabOrders -HallOrders <--> Communicator - - +Action ..> Orders : get orders +Hardware --> Orders : floor/button events +HallOrders ..> Controller : simulate @enduml From eb9cb901b0878f84f6e1bb68ccf7ff2137ee97db Mon Sep 17 00:00:00 2001 From: DxMarch Date: Tue, 21 Apr 2026 10:18:35 +0200 Subject: [PATCH 2/6] docs: updated diagrams --- docs/diagrams/hall_order_fsm.puml | 15 ++++--------- docs/diagrams/modules.puml | 36 ++++++++++++++++--------------- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/docs/diagrams/hall_order_fsm.puml b/docs/diagrams/hall_order_fsm.puml index 345648c..ba348db 100644 --- a/docs/diagrams/hall_order_fsm.puml +++ b/docs/diagrams/hall_order_fsm.puml @@ -8,17 +8,10 @@ Handling --> Arrived : arrived Arrived --> Idle : barrier full state Idle : no known order\nlight OFF -state Pending : barrier: nodes that know\nlight OFF -state Handling : cost map by node\nlight ON -state Arrived : barrier: nodes that know served\nlight OFF +state Pending : barrier: nodes in pending\nlight OFF +state Handling : cost map\nlight ON +state Arrived : barrier: nodes in arrived\nlight OFF -' note as n1 -' receive_external merge rules: -' - resolve by cyclic precedence -' - pending/arrived: union barrier sets -' - handling: merge cost map (min per node) -' - ensure self in barrier/cost map -' - barrier-full check may advance state -' end note +' receive_external needs to be described in some additionl text @enduml diff --git a/docs/diagrams/modules.puml b/docs/diagrams/modules.puml index 97d2046..d4c8581 100644 --- a/docs/diagrams/modules.puml +++ b/docs/diagrams/modules.puml @@ -1,34 +1,36 @@ @startuml modules title Modules -' Module-level component architecture +' high-level module architecture skinparam componentStyle rectangle -skinparam linetype ortho -' left to right direction +' skinparam linetype ortho +left to right direction package "Controller" as Controller { - component "FSM.State" as State + component "FSM" as FSM component "Hardware" as Hardware - component "Decision" as Decision - component "FSM.Action" as Action - Hardware --> State : update state - State --> Hardware : set outputs - Action --> State - Action --> Decision + Hardware --> FSM : sensor events + FSM --> Hardware : output commands } package "Orders" as Orders { - component "Communicator" as Communicator component "HallOrders" as HallOrders component "CabOrders" as CabOrders + component "Communicator" as Communicator - ' HallOrders <-[Hidden]- CabOrders - Communicator --> HallOrders - Communicator --> CabOrders + Communicator --> HallOrders : synced updates + Communicator --> CabOrders : synced updates + HallOrders ..> Communicator + CabOrders ..> Communicator } -Action ..> Orders : get orders -Hardware --> Orders : floor/button events -HallOrders ..> Controller : simulate +Hardware --> Orders : button events +FSM --> Orders : floor arrival +FSM ..> Orders + +legend right +solid line : updates/signals +dotted line : reads +endlegend @enduml From 80352b473ea5b1d6b9d5284e30f749d37d1ec393 Mon Sep 17 00:00:00 2001 From: DxMarch Date: Tue, 21 Apr 2026 13:07:15 +0200 Subject: [PATCH 3/6] docs: started on more detailed module diagram --- docs/diagrams/modules_detailed.puml | 68 +++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 docs/diagrams/modules_detailed.puml diff --git a/docs/diagrams/modules_detailed.puml b/docs/diagrams/modules_detailed.puml new file mode 100644 index 0000000..3c5d260 --- /dev/null +++ b/docs/diagrams/modules_detailed.puml @@ -0,0 +1,68 @@ +@startuml modules_detailed +title Modules (Detailed) +' Detailed module interactions from architecture description + +skinparam componentStyle rectangle +left to right direction + +package "Controller" as Controller { + package "Hardware" as HW { + component "InputPoller" as InputPoller + component "Outputs" as Outputs + component "Driver" as Driver + } + + package "FSM" as FSM { + component "State" as State + component "Transition" as Transition + component "Decision" as Decision + } +} + +package "Orders" as Orders { + package "HallOrders" as HallPkg { + component "hall_orders.ex" as HallOrders + component "order.ex" as HallOrderLogic + component "cost.ex" as HallCost + component "simulation.ex" as HallSim + } + + package "CabOrders" as CabPkg { + component "cab_orders.ex" as CabOrders + } +} + +package "Network" as Net { + component "Communicator" as Communicator +} + +InputPoller ..> Driver +InputPoller --> State +InputPoller --> HallOrders +InputPoller --> CabOrders + +Transition ..> State +Transition ..> HallOrders +Transition ..> CabOrders +Transition --> Decision +Transition --> Outputs + +Outputs --> Driver + +HallOrders --> HallOrderLogic +HallOrderLogic --> HallCost +HallCost ..> State +HallCost ..> HallOrders +HallCost ..> CabOrders +HallCost --> HallSim +HallSim ..> Decision + +Communicator --> HallOrders +Communicator --> CabOrders +HallOrders ..> Communicator + +legend right +solid line : updates/signals +dotted line : reads +endlegend +@enduml From 51d1e4d1d5b09653e9edde75b0478d05fb317c50 Mon Sep 17 00:00:00 2001 From: DxMarch Date: Wed, 22 Apr 2026 15:18:52 +0200 Subject: [PATCH 4/6] docs: updated README --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 55a4072..0b98eca 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,10 @@ Elevator application for controlling `n` elevators across `m` floors in a distributed fashion, implemented in Elixir. ## Documentation - -See `doc/index.html` for module documentation. - +```bash +mix docs +``` +See design description and diagrams in `docs/`. ## Running nodes From af6013c8349989a1b2e00cdbc07e532eae3f92a1 Mon Sep 17 00:00:00 2001 From: DxMarch Date: Wed, 22 Apr 2026 15:21:56 +0200 Subject: [PATCH 5/6] docs: module diagrams - chanegd to sateful and stateless - removed detailed mudule dirgram. --- docs/diagrams/modules.puml | 39 +++++++---------- docs/diagrams/modules_detailed.puml | 68 ----------------------------- 2 files changed, 16 insertions(+), 91 deletions(-) delete mode 100644 docs/diagrams/modules_detailed.puml diff --git a/docs/diagrams/modules.puml b/docs/diagrams/modules.puml index d4c8581..6d118eb 100644 --- a/docs/diagrams/modules.puml +++ b/docs/diagrams/modules.puml @@ -1,36 +1,29 @@ @startuml modules -title Modules +' title Modules ' high-level module architecture skinparam componentStyle rectangle ' skinparam linetype ortho left to right direction -package "Controller" as Controller { - component "FSM" as FSM - component "Hardware" as Hardware - - Hardware --> FSM : sensor events - FSM --> Hardware : output commands +package Stateful { + component FSM.State + component Orders { + component HallOrders + component CabOrders + } } -package "Orders" as Orders { - component "HallOrders" as HallOrders - component "CabOrders" as CabOrders - component "Communicator" as Communicator - - Communicator --> HallOrders : synced updates - Communicator --> CabOrders : synced updates - HallOrders ..> Communicator - CabOrders ..> Communicator +package Stateless { + component FSM.Transition + component Communicator + component Hardware } -Hardware --> Orders : button events -FSM --> Orders : floor arrival -FSM ..> Orders +Hardware --> FSM.State : Sensor updates +Hardware --> Orders : Button presses +FSM.Transition --> FSM.State : State updates +FSM.Transition --> Orders : Floor arrival +Communicator --> Orders : External orders -legend right -solid line : updates/signals -dotted line : reads -endlegend @enduml diff --git a/docs/diagrams/modules_detailed.puml b/docs/diagrams/modules_detailed.puml deleted file mode 100644 index 3c5d260..0000000 --- a/docs/diagrams/modules_detailed.puml +++ /dev/null @@ -1,68 +0,0 @@ -@startuml modules_detailed -title Modules (Detailed) -' Detailed module interactions from architecture description - -skinparam componentStyle rectangle -left to right direction - -package "Controller" as Controller { - package "Hardware" as HW { - component "InputPoller" as InputPoller - component "Outputs" as Outputs - component "Driver" as Driver - } - - package "FSM" as FSM { - component "State" as State - component "Transition" as Transition - component "Decision" as Decision - } -} - -package "Orders" as Orders { - package "HallOrders" as HallPkg { - component "hall_orders.ex" as HallOrders - component "order.ex" as HallOrderLogic - component "cost.ex" as HallCost - component "simulation.ex" as HallSim - } - - package "CabOrders" as CabPkg { - component "cab_orders.ex" as CabOrders - } -} - -package "Network" as Net { - component "Communicator" as Communicator -} - -InputPoller ..> Driver -InputPoller --> State -InputPoller --> HallOrders -InputPoller --> CabOrders - -Transition ..> State -Transition ..> HallOrders -Transition ..> CabOrders -Transition --> Decision -Transition --> Outputs - -Outputs --> Driver - -HallOrders --> HallOrderLogic -HallOrderLogic --> HallCost -HallCost ..> State -HallCost ..> HallOrders -HallCost ..> CabOrders -HallCost --> HallSim -HallSim ..> Decision - -Communicator --> HallOrders -Communicator --> CabOrders -HallOrders ..> Communicator - -legend right -solid line : updates/signals -dotted line : reads -endlegend -@enduml From 96665659f4fb704cc81b1127923eab38149c807e Mon Sep 17 00:00:00 2001 From: DxMarch Date: Wed, 22 Apr 2026 15:43:52 +0200 Subject: [PATCH 6/6] docs: added final report --- docs/Final Report.pdf | Bin 0 -> 114105 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Final Report.pdf diff --git a/docs/Final Report.pdf b/docs/Final Report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..de43d99d414986fd19ab285322bb056405c28950 GIT binary patch literal 114105 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�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 Y3!d=$QrDl~f`<$MYZ*mF)eSWM52%63bpQYW literal 0 HcmV?d00001