From 6fb5c0141ca43fe61d3fab6cf17cc1786351a3dc Mon Sep 17 00:00:00 2001 From: "IQ.Lvbs CI [bot]" Date: Tue, 21 Jul 2026 15:34:45 -0500 Subject: [PATCH] IQ.Pilot Release Commit @ 087daed --- artifacts/iqpilot_alc_private/manifest.json | 4 +- .../alc.cpython-312-aarch64-linux-gnu.so | Bin 401688 -> 401688 bytes .../iqpilot_commander_private/manifest.json | 4 +- ...commander.cpython-312-aarch64-linux-gnu.so | Bin 68080 -> 68080 bytes .../iqpilot_hephaestusd_private/manifest.json | 74 +++++++++--------- ...ive_codec.cpython-312-aarch64-linux-gnu.so | Bin 135536 -> 135536 bytes ...ckup_keys.cpython-312-aarch64-linux-gnu.so | Bin 67664 -> 67664 bytes ...hestrator.cpython-312-aarch64-linux-gnu.so | Bin 204624 -> 204624 bytes ...cbc_vault.cpython-312-aarch64-linux-gnu.so | Bin 69752 -> 69752 bytes ...imahelper.cpython-312-aarch64-linux-gnu.so | Bin 203072 -> 203072 bytes .../hephaestus/_vendor/localapi_runtime.zip | Bin 2100238 -> 2100238 bytes .../ble_auth.cpython-312-aarch64-linux-gnu.so | Bin 268064 -> 268064 bytes .../ble_gatt.cpython-312-aarch64-linux-gnu.so | Bin 340584 -> 340584 bytes ..._dispatch.cpython-312-aarch64-linux-gnu.so | Bin 68048 -> 68048 bytes ...ransportd.cpython-312-aarch64-linux-gnu.so | Bin 335728 -> 335728 bytes ...t_gamepad.cpython-312-aarch64-linux-gnu.so | Bin 271680 -> 271680 bytes ...ud_routes.cpython-312-aarch64-linux-gnu.so | Bin 134408 -> 134408 bytes ...phaestusd.cpython-312-aarch64-linux-gnu.so | Bin 3448272 -> 3448272 bytes .../kwp2000.cpython-312-aarch64-linux-gnu.so | Bin 136448 -> 136448 bytes ...phaestusd.cpython-312-aarch64-linux-gnu.so | Bin 68136 -> 68136 bytes .../motd.cpython-312-aarch64-linux-gnu.so | Bin 67840 -> 67840 bytes .../tp20.cpython-312-aarch64-linux-gnu.so | Bin 135648 -> 135648 bytes ...q_flasher.cpython-312-aarch64-linux-gnu.so | Bin 269568 -> 269568 bytes ...uploaderd.cpython-312-aarch64-linux-gnu.so | Bin 204184 -> 204184 bytes system/hardware/hardwared.py | 68 +++++++++++++++- system/hardware/tests/test_hardwared.py | 58 +++++++++++++- 26 files changed, 165 insertions(+), 43 deletions(-) diff --git a/artifacts/iqpilot_alc_private/manifest.json b/artifacts/iqpilot_alc_private/manifest.json index 7822625..9398c6a 100644 --- a/artifacts/iqpilot_alc_private/manifest.json +++ b/artifacts/iqpilot_alc_private/manifest.json @@ -16,7 +16,7 @@ }, "python/iqpilot_private/konn3kt/iqlvbs/alc.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "b7a1d9c89f0fb20719ed03104c150361ead436f4eaf758213c34270f857fce29", + "sha256": "a7ac44d7ce568d335b6cd5e31c940c993c3febfbf150dbc5b625fec930789d30", "size": 401688 }, "runtime": { @@ -28,6 +28,6 @@ } }, "signatures": { - "python/iqpilot_private/konn3kt/iqlvbs/alc.cpython-312-aarch64-linux-gnu.so": "3aPgCbOFw97bTasyTd2NnljzjuHrF9qEzuZX1X2Vu1Nu0dz+btrOzgiwV7lekZ6SyJbCpIUYeI+5ifNW2MzaBQ==" + "python/iqpilot_private/konn3kt/iqlvbs/alc.cpython-312-aarch64-linux-gnu.so": "OgV+x72Bjg9Gxxqv8pGyaTEee7bJK2xuCcfgmeKN34YKg6jjlyBgvvsx69UVrHlJx8It6udCEfDqfGjtRbzRCA==" } } diff --git a/artifacts/iqpilot_alc_private/python/iqpilot_private/konn3kt/iqlvbs/alc.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_alc_private/python/iqpilot_private/konn3kt/iqlvbs/alc.cpython-312-aarch64-linux-gnu.so index 5945f5908b128ec48eafaa03eb0d16cce864232e..74f8faae3034baa828e281d2ab7554f36106e16f 100755 GIT binary patch delta 7878 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 Q*RRotkG{dtA<6y!0F`=Br2qf` delta 7883 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 V{RV3NboH+>VrT5E?J&dR{{T9&ar*!O diff --git a/artifacts/iqpilot_commander_private/manifest.json b/artifacts/iqpilot_commander_private/manifest.json index 9c4a9aa..e277672 100644 --- a/artifacts/iqpilot_commander_private/manifest.json +++ b/artifacts/iqpilot_commander_private/manifest.json @@ -16,7 +16,7 @@ }, "python/iqpilot_private/konn3kt/iqlvbs/iqlvbs_commander.cpython-312-aarch64-linux-gnu.so": { "mode": 493, - "sha256": "f452c3278cd5f8cc40db981cae2bd91f4796a91abaa76b6001dbb5dad80480d6", + "sha256": "384571df8380e5eef92806f3fdb6c9d1bc879af2ebdce9259bcfc486d506a4d0", "size": 68080 }, "runtime": { @@ -28,6 +28,6 @@ } }, "signatures": { - "python/iqpilot_private/konn3kt/iqlvbs/iqlvbs_commander.cpython-312-aarch64-linux-gnu.so": "7DvAdsDSBnDIh3f7PqVWudkB+Njn6o7HAvtiZPrWpO0GW40B/DXhRLDvJ9rT+O2Lw3pLJBq04qA1szhbcFBhCw==" + "python/iqpilot_private/konn3kt/iqlvbs/iqlvbs_commander.cpython-312-aarch64-linux-gnu.so": "cH88ob+s+ZRJaNgbrRN2CQqCiQMBlo9yXdBvN3gteSC7OYlJ5z8OZND7eZSEfeeq2O7E8ZeZDs9WDU0WfP8DCw==" } } diff --git a/artifacts/iqpilot_commander_private/python/iqpilot_private/konn3kt/iqlvbs/iqlvbs_commander.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_commander_private/python/iqpilot_private/konn3kt/iqlvbs/iqlvbs_commander.cpython-312-aarch64-linux-gnu.so index cb992537c0da8d5c790d1c18724605b9885a5d33..e93281f7b9f49d2b29e11f8129c7a3faa2f6fc8f 100755 GIT binary patch delta 963 zcmV;!13dijlLYXS1h7yT0w9*NQWy&r0-_d^Uo9zIApijIApjbY0vLeO`GWwF-~$<| znf?ElAOHaH06+|prvCqz^8)~?U`YV9H~;|f0D}yXUH<=<^#cH^zy<)c;R6$@#s2@7 z^aB8@Kn4J`AOHaH0w91=0H6$!ljJSL2Lgi(ks&}7ldmrF0ysmHqc3U&-az?*=93aI zM+L}0`31m}UNH9pz!sBNF-8I)7n7ecLIR){v*R%~0s+#K8Z;jP%9A=YLlM_N`8@pp zm-7Pvs=y5Zv?1S&)3rU{iAsCEL=QNzm(m1`e#xo=Zp4IRmn20}WWV#{ynuBQ zZz0(%AYLr?pRxJlhqk=fz$Px%u*~CPb+fX{?pH8R-E6yi)v@>_nM+tf5KY=<(h{5 zhh7sl;bltWs@@>;khK!9{NhI3d}2++E=?Ir?ry)>^FyRX8N><#m1k_UZT@$Epp z=iT+$vg-zEdVKkX0exVH4o|!Xya_9Zy;%HaBp&SASWd*lRT5E7&A36W@BP9H!?LdV>C2oG-NV3VKO)}Hk%;^#cH^pauZ6;R6$@ z#Qy)6^aB8@AO--m00RS&0w91=ljJSL2SS4kks+WAldmrF0z^WSqc3U&+Cce%;*%0E zM+N9W`30bpUNH9pAP*SnC1-&a+xu9|8f$vwB^}1OdmhLSn2g7&13xF=jDiH83+b zF=jO}Wn^JFF)(9cVv`1uXc##%GBaT^Vq-NlIXE;qW@chFW-&B1FlCd5kuVr#Vq|7H zGht+5H90ajF<~_~Gcz|hI504?&XHOHlMt1@A7L~!V=^!_Gcsm1Wo9>JW@ck$HZWy1 zWdHzaZfSHNlaP`ylO2{@lYo|Rlk}D#0Tz=HmoI;K+HF$7Zlgd9{gt`(v}jkGmG)K< zLK+m3WYUMuvbvxPvG=ZAe=|LyI92*+C4h6Be-& zidXMyF~9`8h@J^w`aII8E;1dQ%wRRI@b!m&w`A}O*z z`F>i!GKtratY#3;X4|jW^yyPsUaVjh7fYDuak03`EV73MOw)LElg-ol4yJjwUf!g) zEWW|7;)g7O@7K_eYiM!}{rU*)PM%|~|B70mzoa{K=Vn&O_F5aa8o8gt8 z87~;t_)1$m6uUItGM#Q@+oG+Mv=BH4Wwb@mycsVQmQvNqS@O;p^an2+=FX-s1B?ey zfyZ-)f&PQ_*vEth8X0Qf<&!?Q+BkyN>z*$ys-3kzYl_|k?+KJ^8oo93ny?9%E{%Vy zI)ki3_C>%Q*%Ze+&S6J4;70qUij?$G?@S$DU4!ljaqXC7nLzTZ^QBA9op!cim;68Nr4@SaQ@nc&9n@r z&aGySLjgc-d9DNIqm%H$#hS)U109rmjBQ~{uKq7BF6gNW5DrvIF`0Rk@$q{SUJs`z WCR~A1YuJ&gYRZKueSDsVx9>j^F=%`M delta 354 zcmX|)JxYT?5I|k4oIt+TDls7J&&^Hef}O|k0$w0h zYExOg=JDR{ZLxb>Jbi}8VrtC_hOh@_I*Fve3Y89am*Nn&tGUoj%TwN4W7s7%`v14NaW)O=< zN1KORy%`5?uJ7+Qq%evzNy$o#G*oKFHou;Q(}_xDL&ypiO}liVmc8=)a~4)p%#^uU zZ_UXDu}K^Qo6jffuw{tF)d@%DmJXGkT0dC+KaPn+-H>{h(J=NJ$s~X6*WvwmI?O0H Ub_VWXwQ^~t3c=U+dHDGK11uA{|OS%XE2i6TX delta 39 vcmcaGf#t#kmJQd;B+?8lQwc(+*jeSW&wj`yF~)1W8UseqZ*U45KSD^C zKM+#+6(aco!F>%;2WFaeW}WpqJKZ=t-FW};%GdGQYUWzN4q7BJE3_Pa%;XuSJFD^b zO`q8Z%#FZtR`IRGu2HA$)wp@w0}Dk%?JbeS`GTmDhJluX2Qu$SJFoVKVVKVsFZSo9 z33*qUYIj^kz4tMJSHqE4xJP0~|2!AxxpVBH)+80Bde=~Zy!c^wDtoe=eyzsG$AFsA zAT7lNsAA-1icG|ODKF(ls?#O%}4|ks<4+AggV3@wW9&bNXakXkK9grofi>`FRwkB0v?3yQ8F8_0uAz_qU z*70VGuxn!1bDZ*<@q7j#94+l^S_M*8cv$L+(#XQ@(mF9RNKb(U#?;Wy}mP2NT>uLSPZ_Fz+?7=uftBJdn5b@;4hmk-329ufx AegFUf delta 920 zcmYjQv1(mM5WTsO&bToluZ!FmS7vs1c4xOSX$+|h?o#m^p|>0?gvccfM(jP4El+pz-l>_YRqWQOM@g+{$XQC5Cfynz*;-hi zzdD?zX}#XOI9z+xXfbyS1P!qfkpigKuetB|K+Q`pzpMIgMJ-o?#DkSIfQcx?X?kV{ zwq5?;%}-8~Fb*?6avzPPBqrtoPP(<1cC_B~{VU!p(i{Ti8mg6`lBHX2f`QZZkSHxx zt5I`?=>ME!F(GmM zHQ9E1Lz#u1iczS^n4*p}Qt6^;DSyr9tAsrUNT6|8{?|txQUaf{(*oUxC zZ$VpOXi~+-^7PHT_dAXTk|>GxKy`5K$iv3P_Aa-ZVGNC>SVYR!nN0$?*9{oMv`SFw}}KSQHrk} zlYl$LO|*pM(U_)d-04Tr+&a2N=>A!%H}MwTgX*uQm*_z^u`+JpKdocH2%0L2@6Qlo MgmU)n-Q55A4wkwF1^@s6 diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/backups/cbc_vault.cpython-312-aarch64-linux-gnu.so index a0d5e41234d953431b49be5472da1529d0e6ab4f..c9abb224e4404e598254280695db422c6d1317dd 100755 GIT binary patch delta 213 zcmWN}y-h~g6ydI@|Pc%r87=S+eq=avP?{Pgn zuBY#}z2r0_GR7tnVbB|LPtGm(bCJq9)#`{YQAr2|SU|VWy}T@1voZ!5a z_e%-mwBBGY46UxS+aT?^y&mThn(5XBRmo=)ikjxVZSO}Zq%gq$&x$qDWf%dBh}*~U Y{8V_vVhD4bUDTVoR>Q`(pReEb2m4t-asU7T delta 213 zcmWN{A#Ou43;H)?USTtJl#5q$B5NTsSj#jd3|O%p6L-{r;?mUTa4$#=gJ6Ac>4W>!CPD~f+5m$beK4>4 zc1obRS&l(UTqj9Z04&Yd=YCA&F+yq#hBg^Z+2d7ko%fV-2c{^M4YjL)aFyN)-7fq4 XTjBtnTAA9I1-o~!iADYP_w#R0)}BF@ diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/backups/imahelper.cpython-312-aarch64-linux-gnu.so index 29216404544ba1125d4a7df649cfab8e9bcbc25e..1cde4bc2c0c848c85acc0b406560f45adba92c94 100755 GIT binary patch delta 611 zcmX|-yJ}WZ5QR@RVihd)kUxpRLa>oNd-j=2BbKSG#pZYRWl&I~;-!-m`V6NLD{G4& zq?0^>rH>(EW$6aNZeV8CTHm@j+r2p3J$=9PHTd4lHG%13Ad-noVxxpDwe{UzIGu@s z#X-BPJ8*8^jVq`1>L$n>(YbJJR!VA1tkp!2Jg&Y8N8`6ZE9y(fR1_nEqFZn4r%jmW z%)R!~Nz>3ZPh<%SWm>;)!u`1jK<7oEdSR~$+LA)F_0E2X*V3{?s916`pb@x4AI`FV z*blevB8ekH%UGotHDc;+6{qRdqn9Udr)k=5AHR6MO_8xSU6Lq4Pu!h)*Vxye!{S)I zu~}281?u2lSXH6LY3k4FN$YL<#-6IVbI7zSq)E~Vl! z>Y}CyWb2QE@Nmx2I+EquM=2;}TtIf!_1uiOX^ pF6A+mvG1vRvXmKIc>qsOZ~to$xgttdTY8jIIJ5fs$D85v@4ta?s{a50 delta 611 zcmYLGJ!_Ux41IbLr{bs&ecM_b1Q*HuOtOe$Cueb~xi`5es8#V}lMebD?jlak4n^oD z{RNKx3=tor;_@Jue-LAWF zTL3t9p&I5GyIG}_C6{G+@!t$JvjvhXHdeoI-oC-CG*Pddg3M_%g_bG80J+n_7 z#RLMU#yR)Mxi5=7X~$}M^hzGRwEx>$!o?Sd}Kekq;L~Ii;7%()OzeW)%XP2(Idl%BQ nWLmhW)kzb^#5fHvk8l158iU diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/_vendor/localapi_runtime.zip b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/_vendor/localapi_runtime.zip index 3af1b89cabca1b1536fc2a3e28de67456855d162..cb4f97dbf89b9bc66366160ff6a62007db2fd422 100644 GIT binary patch delta 1615 zcmXX_YfPL)6y5iGSz#9ecbA!NLu_HGiZn$lZQX*rN`baK0u)NZVr^2S8d+a8YO#xb zL0_yu8wkb*s|G5;uf|6R(KHG)1rv=;ty&8qp=nr_WqIRwX8L1t?!D*CnYnkq@60Ff zOV5bQke?%0SR@jOM&fC|X2_PyJnelY@;VjpSM7Bzu)%yuE#i5Hbr3LNO++=)c0`7> zG1i52IQ9pmeJ9sBHNbB-UT5^{&TUZjIWGXR60<;FNZhRy@!0(&;eL{I;*J;#!zP&% z#|w)QvMVM8T@KlA4l(e0(q-b33!Zev_*F0!(~5eg{XL)vhNCi~RO(|8+>TYM6bSA) zl-0O_H#1HtWX7rPeu(OZZq-Lp1U;XtUPYH)+N%<1uX^Gbs+wfYH;f+Gtf@!S-jr00 zkdmr>Mf&t8k?7%nf~^9(3cFUT7RM^mtHx zF5CDqGyf^aSk27i_Zo%xy~*KxO=S(|gbfZkLJoGL&W#hSDB$ zPlb8fgXK5IM`xPk5=orVcO=&wc4-%xKg7}<7tIaS9FpC5~Vv@Trq;u{X{z(VpqELIFrQZSPSAHIa+5G zj@H@C4cK^Y)|SPl^jFZ<%XCdkHZ6kwHoKpVm zo1y%ieTa?tR;yjO)f!vN^gFC10R3hg*~TXEhJ&ovq0;6gB~b`wcar8kV&FU8Lh4YM zZy|Ozg{U^NH4K$~-6UXuB&(l11$?`oyaZyfpOiAU*a4Dh1aokNxPV`dkguUQaFaY- zheG}|!GGavo+d8hU^Ajogq2E&50sBFRJk z?jorLK3F6L!0k(%Kf6RKko%YT5R#X9Gxf`)67@fp`IN0IoUd5nmlZF`?lZMQ4nkMB z%7@jp%IgnTdA($f*FRh1b^jWv7WEg4X$GK^;&m@hQf9J8O4-Caq?DUWDQkY8jOU#) z%3fkhMq%PBkTVxwo1EGB?#a2&E(P~#Rq%b|3a;Cvr0kPV?RzWwap=rP1aN%- delta 1615 zcmXX_YfPL)6y5iGSz#9ecbA!NLu_HGiZn$lZQX*rN`baK0u)NZVr^2S8o^hMTI{ZE zDfGn(Z3DsBVAVh+_|^CbA(}>kreLD6sa0zsBs2}nvMg`>&P;zy&b{}XIWzap_nrRa zed%d&8S-=F3X4P{(MX!S*9_TmS(CS~L|&%?{;IvM1vZ*5sYN{Junqzytcj>b+K$MO zdShKkhhu+0+IMoDQv>{V<8?;A?%W1dpYuE*D=`b?`NZ8y5s%$Z67DBSC+>)`Fl>@J zalEh?A-iHi(B+W*<`4ro6^9`d1Hf!q9v?nE1 zBc!BiU-<|0r*_>rW}f2E{f%=yG08e1CRrbL2K2_C^(q`GJaa=|s0ZyG(+l1)Lr(*$ z&t)4wX68TT7^|6i{9dCFzc(yz4D>s3re(JKtqrC_5vYtmZ+Z_p!R<2fUWU?4!cf{{ z?y0aQZ?OEv_~=ZtTq21x`i|t9V|>$TCarMb>F`TzHmlEuCz!?Eo`j5WaYYCT8RitU zEVy&cZq~+df!S+;q^QO$6xCQd3dO`1`p(h=S@-vrO6H^;un4VS28$w3g2^k6G{C^K zzbsN*j|=m~sMBw79BDd5}vI}&NhGq!< zET1dD`IZ35M1DI!@`27-vIAH!z zc7pF%AvT{nL^dJW5+W}HJ3}NJ_#nhDvt^#ViTv6;DFcQraPvb8k}{J$QpzUYA*I}0N?G&!WIXSb zQT7s3G71x4ftsjEI457t&%LOo?B&PRl)Y5EhWpiOXccs$8kz=-(sI6BOWBupSxea$c;^vX fb(DQMhjo-a&W}2pi+x5tuUG0R`x3v>)2jag-(_-{ diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_auth.cpython-312-aarch64-linux-gnu.so index 73de24714bdf6bd0770cbaf1adb3532547802447..ae8c286428b0782dafe48e49e52399cb79d7e6c9 100755 GIT binary patch delta 1150 zcmYjQyKY`Z5I$sy6WfWgDB=S`QD{&^wYQns>8KDDqNIwoJ3EUlnLml`6f}e)f(lBu z0_6!@A<|MIs+4rR0wp!`O9|q1d*-s=ZJ%EqKEFEr=Ghz1uKnVExc(G?S|=&B4gul- zH8Itkm*rT_PIYs6ar~%Wo-B4gK7IV?IFvXdl+m3zc)deBJ)4KUGf@ zs6g#dO3~5>2xMHA)6K$2S6-(#Bnt@x)b!Zz>!|-X28}9QJng=P|eAW`WWM=L?BtQSW;Z8mh z2^xnFT?_SwS-WcX1k0l5=MT^SW8PyX>OKQtthEHLHA)ehU*B|PRp5larbxiPjiQm8 zs*m&KP3PAd)Q7<}4V2NmO);g4b>7*v>h?Cfd!#1NXtW%vAAos2*mWP?sS%A@uO^0a z?p%GXP3F(L?*0*`6f34&VjT&!+FI^N^RHd^{@ns2XSt&B*poURiEN0V(ZA)j76~I8iXu}%OVdq7f-%ai{oSS?saY@^_Y4ggJXJe!0x%* z)@5n>#p&kwM9UURYl09>mUTr(C32#w;q|zqoKKIfJVXC6AEH{@%@3@y|&g=LP<#& XvIVua4B0+U-(4NL7gvXGp6~n%qN6yr delta 1150 zcmYjQJ8xY@5WZxI6WfWgDB=S`QD{&^weOkfs1OyRq_Q%`X-G=w683QD#D zX1(fn}7JzjjNFp^j5 zIRUbf^$`;5{AS1fzGScLiL_;kp(hCe@_^u{-f^EUHAI0DfwHuc+8_k-P;vfo$DMvq zi@|m+-6sOh24X&7GezU_^5XJ8-^$53IV0mCHLqn7PJMm`C!+kSUDloK+&YQ-Tn^Ya4 zBLRf@)2@4b)R2&}1u%pm$BM>1`Y`|8b?-hLeF$KKW^t0Cs1Mp0$7;3taxL@MeYecK z=iXj|nwQ=uFBvOfDUCo7#?(Fc(boB%jBm8yut#hLT8oDH+n#Y(F-DQFwr+PAk)E4~ z=seiB)T-|VL!uP&;4o^h0e#atKi+qrEUay4qA?6 z5Up|8=ifGchE!?_#neh@zB6biOsK1sT&y==d_Js>Pc6Hf-l}!NCv9GVq)?8*irF!( zR&9KCwmvx>=jRvy+i%_Ksg@!*jHH%a3z#@CytSdvAMZI@l5!5o(m@JJnR<*CV#E2@ zJ@?j86swVS04qh4PN$)e74q&sYDREhJoP9lccv*`7ow+JNWIfqR76571UbBHBla zZ!~i5^~R?PA)+9+%<8dZA58`~n8ychIWovraU|g&fomQujTFYq?+)DVt)+^km&u%F X^DLB@ygg_w-(DZOm)D1{U+(+^xNSUM diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_gatt.cpython-312-aarch64-linux-gnu.so index 6e5ec028aa69b28055c4ab379f1bb7aaa547ebc4..5a22b0271fa978a1c07c9921e24e94e6cae0f008 100755 GIT binary patch delta 3007 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 Mn!P`Lx}3KE11~*XfdBvi diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_rpc_dispatch.cpython-312-aarch64-linux-gnu.so index bf5de9d63268a3166660025a9cfae69cffd065a6..8d130dbfe3b5b4b4d886ce1103ee9f86a61a42f5 100755 GIT binary patch delta 97 zcmV~$!41P83!GzM>wMIbZeTq%oWjE<4_?iubGe(QLv7`$}2 x5Fv6^;+i`qjcu{$<|K)GY+n-1NLCf)I>-ODC^8pD?V2KkEH!fx^Xoi5`vU=`A7B6g delta 97 zcmWN@u@QqX3)C?<8;vuSay8qoYYKHK{T1K%F$ diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/ble_transportd.cpython-312-aarch64-linux-gnu.so index d32d3796bd5903192628956a88795aaef755cc34..83be9aa135d56f00b5667655fd10c6f1290cbe8a 100755 GIT binary patch delta 1413 zcmYjRKaZA05I=N30?JE(|VAAu4(OG`syt#RIiQ=jHZo_Tg=e*gCMi>t3+T>bXRl_&2!dH3h=-Hi>jT8$y* zF-k2nOB+(TruFXPpDe-rmW{>6c%eB-F@rcG6^NW+1RSEXvxy z8R90ZLaY^tsKjJ7<_XoZoZHQ?y|STXgQYj4*;|clU8M8`>-nv)-Ne#ILZC6Q6m8m) zBIKOct6SkGZh&=mZFx@Z9b+Ph8f(8?tPse^Nkxl{F_D?6=#1;de%NfZ4+AELXDtqC zlG!nntUva{^=ptgnGu7}aLhmj{CHdYx5M#6w$@b3^pBk!8nA#RYCc%c`uJ4m-rMI5 zLlq;oF`=}a8{%-9doE(@huh&1Q*KroNS)j>(kwF?Yx)<)$Xd9@iY-|yQFyTSqG{1K z95dC{YjO<21O;=0o}rF>NkSLzE<#*lPg*+`Mpv}1AGc0|%4APjK!}Z%X zY_GKpSVn3Vr#QUA#i-P=-a7~fk1X}->(q#fC8t>+M#vW=T-XAO6tvKk!ax8FB=$b2O=+d=K)*T&_cyU-%wj!C^uyVKQ^jJu z-amBLsGG0RC@JRxX*i|RMuoaQKHQz<*pRyP-9kgj?M&QwuBW@Icblmv8rHL0i98Eb zu*!OQ7&g}i_d1(PnaS8lodFSy>#xIbeIt3gQFCG`m2tQn$-P5kJ-8FL54EU(6FrA^ zi`>Cw_Vvx_I6bq^PxLE2dwk)Vx1Jf`DM_&zX3BYbO3cNj^~}3%6frgGy-aTAkwui~ z^V)iO$5o|n5>-W1pSs{C#9ZIrU zO7R~c#ch>?LbfO?6(o-S^N6>$PrKPX`DPq6uVR+zbe|S<@}eUaR18f zB5u>%W%kL%!wHh5xWo4LPR~vsZ`UXHLOPEhg!|!}DOEjeZq;4pjD=|Ii2v-t8|K|t zsbMsO>35drM$J|FuiiP0$)qTT9diY1_5bzUNFWctjgYeen#cK~-cQf`eg5l*;rl=T E0S%FXwg3PC delta 1413 zcmYjRJ8xY@5RPGgLcljl;#}KFh=dgFYhDdX=?YP%vvziOBuijGiYS31N|`b%nv|4? z0^u${A!X<&DN!V95Oc8%+~(+>J+t3@kD0fxuD^YC{oAK|Pv3d^?oZ*_%?;bEBO=FH za-2*cgVL0?Ufv8R+%#j(gDZ$6;xt>23^uM^J3T%7@{3a%RLZWh$0{Vo20$h2I=B_$ zWbJ}x59RBBMK&?5)2?Nh?Ej$oU~rv4%kOtN;!XYn)frSp8p_>e=9ZiwX?4-+`gI$& z`&NcXL9L=Qic)N?SAq53VK{tTMs*`0d03$4nP%eB+Qcj1HkesTGG|q*r=pJJTG`dP zMP+hLC@VVvwn!<q&z+R!O z*GFNq-;%O`r$W%2mCn?PGhcrmg&P}1?Uq!@T6bZJ4+*H#SPzfG_9S(5KptYf#iktF zj9Bx|<+F49{B(Xb&!7Agn#;`8q=Y!)AV!()Jw}VUruD*a+w4p;pN%*PJ0$m*EDrDF z^|8Ae!2{PFToYsk_VG=n7hZoIJH5^DGp*n5?xgoO;G(0i0dfS2 zbC$$$-M<$eZAei_@% diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/bt_gamepad.cpython-312-aarch64-linux-gnu.so index 5507056c3143be77af8d8886664cd2bd84a679c9..6c127002d92fde9212368cbe346bfc8fb80be2a3 100755 GIT binary patch delta 1519 zcmYjRJ&&735ccsRB$_By;!vf82JOe}>~4cZLrFnLf!@r{&IF@7+t@yIqR3H1bkM&4 z0PzC|mpdg#3aS*8{0x2rbKkKnxp+q2=WFK8+xu_c-v8Y09e5(Gz$_(-$v?axA5$h_04ODPVOP0z?gU zHXE0#%>nH%ew2}p7Tei4F1}xn7#yn>AaKD;K}@Akkzn(ecz z?QpkSEw|%VWI40X<@}@37wIfDQ;H41wdg9>-gJ6!I(+^xv9B&h8w%u2HGB1daax|5 zGKStgc5xg+@G5U>Em9iv`5fO@L zq*x)aFyEf9I<-{19bqbJGplFX>(Qr9hUkqN& zd6&QkG*7gYkX;~)BdNKu*p5%>K-Sdlh3S`9!=rg>SbYQg&z^iOBrL^jZ`1j!q0C8R zbZi}Ov00-Hi=@Hfbno>rw_3)8fLZLhnkw0#{X=ilXRn9H$JWmXfMCV;K?EseFOd8V z%~V-4w^W<6wy;ynIb~`$I6*6B7!~h;L$&n52!P4m?r5{SmD>m-aA_ggc4D-tlqCC4 ztR>ssYJKM)TQQsyU${oJ2cZ)7=xO@keDDu1n(nnTl2%BrLkKk{oxVIDo*ZYNA=&mu z^9K`}TyN6Jo>YLR~iF{_0(7AO$WQ zw8J1dN8hm(>y*3p;_DI33`x?#dagNu?IRnb+h%LBcc7}WBWr87CV6oXZ_Lc7-2g_e zb|4@p*VO9KPJaGt`09PDBKaO{QGumPj&>J}>uh%L=~bnoWmh_I^kyxKuN;lr9d29C zHJ4O_-6?cz8)($-a664jrJ8RsRBNSIw)1q0ACH~0aPDAbv>z>uXhpak7>z!v9a|u= x>mtxyw<6u)RHB_Nl)xG&K=xYmyLfX5oLmm6Ia@+w3zr11k~{hL@8P>A{{s~qw?qH{ delta 1519 zcmY*ZyRIBX5S_~)BofP!y(V%93F=36byb2yLP$VHfW}?j)n?K4?y|c^7J)B;YRE0;_CAkSATkN^5DJS$Np#mgq|5Agdp02 zM`#$J==uFeBb_W*Qs)LawUj9$X74ee=K1eG#@`kpgq{j|m5>`Iaj{iRoaSH7$8Q%o zN%hJ#iq}wUt1TxRck`9U<4t=w1E`1!7L1uf0tn89`HRORo%I&8E%i>lcg2N9*>_AZ z4AW}8y;Dw?Kk8KOEqB8-Ex+GP&QpR~sx#=JFtzHiG%wbFtfxpES~rMBSFu8_wFK_N zAb0os^=dcmR9Az2$Nn3W7A&ku5*Z&rbxwt~hWXl)@$>6gdhJNDl4g!A1I4W3=G7Bp zmb5ENS3~2)H&o9KIlB4RC&r9G*|{bxIZLm(NA(d7NVa!ZtL5tUYepa#da21|PtG}F zlM~uOfz931oxWz~0s~8MA+?&(Nh|6KNwWHGzg=#ovf3>V#D=}z+Yj?M7vqNua0pSz zQDLtRq^8=ULYnVij2|y3`DAxYHAizqNCF+Yc$hCQ#*ePK)RPA^T8^^_Nk97K-;43) z$ywH7I8760#xRLf$B5L(&@}yFS#?^j`uc$8)m@T-wS_Tx4ulvvgj}7oy58Fy8ejIc zn1CwRlsyw*bBZNEh{LelO}EP(-IQi8%s)RJZ!9SEOvoh8C&5^XBy)Af`SR&Vi{z>( z#TfE|K?epW$gR#-o{fuz2cI)!Y?UcC>>i5wzvlU~XXDMY=BPKMZsGu!9!)(&8evP(pM{K>^)?{;^J}l_X-Snyqa(WD8EBJPf;i+3w%cRcTp)rHQvV{0mH{@`--*QJyuk)dZxA+toYiC~?-yc}R5Igi%5po^^=iLepPuUWH8*wLc4JD#a4FiAYZo?1(^gBaJW423gPIl^C|C{-#n029kz?8Zue*Zi88I_+J zJgUVer4*=R^^1$0-`$TdyS;wB|Ezt@ySs<|j`Lz&S6NC~^GM)14x7J^;loDKcr9l@ zE)l?*Mx{J-zCEpg90uCrjap;}h#Matiyf^+C;P z5w=3lC{ne0PBh;?uOmeYh&!yW Tc2f6Ivc<9DJ^y(Q*Ps3YXe^Wb delta 514 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 $AXK)Xej5Tb!v=IC)Fqgs#)( zH2KXbqUQBU+pqLm_pSfPF@{ez&))SKti9a6L|6;|GM{HBHO&}xCAn*Iwf-^Io>xzg zujqbzPYd_4l@nJD-CMiG^OH9|I~f0-85LQ3QSsI@!^hSL8C@g98eSvBSR*&PMMm_X zE3tq5wb{8|R!HNGJ?ebub!&#TN~a|apPP#{%ji=2)XaaLHyo5uYfY2R2dmUoc3T>? zw)58(cZM&mG;iN@_13GO*Oj?=Y;w;#4|+6rJM;FVYJ0}8NiMmqrVqH2ny_U{nS+}O zPB)1uyRuu}2;25EPMPeH;^60su=JL&JL+aP-S~u3Zd&B3NzHK&^{VTRv z%≫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 delta 47331 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 diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/kwp2000.cpython-312-aarch64-linux-gnu.so index 97b04a120847167beb4ed1e9d0639d471a768a08..1aaa50e26527815a3e08deb763fb13f81b36a79e 100755 GIT binary patch delta 519 zcmWkrv2KCBg!%vsOqJ}|8QcD?keE=PfRQXb0YXejeH%tb z*ccJ{El+p4JD>dU_36XjAL-Ba^K2#>!={Z!GXzLYG1iltbbH8#3&5OC!WNs4T%zLo zbd%m4Zt7!9rZT#=DLg{3bXxyz(&bTWVeX)HdryW+5Mzwy>*_YWILuk+1d_pGnYQ^h z#*p>-HoZQqO64eJMxC{xceTvD+4_Cf3J1uLlASVY;hAaQ?Y3T?HrqxK-vh=5?9>P+tiPx9>QFDvB{r5b6CUcF=^>?n^v-zU3xraXG|);hZm OL+Z%z`1V8k_T@ijbeN_9 delta 519 zcmWlVy=s<05QW(k;spr4rIlFD|IT(+k_)h~3heIemL^|w?D9_z_^M>-Sj;ImeiTYUZ=036usKd%ZmEZJ@dt8*NlnBIJod zqpYh_@`D8nAx%>eN1$AzGR(HVpAsCKBx?@xeZpa)P=PEy*56Zlb#!kvS{v-4F*sKe znwayl+nu-doz6-?*J4r$yol*$ez-mRfS zEU!0rJCTj*=-8_aA6+wz=Gyao{B)NtFAl@10(Co^5A0Ot1{q!-e||{q;u%Ry&D?gj QK2@Cy=f}4n)3-1G0c^06SpWb4 diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/manage_hephaestusd.cpython-312-aarch64-linux-gnu.so index a3fc0917911d1665b89591b783275c1ce51ee55a..f8e0e14d366f75983f8952f02341f3bf3b38cc27 100755 GIT binary patch delta 201 zcmXwyF=_)r3`N)A+`*M?NRv_;&5TBU&XHv_8o@Tk3n67Lu|9;$fRA7&=gKy&J`djG zUoYG1W&87S-zj$Wm`#giERnIJS!%F+-DmC^yoPEZT?%_u@JtehVH~IVJd(#ISw#{u zlvFh~&M0BoKi*1ovml8%t3XVVF+S=W#jymfOqU>-#^IWIV0_ delta 201 zcmXxeJ!%6n5QgCm*mp>k7}BKtG@6k#ea?|ZBhA7#!3N_pmslUdrNKw=&$;3z2Y4Ue z({Xh=uFl`rS5!%`Cag|C5|$7qg)E2bE~AA=oh?SBtR6DNT+=X&A z8W2&DWqG@O7UCj3ParD{V(qOP*Czk5NXw;7or-IY;K?Y0l3spqczHKt_NN^rbjEYf WtA*Bl80MdOzgaf-a#=q#N;9!ENZ#D$SG5ZOv6C35 diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/tp20.cpython-312-aarch64-linux-gnu.so index 7d34cfc7c2b8c857d35a308b3df3a6077342da0d..79cc2c52a5aee56f67bd200c7bef743fad4b379e 100755 GIT binary patch delta 299 zcmWlTF-`+P3`KVuloOEU7Blv&XWUVyOHc~RV0%0gO$369id$?)lPe&l;|SE0IR!P# zZ=Upur++!EE~nM|XSm<4TXommQ3_czOLbxuO7n3WZa2V?V)nwlpcNx(jjd1|h8I7! zVOf*ce+-Ai?RIb*D@8zlKsgHrUL^C#VtOE=@po%;|OSEPl2Yq z=CSYjxI7=1@1Nm*v*JoxYjTIC4W)Evqm1)m6K>a-4XnmQqvDX*bF5hy(qi%A2U}dS z{`${izkhsw+EW4`bd_eqWypw*mExFxH{oH@Rxm zx_gseY8RM4w&7-FT_V(41&b$+ojejV&fnV*C%x=(($sZuapz1!GgdoY--Vwrfo4-L lSsghd6lmtHQJ=4NVLgdB!GOjBC`p{PNQtSO#xA^l{Q)Z?Re}Hj diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/hephaestus/vw_pq_flasher.cpython-312-aarch64-linux-gnu.so index fecd9330195eeb6e7183b16f4d34d2be3d9b6e98..7af788c2470659fe49a9d9299705d10b88887da3 100755 GIT binary patch delta 3173 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 KrrlUJMe<+%&sbUj delta 3169 zcmYjRdt6Ov7jBypoYwsOpV|SE|%~<_aprc%G z_zBz}UJV3lAwXvbIB1{ShdIkW&(SVtuE}H_?OGdtq710eI!Qm5nZ1`*y>YER(4&1D6C(rU+Q=>LGN46Uw5?YTv}um+ zum>h;s&;tkx6K)NuIWfH*Gx(X7`2~W%K%XS&k!H!RHB#W>uJ0skmh@7xpOcy;+mxIKJkoASv6c@XlA@v0 zEHnjsmJT~g$uZZARr?J)%fC3W>h02=x9Z`uLehq9m1G}jo%XH?0@}6N&*U>@Q@nJ! zX294l~*Vr0izj?KoE*#5tzXQi03#62E|A-`9TH4ax6`f6bWLW0HF*)z%Y+N zlxS-%pQm6MoI)9h#6So^VT$5O5M?Qt5aZ3|q=FG327*AA$50kxNetx>DIG_|T64LB zf*?VJW*`E=I26K2f<}1~#YspUVAQ~iKTEH0bskE1*q-IGPB`B2Rr6tdT zEJL6)sHYbi8Xmnq6y`9TgGs3@o+cRtW-)>#P>L4aEamSNltd84p#;WZ1c~4{0YNy7 z^HN<_@>mZ{kk&9pfFv&kVUPzg4n_%FPj557VPkkyhpmZz&Vl>Q(J>w*LXn_DJM!+$S;3ygt z1Omcw6ytOuHgacue?|}xhQfIeCJ7FQ1e`EE7Mmf$&@!leO0K!TfxkQ^22$+zO0}fC>P9Og?o4byp6+Jz_w?!s zeaN={Kf?23k~2H+reL!+2=8k@4wTp3(z>r(=T_bOPjlm7!U5*TGe%v9nUL2!JvYR|^^zjaj_3Tjn;FAefLuRR1LP7rg%Dtv`OILws`z}9) z&)r;baLMhu#Gec0GrVmAE&VgTYg_$n&WO2zHu@%|nKw4%&a652ji^oW%!yFcm>6_F zdYoi>#I(-1tY`NR0$)yX&&aBILT@C_uJV|1PX^atuo+z2V6n!3`9J$^j)6pXjG&; z8h!U&c>L1Nq~di>g_L#GeLFs@)+8Z4KTH1Sf)n3|ILyeK-PLgVKfWgEftxCVt#1fHt8Y(0i`_=S|EziC z;ajJh1mBR&S3sNeRpst!Wg7-`gCw){cnCW3SCE#OsP1U4S)IH0<51chk6qh%bkZVYzkvAd_vu-N^TvJT zsEz~E4PI=$;=HB%RWi@n8JBiN-}EX<3GS=kHQ&;zG~=SRa+AFa^m6g$lvy_Yfx5== zljVLSJs5)SUb*x03iqz6!QT=VE6>YW?0(0m!F+I=}Tpg%%g)HC|*sps}-p7YkCKt8a04F9Xe1^g6~>%@(0I~D`A(_C!EMl2VOcl%(pt}wDMFK-QM=2kbSCH zzjgY)gNxOM+0!hihW@=*@N-q>G!$^hV5NFTeMEx|!pnpU{1EnRIlul~&B5A5Y&oIO|T$(}@qGQ_qM8jYeKLw&!Ha z2Ynlt>v+}}HjPWwrZ>_p)pjdDKiPP(2I^In#zSapHywBcE+4sy| z6E#PG%a&Yleap@Zh;U~+Rc!Q~@##*pEc@e2*QjLILS0mWkq-)aqp%Tcd{i5Q!4;4H zGEf#T3+(B*e#5|NN^C*Nh?n)mS%*Pq>;8MU&UwBu%Nx5VAS>h6H>W7qU4w_m*w~zC z(7#pKnEdtbBH!rV!srhdtEu3CeR{#yEuAY8%HB*k;ve6h&bl{(FY>C`va|D-JJj#o zYMTcCwK&7U`0g!w<{^0V(!R@vKdTHjmAQAe>~4SlGBeKmeL#PC=!J#V#$7>!sVi2W z@)#v%x~!+x?zANjcu(vupE2sZ@ArZ7)3+|r5uo9@@qP<4bACFyOW7i<{f}|81AHJ>a;+cV$^nPT4Vy zeq%;}34T@kd2#r~Cau}Jrtrmc&N+V<<~ z?x$*NzxC>#4W|bjF8MT;t7m;`<@65@l)r!V_mf63rZ==@sC$)|+2Yb+ZQP)=9mNsq7jv-){>&GIUp`-jzy=E+6r2Fxc{FM>lpxbYt?`tXf9X9$CW&Z_c C&O2=Y diff --git a/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so b/artifacts/iqpilot_hephaestusd_private/python/iqpilot_private/konn3kt/uploaderd/iquploaderd.cpython-312-aarch64-linux-gnu.so index e48e0fe968ecb6cc54759bb4bdacf2e49e63ebb3..f1808a571c96d7b1fad03c6331cfc66089445ba4 100755 GIT binary patch delta 675 zcmYjPyKa^-4E-CSP8A!{H+Je(Aje7Uc&Qi|Iw1xIwqK5uNF6{0Ayzu@4qqpp0;xkK z9)X#6U}wf$s*)`^$M!isxxU@IzTLa}wDTqWJXnTQ0kRy4a>~gRkh7?*4-dosdCg>8 zBB=J#5>x4rcyiusw%dz07w@;*&A;RKx0l<}i`bZ4s+!H%u~v;_ZT)ZDET8oTFHe(~GUkTt6R&Ws%G{yP|ThxkApCytPmMb{zH> zj%Zy+>I!X?F}S!bMOb%F92J;^?xiqsbF8AIEYQ}olW_S;v4=^K@aF7sc=zCAwh=K~Cf}m=KDCSIy4k#b@;6JY2#vriMr!^g;>f=3 zd)%fbajhORQK<#Sblvy3*3^2Xfi_VwbDYBe;g7ZrN-NPMVf5^YML}+!VR-rD7m}#A A8UO$Q delta 675 zcmYjPyKYu73~nRTsbWJqW2asPa_rbnmWqLa2{ACR{Yv6k>HsPTvC@HeIGuP3q<^Ty zBQWz0?98N;TaqREV*9(~`ey(7X8-Er?&t91aLJv!vSF;s?(=jWBPp);kHW!I^-50B z3w9YX2}x^|Bkt^MHW#li-fcEJzt_CKx!fcuP(*u`N&}=(OqMG0`u-?fFQu^;OLH7+ zCJ~KMP=>CD$Kh(hQ3vO!#9%lQP^s#Wbp3K19_KL%57pds(0tgU4o-facRJD8S2D+LnJTH?N}L{aThC9!<;!Tdb1GBInuiZA1_tBKzsb4^ zmBP%!(P8`SEPUHt zL>rVAYc)uaW;8QJ74+@-!|?XrheDEjD`?$Nif{zXw_(0|beAO{wp1C))R2o?^FDe1 z!<##`B4d`RNpvw9|Kq*uu-Vu~BbeT4Dl@IW^$#{;*ld1+Y}n1?@XBNR1jCE(KLHk2 Bx3mBN diff --git a/system/hardware/hardwared.py b/system/hardware/hardwared.py index 3ccf2cb..03af458 100755 --- a/system/hardware/hardwared.py +++ b/system/hardware/hardwared.py @@ -34,6 +34,10 @@ TEMP_TAU = 5. # 5s time constant DISCONNECT_TIMEOUT = 5. # wait 5 seconds before going offroad after disconnect so you get an alert PANDA_STATES_TIMEOUT = round(1000 / SERVICE_LIST['pandaStates'].frequency * 1.5) # 1.5x the expected pandaState frequency ONROAD_CYCLE_TIME = 1 # seconds to wait offroad after requesting an onroad cycle +CAN_STARTUP_RECOVERY_DELAY = 3. # require a persistent CAN timeout before cycling onroad processes +CAN_STARTUP_RECOVERY_WINDOW = 30. # only recover shortly after ignition turns on +CAN_STARTUP_RECOVERY_COOLDOWN = 5. # allow the restarted car stack time to initialize +CAN_STARTUP_RECOVERY_MAX_ATTEMPTS = 2 ThermalBand = namedtuple("ThermalBand", ['min_temp', 'max_temp']) HardwareState = namedtuple("HardwareState", ['network_type', 'network_info', 'network_strength', 'network_stats', @@ -55,6 +59,54 @@ prev_offroad_states: dict[str, tuple[bool, str | None]] = {} ALLOWED_TICI_BRANCHES = {"release-new", "release-tici", "master-mici", "beta", "beta-pq", "release-prebuilt"} +class CanStartupRecovery: + """Bounded recovery for a car stack that starts without a usable CAN stream.""" + + def __init__(self) -> None: + self.ignition_on_ts: float | None = None + self.timeout_started_ts: float | None = None + self.last_attempt_ts: float | None = None + self.attempts = 0 + + def update(self, now: float, ignition: bool, started: bool, engaged: bool, + car_state_alive: bool, can_timeout: bool, v_ego: float) -> bool: + if not ignition: + self.ignition_on_ts = None + self.timeout_started_ts = None + self.last_attempt_ts = None + self.attempts = 0 + return False + + if self.ignition_on_ts is None: + self.ignition_on_ts = now + + eligible = ( + started + and not engaged + and car_state_alive + and can_timeout + and abs(v_ego) < 0.1 + and (now - self.ignition_on_ts) <= CAN_STARTUP_RECOVERY_WINDOW + and self.attempts < CAN_STARTUP_RECOVERY_MAX_ATTEMPTS + and (self.last_attempt_ts is None or (now - self.last_attempt_ts) >= CAN_STARTUP_RECOVERY_COOLDOWN) + ) + if not eligible: + self.timeout_started_ts = None + return False + + if self.timeout_started_ts is None: + self.timeout_started_ts = now + return False + + if (now - self.timeout_started_ts) < CAN_STARTUP_RECOVERY_DELAY: + return False + + self.attempts += 1 + self.last_attempt_ts = now + self.timeout_started_ts = None + return True + + def get_top_memory_processes(limit: int = 5) -> list[dict[str, object]]: procs: list[dict[str, object]] = [] for proc in psutil.process_iter(['pid', 'name', 'memory_info', 'memory_percent']): @@ -212,7 +264,7 @@ def hw_state_thread(end_event, hw_queue): def hardware_thread(end_event, hw_queue) -> None: pm = messaging.PubMaster(['deviceState', 'iqPerfTrace']) - sm = messaging.SubMaster(["peripheralState", "gpsLocationExternal", "selfdriveState", "pandaStates"], poll="pandaStates") + sm = messaging.SubMaster(["peripheralState", "gpsLocationExternal", "selfdriveState", "pandaStates", "carState"], poll="pandaStates") perf = PerfTraceEmitter("hardwared", pubmaster=pm) count = 0 @@ -250,6 +302,7 @@ def hardware_thread(end_event, hw_queue) -> None: low_power = False low_power_prev = False offroad_cycle_count = 0 + can_startup_recovery = CanStartupRecovery() params = Params() power_monitor = PowerMonitoring() @@ -274,6 +327,19 @@ def hardware_thread(end_event, hw_queue) -> None: if params.get_bool("OnroadCycleRequested"): params.put_bool("OnroadCycleRequested", False) offroad_cycle_count = sm.frame + + car_state = sm['carState'] + if can_startup_recovery.update( + time.monotonic(), + ignition=onroad_conditions["ignition"], + started=started_ts is not None, + engaged=sm['selfdriveState'].enabled, + car_state_alive=sm.alive['carState'], + can_timeout=car_state.canTimeout, + v_ego=car_state.vEgo, + ): + offroad_cycle_count = sm.frame + cloudlog.event("automatic CAN startup recovery", attempt=can_startup_recovery.attempts, error=True) onroad_conditions["not_onroad_cycle"] = (sm.frame - offroad_cycle_count) >= ONROAD_CYCLE_TIME * SERVICE_LIST['pandaStates'].frequency if sm.updated['pandaStates'] and len(pandaStates) > 0: diff --git a/system/hardware/tests/test_hardwared.py b/system/hardware/tests/test_hardwared.py index 8203def..5bfec9c 100644 --- a/system/hardware/tests/test_hardwared.py +++ b/system/hardware/tests/test_hardwared.py @@ -1,6 +1,13 @@ from types import SimpleNamespace -from openpilot.system.hardware.hardwared import ALLOWED_TICI_BRANCHES, is_supported_tici_branch +from openpilot.system.hardware.hardwared import ( + ALLOWED_TICI_BRANCHES, + CAN_STARTUP_RECOVERY_COOLDOWN, + CAN_STARTUP_RECOVERY_DELAY, + CAN_STARTUP_RECOVERY_MAX_ATTEMPTS, + CanStartupRecovery, + is_supported_tici_branch, +) def test_beta_pq_allowed_for_tici(): @@ -17,3 +24,52 @@ def test_tici_channel_type_allowed(): def test_unsupported_branch_rejected_for_tici(): metadata = SimpleNamespace(channel="random-branch", channel_type="dev") assert not is_supported_tici_branch(metadata) + + +def recovery_update(recovery: CanStartupRecovery, now: float, **kwargs) -> bool: + defaults = { + "ignition": True, + "started": True, + "engaged": False, + "car_state_alive": True, + "can_timeout": True, + "v_ego": 0., + } + return recovery.update(now, **(defaults | kwargs)) + + +def test_can_startup_recovery_requires_persistent_timeout(): + recovery = CanStartupRecovery() + assert not recovery_update(recovery, 10.) + assert not recovery_update(recovery, 10. + CAN_STARTUP_RECOVERY_DELAY - 0.1) + assert recovery_update(recovery, 10. + CAN_STARTUP_RECOVERY_DELAY) + + +def test_can_startup_recovery_only_when_safe(): + for unsafe_state in ( + {"started": False}, + {"engaged": True}, + {"car_state_alive": False}, + {"can_timeout": False}, + {"v_ego": 0.2}, + ): + recovery = CanStartupRecovery() + assert not recovery_update(recovery, 10., **unsafe_state) + assert not recovery_update(recovery, 10. + CAN_STARTUP_RECOVERY_DELAY, **unsafe_state) + + +def test_can_startup_recovery_is_bounded_and_resets_next_ignition(): + recovery = CanStartupRecovery() + now = 10. + for _ in range(CAN_STARTUP_RECOVERY_MAX_ATTEMPTS): + assert not recovery_update(recovery, now) + now += CAN_STARTUP_RECOVERY_DELAY + assert recovery_update(recovery, now) + now += CAN_STARTUP_RECOVERY_COOLDOWN + + assert not recovery_update(recovery, now) + assert not recovery_update(recovery, now + CAN_STARTUP_RECOVERY_DELAY) + + assert not recovery_update(recovery, now + 10., ignition=False) + assert not recovery_update(recovery, now + 11.) + assert recovery_update(recovery, now + 11. + CAN_STARTUP_RECOVERY_DELAY)