1 line
14 KiB
XML
1 line
14 KiB
XML
<xml version="Mixly 3.0 rc0" board="Python ESP32-C2@MixGo MINI" shown="block"><block type="analog_ble_mouse_init" id="]OL7NOg80Q4Qlz^ncDTe" x="0" y="0"><value name="name"><shadow type="text" id="TEYATk/#d3iGhrY_HRjS"><field name="TEXT">ble_Mouse</field></shadow></value><next><block type="variables_set" id=".QJ!Uq!hB@jM9QHA$cnt"><field name="VAR">SENSITIVITY</field><comment pinned="false" h="80" w="160">灵敏度</comment><value name="VALUE"><block type="math_number" id="8JBbGfQZfW][b?U].2}z"><field name="NUM">30</field></block></value><next><block type="variables_set" id="g21m/~CQ5a(T^Vrn?m4E"><field name="VAR">MOVE_THRESHOLD</field><comment pinned="false" h="80" w="160">移动阈值</comment><value name="VALUE"><block type="math_number" id="o6bZI[;H||hvW4)^s|)k"><field name="NUM">0.05</field></block></value><next><block type="variables_set" id="D1v{pdA6XvbG?{TpE]:)"><field name="VAR">smooth_x</field><comment pinned="false" h="80" w="160">平滑处理的历史数据</comment><value name="VALUE"><block type="math_number" id="t|d{UVV-yB?Go1OS!Qdv"><field name="NUM">0</field></block></value><next><block type="variables_set" id="4j{.toz_Iv)Y+cFMV;Cw"><field name="VAR">smooth_y</field><comment pinned="false" h="80" w="160">平滑处理的历史数据</comment><value name="VALUE"><block type="math_number" id="S#Gx*V#2:!8P$DiPvcxz"><field name="NUM">0</field></block></value><next><block type="variables_set" id="q4,c{caXx^Y$|2CZ?L4G"><field name="VAR">ALPHA</field><comment pinned="false" h="80" w="160">指数平滑因子(0 < ALPHA < 1)</comment><value name="VALUE"><block type="math_number" id="`HO.XHE_vPn3osH;M4pJ"><field name="NUM">0.8</field></block></value><next><block type="controls_whileUntil" id="D.=49w(^1;q$~1,3X_9b"><field name="MODE">WHILE</field><value name="BOOL"><shadow type="logic_boolean" id="]xk_=V0`T@C`z#D!W5W8"><field name="BOOL">TRUE</field></shadow></value><statement name="DO"><block type="variables_set" id="b8^2dluBg!]Vx]$sKeDZ"><field name="VAR">raw_x</field><value name="VALUE"><block type="sensor_get_acceleration" id="Uv`yKI~cO.M?w9J]E_`h"><field name="key">[0]</field></block></value><next><block type="variables_set" id="$0AgUdTu].a{D8rIj7wg"><field name="VAR">raw_y</field><value name="VALUE"><block type="sensor_get_acceleration" id="4SUq9XPKbz[Z(NgeQ{2g"><field name="key">[1]</field></block></value><next><block type="controls_if" id="x1q]vAaxOCF~-fR)?vWz"><comment pinned="false" h="80" w="160">忽略小幅移动</comment><value name="IF0"><block type="logic_compare" id="J@c7xzmQ)[bJDkWE)U-]"><field name="OP">LT</field><value name="A"><block type="math_to_int" id="5#`jgYqG:!dyVb?tU_;u"><field name="OP">fabs</field><value name="A"><shadow type="math_number" id="S#6UGVWD=+/)G]md0m/6"><field name="NUM">0.998</field></shadow><block type="variables_get" id="lDQ=Q~C{}[#H}GD9Pit^"><field name="VAR">raw_x</field></block></value></block></value><value name="B"><block type="variables_get" id="m(#(-5*L:VWMPwr+5SH:"><field name="VAR">MOVE_THRESHOLD</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="8^{aeJe[2H,q;NP~FfhD"><field name="VAR">raw_x</field><value name="VALUE"><block type="math_number" id="Kpz3f3-/?d`2/KO*?*J7"><field name="NUM">0</field></block></value></block></statement><next><block type="controls_if" id="_u]j!;*Mj+H~RW?.I!0o"><comment pinned="false" h="80" w="160">忽略小幅移动</comment><value name="IF0"><block type="logic_compare" id="rDZ/LD$,=QkOVYFLUa1|"><field name="OP">LT</field><value name="A"><block type="math_to_int" id="O.a3jJ/lv;u_E~nTyP|`"><field name="OP">fabs</field><value name="A"><shadow type="math_number" id="gV*V0gFz#b3j?9_*uy@1"><field name="NUM">0.998</field></shadow><block type="variables_get" id="Vlvc3!UW4^@mKhY0+Gw_"><field name="VAR">raw_y</field></block></value></block></value><value name="B"><block type="variables_get" id="~)g1K`?6y/U.cRG0Y7+9"><field name="VAR">MOVE_THRESHOLD</field></block></value></block></value><statement name="DO0"><block type="variables_set" id="Mp3a1:3p[l1j$p,#]eoe"><field name="VAR">raw_y</field><value name="VALUE"><block type="math_number" id="/Hh{?u1XHQq82A{02ori"><field name="NUM">0</field></block></value></block></statement><next><block type="variables_set" id="-C9)T322Aeo`=Bv|Tz#*"><field name="VAR">x</field><value name="VALUE"><block type="text_to_number" id="eyUK1TZ2/^P((6Uih|Xw"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="e05$}]IIO!J@9iZ8O|YU"><field name="VAR">x</field></shadow><block type="math_arithmetic" id=".R3E-4t86C8Ulgp`G}K|"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="8Nif=PkEz)S*(I7hH$7c"><field name="NUM">1</field></shadow><block type="variables_get" id="hkGP)vXG9=tcK({aP0(8"><field name="VAR">raw_x</field></block></value><value name="B"><shadow type="math_number" id="/JZ5I)sESRw@~q7#4D4@"><field name="NUM">1</field></shadow><block type="variables_get" id=",3/+amKGE@I;$E!#Ty.y"><field name="VAR">SENSITIVITY</field></block></value></block></value></block></value><next><block type="variables_set" id="{YSNIXLxwA-N?md^q.e["><field name="VAR">y</field><value name="VALUE"><block type="text_to_number" id="432Z?l$7PN;GtDOzcJJi"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="2ASn#f-lj7?w/}(kikfI"><field name="VAR">x</field></shadow><block type="math_arithmetic" id="kCHAid+qSYiq5$yT[Oc+"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="Q~3x9;qJ*j_.9|3OVOHc"><field name="NUM">1</field></shadow><block type="variables_get" id="j=326r9-Ndgn?[|uSZM@"><field name="VAR">raw_y</field></block></value><value name="B"><shadow type="math_number" id="^_qGC~lJ`fxh(}cb7-U:"><field name="NUM">1</field></shadow><block type="variables_get" id="[z,Fsx{v~KM8n/2_tQ~."><field name="VAR">SENSITIVITY</field></block></value></block></value></block></value><next><block type="variables_set" id="~;AWQ$^2@^u^rQf5IfKE"><field name="VAR">smooth_x</field><comment pinned="false" h="80" w="160">平滑处理</comment><value name="VALUE"><block type="math_arithmetic" id=",BN0hVbYg,Ol,k@J?k@!"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="`BD5W!fiY,*wMI}#QGXk"><field name="NUM">1</field></shadow><block type="math_arithmetic" id="u++mz9$2bN-.3nUmjT:I"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="J5e`f(x8SxKa[RY[$c]3"><field name="NUM">1</field></shadow><block type="variables_get" id="ZdZu+$,Sz*e`.W.WL!]p"><field name="VAR">ALPHA</field></block></value><value name="B"><shadow type="math_number" id="V?xKI7XW+L[@2`X*iq`z"><field name="NUM">1</field></shadow><block type="variables_get" id="M?z?hMbd`^-ML;(bINx$"><field name="VAR">smooth_x</field></block></value></block></value><value name="B"><shadow type="math_number" id="u5zk*nE217WZ[dfmHvq]"><field name="NUM">1</field></shadow><block type="math_arithmetic" id="su2A_.[fAt-D,Q!|gaJz"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="_Fwmyu61dH*_Sji1=i$L"><field name="NUM">1</field></shadow><block type="math_arithmetic" id="o,z}eG#PagX6W{6HJxZP"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="Sx2:!Z/!++S[b.t9Oybs"><field name="NUM">1</field></shadow></value><value name="B"><shadow type="math_number" id="Syn+SparQjWxcE;vLAM5"><field name="NUM">1</field></shadow><block type="variables_get" id="IG9jP|K(o.KH/Z;3ppv$"><field name="VAR">ALPHA</field></block></value></block></value><value name="B"><shadow type="math_number" id="!iGj6MV6L2trOOT(djbt"><field name="NUM">1</field></shadow><block type="variables_get" id="KQ^I^*0|ics9OXX/s+$D"><field name="VAR">x</field></block></value></block></value></block></value><next><block type="variables_set" id="mf4j^X_kh=R|V`_5_09w"><field name="VAR">smooth_y</field><comment pinned="false" h="80" w="160">平滑处理</comment><value name="VALUE"><block type="math_arithmetic" id="]A4tv2_oD,;khpu[/..o"><field name="OP">ADD</field><value name="A"><shadow type="math_number" id="bGPT.kS?]5GBSHD*1n{("><field name="NUM">1</field></shadow><block type="math_arithmetic" id="C?spuD-v,6_r#)/~k7vo"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="hpuBLhATcf4r+xkzH,zq"><field name="NUM">1</field></shadow><block type="variables_get" id=")C9#ZY{o-Zy*YL){Oga~"><field name="VAR">ALPHA</field></block></value><value name="B"><shadow type="math_number" id="kg{2Kp@:regCn{s~*r,q"><field name="NUM">1</field></shadow><block type="variables_get" id="j10$}cB7tKt]w;`lg3Re"><field name="VAR">smooth_y</field></block></value></block></value><value name="B"><shadow type="math_number" id="oW)PWxt!$A{8AR3Ja6A="><field name="NUM">1</field></shadow><block type="math_arithmetic" id="-Fa`-lOTr~3Svs{A$cAi"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="rQE+]-4.fAr=#O^vY52("><field name="NUM">1</field></shadow><block type="math_arithmetic" id="f[$_WujyY:DYI7TLD5h;"><field name="OP">MINUS</field><value name="A"><shadow type="math_number" id="sWKKAC,+{b_RPv*kzW=|"><field name="NUM">1</field></shadow></value><value name="B"><shadow type="math_number" id="zJMS#)dj]2Qvw+c_REMB"><field name="NUM">1</field></shadow><block type="variables_get" id="bd9ZfZyHP}klT_@tP1ra"><field name="VAR">ALPHA</field></block></value></block></value><value name="B"><shadow type="math_number" id="R2bEz4xtG`NE}8t=Y.?="><field name="NUM">1</field></shadow><block type="variables_get" id="Vm=TRCXy}bvxnU`Xe14Q"><field name="VAR">y</field></block></value></block></value></block></value><next><block type="controls_if" id="OdeKMrpyAzLE6Gn9LYbq"><mutation elseif="1"></mutation><value name="IF0"><block type="sensor_mixgo_button_was_pressed" id="D]fT$|7w.=d5bZagAN[5"><value name="btn"><shadow type="pins_button" id="NHjwT[,Vtfu~UyMAp;LO"><field name="PIN">B2key</field></shadow></value></block></value><statement name="DO0"><block type="analog_ble_mouse_input" id="?7_=.k8!wGZL!:Y/.*et"><field name="release">False</field><value name="key"><block type="mouse_key" id="fcE[lIpP`=VW6Gl}1XS;"><field name="op">0x01</field></block></value><value name="x"><shadow type="math_number" id="wFl+g@yZ-q(!*^V?{C;I"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="0I@$$AmGl43|XLP4F*|."><field name="NUM">0</field></shadow></value><value name="wheel"><shadow type="math_number" id=";4xJ-iVd@Wr-}bNvf(gI"><field name="NUM">0</field></shadow></value></block></statement><value name="IF1"><block type="sensor_mixgo_button_was_pressed" id="FFsI.zU-:k|X,?qJAS1t"><value name="btn"><shadow type="pins_button" id="Pp2)xi-pc_qdAFL8qG+c"><field name="PIN">B1key</field></shadow></value></block></value><statement name="DO1"><block type="analog_ble_mouse_input" id="_?l~K35zaw;Gzwg-Lq$u"><field name="release">True</field><value name="key"><block type="mouse_key" id="c-P0PQ8QNRL]v6G(6*o9"><field name="op">0x02</field></block></value><value name="x"><shadow type="math_number" id="7w`tVR;|-cs5oDB0fSme"><field name="NUM">0</field></shadow></value><value name="y"><shadow type="math_number" id="9rvO/0`yGUVsrMj@6PXA"><field name="NUM">0</field></shadow></value><value name="wheel"><shadow type="math_number" id="(J~m*#t2f=;GhiS0`3!U"><field name="NUM">0</field></shadow></value></block></statement><next><block type="analog_ble_mouse_input" id="rH_EHX($po*!)6M31X:c"><field name="release">True</field><value name="key"><block type="mouse_key" id="6^(gp}J9(36Errp:S]U,"><field name="op">0x00</field></block></value><value name="x"><shadow type="math_number" id="FY94(^4xcVWjRV5`LYSp"><field name="NUM">0</field></shadow><block type="text_to_number" id="cwus+aJmUFqNFG04=O(("><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="Y{=@JoN:uhD6z]mRRH`u"><field name="VAR">smooth_y</field></shadow></value></block></value><value name="y"><shadow type="math_number" id="(}0NWvL,n@(^chr6.X/1"><field name="NUM">0</field></shadow><block type="text_to_number" id="EFAP9:}!{zoC^=?Tq1KX"><field name="TOWHAT">int</field><value name="VAR"><shadow type="variables_get" id="(*3Bz!@s/w?c}IcmQWbV"><field name="VAR">smooth_y</field></shadow><block type="math_arithmetic" id="=dJzC:]#8[x7}5B!.9x2"><field name="OP">MULTIPLY</field><value name="A"><shadow type="math_number" id="U4soLhzum?q*`guMCJ2."><field name="NUM">1</field></shadow><block type="variables_get" id="9+D3O7,#U@qV_167[F3s"><field name="VAR">smooth_x</field></block></value><value name="B"><shadow type="math_number" id="|OT.4x/GlUBCqKM]81s1"><field name="NUM">-1</field></shadow></value></block></value></block></value><value name="wheel"><shadow type="math_number" id="b+)dP6d;ny6qvC#I:mNx"><field name="NUM">0</field></shadow></value><next><block type="controls_delay_new" id="jv(+q}2RS}j}p97Ei3{:"><field name="Time">ms</field><value name="DELAY_TIME"><shadow type="math_number" id="85TDZ]|-k9?e~OSfvI*h"><field name="NUM">10</field></shadow></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></xml><config>{}</config><code>ZnJvbSBibGVfaGlkX21vdXNlIGltcG9ydCBNb3VzZQpmcm9tIG1peGdvX21pbmkgaW1wb3J0IG9uYm9hcmRfYWNjCmltcG9ydCBtYXRoCmltcG9ydCBtaXhnb19taW5pCmltcG9ydCB0aW1lCgoKYmxlX21vdXNlPU1vdXNlKCdibGVfTW91c2UnKQojIOeBteaVj+W6pgpTRU5TSVRJVklUWSA9IDMwCiMg56e75Yqo6ZiI5YC8Ck1PVkVfVEhSRVNIT0xEID0gMC4wNQojIOW5s+a7keWkhOeQhueahOWOhuWPsuaVsOaNrgpzbW9vdGhfeCA9IDAKIyDlubPmu5HlpITnkIbnmoTljoblj7LmlbDmja4Kc21vb3RoX3kgPSAwCiMg5oyH5pWw5bmz5ruR5Zug5a2Q77yIMCA8IEFMUEhBIDwgMe+8iQpBTFBIQSA9IDAuOAp3aGlsZSBUcnVlOgogICAgcmF3X3ggPSBvbmJvYXJkX2FjYy5hY2NlbGVyYXRpb24oKVswXQogICAgcmF3X3kgPSBvbmJvYXJkX2FjYy5hY2NlbGVyYXRpb24oKVsxXQogICAgIyDlv73nlaXlsI/luYXnp7vliqgKICAgIGlmIG1hdGguZmFicyhyYXdfeCkgPCBNT1ZFX1RIUkVTSE9MRDoKICAgICAgICByYXdfeCA9IDAKICAgICMg5b+955Wl5bCP5bmF56e75YqoCiAgICBpZiBtYXRoLmZhYnMocmF3X3kpIDwgTU9WRV9USFJFU0hPTEQ6CiAgICAgICAgcmF3X3kgPSAwCiAgICB4ID0gaW50KChyYXdfeCAqIFNFTlNJVElWSVRZKSkKICAgIHkgPSBpbnQoKHJhd195ICogU0VOU0lUSVZJVFkpKQogICAgIyDlubPmu5HlpITnkIYKICAgIHNtb290aF94ID0gQUxQSEEgKiBzbW9vdGhfeCArICgxIC0gQUxQSEEpICogeAogICAgIyDlubPmu5HlpITnkIYKICAgIHNtb290aF95ID0gQUxQSEEgKiBzbW9vdGhfeSArICgxIC0gQUxQSEEpICogeQogICAgaWYgbWl4Z29fbWluaS5CMmtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIGJsZV9tb3VzZS5ub3RpZnlfaGlkKDB4MDEsKDAsMCksMCxGYWxzZSkKICAgIGVsaWYgbWl4Z29fbWluaS5CMWtleS53YXNfcHJlc3NlZCgpOgogICAgICAgIGJsZV9tb3VzZS5ub3RpZnlfaGlkKDB4MDIsKDAsMCksMCxUcnVlKQogICAgYmxlX21vdXNlLm5vdGlmeV9oaWQoMHgwMCwoaW50KHNtb290aF95KSxpbnQoKHNtb290aF94ICogLTEpKSksMCxUcnVlKQogICAgdGltZS5zbGVlcF9tcygxMCkK</code> |