From a250656d8fd210d87f1dd3271f9a9db192aa3737 Mon Sep 17 00:00:00 2001 From: jkl <sagitta1618@gmail.com> Date: Tue, 28 Nov 2023 15:10:50 +0100 Subject: [PATCH] WIP docstring ohmpi.py --- doc/build/doctrees/environment.pickle | Bin 70786 -> 864816 bytes doc/build/doctrees/index.doctree | Bin 8057 -> 8107 bytes doc/build/doctrees/source_rst/Ohmpi.doctree | Bin 12915 -> 13024 bytes .../source_rst/V2023.x.x/V2023.doctree | Bin 55259 -> 55610 bytes .../V2023.x.x/V2023_step_01.doctree | Bin 23309 -> 23669 bytes .../V2023.x.x/V2023_step_02.doctree | Bin 103294 -> 104226 bytes .../V2023.x.x/V2023_step_03.doctree | Bin 70901 -> 72181 bytes .../V2023.x.x/V2023_step_04.doctree | Bin 53456 -> 55390 bytes .../source_rst/V2024.x.x/V2024.doctree | Bin 55358 -> 55678 bytes doc/build/doctrees/source_rst/api.doctree | Bin 3556 -> 3600 bytes .../developing_hardware_components.doctree | Bin 10104 -> 10154 bytes .../doctrees/source_rst/v1.xx/V1_01.doctree | Bin 110558 -> 111169 bytes .../doctrees/source_rst/v1.xx/V1_02.doctree | Bin 114606 -> 115296 bytes doc/build/html/.buildinfo | 2 +- .../_sphinx_javascript_frameworks_compat.js | 17 +- doc/build/html/_static/basic.css | 55 ++-- doc/build/html/_static/doctools.js | 132 +------- .../html/_static/documentation_options.js | 5 +- doc/build/html/_static/language_data.js | 2 +- doc/build/html/_static/pygments.css | 1 + doc/build/html/_static/searchtools.js | 109 +++++-- doc/build/html/genindex.html | 10 +- doc/build/html/index.html | 12 +- doc/build/html/py-modindex.html | 10 +- doc/build/html/search.html | 10 +- doc/build/html/searchindex.js | 2 +- doc/build/html/source_rst/Ohmpi.html | 23 +- .../html/source_rst/V2023.x.x/V2023.html | 87 ++--- .../source_rst/V2023.x.x/V2023_step_01.html | 19 +- .../source_rst/V2023.x.x/V2023_step_02.html | 27 +- .../source_rst/V2023.x.x/V2023_step_03.html | 23 +- .../source_rst/V2023.x.x/V2023_step_04.html | 13 +- .../html/source_rst/V2024.x.x/V2024.html | 88 ++--- doc/build/html/source_rst/api.html | 15 +- .../developing_hardware_components.html | 12 +- doc/build/html/source_rst/v1.xx/V1_01.html | 69 ++-- doc/build/html/source_rst/v1.xx/V1_02.html | 71 ++-- index.html | 4 +- ohmpi/ohmpi.py | 306 ++++++++---------- ohmpi_settings.json | 8 - 40 files changed, 516 insertions(+), 616 deletions(-) delete mode 100644 ohmpi_settings.json diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle index d8334135f0ed4c5adc033502222c9b37045fc315..a9ba1d240b6a63b7053608d8f3e7bc7c9887a44a 100644 GIT binary patch literal 864816 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	*{Z51Qox>d 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≠Ena9m9!^zcK3|0@GgrN0rXdTq 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 literal 70786 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 diff --git a/doc/build/doctrees/index.doctree b/doc/build/doctrees/index.doctree index 95cb54e02f92af0201de828886c5f1231e683780..a255fc85ba69a23eca717a20f27899f4f4268ef7 100644 GIT binary patch delta 138 zcmexqx7wbifpzMFjVzm)%<S}YQ&Tb%^|P{b^ivW`67|dTi?a0#it@8klS_*A^D}Y_ zGWGp4asx8;Q}UDbi}Op1l2i3Jzh^QRHR%y4DN4*M&PgoE%+HGl>Pat3EiRr?J4K_1 iwIshJF=vW5Lk|~BO==2|Te?|I;u9ld{bot21Xch#zcbJP delta 87 zcmZ2&|I?18fpu!$MwZP?77oc)F`>n&Ma3~ismVF1xv6<2F)sPZr65LejIn`kenxIV pW{iJEZa`*CN`7)oaeir0a%#-xw@l`un<FGXF)~(f_LfRu1pvIfAl?7~ diff --git a/doc/build/doctrees/source_rst/Ohmpi.doctree b/doc/build/doctrees/source_rst/Ohmpi.doctree index bd22e2d0c2f21af04474b7af2d4bec038b971434..efc8dc3d75cf90f76143708445c73995fcb38762 100644 GIT binary patch delta 1615 zcma)6Z){Ul6yNFky0-h%trKMHHr92H^$$KLWEx}0Ffma&5EGnPf~oCVxxH)m#(S?Z zQ*>&Sq_N*lRrm->F!Bi=_`#SE5)=P?F=&(kjw}W~LjsAx7~(mvd!w6c;+K2hz3=zu zoO92;ceBem_j}4GznyhY!tNK<VlJCct8%uWX47U`eN)qC)p=c$xf#<?HBp?;t1pS- z{=AyiW>iBf=`*>NDWw~xY9ZW!&Pto6=MUxQ(uGt>&sQt>x+@G-JluQ?rqJ(x3J&0N z?kUjlxH|*}-U-H(!y+V#7<Lbi1n5hOKG7`tMM4ZD1Eq|3CHj8#o$9Digh#ZzMjz7{ zQ+|LlQ+o!)OtOhcN9#zPM4HBN&lm7nLrj;A8EE+uPBp{?ZH(W09xTR$H}dLcj1wU4 z@;#1E`*y)4#`{+B_?0iA9N^UOy6<SK?%>6rSn&73O-9>ASmq)qT!bZD@|W8sKoe*8 zpp=m=oNs;RKRe^?J4zzHio<)Ym*Gjg)Ug$BwS~M-*mSuaySgGn@!DdPCX!3gv>Jz9 zSUHA!+dqUPu?IIz&~Le$p`^Yd^TPj?nd~qj(@-YGGF~Sd3<o0PBV;5(GQxftxs9f^ zp^a`F?puL(;e&=gi}m3isY!2`wb3cycte>_SthU&t|LQd5yOdq+ezaHr{Q(duoq!F zC-DG(?ush^&>`NZ!|lVK;3nlS`+#=@KYrK>@&^7GjJTEo2YVCT3-S;09f}HS26>gG z9$tzO>bZ57g8KdT7Pb5CT3{1h4h(mPx%cE%>zD3lUC@q~Biq$hmtF7{nn-MO1^m^I zs<mqtlDu29+b0J0(Sfw#?B@Hhm6^j0nPkC4gW+F4dI825?sedJVoM~huyE~S$Li8* zn9lR7f!L41+H~;Mo?~_O%i`ZX!|(=~COm@cm%*2Nw?WEU=pAbYk9DU1F%K+qOr3RM z>?GjZ1RM&<1vU%G)EZCD-eV<)qi(?U+zCeGxl!5SA&%3q@)X9R2jTR3^d3Tg&Q3mg zV#Nt>N3ZX!JYwqUIirv^^V(dBUfV-@&M^4Ft0<;srVG_%Q^oIKa#>oI@Tb^Gh+D<@ zB)}c(o5aoL#qUW|e#gSs#1;8F^@04Ahl9L7&BH|=zNMj5@y(@+Idfq?XZuLzmc_NQ lO)J}!vJEenM3@4p>9&b0LfWEYsiw$nX)DT<)ju``{{jWC)wTct delta 1593 zcma)6U1*b67|uz)q)pN`{i0Tv)Y_)C>(}(h(lJLFPN@vEQnmgR<O^!k$m?0tbV<Wd z*6E-+vh_lFBYGi>`UAVzjr-=!VE6-qUKSLkYALd-?LtIEHw1m(lcr6(X6)vilauFp z-sk-}-)!vVpmx%E4z6iCM0ZcL%iNcWB~xZH79EPkW5c87)<iVThm_g5p)~>Vk)!5L zi0?XT4kn^zDv?e`V{_ZVWNOs3&Wag<la32wFLr4gMIR=${UVO{w4nGBCs!LTNI($2 zz};GHqmNDi)!=}&&;m6*zVra>F}}@?Wt+eWE+~o6p&t)8?~3o38-N-(++!owcmb=D zSp9g!bw!*j4$>8<x8x^rxj4wLKwYK3ifarCEgNnHgYqVE*xiQU-Xv}?!LvZXX?KgW zkMl#X=d^buPk>px=&2UZ7@jM|441;mrFe|x-b^{XqvPB3fV2sl4G(%d^-t0e{?{$m zmT9isEw+|Ti4FL!tgEz*I1rR!+)`d2GIBo}X(PF2+U8xT+RAo3T|O?h5p!LY+(iG& z&ln3~Ij8ga|J6BFF)9uf*NL!BY2FV$)$2cQph)Djjsp(J^|UQE*R;H0%lC~qSv=5K zq2c2>?PU}Hxe~<r;yPK@@y!{|>)_XVTRw^7oJ46p3H4*0$_U=#tX}P((4vW<RJO;# zz59nc`kLBYjeY)A&R43{L;fEYrb0eJ`-*xyy_{P{SdE38CI=w{XfEVK7G8KIjWmEu zUJ1?r3B7p@jbBi{Sd6yOi@^?GtqW)x<wMK6@>9F;;!UHq-ECJbaMDJSRTILKJ(bP9 zzM$mWT+m*q>7^EV@JiL+Vl6WpiZUq#6H^R-zWTaoXSjPFjx%~F>|o{GgKsX#?!U9@ zp0}gE6ic$gGap<isOA861{%a5#cnC#&y74}$1N3gE>+El^-G|`p=l&&O$Bs^^`=&L zh%q**7g+m<Xvdfq3Vg+}gEF$n0+&Ry#v2SxoMmoh0e3T_@vkOX!BO&aEiYr#FvZoS zk+u_hQbqFqxDW}4{A;kg`6g}*UlN8j9o`|tpVo)1e>hIuA(Xt$&`0n<-lu-cDP9in zeLpY1^YR-l=?VAn;dpHH*hnnJpH<1+3_QvxT1HVa3Z6+r9RrkZ89V?`qVPDU$TO%E LWyJcvW50M0t{2R0 diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023.doctree index 9b31327fc0e761953dba40cff4a6dd0f66d87468..ddf92e4f1fae32e460009bbaec34b5d649f8f7aa 100644 GIT binary patch delta 8045 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 Iuw0q<zk2X(u>b%7 delta 7702 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 diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_01.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_01.doctree index 7d8739e6d0b9d058083af0e66f8a1dc4f3b18d7f..dc616ae514ac1290f2a7d100931600f81d02aabc 100644 GIT binary patch delta 1727 zcmbW1T}&KR6vsJtceWx+fdEoLpnOymmK~Ob0tEz0LCW&A(qaj1rvt3a4(vx}cWp_7 zZDZ1OWwEAbP1-~neK2XG){u$Sz9_^86J87^H8GKxz8E#OrVl(+gZ19KFc5s><!t8M zbN;{oy?gGRy9;YyfpAfHUp=`XJObB<=<|$wWl^1+636ARES?Q$lVVT{sGhNKNDL^x zpjYfyd;?x_JTNAP0ugP@v+*Nop|ChqT~+P0pR=D6^;UADFe7FSXx<60U!Ia8nl~PE z;MD>L#Py$w?g9LRSW-{c37$FnJpNj83e4!XRSMZkk-Cm=mR4>qeO+1!&uv>OIB*-* z@o7%2#X(D-5Ok*&<AE2SK)X@Yg6^_f(qg){&nBeNq9*-b+3y5KXhE$|&l0%k%)-az z)8J(}{IJ3dP55!eX_!W{tq0E2Yy&xKLOH(}@7VT`CKEnt%f%Jj7w|4uY2_+Qm6zcr z{_7~j3A-!(15;9xQlc~|rLM!95dBB{8i3AwIyaM;>llP3mP_wqIo4OKm?ER<JnD{a z_?}Acum6;$)z4VCLqk;koW__XI2~33{<yk8zh>eQ#i4G)b{hn>+5^9ELf=k8w(~W3 zxLd*iQ_~lnML_=qwt-_i<n^-JcYvgr@u{P5H(MAowop(fkvuc5RM(`B?1136byei$ zT{BJ@j5GDCq#?nOcQW2?s3EWJnlaAg^z=jZK;B>g8=ve^Jl{A%M$Ma(De1{g*+Aan z7A#Y=M>6A*GZTHyizH^|ccbeSnZ&t-g<TGsP46zZ__u2Jx7;STxPlO5S$xo0uG?Er zgLT=QloV2bBXn@;=-tc5=B_;`wPvRB!C9esT7MVk+v?ykHh1KJgb&-UkoyVndxty7 z>X!HW_)L2vUAwlgMwm7@x7vHank*O`yTSSSNQ#xs=LTkN2PO}L9hV^srK7o+(dmO1 z@FREP`e)%nrwEe%pz|VFk8DXhH>7h?x5-usc(d)`Hv4(F+I0!~sqPHCZfN#X%?it` zacKHrw+JxF>GQ5$2(e0jzLNrG<Y$pdf$q~XXEflYo(Rk)-1asC8p^YHp|_jNvU1_7 zaV+*e4_Lq1^4`e3pXe*tyZz`t`M>$JfiYO-n7M&`_`$HXoUpabZC&58)#jGq4_ehg z=;UM^%GCdId!Z(l71m^bXi5%y1Ad7<;S-uC6pGKpUy2FgKv<rNyOLthZq|6l>1RYg zG59B>*e!He_Iflepkc=GOnvnDccu#hO{#>22KF8uWZ@W{9@WjlNjhcfFbnH+!|LBO zL}JN)+2;vQ2R)psGKDDbj`GecyerB(q7kKxI^zJv%GDJ)A?;%N!)Z*Ly^>s8mGm!% Ghu}Zu;2h}y delta 1521 zcmbVMT})F~9Or-9OJ-t5A&@G@Rj{*0DALkO0gGKLI9t97tY+)2P|L;Z&DxTds!b&O zcxb3WANaFmI$wM-BC^HY`I#ltgk(N!OJ?@8#5ZGNG-`~-C=Pedxzb?w#>>CAzw`U* zIp_ApH8^nvgs+9~NcfWQ7`h{|R`Ij6luC;!DfXolmlEUR?qn>(9@1h{qcthV#}0|T za=h=5IFgKs>0~Aqliqy{rPAYK$lhpgYB<_(R8-r^DU(`VdmZ2v{=L~n76}IZ>(OG4 z0KxJmt57A^D2sU2Y+YV@Yqmn=ilw2CXJHZlH97?wrM|?o)wL*Xc@3WwIBuM_IEh<_ zOU8PkjFMW_*OmtaKBo+);9>xRqY~|PSvbhCHjdq|+Yd*uqrMBW3@vS^Xhw&&4{Pvo z{RgB~hY4>rR#-2?6jyn;iZtZl4DPa<@O(qSa9USVB5#&=%I1J~IY>2be*tibYdV)f z4BH0aSB4orWf;@d%DT(}<p+Fj^TQw1a+B)<g_SurF4B=#=INX&9m|f($;6EE6a6+Z zlaX!8idcUkVa_hWU7FCc_C5DdQ$IXht$QDHSHV#O^blD2!J_i2>^u%+jUGLA(`xF6 z3iXGYhhRMpyPbw`Q3mQ=jl{C*h)5ygtm`f`^N471#6pXMbgVjJgxRUVRu_;FJw`2! zFpR&ng~_nKa493Ie`giIF&f_j5sda%;*ai|<hY){5c&2fndVA{Kwz7Ypq3gfx@#8B zvDWDE=&5wcw@poY_Cxt?eMw20U5CF2y-hXB&$!Xs3{TJyG*VjJJ4x<n?gn26`A6$@ z2Pb`P3|}%jge=QYmwbnzyi|DK>sgW42Het_0|WN?tMRwaI9Vs~pJ|v5)Cu46s;t(n zJt3&@6j{{^_>p(Vie4M=&%NJ(pL$J@e$B@}9oVkzin^OV!6*+p+0{)F8etU6`>V*P zz<Zx4>`kgW13AtmJ#FNq#?9eakDuf?7oYYl@0qDrf{GhO<<9-ToG%!I1@3t(xRLy> zc`oq$1ug&kcll{@kFL5M!fC#dWdjqS-W+@cU{>ct_jF&qrD4h&Hk#Qx?O<b&o|O`0 z;|qFx%04z;GRkv0GE-|3(YQ389h1^C6Ej;C=8)&=JXcO~Rh}#I8QH=(EI?k%-Q}oe V9bo?Z%9uC%FW}zvq)p)v{0E(D%u)aV diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_02.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_02.doctree index 72f991a7a58907d9b43deabcbea6fa60799b27d3..a1e03ff5a9052b6322e17064e674df49b73cae05 100644 GIT binary patch literal 104226 zcmeHw349$_d2hVQmb@iSoEYLHV<)y{MR%2C%Szl-)?&%B7F)8sK)8(V9ckw3-aFSb zbF~Bl35A!X(*nr_+6NCB2&ILvQ)mK&l7^*C%T{)1DJd=GL4nc&Y4f1(JLk;InY+x) znL8t+_D6n!Xy%@C=70X@JOA&SGiSML!)w-Dw&pVQkG@?kic(=I%4aeKIU}fLeN#qG zm-0eED?eC1cz5~Ea;x5~@QbQkQqn?MzYJ2OMJbn2ghKiDvc3%^*QA^pHS%v%g|sHg z1uMI_L2ME?-d=7MoAnKvq~!$LPdeAuHaRsg!4;l(PqMA8hZ_}mwWJ6L05>D^N~Ub) zZBjKwF3j08Z>`9TQ^G^mPYFv1z20n<Tz*BFRHdoN18}V@UZXdsteT4J^d_T%WBU4> zR1nHzr5Rpt;WbT>W=a|mgNRrsWmHt@jp-b(s&Etj-caE4<gZPcQjuQF@acI)m_=zy z`bLePLqC<po#Gzxiqed@TfeeiWeuDtk+@e}C*C+F-ULttaUVQiJaBtiJP7~08U7c6 z|HYteF(Gb;<XcE`{duvxkdgRUc0L!&@ERXml$H5dQIWIIENV;^^F=8(F6Jks7*sz- zYHj={rKnnLIvG!PM3<sV<gb*f3B^=A8HL}<;!Pv#0DH5(agkRFQbl8&dq0>|TN@Nz zlsHM{cn+x6q_kAzHEBWM3<#WD6bhUsb9^q>&Pf`l2p3C|BB-1?FXeJ7Clxp$2Uwx4 zr8E>%$e`4apa?fPO%ynlpB1!aPATOCHOk?-aQTu7_9AeoS@JVEA%n^R2#P!_s4AEv zpX1VUK?BRcMb0d9ML{m+1h|_o3K}xE$|py;DR>qsT@&~`m*xuv89zi6av6+BE~pYb zjGL7eD0P|3^O~SY@F=(zOL@M)W%xWlCvc0Rloq)~xda&rN;xe-;taPaX(FywNfl5w zR6(N>%bYyRjSr1Z4Ew<%&Ehf;t3}+4GBS{hkRwar_*sBxJt5lGX7-w9XfA$E;ftcJ zhl#zY_lZ{%A%LDtu6Lh%H#GLIoBF?1Q=1wHVliab7T#4`kX{Xd7P=<t6K@o61#xJC z#J71RK1$UJWdd~*H(T~)c#6x-8+v<N+eGi_DXzDzjq4?y8}|#;Px21F!ZKIAh2|!9 zzFTi1#o5>p{jrh3>b;i%4Hff@{Sn?`&XeSr)6MSuTzQ)4X9f$ITmT_c&8pV@je`0u zJ1F-CMjqxa8>sEr3pCA2bKtA(dV$*yIeH1{p6wU?lhG(g()aXm(P#|*mGX131<T!F zM^i{8V|*+gPk~QOVgH{(0!``_%@*fcIPy==qLk6Z9_~;)UR<(n@;Pa)(8HyH1wpay zih?vJYCT+MS7lnb#pfVl0hE|SuEELyK(UKQ382J?QD93;3*pwu8|xb|EQks)uCm@l zo((tf!^`?Qcp^kimCuFSB}FRhosBS3)?2_eWhC(SI84#kfTsVks&A1MX-)#im%?TD zG|o8=GF}TN@F3~uC^o9l1AU8~rZR62Q1lJ>H=u%$hzomlr9B}HK*1po&eUczX52{C zV8=-b{5-ftY80li*ZYau`bYiPIuWyL0pnxD&b2v3E*0w_gGeYX=TK-;^J4`;6@+Yp zEW}Jku1De9=iotq4G;RfDSD*dOa%=7x`2@zgK|(&0J1|-;4`%i+N`fr<i(o%_`L=M zM_I1<N$fY9RB!GxWy~~K+a1eJvj-rqVmDRryZS9g2=6EzhL<$dGzT3hl}s%yMbqj6 z3h38}d$KpdQ>**5-DH8_>|TUyPxc0!G<zfb$E=%SuC%UAW2O9zpqLdkFKI1rLuJ`s zZz|QK>d7M1GTVi65U{sm1g=^9fW4wm21zMGP+Tg&>&VkDd&I<D=NDRq=^#~@47Uo~ zreqDj-#|rd_^WSI@cAI%v*Ci@GRhZ9vwT{ENWwCi%9|AU%Yy*FJ6zzq?7%q{UI=Fe z7+Zir68z4zTX#-CEA;vx75cq!E41~jFjHHLs=E~W`+`76?~lF|$2DlqUWc&k$v&5% z)Ll3!cDP9DXXH$+ZntKyhg6mN*6OZ#SD)t9B8Z-{%uPsKCpQYCX*uqgX$ww2Q#$_^ z;c8S9zs^u`L%_d+le$-CO~S+te^H449t7gQh6`~+S9km2E)%A4MWJq98-UGCkeSgq zS=jV|x;F^a8^VR!Y+13%tnChE_ec=Phr)&I)Uyl`cKVrCW+F&sM#HVl1yR$AYELY- zxVRY2%P=OWL}!)Qgd%53X{}$-cqtc~6a*m?nbb-dNscAr$wVUFnM~YvQ9XKibUK$& zPjsE(mxQs7ljoPk4)x;VzK(wQmo#WI4CY&Y${gSqH)JJ50vhVut*;~o%6gueb-f7? zqgPlA5{07kDDR%^oHzH?v17(Niy1qTp3UTTzDOk1x6jyeax~G^J;wEpPDEt0!&Tm- zggwYi7<wJ5ikV-<Uhm(*Nj>~S(nPx^Y4Z<n4+8OR;X+)W=xn##1G%7Femn@!$HN7> zwyWDD6a7g+el-ZlFNF*83izbPtK4t_zQN&-gVq>honL4beiWn%KM1!9(62hWx_ifB zW8)K6SXOzH0&iLuAbeN{nHj?emd^G97N3CICt_=#7}k~($Sa&noH#s`pFWwqFx0(J z9GD%=b?-|K4xY04g=`MUHsjsw4XF0S8LaffDdl^ZDW?tr0kt`V>%57t7RKj#XE7ZD zX{!}=2s<Yf2}Z7AEMHR6B^ZsMU%<gJJN!y1JkCsE9T(Bh&O|Rx>gpo0KSS>d#D*%~ zAzly!<MTqrsIN^}ehmFdiPVCCym*N~{&o<M_l65{L$8{nqc_GC<@3!!puQ;#sLlH3 znNlt%Xel%RT02k+aWNhll{6t=`>WIE9;7{wqq^<Me%J%0-b9{X*4ISPCy?x;C|||E z<_A5BK)H;Uc*h=?eGCdQg`5n`W<OSQ%kk5KtwLY-K$HC}B*=aarK($-uXyCIsm+Qi z>&D*x$wVSyMTFKhHPT-K;D!fao@KA?GdQWcdOm^zCqq5$!nAXJ0E{~zGh<xBfKgwc zNVFd@LsxP^$-FrT(AJQFCOg`#7<)awpg@lW0eV}wKsWVf_*n(~zR4=RK>?o+0(d%H z!0Qw7ZmUa?3ktLt1ZX~7pvx>Vw8=h<sdRUtz!{=skxv$v2l-4%9Du9w<9C#%&JLeC zGJHqZbe6w3IDWn~cd<8je5p8)9+8eKrxpe~#lpU1SMu1LV|aZZB8GJCUm-5qP`}OG zP&D#JbwCPk48`2z-CWg?_shMrnBI=4(Te(qJ$-zUPfHriz)QsAg+Z<>KAlO!-}|^e zLE-aK+U%1IDJiw@Wu_L$tY+w4><qmFCw28H`kD^23h)<&_~{@JKM^j(b@6s9BFBGI znBNKl^P8c=wEPLcv=7?+EC|eh3m4{wk%7^HDYMayE6V8B4FO__7RbyPOR(5xOJ7Ga z-Us8@Bi5HE`z;FkrXZmAgbSK!Yy`JKj8^Y-*HrJ}j(7+1FX_%R%kq>8j^*UVgeG?8 z)63(+RKC~Ia~wsr_c1UN;Ng_=+n6b*?g0U{xrbZ4iLVyFZtpCndmsk3qV8e$X+eee zM&up15n0T0@o3js?&b*mH?hy`VeW}2p#n3Zb)3QsJ1;4m)YU0uonACv90cQXs2KHi ziFV6%;lC-B4+Mev%8+3u+YgzhunzrAVg7Ltn12{9%<WSHT%TMhpjA2xlD2F@uDMU) z|5*_D9}O4&rlIb{Nc`COUK2OHK>>dy2;eV<3;1r9SC6TIh`miBLolfnmTPF@a?Gr6 z%?rty<(zo9_YUwL`Rw3O@?3WOOkO>-ctJaJu2UT!#V;Yl!{(RY$`Sq_BZ7z{Sq1oL z!~KN0;i#`cb+P%HA9^=mwXgZUcNWvv5KUcCU-Mk*YocA)+o;u^#w`gYb5~P<0B<K` zW(@Fl;G~WDnOG2v?V)0H^D_fMU>*w@rn8@Ueh`@F!-ZMnPYk`OxlavN4FbOyE`01( zx~lyQzCi)s9|Z6{;Q|gr$5HjF{mk6*5$&wV=R1@$M~3plC&tC)v*NMgu_ImcV|nak z&VdUWt?y^vf(Q!F&jiFr8}6;l4M+V9s*BCfJmlSc)qduU-dRjPLo{_o{micVex}QM zpK(q=iF}Hg$U5&bpJwOd6F6yOKIZ8l7{3)NMmHbxOc0nq4H>4hkJ-L4Kvb~>GBZXM z3@xrVO-riCTdy$YB{k3eLBQS^F4%2-eS`7CiIJ}O@sWWJ>s7J(HU)n)2>70G!846@ zk=BUx^En|_Sy|*%PK^wVU&x$1G;pfed+6ka(<e_2PLJCsr&hkAOrzTS80!k~a7y_( zX3D8wKtOGNVal8MYQJ#GJB#TTNUvB?zi>763vpP+Am-8Q2lWb0KT{H4!c1ZvpYS4f zE|zf8#(ctSf?#|gRE+wDc>Cc))^`u%iqiRxAW;7(WT=Vuu4Jb<^s<3mQK(M@f%>s< zp*BqqPY(5-H?f+R6ztc6fc<i~V0ZM54j$@CjK<-g!I6QHM5i_4S??!Wi5~~4#J_}F zi5ZrWt_qp1sWkEveG<QXaU?mHNsrty+?zZ(FwLKwcmA5*yvgztmjVE#elvP7(}FGP zD-c+luh@t#tJczctbSeZoyGJOL?2hwS3Eb#p|2sTSc3g?6yqBSd=}y8R}r@)l*|M( znRR?dl%12CaZ-1m;WTx1C<w-ZP%-N3lkJ_B%ODq&%ohX!`n*dBv=juW5-!jt*v<%M ze_H;+xTLJ=LBQS@F4&EoiNWOQ_<)Jlx~6d75(MragbVjHi)SE&$BddGPcS@sXi8o> zb;t4X-qJvSQJF~`$qzYy9sdZbF?nNHi3d_@A7`ePDn9~eQ~t-i39f!i_>gxNQ~8O? zt*G+f*k6Jz2h_A8EW*|~N*--A!?kur<K2;bo-0aPT0Cf4CsSHV?{}E#t>X*6&Cb%_ z;iRs<Kwo1`Z-l=n#Aky*d?s9o@WODY)0&TDTv4bynpwk?I&5x-%pL)XX>%-WuJ354 zZx7^x0zDW6=>BklZtgoX%=HTkQW~~YGBl;)9)<mzL0}&Z7xuQPWAXTrNEdX%c=DL# z9jb3r@MnX7p9&W|(-0H1OT=iGSY>6A!&o?Zc1fO{=s1&H>>Hf#D)r5uotk%c7)4Zj zA45z59!@D&m?@{u0|B);kAgSx)y`wyJ4<CpUQy@qoc_L8e;?YAb3sthew2wM+T=6Y zIc;_}mlTxB-(#k-j<mgooskD{QddXexZdsEK`=fNDn@-nqN|;*Ha4y(ou3E-^@)(7 zb|l&p))@H)az&wjGYHhLg$uQ1O5xM;guF->z}at6(Ek<$^pC>^eR_=Rh$ND9NmR=e zy+uK{v;+trHbQ2`@PVO^>Cb0*jhH&!+czG;%@KndMMx!)cR1h2!<Xvb-t(hp<H@;; zXQcG;Q`xxY>>qAKbtnE|WgkuH-p5Qg^$rN8%{%PzCcWA_T<@L5^bVw*R@6IO+dn+P z;n$1d0(TNN<K`yi^t_;P$u?`~*)<KNbA*}BIv!$(os|Kc)ZIh;C0ZIltf^uF#!L{5 zsZcTM>)}%b9ah2@l+2|dKuaM5P1@W8jDLZzpg><41gIV^&`qPTt9fLUUos;bdV>P~ z!ytg)5-#AYU^}5mXGf$1ULraZk$4=|L&Z(-^?#%l`Dl=eJQi+6-pS%E%+`t3t2G{j zIzHE%8DHp|Qm0DbJudQRl<u)!#rPhvKR+iPP3&KgitzuiWw4YvI?y}J51*1}`oz)U zLTajaX{K+fdvSRBR99iTPfVWTPYo6ade5Kl>+3x>Fn3};k?Kz!TO{vlm0!TWjL0N{ z@!za2)F8gfY!K9+p?cf=*%!UdqS~K*-aCuw&xmrbs6X4(d+I!F(lsz-_9A+N67@@F zqUw06XW8rf3{L9msq{6Ln}xq9#GRW1gn~ODGh-;o0ucs}x-FFCf&y(10`y?GK+#(k zo$O;=QK)@Ep#EmKP<K!81zttRZoo!Q88}b_A7xQB3g(`OR_sEMik%I&Vzj>*a!PMd zz!!r6E`$qMVsTwoYr(cpW@}kvW2WRF7q&Q}omm*3It`~)93MW@Ev82g_b)i_{&YVg zg1DVah=VqS&fE~xWgyHpmvOImb5y&GS9oVJT?Wyo6?GXduQyhB?wW?u`95Yk>o}Ho zv$OIDPU`AdvezIi#w(EBv;0L6jGqh@BbtrX*=g--Vq8%=zZC@PH$#S+Xg_>}4w8{8 z3iW3}p#EF9P@5+dAuUBRQqc^8Y<DQ+ty=<w7%h;QF~ndnRvo|VbfXucPUA%=5w}*S z*Z+}L<fb4M*%NL>?q%{OX8Yhbq3UWQHv(@z)@~@-QzI9bIv0CO(s8u-<M>!+X|!)_ z0sijj7|X`zjxC*rW8qGoNuMtim&eDPXKx)vJP}1$JuqoA-p1UF)EA*D*?iG0-i=x9 zi@LqDn7)V@@{0PRO{0Ai$&Ps3`ov6cP@)88qUv~=8TR_7a8h?K<1~Nk#X&GGhl&w4 z&$17+;R{OU13`ek@)835;~+r)FkGN?uPiIbH+R#b%>G#rz#k14@Vc%e)+As2H--6? zATYleE=;CLwbs^IP$%Ro)Z@JaMQQZHg;8~6ATx19&Gp64pP%lWpU4zP`x8T&+BtbL ztqo7-(E<=05>$?T{TMMo{KBOGK&k%;Gxb#Q5m=kz|IoVusulnH-dRk=CknWtihubK zoPPvg<yApbxx`Y!8vd>QffBcCYk<&gCuC*}-FD!l?jFEtSCd!}jP0Rf)X_%^>s^jq zP%;OC06i8m&`$fLEqp<NK0gT1^Wg$*n&k5uoWy46hIvWBszJaO!v(u-a`J2heRPN? zBgZ3?Cg|$h6#V@`z~2)t_}f|DC`fC>D(i`ygL0;87M6I3c=7l^d@(V8`rHNS*r}rP zV!*ec$`g06!q29Jzm=JA>Io1|n<se4oAzo?@J8<}rY9guxT2om+R4!=?wBI*^Kwb! zCi;%yqmC!Xhx;Pd>ws$-O6OC|bk=!8_%u5!pTJ4o{e#mR!qY)8ek)XrI&2|j%{|6{ zQ!1Yc0`sSr4CeN20V0AekeM+eU}$lj>Fr>D5WqKv3wS+D&7$D}zMuwhGzie1aDl#_ z#TQub2dE;*2OK|hnqQpdh2y2Z-isG!7YftbvcUFHUF*K%#2v~Z{89aQ27gpvIJP*g z4!}2$-evqz{o--QkLuHiI^s!IHFDb6=a?It`XN+Hn;)9;Zt`kBbjmx6>4!-FTTwsM zJUrH$>`wL$8^>7f)@^qvRWD(ts*aC&5qpi7aMH$n%xi*Rd>~Ye`ufiHgf*m1E-0Dr z2m<tvE+Nn-f&l$kxIpV1hh(TtonI)|Ukg%&FNa$NThB6}+wM@vKMn%<U&4jVv-qIe zBa$ppK_2OX&<UR}N`s|45=Vwl4)V(v&W-oYD$cWmo3~q@<Ptoe62BQe*YCP>$Yb*d z8_}iDb?4q$On*SsaYg;XmZ_nBF42YNuP4ULcjwBRl&}OdVRgJhl)c_J<D`vwg`prA z2SUZDZ|FE;`#51-Q954`1nToHDb!LBs7km{?Q22|UA5n${OUnK-xn_E$}VNVuDnTs zza<FpKL{82{Y)OgzEotWKVk|BatHRW-E+m|f#aRS{R^<);o#`xX*_Usm>+|y_!R7m zIIJF-fY+E4xhZfVaP&vvbn(pixZpg+>LZ9L@)EL|fYPRXoVh9KI|r(i&Br|E-JsR) z93S$|V)_`OwJYjlb~`UaNm^e-+!Ikkzr##u9Ut^<c3%DtCvD6JJsSk$GofPC*LSyf zSzkxV1ts%}%UL6!I%IBx%pS3iX=Ds!x&v(u0(4)vK+Vq~hVGb`l-1jUfW0+bu<#k= z6a;tiNU{UIj#w}K)we15=^)@I!v)XuHeh`nvDdTq>qz3*=yV1<mHrFkV;7w#Qptz_ z;!-Zb^C|HcnTe;K0%5gzio7@d)t(~jou#r9uc)WEYC<Y-Xu5onE6ALXg`*W@#e6HN z|05;vb<70T5wkKo53j~a8}khB3WD(+p<+Z!6g#XBBjkdT`D75FAHRe^zYzrJSHlIm z?byi?PRN1PDroVCX}Hz5Da$_z0{%zgg5Ly_a+C3{E-NCVHz?rdD*^-zO^}%}U|{HD z`ls!0Ca?pB!e^psIUg&=X6ADd+6)o1Vv(X$h+uVz6y%7ZE)mG7@o6ohqGRg{bCG0M zCv3bF(PWL!MGB?-jG#p1S(I0e96}l4LXj8MNHUU$6w_+ta3^ds*>#&L@Jd>of*qWW zk~{m2JIh7ks9Ktv6I9K(HA$|H78N;DN^96oDrar&MLZKH^gpMX)QoOoHY4im5G6KW z$9Wr5wXeI*JB#V-i2bdouiHBcyE}7(LLU7G86V6OOGdj!xuJn`y~oGLdQV#04zVPq z<ep$Aw~ik?&dyOkPU`Lloz|)FK`_1`RE)?Eb{{sinp{va7lQ!RLI&E=PPZq6rJ8U- zf&Oj~puZh1(59i@(`SdR;bilYf_-Zcux}0*?B>(SE?AlpPr|>Z6;#}#us;$6_M_p# zK4<rSdAXztN_19<O%RvTFKE1!iw*J0qEv|4YKUHp&c>G)#>eB*((J(4nT5EhX8O<< z8|P8BFQIx9Z?tlcr8IwqnP%!85Ja1I_#1DstG&bLytA0zfhgaKdIy&^iPn-j*EE#Q zUog{I#~=JBJ1alON!|T{(|ob3b_9qkuYk;qaU}yrw4$WjS_?=nD4A_RfF8JnKzoA# z{f%&e+EyqUGGe<!xjh#I@|kcUU)9-h7|kl~?&wH#cf!ss@V7O=qyCSyB65(5<if2; zhQ&`<Yf7y(iwSej8mKn%8H3trY2whxw3M70J2fuAe)6ZlWlT7K)V~*TKzzoffk5fM zpP7E@KM-7-|M*|tjZp1Be#<+H=|6}H`S2g^Nx!fLsNN&~b!o;qoxVN|Ct;RHHX@CG z3Q|92Ppz+$GKn%T9=yG*Z-<17QbrTi$egqw6yWyFx0l5T{4aKU8D;-d$bJ`@IFao_ z&%SA_qOdC!;bKWrgbch}=ZkVdC}=7v9F?S7Kf|__wx4YeXn_at<N@NX;!PvlOEco; zgLjwjEVqgq#3p1`t>We84SjRJ0NW=^MNN_mRs?6iM@{1|nN0&#bi24G`zb32hO!5s zJYYVVKoMVOUh7Xrqui`CS5kzY9xfV<!M{>|F1C=2Cp)4`(WRKG3B^<)m5lK*H7&xs zUn(!~Dx}W?NvRo`S2EFTaju0U|McL7=;02<<HaTGCZCh$3O!sJvIvTGR}`c<QS0G4 zyDHPdEj|Yc3%n-42GdKLl>?BbbG)je1W;ncD3DON50QNU8XauHZUFiQjH#?|z@W-{ z6L~P)z)vpg>)>%^eOu*2;dV)p%6eBre3Zqv-&qzP$^HNuLlxht-x7dZY{IXFmi;Pf z*&9)-g8A~Iy~6qyJ0q1nK>VQIM3}-Qy}HImpfs`HG>LN`T6@`LgV-cEINbrpjW|sd zxH+L9D0tg%WCWU&R`GfO^b;Mp;%v6TVcXy`!h(>Ki$W&aa#r9(enFtOI39PXoB-{- zx0ox<aeN`e6?6RZ-rAC)+>~tIH6AIY0T4NQ0-tBhElQfmo#xdd41p=j+=LWu(H3Q{ zw|_E`NOW<qO{c)Ydq<`ny0`^@LC$IXoM4uX?3%Oxo-Qd0x@W6fJIAXWjD;0tD2$s~ z<_2@J0^Ngq-r?H;CvajsvPDv%l8Hl+8A*eCeOzlVY?dz1!C+maUz(F(#15UvOt!*3 z*iI_I7dSq{7d3tc##!cgsX&V4GYdQn`~gyV)-0cc@->myP!qLCg(9rfP@!W$sSA9r zBmljoT!za@0yiUQi-J(#B51eWo4G^LM52?Mj&g%=usLePI<*A8j0OW~Ol!GiPJ;eB zr$D#N;5=j!9Tmm)mPJtl7WiBan~e;O17>-L09?Tq5NiFW@QPf5X6LJp5-}>RszQDS z9?e73Ww2__z|-NQ3j#eWqbI=_D13quifWIcrRP5UD>31x?|MUp5kGy`|FIhl=@7p* z<6oPxrx{cC|8vWkkJV9qyPHGqzmIr_kv5yegSJ0vYP;e7|Elu3Rs4MAjSA0Ve}=xv z47JK5o6rM42M^kGC3=}{sEnhPWn}*bVzWvpt=a4A+`F;n9`#?2+i|x7PPWOjb}GA} zhWl_0D;;hnEqPfH&?lDi$QsCOM$LP1zIx*eGyv;?08Gk*s(Z&@@dU(PDvh~3!X6U7 z9CQp{YKtQw%Lzb@LKYMY!oTeK5p5_;xfKzO!;}%$Q4YeC^UDAt^*R)|@5$akNUb%C zdOTZEjecafpn|u}LFghEkO!S5-!VkI-o2emAUB?fb8vo1L2bvuf#Ji=06jnnv_Gd1 zH%v3Q?M8S6>iv9NZ)YR4+1+`Dq!nzs6HngOjDGH%)O=xEi;%+$TXus7jH<X4Uec=G zT~J)QvfA}33^AB?kut*3E~niK-UB%Oo6Rv`^qn4!pl_<LU2n(v>h-C{v@02|cGVO| zwCf9inn}B=^CO!@+VvzN+Mjk2rkwi)>X=4vdmACuuXc@2$~oAS1I4)@T%BA7&R>ea z%zzx)AYCOJq_-xKfF-ef9YpfgBE#?kc|n2~s&>xY7BXt;S;(bQjr%U*(6`3*0sG&< z{4i<Uw;7UFu<qVKhQ^V;?3}bl<9^2j#wyUbT~{?6pWTYO1&Z-V8R2N0(`NYHfYZO( zoCI`TxQ5PV<D_v(oUfk7HR~H;s1FSVlpidc5vhL22-Lg+qmFu7x4Yr&q-Q}rPXS)F zYT&0L4sBk_=X&tWjIzE7-nrou>w<s=eX`?-+&$To9!#O6dr6!{$Z_rpHd%`i9{tMN zZ&b)y!bR4O5Ls&hS>wzt=`0-!S_~B~6_MmyxJH53B0H~nhNOmY5nkP!zz{CdL7kJ< z2-i*z7^^_I9>x$G3eGIyB4valTuxJio&=o!&1M?R=HniX;3Qm+<9v05D?0(d_|~h= zV0u-Z-O{UX02nvD%BCPe_Jyc2RHD9$E?q><CQ*b2XQQ`C)Q54Ybp{jakVwZ8^f<Fb zbrOj(gDd|TsSG^}SpD16S+J*P*tz>DLsCPA2zTx@8!|+?n{(0{8G6VA#ww7Z_MO4w zCsIZ@GV}{{04e!SU2!n!Nx<pfY*Ju0!?=e2<EKHKuTBqYOoqCG$xwB6ONP<_)3*%0 z(1R133=tZfjov0heS|T;ky53aBwZpUR~cf-NM-1^0IPp{dLh`;UF_W5$&l2LA;O(I z&4vt-?&h4dMurZ0z*q$`^Z^VpSTsb+2t|hUHP(zX_={T27XhY!tC7HJKJU>6PQlP; zaK6w~=uj{fs?Khy&<_BnZx#BU2PZZaA~ZPLyiJ9kB8>S}p_}n(mmEG{k((?Pi||=C zk(@>!l)I+exvBmk_{JWATegikeC455wB_nXtSAds)C@Tp!^b9uq=xno#@xv@w1@OD z=cF~-^InfOUIp576f+e}dq^1}X^*w~Va;Ki_T1i()u>=K7d%YCNqf%Xe4%O2;b7WR zo!!!&62SDWJ&Fe>HtiuaINQ8Ud!`6uezhk)D3@SY>a-#(!jv#2FToraG6M-I5X^i* zo0P&ip<UA)`~~x1tQRrg8L0}r2C(|~Wg6Ji1MJ+rk|C*~LWDbanhg~qz0EmkjSBU6 zz*q$;^hpdcm<o|HLQ)}XAKW$ebxr>SF#TK2onSTp;L!$7D)jd_UuY`S9ZZF)vs)_k zOMvNHg`V}`#HK=o24|bMsnFjN#{8<#0TKZf(ShGp5fB_;4<Qg7It}5EwMLyeJ=L7+ zuW7`3UINy0E#zd3e0DJ;H8h7X<xZ-hIiznnC#}((Klf<cRiHWJn5kfzL&^wAbF8&g zYmV3=AGsl`xd*H!=V1y?nj_(Sp=r*MV472%-O`+U0H$xvdASECHq9Y4INQ8Ub7l!+ zel=(R6wF|*4t$I$*DxWL8^x2R$IN(#H91wBw*fBy{_0+^orl?ZdWa#Zp*VymcS;S# zAwA1EX^rBX^nmfJQ=De76#S|Es~BQ1#UW*cqd05n88GNiYB$dSQ2%y=Rv-M-qZOPq z=O;K{SelcF2hyCH?3U(SzN-Pv*$SB$y*Hu3+3IbY^CQBTU(Fe)_tHcrMWWX&691@V z1PCqJK+}zElGKYO>6j@=A(cigFAiM!x4Z|y@*?akw=pC&6pOIz-XMlzk)G+Cv_`SM z<k44FfnxEPsbGpl$_PubtaYzzVUKfaH+MH=H?Ie~d5MQHI4RbPaK6wKtL_AF=7~j# z>g<+c{XW3-9VNZigA-enL}+lfdYfV`5yt!~)?WIdUK14oRvPhWcO=-1P32l)F?3<@ zpeaWzNvX{|3V8f$%^SdGKFH3``x%lNT0{78r_#_G(x;r0)@aQOJYX<s&2N~~PtNth zM6zMDPzx5R!3sAOCf>seH?jh+X1N!d*_z~JF%OgP$ttp(l$YQTI;X{H@YSKSo6Gk` zx#8K0MDR2b7M8*rI;@N{ACFeUwR6jIiOa(2_GDQbl#mf%M3IMuY3M0r$sFK77pho- zHGgDrp{zu?ez|Z!Lym3^Mj0Vz8p?*Hcr+==Z7fWKExKT>YP7fvi)&#KUn}_$R<6ov zi7cO!xp`rkJ8(LMA9TQ6(KbFbIx(E;8y_1SKF(#Nw06*#=Vq;B$bJu5B>w(?Zuox~ z!%yG!`{8r^^j*Jaunfh!@k~4Y_YuXuCj!11I{kM&x)6%;k3zc2McOO2(7}4ESo56V zlUPU@Vfkol>!P)A*b$|E4*>N~{X2lt>v0wR&tkb2=L^k8SFbEErs^=x9Zpndw|w*w zfa%*uAM)VD=A#J>&fdc2qjwR;{QBsdh`v`zD_R>I;WJ2<@qBB8FSf+gZq5TH|90~T z*v&LMN0SUm4L?mda;MYq)1+THC#~_*zw{6pCO^F*3#%->xgRqX?45v=5tiOqTZ*qu zblCLf?G4$@2f%LL=3xv@?*tFye4*)0u*C+6>g<-@JOMC$>&?eJII-ysp~2beZF=(% zVa%`I+(6$6>MD=<Lg1N>s?5`X#J|e?30TXw*qQkzLsCO!2s7>^8Y)A2lXKD<mAS_Q z#wt*mE1w%Ysv%{Br81qSQLRmM+Ek_kfcm$a$H8vmxQhOxnh4Gpn#xqq@%I_kRA;wT zW&~jRR+%9WPHZYeXmGZAo658i#{8<x<q2+dT+CaqimGV=wLefDnTKcjw}+2`J&5de z7Z{QnIzsC1PLrV{q`x>Pt<jOoJz%T?9eD$W7%W;LWrU?8))a!ZFq?qd%|`&Jf4liK z*v+FJt>6@`d=TdgO-HIH>HE}?>g<+|d=X&!){)P9aAMODLW8r_+jQjpgfYK5ay^Y! zG<gyBqnNL&DqhK`t^7OS@NX-B0k-n5?7aMtA*rD;gco-T4UHjv$vJ6_#{9kqj8&j9 z`>qWhtB^9n(im$3|JsCo2LAv6^=~&{0J}MctLQ&gxeezFO=GI3;QQ2=>g<-r+zv2( zYs>`?PHY-OXmGZAo5tKq81t(!oK0h3R!Jh-<)AX&38~K930VBw%in;#+`-PxB12L` zX9zd$G#WZX`jd0g8lBne0b>>D%)2neV6hA-BP^Y<ChM<F*k|j127vmvn{R;KJmt{} zPO;3ValX)Wrh2-)Po1gGZt2WF0ZiXI^A8@J*mQ=_AiQSl>n_9pIBxf56P!;F>ii1M zp8A5L*1jz<q@<G5w7U`0`6igoI>^a5&E_(Oq=w`WcARwt5ot&c=~~W7Yb56#9u2z+ zB<C<@DwyPuGQyG^Yi9o1gnerM*@o=qAHi;>JdD9fa!%oVp-E2l+<KpqQ=Q$C92sEx zmYkdiCpO6;G&ozmO=-pmV}6z9kZ~>%+0PHA63oDESaG~51K!NfzAG^7SX(H-j<&Yl zw;Rn)HR+Xr+rK;eC$KG@oyYqak{X&scyy=S&?M6LoRijQQl|%uRiH_Kh9L&iBvM9L znq<w~Uz@N`-T!+4>fdgD1a|Yc9<AV{NngkLLer$`x%WObsXDu*NzVXG-<tGO4^C{F zL}+lfdYdMFg)rt<lP0DmVG&JiLbHU7{YJTZ0tH)+T6>e?O|CrDD*S?}j_tax5qtbG z*yB#f$rxMhU`T4{7~$T%nG78x{na^XjgEcP!&+8>jtyg`g6SA3BP1Q82cWNoKdIeF z4cX0qfZfb`7=x3JrE$KnbSxQcIY3QzOULd8n7(!FB_5pEbd1p8Z1pxBdm&-Wua4a^ zC@rDQN6oGG=#KwfYrhO9Bk;;R9GQS+PLqpVPMFmojRGe|ShH>el|ilSA*g|WZ~32K zWp89>^z{r$4Rs=nx|46H6X}J{No&+;&;!OQP^T|oh{4o}lo6IX(W(DQ`_%uR08rm{ zGrDdK7|xG8n!!n)et`3ZCQsFq_x*)g$?EKuJhfckfIMx4OpLCc(BN$LHhKCUVa%^Q z^^L*-A{yQux&D^NHkC5wXPYY3LR3n%WGa-hs9d!HPyWqrJu<rk>=fU`kkrsCLa}>m z7<xterE}66z51+2M_C1W^*qc}FufvWgr!$>8g$Y=4f;h58O~N@I7=SZ;G|b2oG&!J zs-DQ~Q?IJCTYB{%!1NtXy~=|VTR25%a5j6JUMYkzzj}3(rB^3M6J6aLoQ?%&D#2hB z9NWa_i#cgl5)^Y55nE!aIPV8c{uO5%GMx9Ylk`r8q=w=UlHB<;6o>RI=cF}?bIt?C zDo~v7V2HsKhm;YP;?RlEN&7_T^*1zPIM*P<Sp!+!q5&tx`6cEiG{vc&%Is5ds<T^) zvm2`CTXCM_!HG?A2o26=Z&RFS31fa0XQ!n&_)MEFauk^<F%G{{O}Vup)7XVf;|Mzq zhZvF?nnGxBXUxzP(s!Jb)@aJNSHGs@F;l@bg_IGNrqF56N&B?t-)YEj_8`N#-@_W5 zH02(gFEmZ5p1AB&Q>wFDn(|hF>049Y?7@jmQwR;tW^dD!mlMYPYD%XuD1^qgje{WR zV36%KOF@UcR*wcXmYFKjCjhhmC}%G+tS8t>{1`)0Ly-uH?tB}HM0%cc(i%m|dca_b za_Hmq&EyzOa`-SlK^dJPQhnRyaAP=8*j8L?kyo?`AA!Zq_@vH=JR1R<h}e!xjo_nT zZ3imjJg@}Z%wv8dvE?yb6mLJq8J)7cg)}=p+ITaZ59V^pa(i3bMDOV-?pRwJH>n|% zrK0nbP|t1^uQpe&>n$|5=_s2>akfG47S4|y?gaB|f*b&Qx4xGF6E%30&2I3t0jiHX zhMtX&fnI0jKwOQsu34$W)P~R#(IG+maMkL#6yL`#T+`Ne+BlJ$jy0=oZKNTrHp(7F zbtGHiUs)%Et)XtS*kCzF6E)N=xHis{Sy8Qx^EOA@k+5`oXE4v!>0(G~2uqS7sUa+c ze`m`ug#{f^i4W-8>s>ZFIz3xyN_7^i+s`)NaZ-W}7T}|&?W}a8jq3eGO<V&sb`y7} zemgm(Z8V0czlbX$hH|dy^`<$$j1=0)*{FlRE&~prqG!e47y=(vWn`ZNdtaDhP0qEg zBQvda0zupHF3o*%z6fW1!!cimiQ4W^%lx7*%LGx-BPwiHoEDr8Po0Trf~uvGsimc8 zT3slMH;o`O{yergSGzYA<TE&_d+nOWN_jX4-K?5<N$d3kzxB#KjdBpM-wPM)6@4<u z28@Jpr2?Fl{`AWpF>%-Vg;rtR9zUW1O=GXZWsuoz+yboD58vCSWOSZ;8db!Gzxp-> z|J)$puL&3YmQlV?n&s142~ILLsjs|AfhU3hkA@3;mmN5VW){y1icm-kW+j{x&<YI& zsn9^U720}Mn5nHr)m;ib6$JY8{X%z+E>LGNVwR^Eq+!<@=(u~b#L3o)8T}vpt#6xz zEx$lOI+hX%E}u8szxp<%?%p8Oy@H*(m*J$YVx9eG*bCY4K^41+zbOdDH-w5&UmuTl zShE<(1ts%Of&hJA$Ur-yu&Izi=X!iWf&NtxpnnlA(96%36iws?a>Bf($OUQM1YP?B zt-wD7sleZdTY=^yhZBiJyaOg%m=P4cLm~fX5Xe6d7xD#B(~4?OEVj6~7|qKiI3zVX ztHdT0Ia5k&{es3zx!9y22${&FR?0|nED?tzZQ`BD#BCSVqlZVQa~btS*BO3E80$EB zep&2LFD~xu=!btX2ie?O8kuIV+-vpgm3%OzdMA1y)81uz6Zp!KB9$>nq~G&^97OpF zD8eHyLa)B|P->fZ7BiG0YRKeBUW!}Ze_X#|5*-v`TBLDBDY}K3BJ|!;Rnu<vns(u& z?z-=EsOae+7{^1!sBZw>k6Swu7*~`|F$h#4T&U|4QJ6<zDnGuUKwlaJ=!?Szy192^ zlp7j2H#yLI(!^VFkHUU!5ZDif3wz7y(T;Q7qoa}J;kYIFl{YEycLo9e_Hco}fJOD8 zO(I5{#OxJCx_{!t<iNh<U?Q0xDNJ@uFHQC<=g*xPa#sFNqS}+e$(4RMrTo*(lvDLb zKyB*(q&M-^n)q?=ET;MsP4uDu?n#ZIPx2b!oYWlp+=vAIDQm=#X3*D3nI!o_k^S(F z%P!;X=c=PjmE)j>>#H*q8qOf(CiF-&rv6`;*<hb~Ng1KMV`YD~#xm+P_W89p+{hYr zpqhb8#UCY(pi!^gkku{PaQf2w9GtI?cda~qHX`NuIiaT~8jZofQhqMBkc=lgqD#@G zn5qfIR3Vj&&BWsIL^NBRGo{#PF46&^GKT<^@9(-D9t;3wX7?eLrgmHB>yP;sel_98 z?|0p<NwK75<V7-_U*Xjvj3Fw^+=PU8^)D5QxzZe->Tf>=z~rsL+*H7(0X19rYB!`F zWJr_jG)^!iH3l;XjqZ#aDnvS(b5c`<)*|Rgh5nz1Zr1s-yUrT3MLlTc1?V2kR6_!E z0#y@<7%3wh0eWOD6(IYB*|#-hH+{%%9`-N>Cjoj0=UZh0^f-X>EkGakV8A9oq|(kd zj*=QZ=Z%CPzXEjJnyiMVmdwbSCg(X75ACVuDx-?^k*#??C&bA5%62Z1$miR+(GF`$ ze`w`Vk@`ERnSYV$N5=LIcB;S1khFqo_f|1PigZTjq%|V-at|1*K%}<cghGg5B1Osw zN2LC8JrybY9NQS+^lvw#$Zpzk6`j8gI*HUloG(0)N;VWFkz7`kGzg%4i&UQn12&N& zm3Fpqn@H^^{P-2Ap$d_LlaS!MgR4dnd2&{%@Cu|dH4Am~Z*F7A+|ul1zmOrRAyb5G z_jWO4igZWkq%|_N#RJAFkg3;Uhz-fqtzfb^mLg?@BU4Uej~@b@{_W;0vYQWhw1SgN zy%*=JBU9q*%t;=4A{yn4mpRV!ZLWjr)V@1mV&8$=%hm5n`Z_fDtwWiP?}SDvZ@;rF zK9c<!U{u9->iZcVj+*SXz{yjHPW-|<;`*X%6EH%Dv-R5q>|KO8zXH}%Az<TTenL8+ zay1h$>jhlqyWXv}MZgIwtc6gS`XS<n>5Bzo)EqlFhs^E!xbn_k(MIV%GbA-+icsp# zz9CbjJ31$=k*Tr=j8!00H|%RTnzCeylo5_h{bCc?2N_6RW8Vz<Ho)oMZg^xjx8f=~ z+l`Y<9l`lRl&Q{8WXdRo$P^D4*<^}jL!AoA)Fh(QpG*-toUPv`Q-=t1|BYp80rBHo zre=`2skrja=4O+rB12L`rU<3(>>Dygx}$T_8kySd0b>=&)Y~w`V9^vQBOICf@=hvK z_WhJU1vvfN%{;Q3Cp}uhNv1xI^Mxo=U7^U7Q3{c%?*T?OnIhRtnfeBz)1OQcI-ITF zCR2|S=KRXknTdLX;&9j;oD|4&aO&SYoEnHu$~AT#<Y0;``~>F_DlPW0EC|8KsCrRW zG~?vI-TK*(O2^Tey?h#j{SvY2TikNUNT0=&F^StV3`q@fBMsr+W`?+tPVAhtM%*6u zfWabe^l>^_0W}kWJ>2jbBlZ<gGn|>nd0mp*3MjIw$7KoBeq#|+A1s0D6NU6V{%}(h z<>QFH-r^_7XGZ&E@l&5|P0cO){n!jzQ*#({;Kfh7UC~gpL>cU6Nm;LcnM3lh9UjqX z<-lJU6}0TBS>HU9gFcwLSdulN{9xI7r5rk4GPbP}l)MBRFtp=dx~NE+(9#0$n`t>C zL~!Pw9<I2oiE^Q(g@b>jWI7{gu!$%aS>_Tg27}fqo%*#dC7YDGrlBO9x2nXlcFBA{ z(oo+#LkMryx8|Tm3ZF~iy4We$R#_7hTlH-M2a1%SNVc&%eFGeq3iGh<(>LYdu+$QK zhArz&gv7GG4IR>&LyJRGyfUYj?<^x3o<nsdABPuc1zejwJ4y54N}DFIQVZU!kMpk} z>^8DO$a+yCWrP!fIDMRdD<a6ZxW5$f|7Ki8XK{CmK;DG&xkn&}S;uqIG0R4y#e(sT z-eXi}zr(0bO<5!w`4r$q(MY@N*iLn3GbVWy5$rD}Aq2S_w&4ojK)Cc9lbnEakp(z+ z8AJ>1jRnUdFUrb1{Mimp03DG%ob2QHOa{(4Rt1$)MY)vAa6AlU^Gb`co1Y5vD20L* zh=f@r)wgdV_I#V?UC2DYhN*EjPb4XO(Ug@v*)KCBtsvaJZH(B1bYJJBHL=IbJYdv` zJxo0#7KT3gH|yIo!mI=frC`^fR1Owg+7z8EhJ!R$Ri#OR3&`6No@;||>63znw@!nl z(QsHcT67C%Rl|ZfPRN0CLvzy8Tv}4nB}r??8)@U?ywO40i&8Gf6=0flPfHuu$t5bz zE8<#DClA8?1eb(exM6tF+VLNLNswPu_->oyihKqy4~N8)MOn_FNJy1)89~7gSmS4M zFnb4lZVwOMqR@kPmqb4J=7{l+^@n-G&wp=*l3t7)I{F9w!7fTLdpc!MgJkK&sH7w= z#|F+17Bg)XrpdG@<Y9xTG@{0}g*ddV&_ICygD_e2Sbvz$@$=uC%@C(qUk{Ol-H!DB zFpS6yJi;lAs>?M8e5gxyCrVA?j|Y*!Tmjd(!?n=PWa~ntueD|$TSuq-oA*9uyQlB0 z+d)X3t)MX*Lr*6ooemjjy%K)vWsREOgDMrlm2y|j#{oSgZNo{k6?M7Bp;K4aW{}p# zF$=BFP($^(7uBafSbgB2#!4xwuE_1QBDHC04N?u&;67A?=LM`mwQ^R~K;K@Kfc(C@ z_CBr6LPNE=AJs<jTN`Kpnf)xX!$*)Ge-!;ix+b>b1NbT8ikxF@h4>GWhXe}oNg3gU z_)gQ`-rrDby&ARFdpugpDa3y#&gUNDA8FW|5)1VR@>?B){3_pE7D<@@CBTfr{HRBm zU!C0y^go4Y_7~_Anw%{hnYIykzMU}YH_(sy3=quD?>iqAhyROs@Ex*0fXwZ?xRUP9 z#|YWK!;rLsI(L?hkezf#=cF|u`>Q-)K*+uxZF!CcFz`A7qD;<DKux|6F=)mY?n$?! zq_&u3iw7Q5d<!X_zB-VhqZL-mNNdAij(ZV#XtFRVBOJAKnuj+EIQ^UN|3>C}0$0)5 ze4W(tIL_y;mPgsu5|%I|;z#0LsYEi_os2Voo@sYf%(^8K)sz7{Qq81?YSt?PH7okM z%p=PEDJP-Ky>A%Zzn`${S2?2-iU8Y}33yc8`_0M}PQTfxZoV9`;9ECej|}f_Tt#QY zL%rV6&6hAFtsu^wV?#Gd$8=6wqnm9WFqnoqRyMr*6AZDTZ^)Klkut&&ET<WHUjm%| z?dD-*H(&5*1t-D!EY7zQg4Gf4V4wEFBv`aWB3M5M>^=p{D#8@3?;*<l2^OKuxrd-G zYV^CmBJBDVtfXDAW_S%oVwTNs$}kkD;;&a|*#sJ*LEp1fYwWg>tW>zR9Bjk@---;d z8M3;q@3RS46GPGp0^PYbgo|`g=cF~l^*-D<&QiMygzG3~sv+T;Ko*W7EmB4}!sRqa z@Aii5=3U5cE_fJ&lW?8I`Bp%<I+ER8heD0CY$X!mdMRM{CtS1$Q@Ac7%KZr!q0G65 z*o13}u<KX2uBQh9r_qSMp;V?ynUR%OGAc-AR7>BH)Vq;ky&6}+xqI6L>312D8iGWK zap%wwB+~Jmlhz1Qj|YrZAV{CU5Q7O4DI**~a+;0zkATy^-TW!Co2NZm!AX$5h4Z-! z(g6Fb-*91G$e>rPL^6ITmFS9hC6lR>!_30e>G%rhS~3x+jcr7r+?Ug*V{S#6LiHc0 zDf|f)q0+hM*o5kvgmu3{b;mF{ixa;RDgw;dBXVVY5WhK*oVJ219Bs|yc$ij&Q<-1Q z=M*@QDq|&!a((2yVKn7WTa>wsG>i8r)Ho=ug@kdEpqe81tAs!Wb~m)N|Bmt~>L|~F ztc(%g)eK1ufh7&<-u8yT5+QL;S|hMecy#SmAh4sDsbB(2$_PhbQ??BY58Gx1<{Pq` zKSy?x^)Ln}ft|zo+y!<pu)x|@zIuF?=<=(uM$trKUkSBAG2ks8qiqfnOUg1e_HNV~ z{xp`b>D+m28k-@+`_<T}rHAmQ>SNf=XEv&34<i<Q2a8W4n|ugYkttYwBSTU{%LsAq z92;6j`mA%(8ZA5F0b><t*_SZHhO}%PSvGomC1tFvmi-iP`nQ|UAiMdAM=LmK*^h8O zcP;B@*D^F=xv-p?l@!=-9F`*p3hePLFvp4=j!NcMFwwDVZYDYg-+*0qUP{MYN-|Zf z8H)0$VuVNMZevri9}vp@s@QYQ8QxQvV{RC+TU20DxV3+_TN0{H?WlIX)#<ay$__$S z#z<>FLsCPX2qEs=8R|rOp>xt2b^3xwzgPw8bUS9MA$1xv)rpj`vg&kaLw55uWH)zs z7=x2KE#iFc>g4k)CV7kP?Cc2bqd-lGM33GC*jdNcs*5m%=+%gFf8i9N%(;iygh(Uo z`W2!)5+W6y94e%2OM6nn622ELE_248?VMzv6W)R*gsW&38fVP@=H_6X8v1@PE9Y|Z zBAPc2)5A+SjcYaL@mkv|UE-%wx%>cX1K)D_b!7JM#RM}2bMInEYRDyNHun}b<dVpO zbJ7~Qyx;+YMK0;%^u747u5<)u6sPASUdMFd)EvzJc3C;*x;zc7zOp_2IcUGdNFnKZ zHrQ^Ih$}qto@7t$b`-EfXVt-E>xe0!#a<)p++3mFM9yR>i?`}mX$oIZbNJBRR8f)V z&>9F>fz+yR(9jtk<&n$u7Bh{Ify)w7fHnHIbV-53CA5@L)|kG<ypxj(LU~Nzq>>5s zYFWP`Bd1H61mEChVII9E6f&^<X`0WKV5rAhgSLH4Z=Mqh=mcO{f&9%G9!=tgo(mV7 z$zx!Ke_<XjTa3$+l7p+Qnw(C}z~B@5RW0L>|N4$uS=I`$%FXu6$QpgC3X}N@rF?1$ zmSpA2aA%vUDN->7hcxA(J}Q)VEx7~p{_&mEqNItbbPk=-hJM~^WUy{*fw>c~N;Q>( zMJB-5TD?W&bJpbs{R&}80-`itE2(Cp4f=+RFjJa?^0qDVN&y50QYZqShda%{cv?U; zD&MPblM2O>mV$#k<P4-L>&+!?HqsqYCHQ-H<&P=Ypi)*+A}p}YLGT4F4RuRvWqrF` z(ke^YfJ-Us*H!&eRYZ1I`(>Bu+eo<-gPD7G<quVv^~+Hmz`RsgW>bXWL0I;-)m#Aw zjA!6_txzcIS1JOWKc7iugd!LRJO&K{j_FOXNO%^i35-Y?Fi%+Nu~ZhD^lf}elT-AT zzE%Q@+L|fliz&<MfLMG3$NK04Fch;L-@*2bnxEb(szNCvr<U@_o-P-bin1z@w*(_6 zwvx1#T98zU*yr|CMpDs`C{)BixzX$m(6hEcWmH&Dg1Z(Jy46SqZy@l|rwr!|UXA{O zhrqV`c=d`<K&54%$u}$fA~ZO;1QWdibt$l%!W<Z4PRdJKdGzuF`nDo$+6ttQQ(jPI zwxByRJYYvXL*Hd?^$fRF@P6n8BPuI%v9i7srNjUrWeS$VK=Z(gP<<2JkL-(g0-xKI z*>qL$=ngG@zgax=R34e^JRBe(3EC`v2K4!usO59;ux41h0=+1siRF<^`gLHF`IOZ? ztqP>@wqdYH@^W>#pz%v7Yh7d+rWMM_^tZtDbm(Y!^{NU)U5T&BWeOIy!h#)4?R9C9 z2R!fsLi!u9j46cN^Q9s@VjG~-Bn|i{I&dFYkDQhYvtR?JFzi55p_XQ<(&3Gl;9)%J zjq9-_fz7}PQyJ*O%K$+X1PvatGYzTcQ?O)3%B8IJWdQpMR5DtyqzbuNqG|W(>x9BW z8P+uEn~0o1{{>T&3K<DHhn9jR)ew^4+Fb#lz_c`wR44<MV<5%WcU0Uh@OhvDZbNCa z)&)A}K+53z8_`YjcWd@X;9RpmK>v3c?5djm1)Q^)eG)c*&VC&I-!tg)r|AC@ux2Y8 zMgR9*l=wTyC+p3qByG8fpGV5N50`TvF5^C&|2~}eKAi8ql6U}I41S=v1wT#X@uS4M z$a6l09*duYc6r6m!Rwi`kHQb)W7(hYg}eByJAJF&kZ{emrX?^(L=DuI+(CL_rXv*E z?~ruRBf;?UGjh(dO`P<qs+(5o=86)V&8Ol_J1WY@Yuk~p*;!qd@e4RvP_s0AEJ5$g z`eryV4lO!^I)L}w*k{~-5ZW`lAM|)+t@?`cY3QL4#6Vw%mR4a&F?p~hZWXsTTeq=U dZI%k@Tqy&ZBF`Zyf;By$zlKzyIHEKY{r~f`9ESh^ literal 103294 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 diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_03.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_03.doctree index effb95c67c42d018fc570322ba67fb9bdf154911..56dbcca4158a30e65bae160a7ec90a8d915f3b06 100644 GIT binary patch literal 72181 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 b%50%-HLB<$YRh0j0&cZv2z`WlF8==jGKlbl literal 70901 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 diff --git a/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_04.doctree b/doc/build/doctrees/source_rst/V2023.x.x/V2023_step_04.doctree index 3b3a27370d006aaf8b9aac311d2ebbcd16cd6af9..073b03c40bd25d7b630e715b727385339314006b 100644 GIT binary patch delta 6550 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 U{BrzZV|8gi2%Ef1ujG^e0hy@l1ONa4 delta 5591 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 ZRz=Oa1?wv5#_}3p5?)U8+deH8{|BN*rD*^F diff --git a/doc/build/doctrees/source_rst/V2024.x.x/V2024.doctree b/doc/build/doctrees/source_rst/V2024.x.x/V2024.doctree index eb218d1b6d0d15fbc9f422471403fa79de68f527..b54f7a906ca72b0874cfbd67d725a63603269e7f 100644 GIT binary patch delta 7849 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 WLNKg-=k8#~uBVXe>G1b=7XBYiK?TqN delta 7771 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 O*qIcz8OFW;!2bb+2N?|j diff --git a/doc/build/doctrees/source_rst/api.doctree b/doc/build/doctrees/source_rst/api.doctree index 6a5c36f771c73f3241c4ea7fe3762c264f390696..00e755dc46e153ec0b14c884bbdfc763f778f3cb 100644 GIT binary patch delta 402 zcmbVIJxjwt816MW1>5K%h&Cyx2ujgg>LNHeITWgcI9iY7?3*;{wRabUg3#R{!W+R+ zaB~o({v>~a{R0L+a22PA2c9pUx7w{s$MlZQzt9#rIAn<kLe8RI%mQvWyOgTO21-W4 zH=0RE1|d6w<Tzx3^qH2a^2IlFls0UF<bvR{b-IyN6B(qj*#0!-Fw-_UPoV)PP=hMC zV1d`hX?d#*J~piSt^hA<|Gocf3y!TFOzrcs(Rk*#IJH;y)o;PS0@sLzbvkNhi$?Lj zj=2eCzf+vhRYL3hD&Negk%q^4tCY?CXhcxZbaGGM33+|Ip0zC>x|5sA10i)}&U(cq gr4rPl<pOX>Jsdf!3&YHg!@kH{q<AJ;!Y60%1D1A)kN^Mx delta 378 zcmbOr^F*4pfpzLl-i@r@jLx3PRxzQ)sYS&xMXAX-sky0nB{44f$)zAhag4EnZhl5? zL1v79Ms7f6OiF%oOmTi`QF1DjiZ3cIiP=1nF^zF@1+y}L4^M7>N@-3iMAMYXbD8DL zLo#H00!Xn0V&UWu%z7LQJ*=5|DXA5c8=0jiXY=w;)?`-k&WO%n^DCK>Sel`ok(42w z!IL4A!A!O#%9Ev8k{L@U*Rz-l79&i{D9VuYW|=I;TDAEI>nBFW4U4z4voJ?zgl*o% zy?~KLijjc<s6|Eq=!h%{ASXjQOB6_zPHte4nY@fwkw3AAB_}g4b&5A5NQv;|YrIwf D&XR$Q diff --git a/doc/build/doctrees/source_rst/developing_hardware_components.doctree b/doc/build/doctrees/source_rst/developing_hardware_components.doctree index 115d0129a2d1ca304d5c08d0fb80afe6f947d5f4..caea739389fede1daace55f9eb84a13c809e4834 100644 GIT binary patch delta 199 zcmez2x5}TTfpzNqjVwKk-bwnosVSL>`dQgI`YDMeiTdUFMcMiVMfq8&$tA`5`5Czd znfm@2xdEB_Df!9z#rdU0$*E8(zNolFKP9y+H7CCyGcSGed=b&jpBP`snDmI06eZ>r z=OmV7=I6x&4NEUdEiRr?J4K_1wIshJF=vW5Lk|~BO==2|Te|s<+$Tmx?#<^F7PGK~ oF)}br-pH=QES(iRd8ujyW8mh0s@#l>l9RdA<rsq}YpVML0Q1O67ytkO delta 134 zcmZ4G|HF@^fpu!`MwT8%=agitn9$<XqT-mM)a0Dh+|<017?=FyQV^p!#@IkNKO?sw zGsZt7Hy|@6B|kZ)IKQ+gITcF97ZsPpY`)0IDZ80Z{u3i3`({SP#VjmAj0_Bu19^0q frL+7eUssJ_^xbTr#?8nmI@v~Dj?sT|w7Ne44q+`G diff --git a/doc/build/doctrees/source_rst/v1.xx/V1_01.doctree b/doc/build/doctrees/source_rst/v1.xx/V1_01.doctree index 58b3cec9414e338bb08a07b9037e4811b8ae4bba..9d17d048ac94ef901435d90f9adf4b99f63babfc 100644 GIT binary patch delta 11176 zcmbW730zgxy1@AsoWtNj8N`9{0FERgDk>-n&W4B}K66Au<gk%JhD>t^x;{NgrY>|j zkC_e5=PK7UExYBAR%%*mnUrPuEV7=Ja@F^(wK?bP&8qwEPk;Uv`>gN3zG?0Ct#$T3 z*S<2od&B7VykRBmb9)|!rNtEHPRq}ZQ3__nOv^6Mj+s?lS`brGTCC*el$XU6TMA3^ zW6~^zqw`~?73aj16<3tz<Tn1vDlIFIc_y~&v(LuZ&O%yu-)d8FX?|XQQTB|iiqia= z>QLG&HWX@X!98mLyy(8TKE!08(bL;fw_cNpzk!D5b^{Zw>GdYINxkEVhk<Ts8)4hf zdm<sR2D;q0C+(VWiVP8#hB1~PC7E{bI~>N+`lK+rwr`5>7=w$8CB)Lj5}GoWiw(3c zAe<-zXxn~g$Sif-codXTb7B;f(3HeNNTP=l2SX-(m^d6(p(b;m9Mqyr<4rC$R%JT2 z)y9(9<(A^28pVR2=G9bKo=`N_CZf_6s5BA=(D(YkMQp0AEbQJRZ0$r_L)?|+I5@>X zuMZA1WK}$^B+*exsc3tBQU;uRT-(`b<ZPqug5)Z=O@B&GB|oViOh@4@;lWM1Wni|K zs}VEgKDoxyiXI&pM`sN40tAP~8S)SWx^Gw{eH7ykH|f4X^B`DAEGTJXmynwV`qQq? z^yuJVSWd4F{t=Q9ieAy#4f@lDAuAybKgQ$rheM}87L6J<60(JsQq(dTwM3ErM!IiG zApL#V0VwAppK=uS=Y9oSTrnw`^q1i?NR^TPoD>%S7<2KAP)A{$zwN^jcL7$=cT?iI zRqUZHMvj5a!s^_nR$m+WB-#DgR_8mc(yY{6I4W#ZHMQY2DubMPY#V=b*sz@%<qhzK zFtWI*k>JtqkXw&!<VA-OIwCy_?h6}Bo7(s(y&Lgxf7~fr=CrXS<4b5mXO55ascC9s z_n4lfgRt>9OOkPQw!WDI0dLXtr_@{2ws&j*;5~}=44XKxV%(=>vb(54_2aT37s*)O zQ5O(FlY%`ATU4keJ@M4*FdN75d;8I(DBH#HeZX&>yNgSi^1B<>hjv}N#^8TiHzCZ# zi^Fy7#IcL$)G57*3oiNWRycC+lpt!ISV&$~P5Mq60=v0Mc$Hcw_2u2ky?YvV3fCV^ z8Vx<KI4uOJ7V-=8Vt6Ggnw?c#Ql4L2)Kw|T6ZNRk<OfYnZXw^Q=4NCS!jB?C?6608 zfEyDbO`qBgngw_`LZZcaA%0D@g9pu?(n}wa-_w;~rj_}DbobLa(1}7}v~e`5HG4R$ z9OYJ4jB9CIoD&1kPr&D=rNUqi2XVL`8m@TS(yAJ|)-0^4teIESiT6@a;tcOJj;055 zD`1isJal?rn8pVi_~1$O@6(?|35Sn!SOk=l*B?yFoB?&DC3zj2YjZXCPofFQ&w+Jl zqc?1GIJfRkom+?Y@P5FsXqu7*hdD0pnzP&m+Yd@>f@>5CW8E&}cslt?6rEa_hf{!E zaEo3&5=}c6#ll1Jxxu!iXiP9MdGd|Uco{V`c&wNlMAHtnunk^<fpqnB%uENGzNCY< zHjqF{t0zGZ`g3)(Z!Ci9E|}^9s3(wieTm<L%-j}Q8AVqEec`1Hbm7uV)5us)n%t=y zWY`Lqz6B%)?eFMmbmIdvY&pw5@_<D`>q4j2c3fCVOV)INBpX|EmXM8Nl)DEPto5Yf zi4nd7aI0(dLUc3w>H0kKcTcPtp>*Pg<o1rz&X>!6r*<!{gyCo03vBe=4VmPGI;de| zGkA|CZw&v-q25h~`qQ-=lgZ`(bhwW+eCnoT@<0FSaDUD4Oq>7aC|B};j}05^2({XM zMt)IlQE^$#;(v3vsBYFsm1mch*QB&7)1Nj{TM0wdw(S(Opv!i|xksv&`Dw>XS;<q0 z^W(`s`YQ{ZnHBRkS4@xR9F=;8f9ecnv~c@u=uK~K&xUxe(%6BkjH7qnh(h6>SLebg z+GR%$j7DJsjCAye(w47PVA*`}wK<R{26o~Db2NbUbqaH7$Q!F+z5qINV2%^8CA>M3 zz)B&D;<Dw9vLAQ#^PTDR-kr-bYzey)-C!@L-Mfe$Ph2IokN3YpOy|8EE2KUBX@C0= z?Fu=H!p8eC9`M%cZd-c*T**Z*dZ)UJcFn|dtw-sVe>m5S=*qCg99jw{mu3zl9nna5 zWOVnYHS)I8)Ied1UVEz&Txs%&E`Ew;bq?f~Zqtp2ot8vb2L1K$Q@A=u9$5;Pu}qXe zG(C4E7NTtP-#+dMeNj;YiE3uA4m(a1f!}1OTj7mc(e0DL!J4gT1QLx2n4o&q>r^dF zmAsn3y&6HgoOXI8x}t2Ar&HWv77mDWpTr@j3q8)4gK3S^g|0N|d{<ri7dovMsMb$j zcnQ`^)(g1eg|y~Vr*+X4MJrFYUU6|X*tmUTk+9G1_&`hg{l!#FQ?E-K;EYJqDQf&| z0$iclpC!O48hh8D?)mIKe9y<xuRb@xDRtPr&u7DBTiNBwKs-&n1QMgk=61E#m9#eT z8t6Wc+rYj*u3dK{?bW^)8v6onTmTYh;;XxrV|DXn_b`dohr`0YV{T-SI*c|B`}J0- zD@hl9eyi0!#MN_el7TL(KVzF+|1_9pp_ayjMJRo(J~UW+C+Bbz>bD$TBfHavpUcP` zQ`7r+8`qyhcinMh(p_|AnRtEn)70nnjo$VC<tQOc^>}+@U-!FJglt#)-cbAKo!|4| zAg%jj&|kC(UICa2%PzEkknXydOa3s?cOQh&9`}3W@nPS?IJ)`10l#<L`BxZy|9*g7 z+<;=ULmYzQj_?P|ZUJGeTMO_YcTH?dA#|hl4Pp4LZQsKLNEA#0edmFhuJ~6Zj1#?? zn%?*akx(Rh3mm;eU?KKIdamrU-$neR&p&7lRSvnCS|4`ATa#N@!+S}BH`_NKI@mp6 zCGOx&=RAslBM8N@Gy(=VB*=r_Y>Nkk)2TtN;eu26iB`DsB(%oW?HGAeSU$+E14OV~ z06aA`Us(t7crf585Q2EpM)Z+@=J=(!gW4IvHW8#_R7n>hA?ShRD|_A*A|Q<=xj_OM zscIO(HhZAGPHyPTbXAh0Y8cU+)d7UF_qk}EDw<;-lw?51YShl<dj63C`8QS3Yj$23 zS#LziaaD56F{r7VG4M6p?2aCOr6OMlKg_J12eg5Es^~XW?-$(pc<^ESypZ>9!E-|F z{1i{*JF22~LIi@3VE^(&Kl-bZzS=?IY>gL+#;T$Whp4HG-fT`Y%wz@gZH{(JRprI2 zOz2Cs+GkbA7Pk=h0Xt?wwcAwDW`_vVYi1L@(apD1QLRJ7?;du~8%Lc}MISjtV${m! zIO=;<^sNv<G4pK!9pSE6Ds;2K&A`u}2l>Zt#Af0TQCe>krA)0gYV8<>r6Y-*X#odF zTOV=edz&xs0JfzaMEEP3@*w(+CiaUDd`$ZIh|^+R?f?41lWt_F80vnU4~_F_+>vUx zw}Mpgv-miQSX*^VV&_^z%Z{2oDHD;#J?X626>z)nte*W1EV~UPvWaaVl@$0iEpBJI z!Ay3u4cMz&5X9B?YYSUkNtNo;$9kUzhd>3GUUB*q$<jk0QnyJhbGmayxWlf5!rNqr zWc~`*y^LK7bC_>s6n$~EPnaRWjT~1~`X%R%@|1QYaX$Fuq%HfV9oR^nn#F7ERD0ON zW_1Q1n${@->TBQZ0A~ns@nu<25X@F~h5_Kg>Y|{Bua_^Lh;f5?LH%NhNZTkF+=x~} zkV=I#rE1$h0TX~@m0j>It!Ib3zy`R+#z#XgYo7pJ`J<bDwRfVSrwLNIlFoGRE|c*` z?s-3!od9Ezu1$agSS7fWz0)2%0&>s}-?thk?{}W9%vxJtFuIa*U%o94b8L%BGdvId zyYsHn9D$UerpMfS+=Uz#J^;?b-<+NqiRebpTC)C0upHg{BniHR?N0Y#E4!Wy`{4ki z17R)HItIHp<AZI!d`%dl@p3C$J_yFaS;ttTN$jkt%{h3QwZlh)aFxLj81(=AIXeVO zp*_nU4&7MEP%IJ=EPVt{dzc^J``Fc?5RSJqiepVZ{4jZ;DLlLc9aJ?8Vjxq3((Mp~ ziC8%L42MooAW;@OCG34S9HOC0f)?nYH6t*vH4?N+K)CIm8-;Zxn171!QUbZxLCRHM zy8B*l`m?_myZj_(<+wEbm}=vQA6s68?ruwgR&ZIOE;%Ss*OEqJUHe(0ev~QV?$45^ zKsRj~-B|W$%=Hm9*Y)Xm9V$~nIx1=uB$GIq>MkfaqDFs+Z7zgZwmt(UlCd(Jp~7j* z_rD;FC|6ni3%DcCkimQnXl5hRA%s-P)B>4WBU7t%l!$h(OzqN9B7hSz^-n>OG=Fhw zfW~kSj=>^zQ>JgII_r42W>%kxu|AZk1|3yB7Q!Ha?HdQN-kLk#ucbK12vy0@MUr>c z$j!_=5jw*l2};sIi^d@|L4xq{3_l*!=|e1j3WmWP37(~DEN3v)Iiavz;+ASSGn+R7 zLSTmky&^+LCFrmY5`kWnpz}KD<B1Rpw<YKY0g>{Sy16_y2@=7?lBVeM?-?MnVhq4? z5o*74AyVSZc8<Xm=nwG{&`S@DmVi_{APN&cD2s(W37V#Z!lyzc%$K0&?2s-%*K909 z8zp$13a{1&ctGOz+c_Sfnfc^ED10bUC;x={TB5$PQ_fKDNziXPs9+j~>ch_E>!-)N zm6)E@xNz{Bhkae*n}wOUzchuT1q@LvJ5O`d4wJaS8ZI6tOY#XidATH?sgdKFwBW*C zB0-CF(EAoV%5IgQO#&iOt#sk7%ZE7JP@0B!Ox1WqAKqn&yQJaFj1}OTte2qM5=4xx z#fGA-POhy*brL4cEMW$OlMtB-v{UcSfOOJR24V$3j%dStkz~qXx~gdun^}SP;NBuE ztOYV<(NU?zIN4P)wLnMxQjA;88kt(9qwZTV!o4!JOGAaT#F@~JoRF!13W|(st(#4A zDIVQ#%JdCYXPp}Bucdqwk*Nk9wX6(d4QM0HlV2M#PmQ|b$}!e1GSyi}Ma_mDWROfH zX{aG&f((ok0IAc5S@8^vAai7TmZ}bSlKBwks<^aaM;AaVvRo#YYDhEtdKQMdL#AHQ zQH!3%P>;&gVI3txy(m-Xb<{Vrp*^`RQ$N_Lz4P%L*myKJF$enMcCzI;{Xy1~`Bven z%h<NbcG8qHYq&6WVlD*XmeLgJB}1bnC{+jXNO4<fs%e@XQjg9N^YQ3BU!tCKP}*Ya zxd4yQ8zp$13a=KCI_4F>Yc#dJUjv4*3D0AwA4<?k9n`>~uO;X!9kjj@dgJqursjUr zLF20+n)n1t3&uN8-B;S`mg<lfAd+;G>1aXY#!~sBb7LXHWN@$sG_#n6cymscsR=Sw zE>kl#R5-h^5Npm7nOdx&@BsGTXmP7dZ4wlT3e<%=ei2rH<1&3r)p<l8?qwOgqye#9 zFUI85%hYX|G6qTCU0m6grMSF=Q8N>TI7FrbHPjH&QwCxMK#u4mUAP3skW86QSJjPT zb;~sqTOflL4QOVYUcxk2$`mds9)nQVNUfHsl{!j9x<{sV>Zl)<Vr}|Brrr}285N|P z*t0J~0r^g*zfpBw*N6K+2JdUY0pQQVSLlyrKEYzY5sC)jx@aozsF9o5t1IveNwNg> z*Fj?`LQhH1SOJmi`T!GapbVas;0hHk4c1lPmnE)R!-cU~tMG)hU4pjC&=Cnbq=Nz( zKB&4NL7!+KGrP{99o&+jn|4SylkcsDSmG5TtrmASb1m*OZXw!8Nw^G#YQQkoW-SDf z-ZIrwLj|xsYr%}F*}1haoQ#v{OgpU-MKV#~AhbKlqV<qQmdf-Jm0ld83ue0vZq<Nc zY{N!eg@<M8A2M}brarb)Y7jrj#CLWA-3nv%o8SrJ5-QEa13P7(H+)(YDIPsvWuI(@ zZg85x7DzU2bv!Cmden~Ef=|YJR<|rK%`PgNk<EX<l7+u7%qz_;E8{=;s5X=rmuJtY zNpY$6vNO5U@MA@7$yT@xkXt+X6}aKLpkFBdJ}({{%gdH(B@rKrDha%~guk><F7T!= z{-jLl!<)YNBO0X-Z$9FJ4|(H?FVPei-gLw_lS(_@q~X(NWh8IH_{U)0e88Lcc+<d} zKX}vK$7O+w5`zzmm8-n@oHv^=Ol3W9;(61HH&b~tnKz6#HN5G`9goGPqS~`4yD+zW zc1f-XUEv{FEiYR|G*%IbRYZX;I&T%;TZQM=1;TBsaM>!{wF+0Q!c8l85eIPZtim&^ z@X9JYvI=jk!V_zSB^=YPX3}J-wiJjoT2`nzOyVgOIZPK<Jcs<JdddQk#QyxVNFx7% zi<-n+{7NLTfnSLvX7HSfBt|)sc#2<%92)s7h#bc8M2Z|<<5wbw_54cYu%9D`IlejA z$&;w?yGt3w^#}6iTYQqN@K^ncKiALS#49EIiog9<cJhY5iB?|ZHu;NG<vFgOzlTt2 zdBa};D4n_H(`@q_a2LwhsyE>>p4>`yVnsR`iuFH~rR)J;c77*rogakK&53Q`1RK2@ xMzFEF@UhWN6}{m={h*Fb*@Fd0z%9j3KgEF82?=8}cj9ZBM}Gygm-j&0{{fJH;*tOW delta 11101 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 diff --git a/doc/build/doctrees/source_rst/v1.xx/V1_02.doctree b/doc/build/doctrees/source_rst/v1.xx/V1_02.doctree index 266ee95ac39e61c8ac36c9455adf5ee9f3c661f1..3097a84106849387df1396299b3e554423143814 100644 GIT binary patch delta 11833 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 Y`dZkOS0RD)vA8U|#=-||=4mMSf6XTeO8@`> delta 11494 zcmbW7d0bXi-oW`Cc-TaCMfNRmLj(n7m0U;^F>t{YP!Z9`n}D*VWg?~7<BkVCnMpFD zrR74;7?zWYIj>e~F6lcnrfH_>w2YR{_>P(LJLf*n!@Zn(Kl7144)>nl_x!fA-g}=b zOPqE;a&%a1SihphVKI!%Elw_&P+3w@Sx`|@Jg20zq^zo7czJO(zo;x25ZkxhSUPuh z!PCaloY@64%8Lss%d0DjODzAUR#a9M)WpTipI>193^v4?>-*OOIMK-XMB-wgYbX2D zn)pKEX`pv}qiO662XLW|3GZ;(l>B%@wlPpKP_MKIv-`jTLSi@;Pq!p~LWYV<!vq8d z)8?d17)y)NL#bPGmRF9!&dwNYj5da3P2^$&z4}fBq|z11CrFjrEFbIVqTWdQ>rf{s zr5~k~LK^LpIvjH8+|*2<s4OgT8Y)tXcrhIdlTwW3O2@eis*L4j4N3{#z1UD~?4xK5 z7NX)cTrt{9Nc#}>(%WfC@UG3&4m6cPl-2Z&!I5b3@ZfB;=$<|nPCc&0Vzl_F#p0#( zm*5ti_GC8sPL0!u!f&m{$u|aC`+hKu8#2t*&JlCuRM=qbN@Is4(2E(aKxos@1jB4> z@oUExLxxTTe-tN?E{^ofu3o5#{i8otg$;{_)iit94=@<Ted&{P93X|34qp$Wg|>O9 zErq6K<U;}7m@yirh}tTwolL`?>OoQ*>72p<TKv>Ln8!t)HM{}$Ey!qJJzdGAQ%1~z zS~@lBv3g^^Fdv@nYaWz&4`7Y3zR+4pUl=tGHVd<hI-2#(8U^n>uGz&l3!i0`zyTUJ zI>}8JRL$tI@X6z9e}!u|hi8Wa{8c!=yrc84jyVk9KCb$e!uh7BE8$;4``V7$C+EZx zgA<*W75X?6WSvltT|)nrbBT0u;uG3)Lq{6{W8+Dru#xl_lW?O@$F3%WkNLpZ7$AeW znP_!%nuEr70Ww+`HZ%!u=1lkkCetB#FOcafi0crU>_l6-MNrQmXTw%Og--m4)QDz| z+jxZ&ee+x(O`Pd&9`Z~gc)jLiXIIHrgRdNL_y#IVXkg(Wct~^Cb+PA@;Mu}J8a}xc z{(y!8=#I%5WT(v-R)*)NU|E=-L^O)q@}t1(LI=f1B*jf|MJVktrIg&XDJ55I5jeK$ z9S)xw3tpbidWV0J^aj#<)9Ofovsk9<i;5wFw$1L#S7}~p&CX%2+dOglFdzd}bYF2c zt_K#h+d#BaJ>A%KCB!r=ZK!K_v7slnKol2vx)@jd6uNYV3G%2%$pl;=EY0wqm5d^J z0&_fS^WU5}b2NA_@8EllGYu*n*dg2fjK!ou^=Owd7~Zg|?$+>|9wExNoRi!X&7NHe zf5Zm7JJf;Xq1Y2RFLdB4=WrHv&>wE}rWJE$!3}FQT%!+<_oYdtaX5Q;Bz!@<Yu;Si z6iy5-e5^ZOME!T2aqRRqH?NrmUOim&-QYvV*S|vgaJY}R(hH^PUY6|y*wTmkuTw`= z5Zt9@>+ZsET1>CPQ#6MqIJt6Us0$5$DvI27=1X({{kS0+z52Cb2ARQis<WWTyng+M z02SCO8H&s+*ePeS!D6zZ-DE7+x0b%PB?{8ahqjy~uuItS<@GyUa4U%LO2uu^;-RSC zPJh`ti+t>Y3q%Ml+~!JGH4o};o5XyAw6z=P$`x(LdtB>}&|A&p$pve}PH>j?+aCVA zP5pIE_iP(aZvMATgLF-+w~r_P{%@OxYMSPnQ{L)rPuyJjTG-nb;!3AEv&%}#$}1aQ z{q1uD-MceDb4baK5IX6_ou7~pSDMS>9s8*@SKf(qZsy72oq#vqtJ^atx@Lvw0vD6Y zEai8-;3c~L-4!?>!gp1YOjTchu5UO!y{k7$7rh@s{dbo`AvNu;B2!gj04MS_#7ldY zK^1k~yOPwXL_8-dG(=#_HdsO1T6U6EDv`hmlZLqc-j}$hoitx1%_=dF6I(RIfPLlg z0o}T<iX2dhL7Zr{5w&od{`&q*a#ocla_K3XG{k(XbrO(UsxXNQuX7=J$;Em+@ucTI z@b+5Vo;M#(6`B9}K`#ezpkW7-Ns$Xq#$M*72b)QFR44sp^u~M3;2r@uMthrIXajrF zvy(JCM{vE~^uSSdcKSJriXyY;pI?XYaUImAx2w$&YS$gBBNJq$Ib3NvJ$%fflzJRD zKoRY7{283mWye?J6nS`jE~(`$)rq~(yycT4E@V|FF^(qi_6yC8=Qcw4o(?{2YWKk? ze4usbTS<%Tgpn)RM4!80jZ9Q5G@rPT<wTCFh7@6lHlFKaUUYd8g#W#Ru?y|S7O2La zxw49UFB@CH6<wfDT(ue#6$|Ntt9!tn-no|Gv{0DpBo<{l|Lbhb!T)@{8G>lhw{dtP z-EeI(^hPil{LRtdbOuP|t!Vjm1MzoL8=0;zfU{=%8-)OqM5{bA{dT`S%;Kcu3a&rT zyzINH4p1#D){7c9v1EUK`$Y(6Zu(L3GTvK8NuwIw)}P*ljo3I^w}LlvMK9C3pRL__ z`ey^lbE79O_?dtF`2`1jTHwCEdEWqe=56;Y?cpG=@Y=3AfJW3)ahiGRFa1cLZ#uYf z+U7<UUr&4Epzoz_xA+M4D4KS9l!`l5N2gl2^3&*)58e3a39*IxIf=>>ZXFl+ox+iQ z-QWY_x!&WDo%mDtb9;8j1ri+1f@t-zhnER>sdf8B9Xo3PBSf%TM;P}1{7ZK2f_sE< zH#!x;);K{4nbDcn`-HMf&fvs?oFNvfgj%PAT<yHh6aqrnS5Dx_b~%HGh8_efHK2)u zQ7C42d?5;o*cKPafp<BPOm?Wk?W(0JSBQj<RmowUB(M`o{-#R)S0_2r3A)1_Rq~@w z@~j*5AkOY$J|5;S8(6&uR&CdM633qI4E>-dTk8qQ&|M`W+*wN?gwx&revqz8Qgss6 z<PLt2r;5heM7iB?hz|BZQK>3Y^rDMgv_uuv=|%HBQM5@Fy(UE1RkwYihng_qW@k3Z z3nIt?cXr1Il3>58VV~+O18?vnXDzbNZ8G6gBbVK>$ZqImDL!b~j@|ab_#f&;f8ioO zRpiTZyJGUJ)~bC`6r+mz2oda){mttF5io}3_@VABmC9r}JWCI|KsP8+CDW~vy@43? zrmm=Yp(<Hmm54Tj{ICsGC2Oq`(dIn52|HEETUH6SNrE=D@}Q_BnI4)!Xvyg~f6VDs z57rWZ_+_>6Mebw-d*F|0yKfQQvx<bp*8<R@2iqHfgV@cJk8lu;!dZMEdKslkBCQf^ zlLTpMWwNzW1XUJ<_;^*4D<tHi>Ln@a%#Zqxr}&KImmzdjcjr!ye3tIOx==paBmA22 zGLJ7nxJ0RI;TT+l(%80O*hiLn^5M_chJb<8dGb}oTXSsuOso&;;><3Gz@JF7r)@)P zYCRbWqa4V4LWR?5&Ng}SwYYWB6OawzUwG;l<HLAwS&T1=#h7)Dg7xGASE)ZxU*x(D zv#U{HS&vz44|EW<<AU5erU#hp$q%a8OB%C-`#?2>dwA*1K4>?4Q#Jc28a^UkUXt0H zT-O6`)`z*rfMv;b6xB_wIWdszK%%`w!VdRGe|mcH1RMJDz}b)e;Uvl8O4a>7ll?dV z_K<@1nn|sv<KYAWg>4=L1*C#Yda`~=;Obe0KJx?k67>mHVQGnwp@P9|OCqkdOEvVe z4s`3tB*+J%c;REx0H^Gqc^H$}m1NiqnQT!Cw%*b1#rD>&sSxi*TGc=nXMzE?bJ&-? zo(V&+#g~~lFiy9(ILVHVgm1`Y(ZI`zp!SpKf%QdD>pw<8ggyD*iyyW}*bduDfUBL| z@0_#6`#B{Tfh-VD=I!t4vR#CJ)uB~mpdK9xeHt#|Tq>FX>SLQ5>z4!XK`8q=2k;EX z1+jE7GdKnCw!z-EUU6era-jqUiKgxzmcbXysd!d57RHkdZ?@PGl9=Z>aCw{?$Y8z4 zLj|l6POy{Xp%+=n9f%?(Z?QY3Pk?ZEi;LqrZ}!Htg=F#mY1TnECg2`(P=XHVpiOzu z3(iZ>SsgTLBJ_ptCFqt8dN>hBmp!YSr1#0r$KtqH1j#Gjd_8bk!krFOFjH%tV9+`r zSC%#j4+_yz^IoDkE^Tf35XKxQ;{rHLf}YetTPK4*OqQUDGBi(u$~4djcvX@w)yTux z>H-|wZ%WV`HmC@<(nxlv7UDJ(;cPl2p?^}*4|sT?M9E-x>M_C#5_e9+g|WR;AsG9k zW2$dS5V7}VX9^(JO*2UB*pL!*OPCx%0%X8X1B7wENt_JD*r4_pS-^D2CAl&@MuoH3 zndvZy7-gVD17KQ<F&DKmwNOV5m;vErgG^B!^|u)~d3MRvP90?`LF%YXwF!!3`Kmj( z+LdhHOc+7Fk?E_d&dWSZTW697GI(DDhOt^B1QV|=qNB94*}V&&Ie0oibr!0pOm){$ zBHVPDO0`lgv$2cvWMG^C$Yp(`Z3?838kw$C>A5JWhfrLv_^>6bWN^6+Y}<=L9G?Rr zWUGvA`3>wt8Eds-ViBBE3UTC&Or6qEk!27`ZpzekE2ZmNLpiQO&Ma=8ei1Wt6<tBt zow@Bji+e>!E=a?rLxLplual3K<RdlmFvbIfVhNh2gGwv#A?0}qdQL!ubk&82uleV} z>k`aVjSc$nS|o0_h6|(b`uoE%i8(4UmnG(+h6!hpH4p;#B<Lp%6vmF#;JWC>=FNvV z?PBJ_au?tOLW4fc&Cfvs?j;@JUMd{rryaGpopj`$v~l%QanQcL0D@qWMCJVkHCLia zt&|wDsn6rSy-b3Z=%8!QW4AX-&?YOS>(O&Bz$Dz{JBDyTh4=djv+pg$<eitGvsQ?S z$(i#a_QUrQb<0MHY}|VhvtiHLmgqaejy2U{M_3I0!Z6MN3G&lHgKP02I!=OOtdJ(o zMUX3TV^l7yn+WmVVhqtJK_ym54UyJih_w>6&_;<66JNp*H%Jt<Qo>;LG8h26Bxt7& zqAz2JM<uAu3TZ-&W6v!CJQ7RrRTaM6O&zrgJG2TzeIRl7ZJg-M>q~K|_41dte|I+I z73?TfCt_Xx3Ivg!GS=OS*@7kMGL@>Mt}lb`Bu}QsSt(t(pS%hwq(-JIReCN;w0nyT zF1Lc{Vi@~$IRuccGPOmfK9s3e4He3G-;y&jbxKD?uEaybO_{oGrF7wTS_OTHbAYtV z8v-m_3qJSZp+W6l5-Nj18Ze9%tcF06AXEKy)I&~<mZ_0Cs&NgT%8F%bnvTj}ivc_@ zQ_l&CkN{n{BkFP6eO;!Rs<VNq;aW}(Ei$-U1E!H<GH_G}T$X{08X$~)L2+>2lc}FH zR0OMQz=XL4O1<O~D4t>(^g-sY$8i!Z)4c?Z4=r_@+K&rlm<&Ft0mIlthV&$v%9E+N zGF7Uh_zFyx$<z`Zwe>YjN~26|5)_FF)b;7IjWCWJl<5Pi&i(pu&&%Lh4VXs0lYyIB z00{HitUrf6(#XS@*k$}BsB4gzQNo=t_T3w}1jkBHUjdQ*`UpSY49`N21ZS%nN3phT z?fnU}ByNU=3u9B>#G~<x67;+b;cVy-XuS@4dka3Kzav3!>!68E2py52LjoeBf^=P( z{s*XpuO;{^RpXcXK>ttT{;A=@*n(z!9Q9ziTlGf*Hx}2751K-m1&WfONF5Zk4bt(A zWk*fP8YlzbTXvM^3OV^wALF05V?wGVc%BNE1#9;gSRrw*S~;=3_`D4P&?G^P8mJ44 z9S7a$?NDb@7A&^SzrT$hv`LK)Y8r*IjXUr)&0i$wycN>*+p?W75$;Pco}Mw)<R?o^ zmQBPXMB4q`Sko>6+JYk8Whz2P6|TmeHC3jPtdx4T%GiYmj&U-UW5q;DZtcQNQ<14z zR!SG{nceuLy<Dc3sq~T%p|f!hK72OGRHLBq+sEO(_(CsrFZ#D%ruJ#5bn>|joX{Ct z+JXVxkg01rD*ipB9?I0et&}y)wjziWFWWP`tuNbMZ7<v7*>E!qb#vn{%fyRzWpnE~ zGk)D@z4=G@9y(14#a}48msC`gSFon{!Kd}7_u-g*Z4y>11F<l!HLg+y<Lh4~g%_XW zk64rwyhy~~+$jmXNW`BTDG9td#sx=tF%DnsD>=MafFE*|8eUAn&x=YvFXr*vGG27$ zhz~Eac#+AAMo+t1J7p8T9#=B(eXcT;7cLlp;>e4w{B{d3KIO$RUH}*T%CF+M<1tuN zuXHIZDlMs6Ft?<V|AI*2A(@P8O(GhTh{PnKz!IG|3GYq9b5pHw+az2z33pAxRg-Yj z#9hP&+&h!-%p|-r36D&|8<X(FRBa6BwnZl0jH`@uL>i4$&EXK9Qjx>4;)>^x|Ljkx z6-i9t_ace>w?k?YukkC9#Jl`TB(aF+R3vdBeFKhLDdA^*mr=CFyUROB#|r%L2- z62B5T+|I8=4o`a3;w4X_!pDu0BJ}ejk?ZF_aZpNl!GD#YwDE%fHbD7>7yQG$vV+^? zAGwu(@`8V7R&H?X{9B6>&MooJA4(Lr5sx;iS9YFRUS3sJUR5%+qGTqE{|K(Z9M<h1 z{FNLH#SaoO4uMKrDDKK3>|`5$Cmw$Yx6wnPv?a#ZkdNPu4ztyVU<bKkWiQ!SZ~Xpx er47$y7P`nvk7R*uFpWI0Ho5<MO_<jac=|txQ99EA diff --git a/doc/build/html/.buildinfo b/doc/build/html/.buildinfo index d1015364..13254cbf 100644 --- a/doc/build/html/.buildinfo +++ b/doc/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 632d0e889a8fba89da2489b9424a452f +config: ca7e0a74d2b6886c0b281f49e446eff0 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/build/html/_static/_sphinx_javascript_frameworks_compat.js b/doc/build/html/_static/_sphinx_javascript_frameworks_compat.js index 8549469d..81415803 100644 --- a/doc/build/html/_static/_sphinx_javascript_frameworks_compat.js +++ b/doc/build/html/_static/_sphinx_javascript_frameworks_compat.js @@ -1,20 +1,9 @@ -/* - * _sphinx_javascript_frameworks_compat.js - * ~~~~~~~~~~ - * - * Compatability shim for jQuery and underscores.js. - * - * WILL BE REMOVED IN Sphinx 6.0 - * xref RemovedInSphinx60Warning +/* Compatability shim for jQuery and underscores.js. * + * Copyright Sphinx contributors + * Released under the two clause BSD licence */ -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - - /** * small helper function to urldecode strings * diff --git a/doc/build/html/_static/basic.css b/doc/build/html/_static/basic.css index 08896771..30fee9d0 100644 --- a/doc/build/html/_static/basic.css +++ b/doc/build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -237,6 +237,10 @@ a.headerlink { visibility: hidden; } +a:visited { + color: #551A8B; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -324,17 +328,17 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } + nav.contents, aside.topic, - div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ + nav.contents, aside.topic, - div.topic { border: 1px solid #ccc; padding: 7px; @@ -375,7 +379,6 @@ div.sidebar > :last-child, aside.sidebar > :last-child, nav.contents > :last-child, aside.topic > :last-child, - div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -385,7 +388,6 @@ div.sidebar::after, aside.sidebar::after, nav.contents::after, aside.topic::after, - div.topic::after, div.admonition::after, blockquote::after { @@ -611,25 +613,6 @@ ul.simple p { margin-bottom: 0; } -/* Docutils 0.17 and older (footnotes & citations) */ -dl.footnote > dt, -dl.citation > dt { - float: left; - margin-right: 0.5em; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -/* Docutils 0.18+ (footnotes & citations) */ aside.footnote > span, div.citation > span { float: left; @@ -654,8 +637,6 @@ div.citation > p:last-of-type:after { clear: both; } -/* Footnotes & citations ends */ - dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; @@ -668,10 +649,6 @@ dl.field-list > dt { padding-right: 5px; } -dl.field-list > dt:after { - content: ":"; -} - dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; @@ -697,6 +674,16 @@ dd { margin-left: 30px; } +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; @@ -765,6 +752,14 @@ abbr, acronym { cursor: help; } +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + /* -- code displays --------------------------------------------------------- */ pre { diff --git a/doc/build/html/_static/doctools.js b/doc/build/html/_static/doctools.js index c3db08d1..d06a71d7 100644 --- a/doc/build/html/_static/doctools.js +++ b/doc/build/html/_static/doctools.js @@ -4,12 +4,19 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ "use strict"; +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + const _ready = (callback) => { if (document.readyState !== "loading") { callback(); @@ -18,73 +25,11 @@ const _ready = (callback) => { } }; -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - parent.insertBefore( - span, - parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - /** * Small JavaScript module for the documentation. */ const Documentation = { init: () => { - Documentation.highlightSearchWords(); Documentation.initDomainIndexTable(); Documentation.initOnKeyListeners(); }, @@ -126,51 +71,6 @@ const Documentation = { Documentation.LOCALE = catalog.locale; }, - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords: () => { - const highlight = - new URLSearchParams(window.location.search).get("highlight") || ""; - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '<p class="highlight-link">' + - '<a href="javascript:Documentation.hideSearchWords()">' + - Documentation.gettext("Hide Search Matches") + - "</a></p>" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - const url = new URL(window.location); - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - }, - /** * helper function to focus on search bar */ @@ -210,15 +110,11 @@ const Documentation = { ) return; - const blacklistedElements = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", - ]); document.addEventListener("keydown", (event) => { - if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements - if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; if (!event.shiftKey) { switch (event.key) { @@ -240,10 +136,6 @@ const Documentation = { event.preventDefault(); } break; - case "Escape": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.hideSearchWords(); - event.preventDefault(); } } diff --git a/doc/build/html/_static/documentation_options.js b/doc/build/html/_static/documentation_options.js index ef993482..222d06a7 100644 --- a/doc/build/html/_static/documentation_options.js +++ b/doc/build/html/_static/documentation_options.js @@ -1,5 +1,4 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), +const DOCUMENTATION_OPTIONS = { VERSION: 'open hardware resistivity-meter', LANGUAGE: 'en', COLLAPSE_INDEX: false, @@ -10,5 +9,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: false, + ENABLE_SEARCH_SHORTCUTS: true, }; \ No newline at end of file diff --git a/doc/build/html/_static/language_data.js b/doc/build/html/_static/language_data.js index 2e22b06a..250f5665 100644 --- a/doc/build/html/_static/language_data.js +++ b/doc/build/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/doc/build/html/_static/pygments.css b/doc/build/html/_static/pygments.css index 08bec689..84ab3030 100644 --- a/doc/build/html/_static/pygments.css +++ b/doc/build/html/_static/pygments.css @@ -17,6 +17,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #E40000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #008400 } /* Generic.Inserted */ diff --git a/doc/build/html/_static/searchtools.js b/doc/build/html/_static/searchtools.js index ac4d5861..7918c3fa 100644 --- a/doc/build/html/_static/searchtools.js +++ b/doc/build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -57,14 +57,14 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, highlightTerms, searchTerms) => { +const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; - const [docName, title, anchor, descr] = item; + const [docName, title, anchor, descr, score, _filename] = item; let listItem = document.createElement("li"); let requestUrl; @@ -75,29 +75,35 @@ const _displayItem = (item, highlightTerms, searchTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; + requestUrl = contentRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; + requestUrl = contentRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } - const params = new URLSearchParams(); - params.set("highlight", [...highlightTerms].join(" ")); let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; linkEl.innerHTML = title; - if (descr) - listItem.appendChild(document.createElement("span")).innerText = + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms, highlightTerms) + Search.makeSearchSummary(data, searchTerms) ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -116,15 +122,15 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, + searchTerms, highlightTerms, - searchTerms ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), highlightTerms, searchTerms); + _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( - () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), 5 ); } @@ -155,10 +161,8 @@ const Search = { _pulse_status: -1, htmlToText: (htmlString) => { - const htmlElement = document - .createRange() - .createContextualFragment(htmlString); - _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); const docContent = htmlElement.querySelector('[role="main"]'); if (docContent !== undefined) return docContent.textContent; console.warn( @@ -239,6 +243,12 @@ const Search = { * execute search (requires search index to be loaded) */ query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -266,6 +276,10 @@ const Search = { } }); + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + // console.debug("SEARCH: searching for:"); // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); @@ -274,6 +288,40 @@ const Search = { let results = []; _removeChildren(document.getElementById("search-progress")); + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + // lookup as object objectTerms.forEach((term) => results.push(...Search.performObjectSearch(term, objectTerms)) @@ -320,7 +368,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, highlightTerms, searchTerms); + _displayNextItem(results, results.length, searchTerms, highlightTerms); }, /** @@ -401,8 +449,8 @@ const Search = { // prepare search const terms = Search._index.terms; const titleTerms = Search._index.titleterms; - const docNames = Search._index.docnames; const filenames = Search._index.filenames; + const docNames = Search._index.docnames; const titles = Search._index.titles; const scoreMap = new Map(); @@ -499,16 +547,15 @@ const Search = { /** * helper function to return a node containing the * search summary for a given text. keywords is a list - * of stemmed words, highlightWords is the list of normal, unstemmed - * words. the first one is used to find the occurrence, the - * latter for highlighting it. + * of stemmed words. */ - makeSearchSummary: (htmlText, keywords, highlightWords) => { - const text = Search.htmlToText(htmlText).toLowerCase(); + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); if (text === "") return null; + const textLower = text.toLowerCase(); const actualStartPosition = [...keywords] - .map((k) => text.indexOf(k.toLowerCase())) + .map((k) => textLower.indexOf(k.toLowerCase())) .filter((i) => i > -1) .slice(-1)[0]; const startWithContext = Math.max(actualStartPosition - 120, 0); @@ -516,13 +563,9 @@ const Search = { const top = startWithContext === 0 ? "" : "..."; const tail = startWithContext + 240 < text.length ? "..." : ""; - let summary = document.createElement("div"); + let summary = document.createElement("p"); summary.classList.add("context"); - summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; - - highlightWords.forEach((highlightWord) => - _highlightText(summary, highlightWord, "highlighted") - ); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; return summary; }, diff --git a/doc/build/html/genindex.html b/doc/build/html/genindex.html index b092dc4d..c3f6e862 100644 --- a/doc/build/html/genindex.html +++ b/doc/build/html/genindex.html @@ -10,11 +10,11 @@ <script src="_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> - <script src="_static/jquery.js"></script> - <script src="_static/underscore.js"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="_static/doctools.js"></script> + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=c6fcd74b"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="#" /> <link rel="search" title="Search" href="search.html" /> diff --git a/doc/build/html/index.html b/doc/build/html/index.html index 0710a34a..02ed055b 100644 --- a/doc/build/html/index.html +++ b/doc/build/html/index.html @@ -11,11 +11,11 @@ <script src="_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> - <script src="_static/jquery.js"></script> - <script src="_static/underscore.js"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="_static/doctools.js"></script> + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=c6fcd74b"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> @@ -76,7 +76,7 @@ <div itemprop="articleBody"> <section id="ohmpi-open-source-and-open-hardware-resistivity-meter"> -<h1>OHMPI: Open source and open hardware resistivity-meter<a class="headerlink" href="#ohmpi-open-source-and-open-hardware-resistivity-meter" title="Permalink to this heading">ïƒ</a></h1> +<h1>OHMPI: Open source and open hardware resistivity-meter<a class="headerlink" href="#ohmpi-open-source-and-open-hardware-resistivity-meter" title="Link to this heading">ïƒ</a></h1> <aside class="sidebar"> <p class="sidebar-title">Summary</p> <dl class="field-list simple"> diff --git a/doc/build/html/py-modindex.html b/doc/build/html/py-modindex.html index 16a9f551..c98ded08 100644 --- a/doc/build/html/py-modindex.html +++ b/doc/build/html/py-modindex.html @@ -10,11 +10,11 @@ <script src="_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> - <script src="_static/jquery.js"></script> - <script src="_static/underscore.js"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="_static/doctools.js"></script> + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=c6fcd74b"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> diff --git a/doc/build/html/search.html b/doc/build/html/search.html index 860e74ff..825601de 100644 --- a/doc/build/html/search.html +++ b/doc/build/html/search.html @@ -11,11 +11,11 @@ <script src="_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script> - <script src="_static/jquery.js"></script> - <script src="_static/underscore.js"></script> - <script src="_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="_static/doctools.js"></script> + <script src="_static/jquery.js?v=5d32c60e"></script> + <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="_static/documentation_options.js?v=c6fcd74b"></script> + <script src="_static/doctools.js?v=888ff710"></script> + <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script src="_static/js/theme.js"></script> <script src="_static/searchtools.js"></script> <script src="_static/language_data.js"></script> diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js index c21c7d27..314a2e00 100644 --- a/doc/build/html/searchindex.js +++ b/doc/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "source_rst/Ohmpi", "source_rst/V2023.x.x/V2023", "source_rst/V2023.x.x/V2023_step_01", "source_rst/V2023.x.x/V2023_step_02", "source_rst/V2023.x.x/V2023_step_03", "source_rst/V2023.x.x/V2023_step_04", "source_rst/V2024.x.x/V2024", "source_rst/api", "source_rst/developing_hardware_components", "source_rst/v1.xx/V1_01", "source_rst/v1.xx/V1_02"], "filenames": ["index.rst", "source_rst\\Ohmpi.rst", "source_rst\\V2023.x.x\\V2023.rst", "source_rst\\V2023.x.x\\V2023_step_01.rst", "source_rst\\V2023.x.x\\V2023_step_02.rst", "source_rst\\V2023.x.x\\V2023_step_03.rst", "source_rst\\V2023.x.x\\V2023_step_04.rst", "source_rst\\V2024.x.x\\V2024.rst", "source_rst\\api.rst", "source_rst\\developing_hardware_components.rst", "source_rst\\v1.xx\\V1_01.rst", "source_rst\\v1.xx\\V1_02.rst"], "titles": ["OHMPI: Open source and open hardware resistivity-meter", "OhmPi project", "OhmPi V2023 (64 electrodes and 12V)", "<strong>STEP n\u00b01</strong> : Raspberry Pi configuration", "<strong>STEP n\u00b02</strong>: Measurement board", "<strong>STEP n\u00b03:</strong> MUX board", "<strong>STEP n\u00b04:</strong> assemble the OhmPi", "OhmPi V2023 (64 electrodes and 12V)", "API reference", "Software interface to new hardware components", "OhmPi V 1.01 (limited to 32 electrodes)", "OhmPi V 1.02 (limited to 32 electrodes)"], "terms": {"r\u00e9mi": [0, 1], "clement": [0, 1], "vivien": [0, 1], "duboi": [0, 1], "nicola": [0, 1], "forquet": [0, 1], "inra": 1, "reversa": [1, 10, 11], "villeurbann": 1, "franc": 1, "yannick": [0, 1], "fargier": [0, 1], "ger": 1, "rro": 1, "univ": 1, "gustav": 1, "eiffel": 1, "ifsttar": 1, "lyon": 1, "h\u00e9l\u00e8ne": [0, 1], "guyard": [0, 1], "ig": 1, "grenobl": 1, "universit\u00e9": 1, "alp": 1, "olivi": [0, 1], "kaufmann": [0, 1], "arnaud": [0, 1], "watlet": [0, 1], "de": 1, "mon": 1, "belgium": 1, "guillaum": [0, 1], "blanchi": [0, 1], "ilvo": 1, "merelbek": 1, "julien": 1, "ganc": 1, "emil": 1, "gro": 1, "et": [1, 4], "al": 1, "an": [1, 3, 4, 5, 6, 9, 10, 11], "open": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "sourc": [1, 3, 9, 10, 11], "data": [0, 1, 2, 7], "logger": [1, 10, 11], "dedic": [1, 2, 7], "applic": [1, 9], "electr": [1, 4], "resist": [1, 2, 4, 6, 7], "imag": [1, 3], "small": [1, 2, 4, 6, 7, 10, 11], "laboratori": [1, 2, 6, 7, 10, 11], "scale": 1, "hardwarex": 1, "elsevi": 1, "2020": 1, "8": [1, 2, 3, 4, 5, 6, 7, 10, 11], "24": [1, 4, 5, 6, 10, 11], "p": [1, 4, 5], "ff10": 1, "1016": 1, "j": 1, "ohx": 1, "e00122ff": 1, "particip": [1, 2, 3, 4, 5, 6, 7, 10, 11], "all": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "requir": [1, 2, 3, 6, 7, 9, 10, 11], "skill": [1, 2, 3, 4, 5, 6, 7, 10, 11], "electron": [1, 2, 3, 4, 5, 6, 7, 10, 11], "respect": [1, 2, 3, 4, 5, 6, 7, 10, 11], "safeti": [1, 2, 3, 4, 5, 6, 7, 10, 11], "rule": [1, 2, 3, 4, 5, 6, 7, 10, 11], "must": [1, 2, 3, 4, 5, 6, 7, 10, 11], "assembl": [0, 1, 2, 3, 7], "profession": [1, 2, 3, 4, 5, 6, 7, 10, 11], "context": [1, 2, 3, 4, 5, 6, 7, 10, 11], "peopl": [1, 2, 3, 4, 5, 6, 7, 10, 11], "compet": [1, 2, 3, 4, 5, 6, 7, 10, 11], "The": [0, 1, 3, 4, 5, 6, 9], "team": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "cannot": [1, 2, 3, 4, 5, 6, 7, 10, 11], "held": [1, 2, 3, 4, 5, 6, 7, 10, 11], "respons": [1, 2, 3, 4, 5, 6, 7, 10, 11], "ani": [1, 2, 3, 4, 5, 6, 7, 10, 11], "materi": [1, 2, 3, 4, 5, 6, 7, 10, 11], "human": [1, 2, 3, 4, 5, 6, 7, 10, 11], "damag": [1, 2, 3, 4, 5, 6, 7, 10, 11], "which": [1, 2, 3, 4, 5, 6, 7, 10, 11], "would": [1, 2, 3, 4, 5, 6, 7, 10, 11], "associ": [1, 2, 3, 4, 5, 6, 7, 10, 11], "us": [1, 2, 3, 4, 5, 6, 7, 10, 11], "equip": [1, 2, 3, 4, 5, 6, 7, 10, 11], "doe": [1, 2, 3, 4, 5, 6, 7, 10, 11], "work": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "after": [1, 2, 3, 4, 5, 6, 7, 10, 11], "you": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "mai": [1, 2, 3, 7, 10, 11], "redistribut": 1, "modifi": [1, 9, 10, 11], "thi": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "document": [1, 2, 7, 10], "make": [1, 2, 5, 7, 9, 10, 11], "product": [1, 4, 5], "under": [1, 6, 10, 11], "term": [1, 9], "cern": 1, "ohl": 1, "v2": 1, "http": [2, 3, 4, 5, 7, 10, 11], "ch": [], "distribut": 1, "without": [1, 5, 10, 11], "express": [1, 9], "OR": 1, "impli": [1, 5], "warranti": 1, "includ": [1, 2, 3, 5, 7, 9, 10, 11], "OF": 1, "merchant": 1, "satisfactori": 1, "qualiti": 1, "AND": 1, "fit": 1, "FOR": 1, "A": [1, 2, 6, 7, 9, 10, 11], "particular": 1, "purpos": [1, 6, 10, 11], "pleas": [1, 2, 6, 7, 10, 11], "see": [1, 2, 7, 10, 11], "condit": 1, "present": [1, 5, 6, 9, 10, 11], "develop": [0, 1, 2, 3, 4, 7, 9, 10, 11], "low": [1, 2, 7, 10, 11], "cost": [1, 4, 5, 9, 10, 11], "hardwar": [1, 10, 11], "meter": [1, 2, 6, 7, 10, 11], "provid": [1, 2, 7, 10, 11], "scientif": 1, "commun": [1, 2, 7], "robust": [1, 2, 7, 10, 11], "flexibl": 1, "tool": [1, 2, 7], "experi": [1, 2, 7, 10, 11], "call": [1, 2, 3, 5, 6, 7], "basic": [1, 9], "meterfeatur": 1, "current": [0, 1, 2, 4, 7], "inject": [0, 1, 2, 7], "measur": [0, 1, 2, 3, 5, 6, 7], "function": [1, 2, 7, 9, 10, 11], "multiplex": [0, 1, 2, 5, 6, 7], "allow": [1, 2, 4, 5, 7, 10, 11], "perform": [1, 3, 9, 10, 11], "automat": [1, 2, 7, 10, 11], "up": [1, 2, 3, 5, 7, 10, 11], "64": [0, 1, 5, 10, 11], "electrod": [0, 1, 4, 5, 6], "s": [1, 2, 4, 5, 7, 10, 11], "philosophi": [0, 1], "fulli": 1, "toolto": 1, "surfac": 1, "anyon": 1, "who": 1, "want": [1, 11], "get": [1, 2, 3, 4, 7, 10, 11], "involv": [1, 2, 7], "welcom": [1, 9], "join": 1, "ohmpi": [3, 4, 5, 9], "project": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "compon": [0, 2, 3, 7], "quantiti": [3, 10, 11], "4": [2, 3, 4, 5, 7, 10, 11], "model": [3, 4, 10, 11], "micro": [2, 3, 7, 10, 11], "sd": [2, 3, 6, 7, 10, 11], "32": [0, 2, 3, 6, 7], "go": [2, 3, 5, 7], "hdmi": [3, 6], "cabl": [3, 4, 5, 6, 10, 11], "comput": [3, 10, 11], "mous": [3, 6, 10, 11], "keyboard": [3, 6, 10, 11], "first": [2, 3, 5, 6, 7, 9], "start": [0, 2, 3, 5, 7, 9, 10, 11], "board": [2, 3, 6, 7, 9], "oper": [0, 3, 4, 6, 9], "system": [3, 9, 10, 11], "For": [2, 3, 4, 5, 7, 10, 11], "instruct": [0, 2, 3, 7], "ar": [2, 3, 4, 6, 7, 9, 10, 11], "well": [2, 3, 7, 10, 11], "describ": [3, 4, 6, 9, 10, 11], "websit": [3, 10, 11], "watch": [3, 10, 11], "video": [3, 10, 11], "how": [3, 10, 11], "set": [2, 3, 4, 7, 10, 11], "your": [3, 4, 5, 9, 10, 11], "author": [0, 3, 10, 11], "recommend": [2, 3, 7, 9, 10, 11], "latest": [3, 10, 11], "stabl": [3, 10, 11], "complet": [0, 2, 3, 4, 7], "version": [2, 3, 4, 7, 9, 10, 11], "previous": [3, 6, 10, 11], "raspbian": [3, 10, 11], "can": [2, 3, 6, 7, 10, 11], "visit": 3, "raspberrypi": 3, "org": [2, 3, 7], "en": 3, "test": [2, 3, 4, 5, 6, 7, 9, 10, 11], "were": [3, 4, 10, 11], "3": [2, 3, 4, 6, 7, 9, 10, 11], "we": [2, 3, 4, 5, 7, 10, 11], "follow": [2, 3, 4, 5, 6, 7, 9, 10, 11], "onc": [2, 3, 7, 10, 11], "ha": [2, 3, 5, 7, 10, 11], "been": [2, 3, 5, 7, 10, 11], "wire": [3, 5, 6, 10, 11], "spi": [3, 10, 11], "gpio": [3, 5, 6, 10, 11], "remot": [2, 3, 7, 10, 11], "option": [2, 3, 7, 10, 11], "deactiv": [3, 10, 11], "i2c": [3, 4, 5], "via": [3, 10, 11], "gui": [3, 10, 11], "menu": [3, 10, 11], "failur": [3, 10, 11], "carri": [3, 10, 11], "out": [3, 6, 10, 11], "task": [3, 10, 11], "caus": [3, 10, 11], "relai": [3, 4, 5, 10, 11], "shield": [3, 10, 11], "card": [0, 2, 3, 5, 6, 7], "dure": [3, 10, 11], "wai": [3, 9, 10, 11], "have": [2, 3, 4, 5, 7, 9, 10, 11], "multipl": [2, 3, 7], "parallel": 3, "instanc": 3, "interpret": [3, 4, 10, 11], "each": [3, 5, 6, 10, 11], "differ": [2, 3, 4, 5, 6, 7, 10, 11], "contain": [2, 3, 6, 7, 10, 11], "discret": 3, "copi": [2, 3, 7, 9], "its": [2, 3, 5, 6, 7, 10, 11], "support": 3, "util": [2, 3, 7], "It": [2, 3, 5, 7, 9, 10, 11], "also": [2, 3, 7, 9, 10, 11], "protect": 3, "case": [2, 3, 7, 9, 10, 11], "problem": 3, "depend": [2, 3, 7, 10, 11], "specifi": [3, 10, 11], "txt": [2, 3, 7, 10, 11], "below": [2, 3, 6, 7, 10, 11], "should": [2, 3, 4, 5, 6, 7, 9, 10, 11], "type": [2, 3, 5, 7, 9, 10, 11], "termin": [2, 3, 4, 5, 6, 7, 10, 11], "necessari": [3, 5, 6, 9, 10, 11], "ensur": [3, 10, 11], "libatla": [3, 10, 11], "base": [2, 3, 5, 7, 9, 10, 11], "dev": [3, 10, 11], "librari": [3, 10, 11], "sudo": [3, 10, 11], "apt": [3, 10, 11], "strongli": [3, 10, 11], "user": [0, 2, 3, 7, 10, 11], "creat": [2, 3, 7, 9, 10, 11], "run": [2, 3, 4, 5, 6, 7, 10, 11], "code": [3, 5, 9, 10, 11], "done": [2, 3, 7, 10, 11], "either": [3, 10, 11], "directori": [2, 3, 7, 9, 10, 11], "gather": [3, 10, 11], "within": [2, 3, 7, 9, 10, 11], "python3": [3, 10, 11], "m": [3, 4, 5, 6, 10, 11], "venv": [3, 10, 11], "command": [2, 3, 7, 10, 11], "bin": [3, 10, 11], "suffici": [3, 10, 11], "meet": [3, 10, 11], "export": 3, "cflag": 3, "fcommon": 3, "pip": [3, 10, 11], "rpi": [3, 6, 10, 11], "adafruit": [3, 4, 5, 10, 11], "blinka": [3, 10, 11], "numpi": [2, 3, 7, 10, 11], "panda": [3, 10, 11], "circuitpython": [3, 10, 11], "ads1x15": [3, 10, 11], "tca9548a": [3, 5], "mcp230xx": 3, "gpiozero": 3, "check": [2, 3, 7, 10, 11], "met": [3, 10, 11], "list": [0, 3], "leav": [3, 10, 11], "simpli": [3, 6, 10, 11], "If": [3, 4, 9, 10, 11], "decid": [3, 10, 11], "setup": [3, 10, 11], "time": [2, 3, 5, 7, 10, 11], "softwar": [0, 3, 10, 11], "click": [3, 10, 11], "access": [2, 3, 6, 7, 10, 11], "program": [3, 6, 10, 11], "pythonid": [3, 10, 11], "2": [2, 3, 5, 6, 7, 9, 10, 11], "root": [3, 10, 11], "7": [3, 4, 5, 6, 10, 11], "usr": [3, 10, 11], "select": [3, 5, 10, 11], "new": [0, 2, 3, 7, 10, 11], "window": [2, 3, 7, 10, 11], "On": [3, 10, 11], "altern": [3, 10, 11], "5": [2, 3, 4, 5, 6, 7, 10, 11], "button": [3, 10, 11], "appear": [3, 4, 5, 10, 11], "locat": [3, 10, 11], "anoth": [3, 10, 11], "execut": [2, 3, 7, 10, 11], "6": [3, 4, 5, 6, 10, 11], "find": [3, 10, 11], "folder": [3, 10, 11], "where": [2, 3, 7, 9, 10, 11], "file": [3, 4, 9, 10, 11], "home": [2, 3, 7, 10, 11], "In": [2, 3, 4, 5, 7, 9, 10, 11], "known": [3, 10, 11], "tab": [2, 3, 7, 10, 11], "path": [3, 9, 10, 11], "close": [3, 10, 11], "ok": [3, 10, 11], "9": [2, 3, 4, 5, 6, 7, 10, 11], "save": [3, 10, 11], "modif": [3, 6, 10, 11], "number": [2, 4, 5, 7, 10, 11], "per": [4, 5, 10, 11], "unit": [2, 4, 5, 7, 10, 11], "total": [4, 5, 10, 11], "manufactur": [4, 5, 10, 11], "refer": [0, 2, 4, 5, 6, 7, 10, 11], "web": [4, 5], "raspberri": [0, 2, 4, 5, 6, 7], "pi": [0, 2, 4, 6, 7], "1": [0, 2, 4, 5, 6, 7, 9], "58": [4, 10, 11], "75": 4, "www": [4, 5, 10, 11], "mouser": [4, 5], "fr": [4, 5, 10, 11], "productdetail": [4, 5], "seeed": 4, "studio": 4, "102110421": 4, "qs": [4, 5], "7mvldsj5uaxen3lyyh3sqw": 4, "3d": [4, 5], "lm158n": 4, "amp": [4, 10, 11], "o": [2, 4, 5, 7, 10, 11], "14": [4, 5, 6], "texa": [4, 10, 11], "instrument": [2, 4, 7, 10, 11], "lm358an": [4, 10, 11], "nopb": [4, 10, 11], "lm158j": 4, "x1j7hmvl2zh8vpefml8": 4, "2ffq": 4, "print": [2, 4, 5, 7, 10, 11], "circuit": [2, 4, 5, 7, 10, 11], "12": [2, 4, 5, 6, 7, 10, 11], "asler": [4, 5, 10, 11], "ads1115": [4, 10, 11], "11": [4, 6, 10, 11], "23": [4, 5, 6, 10, 11], "1085": 4, "2fha2pyfaduh": 4, "2fogzutwiq9iz5vjaqfoyugqalgxpeckigrqvf4hn": 4, "252bg": 4, "capacitor": [4, 11], "100nf": [4, 11], "50vdc": [4, 11], "10": [2, 4, 5, 6, 7, 10, 11], "ceram": [4, 11], "0": [2, 4, 5, 7, 10, 11], "kemet": [4, 11], "c320c104k1": [4, 11], "c320c104k1r5ta7303": 4, "c4uyot": 4, "2flq1th4mcyoetma": 4, "resistor": [4, 5, 10, 11], "kohm": [4, 5, 10, 11], "5w": [4, 10, 11], "te": [4, 5, 10, 11], "connect": [0, 2, 4, 5, 6, 7], "h81k0bya": [4, 10, 11], "holsworthi": 4, "2fha2pyfaduhuylh7az": 4, "2fmjfh2xjoums6wztux4som": 4, "252bii": 4, "h81k5bya": [4, 10, 11], "2fha2pyfadugy9twham3ru9hmijohywhbin95knm": 4, "252bx": 4, "2fm": 4, "vishai": [4, 5], "ccf071k50gke36": 4, "dale": 4, "qkeozdl6eqpa6lzrlqfvow": 4, "mohm": [2, 4, 7, 10, 11], "762": 4, "524": 4, "cmf651m0000fkek143": 4, "ciayqk2gdckzia2levalkg": 4, "ohm": [2, 4, 7, 10, 11], "shunt": 4, "42": 4, "ohmit": 4, "41f2r0e": 4, "im6toxqzgoauedprb19mha": 4, "dual": [4, 5, 10, 11], "screw": [4, 5, 6, 10, 11], "08": [4, 5], "mm": [4, 5, 6, 10, 11], "pitch": [4, 5, 10, 11], "648": [4, 5, 10, 11], "cui": [4, 5], "devic": [4, 5, 9], "tb009": [4, 5], "508": [4, 5], "02be": [4, 5], "vlwxofp3u2wcfk5uckwtka": [4, 5], "dc": [4, 5, 10, 11], "convert": [4, 10, 11], "24v": [4, 11], "15": [4, 5, 6, 10, 11], "31": [4, 5, 6], "16": [4, 5, 6, 10, 11], "tracopow": [4, 11], "trn": [4, 11], "1215": [4, 11], "traco": [4, 11], "power": [2, 4, 5, 6, 7, 10, 11], "yca": 4, "2faaymw02gquicgqj0ta": 4, "dip": [4, 5], "line": [4, 5, 10, 11], "socket": [4, 5], "72": [4, 11], "mill": 4, "max": 4, "110": [4, 5, 10, 11], "43": [4, 10, 11], "308": 4, "41": [4, 5], "001000": 4, "iggadovctstu": 4, "2fqaur8narg": 4, "mgh": 4, "vip": 4, "gclid": 4, "eaiaiqobchmin_taxbcx8wivq5nvch2qaqfpeayyccabegjk1_d_bw": 4, "aqy211eh": 4, "84": [4, 5], "36": [4, 6, 10, 11], "panason": 4, "industri": 4, "wktuvitrialgiu8hcm7dvq": 4, "449": 4, "796": 4, "preci": [4, 5], "83": 4, "304": 4, "001101": [4, 5], "2fha2pyfadujqkqx4wauig": 4, "2fmgndxmcnv": 4, "2f33nj0gbxroculucynpyong": 4, "mcp23008": 4, "593": 4, "sgaepimzzmskedp9slc0yyv4kpdpmd1hts4slctivmw": 4, "header": [4, 5, 10, 11], "1x10": [4, 10, 11], "samtec": [4, 10, 11], "ssw": [4, 10, 11], "02": [0, 4, 10], "g": [4, 10, 11], "ru5fayqh": 4, "252be0w1orxzibqpw": 4, "smt": 4, "breakout": 4, "pcb": [4, 5, 9, 10, 11], "soic": 4, "1212": 4, "gurawfaegucaqqfvnvtyeg": 4, "eaiaiqobchmit8zjzr6x8wivgdnvch2vbwvseaqyayabegjqg_d_bw": 4, "ina282aid": 4, "ze4": 4, "2fufuz19ilfayzxocfra": 4, "thd": 4, "1211n": 4, "39": [4, 5, 6, 10, 11], "2fha2pyfadugpyeg4idvm": 4, "2fmsr": 4, "252b7an": 4, "2f0t3ruis9pcaqjlt4": 4, "252bnrpuooeq": 4, "20": [4, 6, 10, 11], "53": [4, 11], "ssq": 4, "120": [4, 5], "d": [4, 10, 11], "252be1bmvd": 4, "252bdzonqg": 4, "pin": [4, 5, 10, 11], "strip": [4, 5, 6, 10, 11], "ejector": [4, 5], "35": [4, 6], "blk": [4, 5], "10120550": [4, 5], "conrad": [4, 5], "com": [2, 4, 5, 7, 10, 11], "bkl": [4, 5], "contact": [2, 4, 5, 7, 10, 11], "space": [4, 5], "254": [4, 5], "row": [4, 5], "pc": [4, 5], "741435": [4, 5], "searchterm": [4, 5], "searchtyp": [4, 5], "suggest": [4, 5, 10, 11], "searchsuggest": [4, 5], "male": [4, 5], "femal": [4, 5, 10, 11], "spacer": [4, 5, 6], "5m": [4, 6], "hexagonal": 4, "87": [4, 5], "48": [4, 10, 11], "harwin": 4, "r25": 4, "3002002": 4, "w0yvoo0ixfenuv0hsdc4": 4, "2fq": 4, "86": [4, 5], "437": 4, "1108331841001101": 4, "318": 4, "ftmup6kvi2tnqoeziaq": 4, "2fpa": 4, "figur": [2, 4, 7, 10, 11], "show": [4, 10, 11], "gener": [0, 2, 4, 5, 7, 10, 11], "schemat": [4, 11], "plug": [4, 10, 11], "plai": 4, "To": [2, 4, 5, 7, 10, 11], "two": [2, 4, 5, 7, 9, 10, 11], "one": [2, 4, 6, 7, 10, 11], "voltag": [2, 4, 6, 7, 10, 11], "propos": [4, 10, 11], "florsch": [4, 10, 11], "bit": [4, 10, 11], "adc": [4, 10, 11], "analog": [4, 10, 11], "digit": [4, 5, 10, 11], "adapt": [2, 4, 7, 9, 10, 11], "gain": [2, 4, 7, 10, 11], "advantag": 4, "input": [2, 4, 6, 7, 10, 11], "signal": [4, 10, 11], "valu": [4, 5, 10, 11], "could": [4, 6, 10, 11], "lie": [4, 10, 11], "between": [4, 5, 6, 10, 11], "114": [4, 10, 11], "v": [0, 2, 4, 5, 6, 7], "directli": [4, 10, 11], "integr": 4, "ina282": 4, "realiz": 4, "precis": [4, 10, 11], "around": [2, 4, 7], "instal": [2, 4, 5, 6, 7], "solder": [4, 10, 11], "optic": 4, "suppli": [4, 5, 6, 10, 11], "12v": [0, 4, 5, 6, 10, 11], "5v": [4, 10, 11], "tdh15": 4, "four": [2, 4, 7], "inpout": 4, "output": [2, 4, 6, 7, 10, 11], "three": [2, 4, 5, 7, 10, 11], "limit": [0, 2, 4, 7], "ma": [2, 4, 7, 10, 11], "higher": [4, 11], "than": [4, 10, 11], "just": [4, 11], "decreas": 4, "don": [2, 4, 7], "t": [2, 4, 5, 7], "forget": [2, 4, 7], "chang": [2, 4, 5, 7, 9], "config": [2, 4, 7, 9, 10, 11], "py": [2, 4, 5, 7, 9, 10, 11], "kei": 4, "r_shunt": 4, "ohmpi_config": 4, "dict": 4, "pre": [4, 6], "adjust": [4, 10, 11], "13": [4, 5, 6, 10, 11], "17": [4, 6, 10, 11], "18": [2, 4, 6, 7, 10, 11], "19": [4, 6, 10, 11], "view": [4, 6], "fix": [4, 6], "dot": 4, "mark": [4, 6], "top": [2, 4, 6, 7], "left": [4, 6], "corner": 4, "21": [4, 6, 10, 11], "mount": [4, 5, 6, 10, 11], "22": [4, 6, 10, 11], "lm158": 4, "amplifi": [4, 10, 11], "ads115": [4, 10, 11], "right": [4, 6], "3x11": 4, "wurth": 4, "elektronik": 4, "971110321": 4, "305": [4, 5], "apm": [4, 5], "hexseal": [4, 5], "rm3x8mm": [4, 5], "2701": [4, 5], "jjse": [4, 5], "2f12mkns3vxsdryxuhw": [4, 5], "shutdown": 4, "unplug": 4, "bottom": [4, 10, 11], "11mm": 4, "m3": [4, 5], "upper": 4, "port": [4, 6], "write": [2, 4, 5, 7, 9, 10, 11], "i2cdetect": [4, 5], "y": [4, 5], "everyth": 4, "address": [2, 4, 10, 11], "screen": [4, 10, 11], "equival": [4, 10, 11], "need": [2, 4, 5, 7, 10, 11], "1kohm": 4, "r2": [4, 10, 11], "220": 4, "r1": [4, 10, 11], "padboard": 4, "spool": 4, "prepar": [4, 5, 10, 11], "batteri": [2, 4, 6, 7, 10, 11], "red": [2, 4, 6, 7, 10, 11], "black": [4, 6, 10, 11], "ground": [4, 10, 11], "thonni": [2, 4, 7], "sample_measurement_exampl": 4, "exampl": [2, 4, 5, 6, 7, 10, 11], "result": [4, 10, 11], "channel": [5, 10, 11], "mechan": [2, 5, 7, 10, 11], "omron": 5, "g5le": 5, "vd": 5, "vdc": 5, "combin": 5, "zvn4206a": 5, "mofset": 5, "onli": [5, 9], "30": [5, 6, 10, 11], "enough": [5, 10, 11], "activ": [2, 5], "repres": [5, 10, 11], "512": 5, "expand": 5, "mcp23017": 5, "from": [2, 5, 6, 7, 10, 11], "128": [2, 5, 7], "own": 5, "0x70": 5, "0x77": 5, "0x71": 5, "0x72": 5, "0x73": 5, "140": 5, "560": 5, "62": 5, "92": [5, 10, 11], "1580994": 5, "tru": [5, 10, 11], "diod": 5, "1n4007": 5, "256": 5, "091": 5, "296": 5, "incorpor": [2, 5, 7], "sgaepimzzmueqxo7l": 5, "2fbpyakboruumren": 5, "56": 5, "776": 5, "205": 5, "46": 5, "103321": 5, "5twgzeq9e7hsylqaljjyrw": 5, "i": [2, 5, 6, 7, 10, 11], "40": [2, 5, 7, 10, 11], "732": 5, "sgaepimzzmskedp9slc0yfx16nydmpxjueeogolbldi": 5, "27": [5, 6, 10, 11], "325": 5, "over": 5, "503811": 5, "mosfet": 5, "nchannel": 5, "471": 5, "576": [5, 10], "vhuuswq2": 5, "252bsz9b": 5, "2ff6fcxt7g": 5, "100k\u03c9": 5, "061": 5, "616": 5, "beyschlag": 5, "mba02040c1003frp00": 5, "mzrxyrlhvdt9crf7zyf": 5, "2f5q": 5, "89": 5, "2717": 5, "sgaepimzzmsyydr3r27av4eqf73yoh": 5, "252baqg": 5, "252bz3hvktao": 5, "10120558": 5, "54": 5, "No": 5, "51": 5, "741727": 5, "10120862": 5, "connector": [5, 6, 10, 11], "strain": 5, "relief": 5, "44": [5, 10, 11], "742063": 5, "10120158": 5, "ribbon": [5, 6], "x": [5, 10, 11], "mm\u00b2": [5, 10, 11], "multi": [2, 5, 7, 10, 11], "colour": 5, "1012015810": 5, "127": 5, "008": 5, "1548658": 5, "hex": [5, 6], "25": [2, 5, 6, 7, 10, 11], "79": 5, "49": 5, "keyston": 5, "24300": 5, "uwqyq": 5, "2f2czwu0ejpozmzc2a": 5, "745": 5, "846": 5, "614": 5, "25515": 5, "2f2czwuxuhumfr": 5, "252bzuq": 5, "55": [5, 10, 11], "328": 5, "uqd7xcvsscnr3hwd6fta8g": 5, "100": [2, 5, 7, 10, 11], "duplic": 5, "everi": [2, 5, 7], "build": [5, 10, 11], "therefor": [5, 10, 11], "identifi": 5, "assign": 5, "alloc": 5, "here": [5, 6, 11], "default": [2, 5, 7], "jumper": 5, "note": [5, 6, 10, 11], "name": [2, 5, 7, 9, 10, 11], "zoom": [5, 6], "befor": [2, 5, 6, 7, 10, 11], "them": [2, 5, 7, 10, 11], "definit": 5, "simplifi": 5, "thing": [2, 5, 7], "do": [2, 5, 6, 7, 9], "50": [2, 5, 6, 7, 10, 11], "cm": [5, 6, 10, 11], "long": [5, 6], "flat": 5, "pole": [5, 10, 11], "detect": 5, "script": [2, 5, 7, 9], "test_mux_board": 5, "cut": 6, "compos": 6, "proper": 6, "length": [6, 10, 11], "about": 6, "correspond": [6, 10], "crimp": [6, 10, 11], "idc": 6, "suitabl": [2, 6, 7, 10, 11], "clamp": 6, "pai": [6, 10, 11], "attent": [6, 10, 11], "direct": [2, 6, 7, 10, 11], "unbalanc": 6, "perpendicular": 6, "possibl": [6, 10, 11], "same": [2, 6, 7, 10, 11], "flush": 6, "posit": [6, 10, 11], "abov": [6, 10, 11], "mux": [2, 6, 10, 11], "profil": 6, "color": 6, "yellow": 6, "tin": 6, "end": [6, 10, 11], "shown": [6, 10, 11], "pictur": 6, "ii": 6, "gnd": [6, 10, 11], "nois": 6, "often": 6, "heard": 6, "when": [2, 6, 7, 9, 10, 11], "clip": 6, "place": [6, 9, 10, 11], "second": [2, 6, 7, 10, 11], "b": [2, 6], "help": [2, 6, 7, 9], "previou": [2, 6, 7], "procedur": 6, "repeat": [2, 6, 7, 10, 11], "other": [2, 6, 7, 10, 11], "purpl": 6, "relev": [6, 9], "defin": [2, 6, 7, 9], "third": [2, 6, 7], "fourth": 6, "nylon": 6, "photograph": 6, "more": [2, 6, 7], "detail": [2, 6, 7, 10], "4th": 6, "togeth": [6, 10, 11], "tie": 6, "pvc": 6, "plate": 6, "minimum": 6, "dimens": 6, "200": 6, "150": [2, 6, 7, 10, 11], "drill": 6, "remain": [6, 10, 11], "metal": 6, "tighten": 6, "so": [6, 10, 11], "usb": 6, "hole": [6, 10, 11], "26": [6, 10, 11], "add": [6, 10, 11], "attach": 6, "washer": 6, "nut": 6, "28": [0, 6], "29": [6, 10, 11], "come": 6, "pass": [2, 6, 7], "brown": 6, "blue": [6, 10, 11], "block": [6, 10, 11], "secur": [2, 6, 7], "33": 6, "34": 6, "37": [6, 10, 11], "38": [6, 10, 11], "os": [2, 6, 7], "monitor": [2, 6, 7, 10, 11], "deliv": [6, 10, 11], "12vdc": 6, "enjoi": 6, "publish": [2, 7, 10], "journal": 10, "howev": [9, 10, 11], "correct": [10, 11], "bug": 10, "exist": [9, 10, 11], "explain": 10, "miss": 10, "point": [2, 7, 10, 11], "invit": 10, "v1": [2, 7, 10, 11], "offer": [2, 7, 10, 11], "commerci": [10, 11], "avail": [2, 7, 9, 10, 11], "field": [2, 7, 10, 11], "specif": [9, 10, 11], "temperatur": [2, 7, 10, 11], "c": [2, 7, 10, 11], "consumpt": [2, 7, 10, 11], "cpu": [2, 7, 10, 11], "control": [2, 7, 10, 11], "w": [2, 7, 10, 11], "min": [2, 7, 10, 11], "puls": [2, 7, 10, 11], "durat": [2, 7, 10, 11], "ms": [2, 7, 10, 11], "imped": [2, 7, 10, 11], "storag": [2, 7, 10, 11], "resolut": [2, 7, 10, 11], "o1": [10, 11], "step": [9, 10, 11], "youtub": [10, 11], "wjwzhv1v3pk": [10, 11], "noob": [10, 11], "simpl": [10, 11], "sure": [2, 7, 9, 10, 11], "unexpectedli": [10, 11], "boot": [10, 11], "cd": [10, 11], "gnu": [10, 11], "nano": [10, 11], "editor": [2, 7, 10, 11], "At": [10, 11], "op": [10, 11], "dl": [10, 11], "press": [10, 11], "ctrl": [10, 11], "enter": [10, 11], "escap": [10, 11], "return": [2, 7, 10, 11], "wa": [10, 11], "introduc": [2, 7, 9, 10, 11], "Its": [10, 11], "studi": [10, 11], "hous": [10, 11], "design": [2, 7, 9, 10, 11], "diagram": [10, 11], "displai": [10, 11], "mimic": [10, 11], "behavior": [10, 11], "soil": [10, 11], "subject": [10, 11], "r11": [10, 11], "r10": [10, 11], "r12": [10, 11], "constitut": [10, 11], "thei": [2, 7, 10, 11], "typic": [2, 7, 9, 10, 11], "made": [2, 7, 10, 11], "stainless": [10, 11], "steel": [10, 11], "seri": [10, 11], "part": [2, 9, 10, 11], "r9": [10, 11], "ad": [2, 7, 10, 11], "flow": [2, 7, 10, 11], "order": [2, 7, 9, 10, 11], "less": [10, 11], "sum": [10, 11], "inde": [10, 11], "000": [10, 11], "intens": [10, 11], "potenti": [10, 11], "calcul": [10, 11], "insert": [10, 11], "1115": [10, 11], "our": [2, 7, 10, 11], "a1": [10, 11], "a0": [10, 11], "increas": [10, 11], "track": [9, 10, 11], "divid": [10, 11], "bridg": [10, 11], "r5": [10, 11], "r8": [10, 11], "r6": [10, 11], "r7": [10, 11], "accord": [9, 10, 11], "n": [2, 7, 10, 11], "a2": [10, 11], "a3": [10, 11], "obtain": [10, 11], "ly": [10, 11], "rang": [9, 10, 11], "let": [10, 11], "equal": [10, 11], "multipli": [10, 11], "reduct": [10, 11], "section": [2, 7, 9, 10, 11], "despit": [10, 11], "high": [10, 11], "e": [2, 7, 10, 11], "accur": [10, 11], "still": [10, 11], "calibr": [10, 11], "voltmet": [10, 11], "variou": [10, 11], "These": [2, 7, 10, 11], "serv": [2, 7, 10, 11], "With": [10, 11], "disturb": [10, 11], "being": [10, 11], "estim": [10, 11], "mega": [10, 11], "shortcut": [10, 11], "excess": [10, 11], "whose": [2, 7, 10, 11], "lithium": [10, 11], "ion": [10, 11], "automobil": [10, 11], "lead": [10, 11], "acid": [10, 11], "strong": [10, 11], "hazard": [10, 11], "fuse": [10, 11], "repositori": [2, 7, 10, 11], "onto": [10, 11], "illustr": [2, 7, 10, 11], "ohmmet": [10, 11], "coeffici": [10, 11], "coef_p0": [10, 11], "coef_p1": [10, 11], "coef_p2": [10, 11], "coef_p3": [10, 11], "coef": [10, 11], "po": [10, 11], "p1": [10, 11], "r3": [10, 11], "r4": [10, 11], "p2": [10, 11], "p3": [10, 11], "r_ref": [10, 11], "slope": [10, 11], "convers": [10, 11], "p0": [10, 11], "accuraci": [10, 11], "both": [9, 10, 11], "addit": [2, 7, 10, 11], "lm358n": [10, 11], "appli": [10, 11], "prefer": [2, 7, 10, 11], "weaker": 10, "stronger": [10, 11], "tx": [10, 11], "rememb": [10, 11], "holder": [10, 11], "f": [10, 11], "consist": [10, 11], "circul": [10, 11], "through": [2, 7, 10, 11], "fig": [10, 11], "modul": [9, 10, 11], "switch": [10, 11], "common": [10, 11], "neg": [10, 11], "normal": [10, 11], "simultan": [10, 11], "role": [10, 11], "revers": [10, 11], "polar": [10, 11], "thu": [10, 11], "energ": [10, 11], "solut": [9, 10, 11], "manag": [2, 7, 10, 11], "next": [10, 11], "featur": [10, 11], "strict": [10, 11], "in1": [10, 11], "in2": [10, 11], "in3": [10, 11], "in4": [10, 11], "5vdc": [10, 11], "5vcc": [10, 11], "now": [10, 11], "mm2": [10, 11], "lastli": [10, 11], "congratul": [10, 11], "construct": [10, 11], "valid": [2, 10, 11], "conduct": [9, 10, 11], "manual": [2, 7, 10, 11], "practic": [9, 10, 11], "ert": [10, 11], "sever": [10, 11], "ten": [10, 11], "thousand": [10, 11], "arrai": [2, 7, 10, 11], "stuck": [10, 11], "enabl": [2, 7, 10, 11], "smaller": [10, 11], "hand": [10, 11], "entir": [2, 7, 10, 11], "cap": [10, 11], "produc": [10, 11], "clean": [10, 11], "distanc": [10, 11], "had": [10, 11], "extra": [10, 11], "As": [10, 11], "final": [10, 11], "actual": [10, 11], "singl": [2, 7, 9, 10, 11], "protocol": [2, 7, 10, 11], "horizont": [10, 11], "vertic": [10, 11], "06": [10, 11], "04": [10, 11], "09": [10, 11], "05": [10, 11], "din": [10, 11], "rail": [10, 11], "chosen": [10, 11], "consequ": [10, 11], "incom": [10, 11], "instead": [10, 11], "moreov": [10, 11], "turn": [10, 11], "bought": [10, 11], "down": [10, 11], "velleman": [10, 11], "wpm404": [10, 11], "potentiomet": [10, 11], "download": [2, 7, 10, 11], "scienc": [10, 11], "framework": [10, 11], "manuscript": [10, 11], "osf": [10, 11], "io": [10, 11], "dzwb4": [10, 11], "gitlab": [2, 7, 10, 11], "irstea": [10, 11], "unzip": [10, 11], "master": [10, 11], "readm": [10, 11], "assist": [10, 11], "disconnect": [10, 11], "handl": [2, 7, 10, 11], "charg": [10, 11], "full": [10, 11], "capac": [10, 11], "fewer": [10, 11], "bank": [10, 11], "2a": [10, 11], "ll": [10, 11], "insid": [10, 11], "abmn": [2, 7, 10, 11], "quadrupol": [2, 7, 10, 11], "numer": [10, 11], "some": [0, 2, 7, 9, 10, 11], "main": [2, 7, 10, 11], "optim": [10, 11], "attribut": [10, 11], "stack": [2, 7, 10, 11], "the9": [10, 11], "hear": [10, 11], "characterist": [10, 11], "sound": [10, 11], "permut": [10, 11], "csv": [10, 11], "nb_electrod": [2, 7, 10, 11], "maximum": [2, 7, 10, 11], "injection_dur": [2, 7, 10, 11], "nbr_mea": [2, 7, 10, 11], "sequenc": [2, 7, 10, 11], "sequence_delai": [2, 7, 10, 11], "delai": [10, 11], "repetit": [10, 11], "evolv": [10, 11], "littl": [10, 11], "public": [10, 11], "articl": [10, 11], "date": [0, 10, 11], "sainsmart": [10, 11], "canal": 10, "pour": 10, "arduino": 10, "dsp": 10, "avr": 10, "pic": 10, "arm": 10, "99": [10, 11], "199": [10, 11], "sain": [10, 11], "smart": [10, 11], "101": [10, 11], "70": [10, 11], "103": [10, 11], "018": [10, 11], "1x1": [10, 11], "66": [10, 11], "1568649": [10, 11], "1x0": [10, 11], "71": [10, 11], "1565235": [10, 11], "68": [10, 11], "rs": [10, 11], "pro": [10, 11], "897": [10, 11], "1332": [10, 11], "858": [10, 11], "627": [10, 11], "52": [10, 11], "upw50b50rv": [10, 11], "1083": [10, 11], "7ah": [10, 11], "537": [10, 11], "5488": [10, 11], "lr20": [10, 11], "9v": [10, 11], "185": [10, 11], "4686": [10, 11], "ferrul": [10, 11], "500": [10, 11], "piec": [10, 11], "weidmul": [10, 11], "9004330000": [10, 11], "966067": [10, 11], "car": 10, "littelfus": [10, 11], "fhac0002zxj": 10, "96": 10, "improv": [2, 7, 9, 11], "upgrad": [2, 7, 11], "01": [0, 2, 7, 11], "replac": [9, 11], "trn3": 11, "suppress": 11, "10v": 11, "fast": 11, "decoupl": 11, "last": 11, "veri": [9, 11], "prevent": 11, "overh": 11, "toler": 11, "orient": 11, "h": 11, "nf": 11, "tabl": 11, "jason": 11, "ohmpi_param": 11, "json": [2, 7, 11], "export_path": 11, "desktop": 11, "0251001": 11, "pat1l": 11, "box": [2, 7], "mani": [2, 7], "dii": [2, 7], "laps": [2, 7], "seek": [2, 7], "share": [2, 7, 9], "wish": [2, 7], "2023": [0, 2, 7], "stop": [2, 7], "0x": [2, 7], "effort": [2, 7], "paramet": [2, 7], "80": [2, 7], "virtual": 2, "environ": 2, "packag": [2, 7], "id": [2, 7], "summar": [2, 7], "cover": [2, 7], "acquisit": [2, 7], "separ": [2, 7], "ohmpi_set": [2, 7], "central": [2, 7], "class": [2, 7, 9], "interact": [2, 7, 9], "handler": [2, 7], "layer": [2, 7], "releas": [0, 2, 7], "excel": [2, 7], "log": [2, 7], "implement": [0, 2, 7, 9], "broker": [2, 7], "zip": [2, 7], "rotat": [2, 7], "disk": [2, 7], "exec_logg": [2, 7], "data_logg": [2, 7], "plan": [2, 7], "state": [2, 7], "health": [2, 7], "soh": [2, 7], "futur": [2, 7], "By": [2, 7], "written": [2, 7], "consol": [2, 7], "like": [2, 7], "store": [2, 7, 9], "local": [2, 7], "dai": [2, 7], "size": [2, 7], "exce": [2, 7], "sent": [2, 7], "level": [2, 7], "advanc": [2, 7], "edit": [2, 7], "setup_logg": [2, 7], "custom": [2, 7], "desir": [2, 7], "usernam": [2, 7], "password": [2, 7], "One": [2, 7], "understand": [2, 7], "alter": [2, 7], "keep": [2, 7], "bash": [2, 7], "run_http_interfac": [2, 7], "sh": [2, 7], "api": [0, 2, 7], "import": [2, 7, 9], "iot": [2, 7], "messag": [2, 7], "friendli": [2, 7], "graphic": [2, 7], "quick": [2, 7], "easi": [2, 7], "wi": [2, 7], "fi": [2, 7], "ap": [2, 7], "webserv": [2, 7], "index": [2, 7], "html": [2, 7], "laptop": [2, 7], "mobil": [2, 7], "phone": [2, 7], "upload": [2, 7], "act": [2, 7], "raspap": [2, 7], "runonstart": [2, 7], "itself": [2, 7], "141": [2, 7], "8080": [2, 7], "pseudo": [2, 7], "evolut": [2, 7], "appar": [2, 7], "especi": [2, 7], "suit": [2, 7], "autom": [2, 7], "ipython": [2, 7], "ssh": [2, 7], "putti": [2, 7], "maco": [2, 7], "linux": [2, 7], "found": [2, 7], "np": [2, 7], "chdir": [2, 7], "object": [2, 7], "k": [2, 7], "load": [2, 7], "nb_stack": [2, 7], "half": [2, 7], "cycl": [2, 7], "updat": [2, 7], "update_set": [2, 7], "shape": [2, 7], "set_sequ": [2, 7], "n2": [2, 7], "string": [2, 7], "load_sequ": [2, 7], "rs_check": [2, 7], "synchron": [2, 7], "wait": [2, 7], "prompt": [2, 7], "run_sequ": [2, 7], "run_sequence_async": [2, 7], "thread": [2, 7], "immedi": [2, 7], "sleep": [2, 7], "interrupt": [2, 7], "kill": [2, 7], "asynchron": [2, 7], "given": [2, 7], "interv": [2, 7], "nb_mea": [2, 7], "run_multiple_sequ": [2, 7], "taken": [2, 7], "switch_mux_on": [2, 7], "run_measur": [2, 7], "switch_mux_off": [2, 7], "risk": [2, 7], "short": [2, 7], "argument": [2, 7], "autogain": [2, 7], "true": [2, 7], "good": [2, 7], "usag": [2, 7], "process": [2, 7], "sensor": [2, 7], "scope": [2, 7], "internet": [2, 7], "network": [2, 7], "auxiliari": [2, 7], "subscrib": [2, 7], "approach": [2, 7], "mosquitto": [2, 7], "server": [2, 7], "reachabl": [2, 7], "net": [2, 7], "servic": [2, 7], "install_local_mqtt_brok": [2, 7], "examin": [2, 7], "easili": [2, 7, 9], "parti": [2, 7], "explor": [2, 7], "receiv": [2, 7], "reboot": [2, 7], "further": [2, 7], "format": [2, 7], "kwarg": [2, 7], "cmd_id": [2, 7], "3fzxv121uitwgjwygcz4xw": [2, 7], "cmd": [2, 7], "3fzxv121uitwgjwygcz4yw": [2, 7], "tailor": [2, 7], "dashboard": [2, 7], "browser": [2, 7], "node": [2, 7], "complex": [2, 7], "properli": [2, 7], "palett": [2, 7], "noder": [2, 7], "doc": [2, 7], "guid": [2, 7], "ui": [2, 7], "visual": [2, 7], "cookbook": [2, 7], "draft": 9, "TO": 9, "BE": 9, "review": 9, "intend": 9, "advic": 9, "best": 9, "contribut": 9, "maintain": 9, "promot": 9, "exchang": 9, "reus": 9, "contributor": 9, "ideal": 9, "few": 9, "distinguish": 9, "deal": 9, "compli": 9, "Such": 9, "focu": 9, "reduc": 9, "newli": 9, "expos": 9, "minim": 9, "hardware_system": 9, "discuss": 9, "ohmpi_hardwar": 9, "initi": 9, "earli": 9, "stage": 9, "investig": 9, "strategi": 9, "readi": 9, "conceiv": 9, "kicad": 9, "schema": 9, "alwai": 9, "branch": 9, "python": 9, "similar": 9, "hardware_compon": 9, "abstract": 9, "abstract_hardware_compon": 9, "method": 9, "configur": [0, 9], "hardware_config": 9, "dictionari": 9, "config_xxx": 9, "xxx": 9, "nov": 0, "juli": 0, "2016": 0, "target": 0, "research": 0, "statu": 0, "matur": 0, "progress": 0, "offici": 0, "guidelin": 0, "tutori": 0, "content": 0, "partner": 0, "cite": 0, "introduct": 0, "technic": 0, "v2023": 0, "tow": 4, "led": 6, "consid": 6, "temporari": 6, "orang": 6, "interfac": 0}, "objects": {"": [[8, 0, 0, "-", "ohmpi"]]}, "objtypes": {"0": "py:module"}, "objnames": {"0": ["py", "module", "Python module"]}, "titleterms": {"ohmpi": [0, 1, 2, 6, 7, 10, 11], "project": 1, "author": 1, "partner": 1, "cite": 1, "introduct": 1, "step": [2, 3, 4, 5, 6, 7], "n": [3, 4, 5, 6], "1": [3, 10, 11], "raspberri": [3, 10, 11], "pi": [3, 10, 11], "configur": [2, 3, 7, 10, 11], "part": [3, 4, 5], "A": [3, 4, 5], "os": [3, 10, 11], "instal": [3, 10, 11], "b": [3, 4, 5, 10, 11], "virtual": [3, 10, 11], "environ": [3, 10, 11], "packag": [3, 10, 11], "c": [3, 4, 5], "activ": [3, 10, 11], "thonni": [3, 10, 11], "python": [2, 3, 7, 10, 11], "id": [3, 10, 11], "2": 4, "measur": [4, 10, 11], "board": [4, 5, 10, 11], "assembl": [4, 5, 6, 10, 11], "requir": [4, 5], "compon": [4, 5, 9, 10, 11], "list": [4, 5, 10, 11], "descript": [4, 10, 11], "start": 4, "up": 4, "check": 4, "3": 5, "mux": 5, "address": 5, "valid": 5, "4": 6, "v": [10, 11], "01": 10, "limit": [10, 11], "32": [10, 11], "electrod": [2, 7, 10, 11], "The": [2, 7, 10, 11], "philosophi": [2, 7, 10, 11], "technic": [10, 11], "data": [10, 11], "current": [10, 11], "inject": [10, 11], "card": [10, 11], "connect": [10, 11], "electr": [10, 11], "resist": [0, 10, 11], "implement": [10, 11], "first": [10, 11], "four": [10, 11], "multiplex": [10, 11], "oper": [2, 7, 10, 11], "instruct": [10, 11], "preliminari": [10, 11], "procedur": [10, 11], "onli": [10, 11], "initi": [10, 11], "startup": [10, 11], "paramet": [10, 11], "complet": [10, 11], "tabl": 10, "titl": 10, "02": 11, "v2023": [2, 7], "64": [2, 7], "12v": [2, 7], "hardwar": [0, 2, 7, 9], "specif": [2, 7], "build": [2, 7], "an": [2, 7], "softwar": [2, 7, 9], "system": [2, 7], "architectur": [2, 7], "logger": [2, 7], "file": [2, 7], "interfac": [2, 7, 9], "applic": [2, 7], "web": [2, 7], "mqtt": [2, 7], "api": 8, "refer": 8, "new": 9, "open": 0, "sourc": 0, "meter": 0, "summari": 0, "document": 0, "center": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "source_rst/Ohmpi", "source_rst/V2023.x.x/V2023", "source_rst/V2023.x.x/V2023_step_01", "source_rst/V2023.x.x/V2023_step_02", "source_rst/V2023.x.x/V2023_step_03", "source_rst/V2023.x.x/V2023_step_04", "source_rst/V2024.x.x/V2024", "source_rst/api", "source_rst/developing_hardware_components", "source_rst/v1.xx/V1_01", "source_rst/v1.xx/V1_02"], "filenames": ["index.rst", "source_rst/Ohmpi.rst", "source_rst/V2023.x.x/V2023.rst", "source_rst/V2023.x.x/V2023_step_01.rst", "source_rst/V2023.x.x/V2023_step_02.rst", "source_rst/V2023.x.x/V2023_step_03.rst", "source_rst/V2023.x.x/V2023_step_04.rst", "source_rst/V2024.x.x/V2024.rst", "source_rst/api.rst", "source_rst/developing_hardware_components.rst", "source_rst/v1.xx/V1_01.rst", "source_rst/v1.xx/V1_02.rst"], "titles": ["OHMPI: Open source and open hardware resistivity-meter", "OhmPi project", "OhmPi V2023 (64 electrodes and 12V)", "<strong>STEP n\u00b01</strong> : Raspberry Pi configuration", "<strong>STEP n\u00b02</strong>: Measurement board", "<strong>STEP n\u00b03:</strong> MUX board", "<strong>STEP n\u00b04:</strong> assemble the OhmPi", "OhmPi V2023 (64 electrodes and 12V)", "API reference", "Software interface to new hardware components", "OhmPi V 1.01 (limited to 32 electrodes)", "OhmPi V 1.02 (limited to 32 electrodes)"], "terms": {"releas": [0, 2, 7], "date": [0, 10, 11], "nov": 0, "28": [0, 6], "2023": [0, 2, 7], "start": [0, 2, 3, 5, 7, 9, 10, 11], "juli": 0, "2016": 0, "author": [0, 3, 10, 11], "r\u00e9mi": [0, 1], "clement": [0, 1], "nicola": [0, 1], "forquet": [0, 1], "yannick": [0, 1], "fargier": [0, 1], "vivien": [0, 1], "duboi": [0, 1], "h\u00e9l\u00e8ne": [0, 1], "guyard": [0, 1], "olivi": [0, 1], "kaufmann": [0, 1], "guillaum": [0, 1], "blanchi": [0, 1], "arnaud": [0, 1], "watlet": [0, 1], "target": 0, "user": [0, 2, 3, 7, 10, 11], "research": 0, "develop": [0, 1, 2, 3, 4, 7, 9, 10, 11], "statu": 0, "some": [0, 2, 7, 9, 10, 11], "matur": 0, "progress": 0, "offici": 0, "guidelin": 0, "gener": [0, 2, 4, 5, 7, 10, 11], "tutori": 0, "content": 0, "project": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "partner": 0, "cite": 0, "introduct": 0, "v": [0, 2, 4, 5, 6, 7], "1": [0, 2, 4, 5, 6, 7, 9], "01": [0, 2, 7, 11], "limit": [0, 2, 4, 7], "32": [0, 2, 3, 6, 7], "electrod": [0, 1, 4, 5, 6], "The": [0, 1, 3, 4, 5, 6, 9], "philosophi": [0, 1], "technic": 0, "data": [0, 1, 2, 7], "raspberri": [0, 2, 4, 5, 6, 7], "pi": [0, 2, 4, 6, 7], "configur": [0, 9], "assembli": [0, 1, 2, 3, 6, 7], "measur": [0, 1, 2, 3, 5, 6, 7], "current": [0, 1, 2, 4, 7], "inject": [0, 1, 2, 7], "card": [0, 2, 3, 5, 6, 7], "connect": [0, 2, 4, 5, 6, 7], "multiplex": [0, 1, 2, 5, 6, 7], "implement": [0, 2, 7, 9], "oper": [0, 3, 4, 6, 9], "instruct": [0, 2, 3, 7], "complet": [0, 2, 3, 4, 7], "list": [0, 3], "compon": [0, 2, 3, 7], "02": [0, 4, 10], "v2023": 0, "64": [0, 1, 5, 10, 11], "12v": [0, 4, 5, 6, 10, 11], "softwar": [0, 3, 10, 11], "api": [0, 2, 7], "refer": [0, 2, 4, 5, 6, 7, 10, 11], "interfac": 0, "new": [0, 2, 3, 7, 10, 11], "inra": 1, "reversa": [1, 10, 11], "villeurbann": 1, "franc": 1, "universit\u00e9": 1, "de": 1, "mon": 1, "belgium": 1, "ger": 1, "rro": 1, "univ": 1, "gustav": 1, "eiffel": 1, "ifsttar": 1, "lyon": 1, "ig": 1, "grenobl": 1, "alp": 1, "ilvo": 1, "merelbek": 1, "julien": 1, "ganc": 1, "emil": 1, "gro": 1, "et": [1, 4], "al": 1, "an": [1, 3, 4, 5, 6, 9, 10, 11], "open": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "sourc": [1, 3, 9, 10, 11], "logger": [1, 10, 11], "dedic": [1, 2, 7], "applic": [1, 9], "electr": [1, 4], "resist": [1, 2, 4, 6, 7], "imag": [1, 3], "small": [1, 2, 4, 6, 7, 10, 11], "laboratori": [1, 2, 6, 7, 10, 11], "scale": 1, "hardwarex": 1, "elsevi": 1, "2020": 1, "8": [1, 2, 3, 4, 5, 6, 7, 10, 11], "24": [1, 4, 5, 6, 10, 11], "p": [1, 4, 5], "ff10": 1, "1016": 1, "j": 1, "ohx": 1, "e00122ff": 1, "i": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "particip": [1, 2, 3, 4, 5, 6, 7, 10, 11], "all": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "requir": [1, 2, 3, 6, 7, 9, 10, 11], "skill": [1, 2, 3, 4, 5, 6, 7, 10, 11], "electron": [1, 2, 3, 4, 5, 6, 7, 10, 11], "respect": [1, 2, 3, 4, 5, 6, 7, 10, 11], "safeti": [1, 2, 3, 4, 5, 6, 7, 10, 11], "rule": [1, 2, 3, 4, 5, 6, 7, 10, 11], "must": [1, 2, 3, 4, 5, 6, 7, 10, 11], "assembl": [1, 2, 3, 4, 5, 7, 10, 11], "profession": [1, 2, 3, 4, 5, 6, 7, 10, 11], "context": [1, 2, 3, 4, 5, 6, 7, 10, 11], "peopl": [1, 2, 3, 4, 5, 6, 7, 10, 11], "compet": [1, 2, 3, 4, 5, 6, 7, 10, 11], "team": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "cannot": [1, 2, 3, 4, 5, 6, 7, 10, 11], "held": [1, 2, 3, 4, 5, 6, 7, 10, 11], "respons": [1, 2, 3, 4, 5, 6, 7, 10, 11], "ani": [1, 2, 3, 4, 5, 6, 7, 10, 11], "materi": [1, 2, 3, 4, 5, 6, 7, 10, 11], "human": [1, 2, 3, 4, 5, 6, 7, 10, 11], "damag": [1, 2, 3, 4, 5, 6, 7, 10, 11], "which": [1, 2, 3, 4, 5, 6, 7, 10, 11], "would": [1, 2, 3, 4, 5, 6, 7, 10, 11], "associ": [1, 2, 3, 4, 5, 6, 7, 10, 11], "us": [1, 2, 3, 4, 5, 6, 7, 10, 11], "equip": [1, 2, 3, 4, 5, 6, 7, 10, 11], "doe": [1, 2, 3, 4, 5, 6, 7, 10, 11], "work": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "after": [1, 2, 3, 4, 5, 6, 7, 10, 11], "you": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "mai": [1, 2, 3, 7, 10, 11], "redistribut": 1, "modifi": [1, 9, 10, 11], "thi": [1, 2, 3, 4, 5, 6, 7, 9, 10, 11], "document": [1, 2, 7, 10], "make": [1, 2, 5, 7, 9, 10, 11], "product": [1, 4, 5], "under": [1, 6, 10, 11], "term": [1, 9], "cern": 1, "ohl": 1, "v2": 1, "distribut": 1, "without": [1, 5, 10, 11], "express": [1, 9], "OR": 1, "impli": [1, 5], "warranti": 1, "includ": [1, 2, 3, 5, 7, 9, 10, 11], "OF": 1, "merchant": 1, "satisfactori": 1, "qualiti": 1, "AND": 1, "fit": 1, "FOR": 1, "A": [1, 2, 6, 7, 9, 10, 11], "particular": 1, "purpos": [1, 6, 10, 11], "pleas": [1, 2, 6, 7, 10, 11], "see": [1, 2, 7, 10, 11], "condit": 1, "present": [1, 5, 6, 9, 10, 11], "low": [1, 2, 7, 10, 11], "cost": [1, 4, 5, 9, 10, 11], "hardwar": [1, 10, 11], "meter": [1, 2, 6, 7, 10, 11], "provid": [1, 2, 7, 10, 11], "scientif": 1, "commun": [1, 2, 7], "robust": [1, 2, 7, 10, 11], "flexibl": 1, "tool": [1, 2, 7], "experi": [1, 2, 7, 10, 11], "call": [1, 2, 3, 5, 6, 7], "basic": [1, 9], "meterfeatur": 1, "function": [1, 2, 7, 9, 10, 11], "allow": [1, 2, 4, 5, 7, 10, 11], "perform": [1, 3, 9, 10, 11], "automat": [1, 2, 7, 10, 11], "up": [1, 2, 3, 5, 7, 10, 11], "": [1, 2, 4, 5, 7, 10, 11], "fulli": 1, "toolto": 1, "surfac": 1, "anyon": 1, "who": 1, "want": [1, 11], "get": [1, 2, 3, 4, 7, 10, 11], "involv": [1, 2, 7], "welcom": [1, 9], "join": 1, "In": [2, 3, 4, 5, 7, 9, 10, 11], "version": [2, 3, 4, 7, 9, 10, 11], "we": [2, 3, 4, 5, 7, 10, 11], "have": [2, 3, 4, 5, 7, 9, 10, 11], "two": [2, 4, 5, 7, 9, 10, 11], "board": [2, 3, 6, 7, 9], "type": [2, 3, 5, 7, 9, 10, 11], "made": [2, 7, 10, 11], "four": [2, 4, 7], "point": [2, 7, 10, 11], "4": [2, 3, 4, 5, 7, 10, 11], "box": [2, 7], "ha": [2, 3, 5, 7, 10, 11], "been": [2, 3, 5, 7, 10, 11], "adapt": [2, 4, 7, 9, 10, 11], "handl": [2, 7, 10, 11], "also": [2, 3, 7, 9, 10, 11], "mani": [2, 7], "offer": [2, 7, 10, 11], "dii": [2, 7], "multi": [2, 5, 7, 10, 11], "It": [2, 3, 5, 7, 9, 10, 11], "can": [2, 3, 6, 7, 10, 11], "upgrad": [2, 7, 11], "128": [2, 5, 7], "suitabl": [2, 6, 7, 10, 11], "field": [2, 7, 10, 11], "time": [2, 3, 5, 7, 10, 11], "laps": [2, 7], "monitor": [2, 6, 7, 10, 11], "seek": [2, 7], "share": [2, 7, 9], "its": [2, 3, 5, 6, 7, 10, 11], "wish": [2, 7], "improv": [2, 7, 9, 11], "more": [2, 6, 7], "differ": [2, 3, 4, 5, 6, 7, 10, 11], "from": [2, 5, 6, 7, 10, 11], "previou": [2, 6, 7], "one": [2, 4, 6, 7, 10, 11], "stop": [2, 7], "v1": [2, 7, 10, 11], "0x": [2, 7], "our": [2, 7, 10, 11], "effort": [2, 7], "paramet": [2, 7], "unit": [2, 4, 5, 7, 10, 11], "temperatur": [2, 7, 10, 11], "0": [2, 4, 5, 7, 10, 11], "50": [2, 5, 6, 7, 10, 11], "c": [2, 7, 10, 11], "25": [2, 5, 6, 7, 10, 11], "power": [2, 4, 5, 6, 7, 10, 11], "consumpt": [2, 7, 10, 11], "cpu": [2, 7, 10, 11], "control": [2, 7, 10, 11], "18": [2, 4, 6, 7, 10, 11], "5": [2, 3, 4, 5, 6, 7, 10, 11], "w": [2, 7, 10, 11], "voltag": [2, 4, 6, 7, 10, 11], "12": [2, 4, 5, 6, 7, 10, 11], "batteri": [2, 4, 6, 7, 10, 11], "9": [2, 3, 4, 5, 6, 7, 10, 11], "40": [2, 5, 7, 10, 11], "ma": [2, 4, 7, 10, 11], "min": [2, 7, 10, 11], "puls": [2, 7, 10, 11], "durat": [2, 7, 10, 11], "150": [2, 6, 7, 10, 11], "m": [2, 3, 4, 5, 6, 7, 10, 11], "input": [2, 4, 6, 7, 10, 11], "imped": [2, 7, 10, 11], "80": [2, 7], "mohm": [2, 4, 7, 10, 11], "storag": [2, 7, 10, 11], "micro": [2, 3, 7, 10, 11], "sd": [2, 3, 6, 7, 10, 11], "resolut": [2, 7, 10, 11], "ohm": [2, 4, 7, 10, 11], "n": [2, 7, 10, 11], "part": [2, 9, 10, 11], "o": [2, 4, 5, 6, 7], "instal": [2, 4, 5, 6, 7], "b": [2, 6], "virtual": 2, "environ": 2, "packag": [2, 7], "activ": [2, 5], "thonni": [2, 4, 7], "id": [2, 7], "2": [2, 3, 5, 6, 7, 9, 10, 11], "check": [2, 3, 7, 10, 11], "3": [2, 3, 4, 6, 7, 9, 10, 11], "mux": [2, 6, 10, 11], "address": [2, 4, 10, 11], "valid": [2, 10, 11], "design": [2, 7, 9, 10, 11], "around": [2, 4, 7], "whose": [2, 7, 10, 11], "main": [2, 7, 10, 11], "ar": [2, 3, 4, 6, 7, 9, 10, 11], "summar": [2, 7], "figur": [2, 4, 7, 10, 11], "below": [2, 3, 6, 7, 10, 11], "defin": [2, 6, 7, 9], "config": [2, 4, 7, 9, 10, 11], "py": [2, 4, 5, 7, 9, 10, 11], "cover": [2, 7], "section": [2, 7, 9, 10, 11], "acquisit": [2, 7], "set": [2, 3, 4, 7, 10, 11], "e": [2, 7, 10, 11], "stack": [2, 7, 10, 11], "separ": [2, 7], "json": [2, 7, 11], "default": [2, 5, 7], "ohmpi_set": [2, 7], "central": [2, 7], "contain": [2, 3, 6, 7, 10, 11], "class": [2, 7, 9], "interact": [2, 7, 9], "other": [2, 6, 7, 10, 11], "util": [2, 3, 7], "handler": [2, 7], "detail": [2, 6, 7, 10], "layer": [2, 7], "top": [2, 4, 6, 7], "depend": [2, 3, 7, 10, 11], "case": [2, 3, 7, 9, 10, 11], "introduc": [2, 7, 9, 10, 11], "thei": [2, 7, 10, 11], "excel": [2, 7], "log": [2, 7], "run": [2, 3, 4, 5, 6, 7, 10, 11], "broker": [2, 7], "creat": [2, 3, 7, 9, 10, 11], "zip": [2, 7], "rotat": [2, 7], "disk": [2, 7], "first": [2, 3, 5, 6, 7, 9], "execut": [2, 3, 7, 10, 11], "name": [2, 5, 7, 9, 10, 11], "exec_logg": [2, 7], "second": [2, 6, 7, 10, 11], "data_logg": [2, 7], "third": [2, 6, 7], "plan": [2, 7], "state": [2, 7], "health": [2, 7], "soh": [2, 7], "futur": [2, 7], "By": [2, 7], "written": [2, 7], "consol": [2, 7], "print": [2, 4, 5, 7, 10, 11], "like": [2, 7], "store": [2, 7, 9], "local": [2, 7], "everi": [2, 5, 7], "dai": [2, 7], "when": [2, 6, 7, 9, 10, 11], "size": [2, 7], "exce": [2, 7], "maximum": [2, 7, 10, 11], "sent": [2, 7], "level": [2, 7], "advanc": [2, 7], "write": [2, 4, 5, 7, 9, 10, 11], "edit": [2, 7], "setup_logg": [2, 7], "custom": [2, 7], "mechan": [2, 5, 7, 10, 11], "need": [2, 4, 5, 7, 10, 11], "repositori": [2, 7, 10, 11], "should": [2, 3, 4, 5, 6, 7, 9, 10, 11], "follow": [2, 3, 4, 5, 6, 7, 9, 10, 11], "prefer": [2, 7, 10, 11], "desir": [2, 7], "option": [2, 3, 7, 10, 11], "usernam": [2, 7], "password": [2, 7], "secur": [2, 6, 7], "One": [2, 7], "sure": [2, 7, 9, 10, 11], "understand": [2, 7], "befor": [2, 5, 6, 7, 10, 11], "alter": [2, 7], "them": [2, 5, 7, 10, 11], "recommend": [2, 3, 7, 9, 10, 11], "keep": [2, 7], "copi": [2, 3, 7, 9], "avail": [2, 7, 9, 10, 11], "http": [2, 3, 4, 5, 7, 10, 11], "bash": [2, 7], "run_http_interfac": [2, 7], "sh": [2, 7], "import": [2, 7, 9], "script": [2, 5, 7, 9], "iot": [2, 7], "messag": [2, 7], "through": [2, 7, 10, 11], "friendli": [2, 7], "graphic": [2, 7], "well": [2, 3, 7, 10, 11], "quick": [2, 7], "easi": [2, 7], "wi": [2, 7], "fi": [2, 7], "access": [2, 3, 6, 7, 10, 11], "ap": [2, 7], "webserv": [2, 7], "serv": [2, 7, 10, 11], "index": [2, 7], "html": [2, 7], "laptop": [2, 7], "mobil": [2, 7], "phone": [2, 7], "upload": [2, 7], "sequenc": [2, 7, 10, 11], "chang": [2, 4, 5, 7, 9], "download": [2, 7, 10, 11], "To": [2, 4, 5, 7, 10, 11], "act": [2, 7], "raspap": [2, 7], "com": [2, 4, 5, 7, 10, 11], "runonstart": [2, 7], "onc": [2, 3, 7, 10, 11], "itself": [2, 7], "go": [2, 3, 5, 7], "10": [2, 4, 5, 6, 7, 10, 11], "141": [2, 7], "8080": [2, 7], "pseudo": [2, 7], "evolut": [2, 7], "quadrupol": [2, 7, 10, 11], "appar": [2, 7], "contact": [2, 4, 5, 7, 10, 11], "direct": [2, 6, 7, 10, 11], "especi": [2, 7], "suit": [2, 7], "test": [2, 3, 4, 5, 6, 7, 9, 10, 11], "autom": [2, 7], "ipython": [2, 7], "typic": [2, 7, 9, 10, 11], "termin": [2, 3, 4, 5, 6, 7, 10, 11], "ssh": [2, 7], "putti": [2, 7], "window": [2, 3, 7, 10, 11], "command": [2, 3, 7, 10, 11], "maco": [2, 7], "linux": [2, 7], "same": [2, 6, 7, 10, 11], "directori": [2, 3, 7, 9, 10, 11], "where": [2, 3, 7, 9, 10, 11], "found": [2, 7], "gitlab": [2, 7, 10, 11], "entir": [2, 7, 10, 11], "exampl": [2, 4, 5, 6, 7, 10, 11], "numpi": [2, 3, 7, 10, 11], "np": [2, 7], "chdir": [2, 7], "home": [2, 3, 7, 10, 11], "object": [2, 7], "k": [2, 7], "load": [2, 7], "manual": [2, 7, 10, 11], "injection_dur": [2, 7, 10, 11], "nb_stack": [2, 7], "half": [2, 7], "cycl": [2, 7], "nbr_mea": [2, 7, 10, 11], "number": [2, 4, 5, 7, 10, 11], "repeat": [2, 6, 7, 10, 11], "updat": [2, 7], "update_set": [2, 7], "arrai": [2, 7, 10, 11], "shape": [2, 7], "set_sequ": [2, 7], "n2": [2, 7], "pass": [2, 6, 7], "string": [2, 7], "load_sequ": [2, 7], "abmn": [2, 7, 10, 11], "txt": [2, 3, 7, 10, 11], "rs_check": [2, 7], "synchron": [2, 7], "wait": [2, 7], "return": [2, 7, 10, 11], "prompt": [2, 7], "run_sequ": [2, 7], "run_sequence_async": [2, 7], "thread": [2, 7], "immedi": [2, 7], "sleep": [2, 7], "interrupt": [2, 7], "kill": [2, 7], "asynchron": [2, 7], "multipl": [2, 3, 7], "given": [2, 7], "interv": [2, 7], "nb_mea": [2, 7], "three": [2, 4, 5, 7, 10, 11], "sequence_delai": [2, 7, 10, 11], "100": [2, 5, 7, 10, 11], "run_multiple_sequ": [2, 7], "singl": [2, 7, 9, 10, 11], "taken": [2, 7], "switch_mux_on": [2, 7], "run_measur": [2, 7], "switch_mux_off": [2, 7], "don": [2, 4, 7], "t": [2, 4, 5, 7], "forget": [2, 4, 7], "risk": [2, 7], "short": [2, 7], "circuit": [2, 4, 5, 7, 10, 11], "argument": [2, 7], "help": [2, 6, 7, 9], "do": [2, 5, 6, 7, 9], "autogain": [2, 7], "true": [2, 7], "gain": [2, 4, 7, 10, 11], "ad": [2, 7, 10, 11], "good": [2, 7], "remot": [2, 3, 7, 10, 11], "usag": [2, 7], "process": [2, 7], "sensor": [2, 7], "scope": [2, 7], "base": [2, 3, 5, 7, 9, 10, 11], "protocol": [2, 7, 10, 11], "internet": [2, 7], "thing": [2, 5, 7], "network": [2, 7], "auxiliari": [2, 7], "instrument": [2, 4, 7, 10, 11], "publish": [2, 7, 10], "subscrib": [2, 7], "approach": [2, 7], "mosquitto": [2, 7], "server": [2, 7], "reachabl": [2, 7], "net": [2, 7], "enabl": [2, 7, 10, 11], "servic": [2, 7], "install_local_mqtt_brok": [2, 7], "These": [2, 7, 10, 11], "examin": [2, 7], "easili": [2, 7, 9], "parti": [2, 7], "explor": [2, 7], "receiv": [2, 7], "reboot": [2, 7], "further": [2, 7], "format": [2, 7], "kwarg": [2, 7], "illustr": [2, 7, 10, 11], "cmd_id": [2, 7], "3fzxv121uitwgjwygcz4xw": [2, 7], "cmd": [2, 7], "nb_electrod": [2, 7, 10, 11], "3fzxv121uitwgjwygcz4yw": [2, 7], "tailor": [2, 7], "dashboard": [2, 7], "browser": [2, 7], "flow": [2, 7, 10, 11], "editor": [2, 7, 10, 11], "node": [2, 7], "red": [2, 4, 6, 7, 10, 11], "complex": [2, 7], "incorpor": [2, 5, 7], "output": [2, 4, 6, 7, 10, 11], "addit": [2, 7, 10, 11], "order": [2, 7, 9, 10, 11], "properli": [2, 7], "done": [2, 3, 7, 10, 11], "palett": [2, 7], "manag": [2, 7, 10, 11], "noder": [2, 7], "org": [2, 3, 7], "doc": [2, 7], "guid": [2, 7], "within": [2, 3, 7, 9, 10, 11], "ui": [2, 7], "tab": [2, 3, 7, 10, 11], "visual": [2, 7], "For": [2, 3, 4, 5, 7, 10, 11], "cookbook": [2, 7], "ohmpi": [3, 4, 5, 9], "quantiti": [3, 10, 11], "model": [3, 4, 10, 11], "hdmi": [3, 6], "cabl": [3, 4, 5, 6, 10, 11], "comput": [3, 10, 11], "mous": [3, 6, 10, 11], "keyboard": [3, 6, 10, 11], "system": [3, 9, 10, 11], "describ": [3, 4, 6, 9, 10, 11], "websit": [3, 10, 11], "watch": [3, 10, 11], "video": [3, 10, 11], "how": [3, 10, 11], "your": [3, 4, 5, 9, 10, 11], "latest": [3, 10, 11], "stabl": [3, 10, 11], "previous": [3, 6, 10, 11], "raspbian": [3, 10, 11], "visit": 3, "raspberrypi": 3, "en": 3, "were": [3, 4, 10, 11], "wire": [3, 5, 6, 10, 11], "spi": [3, 10, 11], "gpio": [3, 5, 6, 10, 11], "deactiv": [3, 10, 11], "i2c": [3, 4, 5], "via": [3, 10, 11], "gui": [3, 10, 11], "menu": [3, 10, 11], "failur": [3, 10, 11], "carri": [3, 10, 11], "out": [3, 6, 10, 11], "task": [3, 10, 11], "caus": [3, 10, 11], "relai": [3, 4, 5, 10, 11], "shield": [3, 10, 11], "dure": [3, 10, 11], "wai": [3, 9, 10, 11], "parallel": 3, "instanc": 3, "interpret": [3, 4, 10, 11], "each": [3, 5, 6, 10, 11], "discret": 3, "support": 3, "protect": 3, "problem": 3, "specifi": [3, 10, 11], "necessari": [3, 5, 6, 9, 10, 11], "ensur": [3, 10, 11], "libatla": [3, 10, 11], "dev": [3, 10, 11], "librari": [3, 10, 11], "sudo": [3, 10, 11], "apt": [3, 10, 11], "strongli": [3, 10, 11], "code": [3, 5, 9, 10, 11], "either": [3, 10, 11], "gather": [3, 10, 11], "python3": [3, 10, 11], "venv": [3, 10, 11], "bin": [3, 10, 11], "suffici": [3, 10, 11], "meet": [3, 10, 11], "export": 3, "cflag": 3, "fcommon": 3, "pip": [3, 10, 11], "rpi": [3, 6, 10, 11], "adafruit": [3, 4, 5, 10, 11], "blinka": [3, 10, 11], "panda": [3, 10, 11], "circuitpython": [3, 10, 11], "ads1x15": [3, 10, 11], "tca9548a": [3, 5], "mcp230xx": 3, "gpiozero": 3, "met": [3, 10, 11], "leav": [3, 10, 11], "simpli": [3, 6, 10, 11], "If": [3, 4, 9, 10, 11], "decid": [3, 10, 11], "setup": [3, 10, 11], "click": [3, 10, 11], "program": [3, 6, 10, 11], "pythonid": [3, 10, 11], "root": [3, 10, 11], "7": [3, 4, 5, 6, 10, 11], "usr": [3, 10, 11], "select": [3, 5, 10, 11], "On": [3, 10, 11], "altern": [3, 10, 11], "button": [3, 10, 11], "appear": [3, 4, 5, 10, 11], "locat": [3, 10, 11], "anoth": [3, 10, 11], "6": [3, 4, 5, 6, 10, 11], "find": [3, 10, 11], "folder": [3, 10, 11], "file": [3, 4, 9, 10, 11], "known": [3, 10, 11], "path": [3, 9, 10, 11], "close": [3, 10, 11], "ok": [3, 10, 11], "save": [3, 10, 11], "modif": [3, 6, 10, 11], "per": [4, 5, 10, 11], "total": [4, 5, 10, 11], "manufactur": [4, 5, 10, 11], "web": [4, 5], "58": [4, 10, 11], "75": 4, "www": [4, 5, 10, 11], "mouser": [4, 5], "fr": [4, 5, 10, 11], "productdetail": [4, 5], "seeed": 4, "studio": 4, "102110421": 4, "q": [4, 5], "7mvldsj5uaxen3lyyh3sqw": 4, "3d": [4, 5], "lm158n": 4, "amp": [4, 10, 11], "14": [4, 5, 6], "texa": [4, 10, 11], "lm358an": [4, 10, 11], "nopb": [4, 10, 11], "lm158j": 4, "x1j7hmvl2zh8vpefml8": 4, "2ffq": 4, "asler": [4, 5, 10, 11], "ads1115": [4, 10, 11], "11": [4, 6, 10, 11], "23": [4, 5, 6, 10, 11], "1085": 4, "2fha2pyfaduh": 4, "2fogzutwiq9iz5vjaqfoyugqalgxpeckigrqvf4hn": 4, "252bg": 4, "capacitor": [4, 11], "100nf": [4, 11], "50vdc": [4, 11], "ceram": [4, 11], "kemet": [4, 11], "c320c104k1": [4, 11], "c320c104k1r5ta7303": 4, "c4uyot": 4, "2flq1th4mcyoetma": 4, "resistor": [4, 5, 10, 11], "kohm": [4, 5, 10, 11], "5w": [4, 10, 11], "te": [4, 5, 10, 11], "h81k0bya": [4, 10, 11], "holsworthi": 4, "2fha2pyfaduhuylh7az": 4, "2fmjfh2xjoums6wztux4som": 4, "252bii": 4, "h81k5bya": [4, 10, 11], "2fha2pyfadugy9twham3ru9hmijohywhbin95knm": 4, "252bx": 4, "2fm": 4, "vishai": [4, 5], "ccf071k50gke36": 4, "dale": 4, "qkeozdl6eqpa6lzrlqfvow": 4, "762": 4, "524": 4, "cmf651m0000fkek143": 4, "ciayqk2gdckzia2levalkg": 4, "shunt": 4, "42": 4, "ohmit": 4, "41f2r0e": 4, "im6toxqzgoauedprb19mha": 4, "dual": [4, 5, 10, 11], "screw": [4, 5, 6, 10, 11], "08": [4, 5], "mm": [4, 5, 6, 10, 11], "pitch": [4, 5, 10, 11], "648": [4, 5, 10, 11], "cui": [4, 5], "devic": [4, 5, 9], "tb009": [4, 5], "508": [4, 5], "02be": [4, 5], "vlwxofp3u2wcfk5uckwtka": [4, 5], "dc": [4, 5, 10, 11], "convert": [4, 10, 11], "24v": [4, 11], "15": [4, 5, 6, 10, 11], "31": [4, 5, 6], "16": [4, 5, 6, 10, 11], "tracopow": [4, 11], "trn": [4, 11], "1215": [4, 11], "traco": [4, 11], "yca": 4, "2faaymw02gquicgqj0ta": 4, "dip": [4, 5], "line": [4, 5, 10, 11], "socket": [4, 5], "72": [4, 11], "mill": 4, "max": 4, "110": [4, 5, 10, 11], "43": [4, 10, 11], "308": 4, "41": [4, 5], "001000": 4, "iggadovctstu": 4, "2fqaur8narg": 4, "mgh": 4, "vip": 4, "gclid": 4, "eaiaiqobchmin_taxbcx8wivq5nvch2qaqfpeayyccabegjk1_d_bw": 4, "aqy211eh": 4, "84": [4, 5], "36": [4, 6, 10, 11], "panason": 4, "industri": 4, "wktuvitrialgiu8hcm7dvq": 4, "449": 4, "796": 4, "preci": [4, 5], "83": 4, "304": 4, "001101": [4, 5], "2fha2pyfadujqkqx4wauig": 4, "2fmgndxmcnv": 4, "2f33nj0gbxroculucynpyong": 4, "mcp23008": 4, "593": 4, "sgaepimzzmskedp9slc0yyv4kpdpmd1hts4slctivmw": 4, "header": [4, 5, 10, 11], "1x10": [4, 10, 11], "samtec": [4, 10, 11], "ssw": [4, 10, 11], "g": [4, 10, 11], "ru5fayqh": 4, "252be0w1orxzibqpw": 4, "smt": 4, "breakout": 4, "pcb": [4, 5, 9, 10, 11], "soic": 4, "1212": 4, "gurawfaegucaqqfvnvtyeg": 4, "eaiaiqobchmit8zjzr6x8wivgdnvch2vbwvseaqyayabegjqg_d_bw": 4, "ina282aid": 4, "ze4": 4, "2fufuz19ilfayzxocfra": 4, "thd": 4, "1211n": 4, "39": [4, 5, 6, 10, 11], "2fha2pyfadugpyeg4idvm": 4, "2fmsr": 4, "252b7an": 4, "2f0t3ruis9pcaqjlt4": 4, "252bnrpuooeq": 4, "20": [4, 6, 10, 11], "53": [4, 11], "ssq": 4, "120": [4, 5], "d": [4, 10, 11], "252be1bmvd": 4, "252bdzonqg": 4, "pin": [4, 5, 10, 11], "strip": [4, 5, 6, 10, 11], "ejector": [4, 5], "35": [4, 6], "blk": [4, 5], "10120550": [4, 5], "conrad": [4, 5], "bkl": [4, 5], "space": [4, 5], "254": [4, 5], "row": [4, 5], "pc": [4, 5], "741435": [4, 5], "searchterm": [4, 5], "searchtyp": [4, 5], "suggest": [4, 5, 10, 11], "searchsuggest": [4, 5], "male": [4, 5], "femal": [4, 5, 10, 11], "spacer": [4, 5, 6], "5m": [4, 6], "hexagonal": 4, "87": [4, 5], "48": [4, 10, 11], "harwin": 4, "r25": 4, "3002002": 4, "w0yvoo0ixfenuv0hsdc4": 4, "2fq": 4, "86": [4, 5], "437": 4, "1108331841001101": 4, "318": 4, "ftmup6kvi2tnqoeziaq": 4, "2fpa": 4, "show": [4, 10, 11], "schemat": [4, 11], "plug": [4, 10, 11], "plai": 4, "propos": [4, 10, 11], "florsch": [4, 10, 11], "bit": [4, 10, 11], "adc": [4, 10, 11], "analog": [4, 10, 11], "digit": [4, 5, 10, 11], "advantag": 4, "signal": [4, 10, 11], "valu": [4, 5, 10, 11], "could": [4, 6, 10, 11], "lie": [4, 10, 11], "between": [4, 5, 6, 10, 11], "114": [4, 10, 11], "directli": [4, 10, 11], "integr": 4, "ina282": 4, "realiz": 4, "precis": [4, 10, 11], "solder": [4, 10, 11], "optic": 4, "suppli": [4, 5, 6, 10, 11], "5v": [4, 10, 11], "tdh15": 4, "inpout": 4, "higher": [4, 11], "than": [4, 10, 11], "just": [4, 11], "decreas": 4, "kei": 4, "r_shunt": 4, "ohmpi_config": 4, "dict": 4, "pre": [4, 6], "adjust": [4, 10, 11], "13": [4, 5, 6, 10, 11], "tow": 4, "17": [4, 6, 10, 11], "19": [4, 6, 10, 11], "view": [4, 6], "fix": [4, 6], "dot": 4, "mark": [4, 6], "left": [4, 6], "corner": 4, "21": [4, 6, 10, 11], "mount": [4, 5, 6, 10, 11], "22": [4, 6, 10, 11], "lm158": 4, "amplifi": [4, 10, 11], "ads115": [4, 10, 11], "right": [4, 6], "3x11": 4, "wurth": 4, "elektronik": 4, "971110321": 4, "305": [4, 5], "apm": [4, 5], "hexseal": [4, 5], "rm3x8mm": [4, 5], "2701": [4, 5], "jjse": [4, 5], "2f12mkns3vxsdryxuhw": [4, 5], "shutdown": 4, "unplug": 4, "bottom": [4, 10, 11], "11mm": 4, "m3": [4, 5], "upper": 4, "port": [4, 6], "i2cdetect": [4, 5], "y": [4, 5], "everyth": 4, "screen": [4, 10, 11], "equival": [4, 10, 11], "1kohm": 4, "r2": [4, 10, 11], "220": 4, "r1": [4, 10, 11], "padboard": 4, "spool": 4, "prepar": [4, 5, 10, 11], "black": [4, 6, 10, 11], "ground": [4, 10, 11], "sample_measurement_exampl": 4, "result": [4, 10, 11], "channel": [5, 10, 11], "omron": 5, "g5le": 5, "vd": 5, "vdc": 5, "combin": 5, "zvn4206a": 5, "mofset": 5, "onli": [5, 9], "30": [5, 6, 10, 11], "enough": [5, 10, 11], "repres": [5, 10, 11], "512": 5, "expand": 5, "mcp23017": 5, "own": 5, "0x70": 5, "0x77": 5, "0x71": 5, "0x72": 5, "0x73": 5, "140": 5, "560": 5, "62": 5, "92": [5, 10, 11], "1580994": 5, "tru": [5, 10, 11], "diod": 5, "1n4007": 5, "256": 5, "091": 5, "296": 5, "sgaepimzzmueqxo7l": 5, "2fbpyakboruumren": 5, "56": 5, "776": 5, "205": 5, "46": 5, "103321": 5, "5twgzeq9e7hsylqaljjyrw": 5, "732": 5, "sgaepimzzmskedp9slc0yfx16nydmpxjueeogolbldi": 5, "27": [5, 6, 10, 11], "325": 5, "over": 5, "503811": 5, "mosfet": 5, "nchannel": 5, "471": 5, "576": [5, 10], "vhuuswq2": 5, "252bsz9b": 5, "2ff6fcxt7g": 5, "100k\u03c9": 5, "061": 5, "616": 5, "beyschlag": 5, "mba02040c1003frp00": 5, "mzrxyrlhvdt9crf7zyf": 5, "2f5q": 5, "89": 5, "2717": 5, "sgaepimzzmsyydr3r27av4eqf73yoh": 5, "252baqg": 5, "252bz3hvktao": 5, "10120558": 5, "54": 5, "No": 5, "51": 5, "741727": 5, "10120862": 5, "connector": [5, 6, 10, 11], "strain": 5, "relief": 5, "44": [5, 10, 11], "742063": 5, "10120158": 5, "ribbon": [5, 6], "x": [5, 10, 11], "mm\u00b2": [5, 10, 11], "colour": 5, "1012015810": 5, "127": 5, "008": 5, "1548658": 5, "hex": [5, 6], "79": 5, "49": 5, "keyston": 5, "24300": 5, "uwqyq": 5, "2f2czwu0ejpozmzc2a": 5, "745": 5, "846": 5, "614": 5, "25515": 5, "2f2czwuxuhumfr": 5, "252bzuq": 5, "55": [5, 10, 11], "328": 5, "uqd7xcvsscnr3hwd6fta8g": 5, "duplic": 5, "build": [5, 10, 11], "therefor": [5, 10, 11], "identifi": 5, "assign": 5, "alloc": 5, "here": [5, 6, 11], "jumper": 5, "note": [5, 6, 10, 11], "zoom": [5, 6], "definit": 5, "simplifi": 5, "cm": [5, 6, 10, 11], "long": [5, 6], "flat": 5, "pole": [5, 10, 11], "detect": 5, "test_mux_board": 5, "cut": 6, "compos": 6, "proper": 6, "length": [6, 10, 11], "about": 6, "correspond": [6, 10], "crimp": [6, 10, 11], "idc": 6, "clamp": 6, "pai": [6, 10, 11], "attent": [6, 10, 11], "unbalanc": 6, "perpendicular": 6, "possibl": [6, 10, 11], "flush": 6, "posit": [6, 10, 11], "abov": [6, 10, 11], "profil": 6, "color": 6, "yellow": 6, "tin": 6, "end": [6, 10, 11], "shown": [6, 10, 11], "pictur": 6, "ii": 6, "gnd": [6, 10, 11], "nois": 6, "often": 6, "heard": 6, "clip": 6, "place": [6, 9, 10, 11], "procedur": 6, "purpl": 6, "relev": [6, 9], "fourth": 6, "nylon": 6, "photograph": 6, "4th": 6, "togeth": [6, 10, 11], "tie": 6, "pvc": 6, "plate": 6, "minimum": 6, "dimens": 6, "200": 6, "drill": 6, "remain": [6, 10, 11], "metal": 6, "tighten": 6, "so": [6, 10, 11], "usb": 6, "hole": [6, 10, 11], "26": [6, 10, 11], "add": [6, 10, 11], "attach": 6, "washer": 6, "nut": 6, "29": [6, 10, 11], "come": 6, "led": 6, "consid": 6, "temporari": 6, "orang": 6, "brown": 6, "blue": [6, 10, 11], "block": [6, 10, 11], "33": 6, "34": 6, "37": [6, 10, 11], "38": [6, 10, 11], "deliv": [6, 10, 11], "12vdc": 6, "enjoi": 6, "draft": 9, "TO": 9, "BE": 9, "review": 9, "intend": 9, "advic": 9, "best": 9, "practic": [9, 10, 11], "contribut": 9, "howev": [9, 10, 11], "maintain": 9, "track": [9, 10, 11], "promot": 9, "exchang": 9, "reus": 9, "contributor": 9, "ideal": 9, "few": 9, "step": [9, 10, 11], "distinguish": 9, "deal": 9, "compli": 9, "Such": 9, "focu": 9, "exist": [9, 10, 11], "reduc": 9, "rang": [9, 10, 11], "specif": [9, 10, 11], "newli": 9, "expos": 9, "minim": 9, "hardware_system": 9, "discuss": 9, "ohmpi_hardwar": 9, "initi": 9, "veri": [9, 11], "earli": 9, "stage": 9, "investig": 9, "solut": [9, 10, 11], "strategi": 9, "readi": 9, "conceiv": 9, "kicad": 9, "both": [9, 10, 11], "schema": 9, "alwai": 9, "branch": 9, "python": 9, "similar": 9, "modul": [9, 10, 11], "hardware_compon": 9, "abstract": 9, "abstract_hardware_compon": 9, "method": 9, "accord": [9, 10, 11], "hardware_config": 9, "dictionari": 9, "config_xxx": 9, "xxx": 9, "replac": [9, 11], "conduct": [9, 10, 11], "journal": 10, "correct": [10, 11], "bug": 10, "explain": 10, "miss": 10, "invit": 10, "commerci": [10, 11], "o1": [10, 11], "youtub": [10, 11], "wjwzhv1v3pk": [10, 11], "noob": [10, 11], "simpl": [10, 11], "unexpectedli": [10, 11], "boot": [10, 11], "cd": [10, 11], "gnu": [10, 11], "nano": [10, 11], "At": [10, 11], "op": [10, 11], "dl": [10, 11], "press": [10, 11], "ctrl": [10, 11], "enter": [10, 11], "escap": [10, 11], "wa": [10, 11], "Its": [10, 11], "studi": [10, 11], "hous": [10, 11], "diagram": [10, 11], "displai": [10, 11], "mimic": [10, 11], "behavior": [10, 11], "soil": [10, 11], "subject": [10, 11], "r11": [10, 11], "r10": [10, 11], "r12": [10, 11], "constitut": [10, 11], "stainless": [10, 11], "steel": [10, 11], "seri": [10, 11], "r9": [10, 11], "less": [10, 11], "sum": [10, 11], "inde": [10, 11], "000": [10, 11], "intens": [10, 11], "potenti": [10, 11], "calcul": [10, 11], "insert": [10, 11], "1115": [10, 11], "a1": [10, 11], "a0": [10, 11], "increas": [10, 11], "divid": [10, 11], "bridg": [10, 11], "r5": [10, 11], "r8": [10, 11], "r6": [10, 11], "r7": [10, 11], "a2": [10, 11], "a3": [10, 11], "obtain": [10, 11], "ly": [10, 11], "let": [10, 11], "equal": [10, 11], "multipli": [10, 11], "reduct": [10, 11], "despit": [10, 11], "high": [10, 11], "accur": [10, 11], "still": [10, 11], "calibr": [10, 11], "voltmet": [10, 11], "variou": [10, 11], "With": [10, 11], "disturb": [10, 11], "being": [10, 11], "estim": [10, 11], "mega": [10, 11], "shortcut": [10, 11], "excess": [10, 11], "lithium": [10, 11], "ion": [10, 11], "automobil": [10, 11], "lead": [10, 11], "acid": [10, 11], "strong": [10, 11], "hazard": [10, 11], "fuse": [10, 11], "onto": [10, 11], "ohmmet": [10, 11], "coeffici": [10, 11], "coef_p0": [10, 11], "coef_p1": [10, 11], "coef_p2": [10, 11], "coef_p3": [10, 11], "coef": [10, 11], "po": [10, 11], "p1": [10, 11], "r3": [10, 11], "r4": [10, 11], "p2": [10, 11], "p3": [10, 11], "r_ref": [10, 11], "slope": [10, 11], "convers": [10, 11], "p0": [10, 11], "accuraci": [10, 11], "lm358n": [10, 11], "appli": [10, 11], "weaker": 10, "stronger": [10, 11], "tx": [10, 11], "rememb": [10, 11], "holder": [10, 11], "f": [10, 11], "consist": [10, 11], "circul": [10, 11], "fig": [10, 11], "switch": [10, 11], "common": [10, 11], "neg": [10, 11], "normal": [10, 11], "simultan": [10, 11], "role": [10, 11], "revers": [10, 11], "polar": [10, 11], "thu": [10, 11], "energ": [10, 11], "next": [10, 11], "featur": [10, 11], "strict": [10, 11], "in1": [10, 11], "in2": [10, 11], "in3": [10, 11], "in4": [10, 11], "5vdc": [10, 11], "5vcc": [10, 11], "now": [10, 11], "mm2": [10, 11], "lastli": [10, 11], "congratul": [10, 11], "construct": [10, 11], "ert": [10, 11], "sever": [10, 11], "ten": [10, 11], "thousand": [10, 11], "stuck": [10, 11], "smaller": [10, 11], "hand": [10, 11], "cap": [10, 11], "produc": [10, 11], "clean": [10, 11], "distanc": [10, 11], "had": [10, 11], "extra": [10, 11], "As": [10, 11], "final": [10, 11], "actual": [10, 11], "horizont": [10, 11], "vertic": [10, 11], "06": [10, 11], "04": [10, 11], "09": [10, 11], "05": [10, 11], "din": [10, 11], "rail": [10, 11], "chosen": [10, 11], "consequ": [10, 11], "incom": [10, 11], "instead": [10, 11], "moreov": [10, 11], "turn": [10, 11], "bought": [10, 11], "down": [10, 11], "velleman": [10, 11], "wpm404": [10, 11], "potentiomet": [10, 11], "scienc": [10, 11], "framework": [10, 11], "manuscript": [10, 11], "osf": [10, 11], "io": [10, 11], "dzwb4": [10, 11], "irstea": [10, 11], "unzip": [10, 11], "master": [10, 11], "readm": [10, 11], "assist": [10, 11], "disconnect": [10, 11], "charg": [10, 11], "full": [10, 11], "capac": [10, 11], "fewer": [10, 11], "bank": [10, 11], "2a": [10, 11], "ll": [10, 11], "insid": [10, 11], "numer": [10, 11], "optim": [10, 11], "attribut": [10, 11], "the9": [10, 11], "hear": [10, 11], "characterist": [10, 11], "sound": [10, 11], "permut": [10, 11], "csv": [10, 11], "delai": [10, 11], "repetit": [10, 11], "evolv": [10, 11], "littl": [10, 11], "public": [10, 11], "articl": [10, 11], "sainsmart": [10, 11], "canal": 10, "pour": 10, "arduino": 10, "dsp": 10, "avr": 10, "pic": 10, "arm": 10, "99": [10, 11], "199": [10, 11], "sain": [10, 11], "smart": [10, 11], "101": [10, 11], "70": [10, 11], "103": [10, 11], "018": [10, 11], "1x1": [10, 11], "66": [10, 11], "1568649": [10, 11], "1x0": [10, 11], "71": [10, 11], "1565235": [10, 11], "68": [10, 11], "r": [10, 11], "pro": [10, 11], "897": [10, 11], "1332": [10, 11], "858": [10, 11], "627": [10, 11], "52": [10, 11], "upw50b50rv": [10, 11], "1083": [10, 11], "7ah": [10, 11], "537": [10, 11], "5488": [10, 11], "lr20": [10, 11], "9v": [10, 11], "185": [10, 11], "4686": [10, 11], "ferrul": [10, 11], "500": [10, 11], "piec": [10, 11], "weidmul": [10, 11], "9004330000": [10, 11], "966067": [10, 11], "car": 10, "littelfus": [10, 11], "fhac0002zxj": 10, "96": 10, "trn3": 11, "suppress": 11, "10v": 11, "fast": 11, "decoupl": 11, "last": 11, "prevent": 11, "overh": 11, "toler": 11, "orient": 11, "h": 11, "nf": 11, "tabl": 11, "jason": 11, "ohmpi_param": 11, "export_path": 11, "desktop": 11, "0251001": 11, "pat1l": 11}, "objects": {"": [[8, 0, 0, "-", "ohmpi"]]}, "objtypes": {"0": "py:module"}, "objnames": {"0": ["py", "module", "Python module"]}, "titleterms": {"ohmpi": [0, 1, 2, 6, 7, 10, 11], "open": 0, "sourc": 0, "hardwar": [0, 2, 7, 9], "resist": [0, 10, 11], "meter": 0, "summari": 0, "document": 0, "center": 0, "project": 1, "author": 1, "partner": 1, "cite": 1, "introduct": 1, "v2023": [2, 7], "64": [2, 7], "electrod": [2, 7, 10, 11], "12v": [2, 7], "The": [2, 7, 10, 11], "philosophi": [2, 7, 10, 11], "specif": [2, 7], "build": [2, 7], "an": [2, 7], "step": [2, 3, 4, 5, 6, 7], "softwar": [2, 7, 9], "oper": [2, 7, 10, 11], "system": [2, 7], "architectur": [2, 7], "logger": [2, 7], "configur": [2, 3, 7, 10, 11], "file": [2, 7], "interfac": [2, 7, 9], "applic": [2, 7], "web": [2, 7], "python": [2, 3, 7, 10, 11], "mqtt": [2, 7], "n": [3, 4, 5, 6], "1": [3, 10, 11], "raspberri": [3, 10, 11], "pi": [3, 10, 11], "part": [3, 4, 5], "A": [3, 4, 5], "o": [3, 10, 11], "instal": [3, 10, 11], "b": [3, 4, 5, 10, 11], "virtual": [3, 10, 11], "environ": [3, 10, 11], "packag": [3, 10, 11], "c": [3, 4, 5], "activ": [3, 10, 11], "thonni": [3, 10, 11], "id": [3, 10, 11], "2": 4, "measur": [4, 10, 11], "board": [4, 5, 10, 11], "assembli": [4, 5, 10, 11], "requir": [4, 5], "compon": [4, 5, 9, 10, 11], "list": [4, 5, 10, 11], "descript": [4, 10, 11], "start": 4, "up": 4, "check": 4, "3": 5, "mux": 5, "address": 5, "valid": 5, "4": 6, "assembl": 6, "api": 8, "refer": 8, "new": 9, "v": [10, 11], "01": 10, "limit": [10, 11], "32": [10, 11], "technic": [10, 11], "data": [10, 11], "current": [10, 11], "inject": [10, 11], "card": [10, 11], "connect": [10, 11], "electr": [10, 11], "implement": [10, 11], "first": [10, 11], "four": [10, 11], "multiplex": [10, 11], "instruct": [10, 11], "preliminari": [10, 11], "procedur": [10, 11], "onli": [10, 11], "initi": [10, 11], "startup": [10, 11], "paramet": [10, 11], "complet": [10, 11], "tabl": 10, "titl": 10, "02": 11}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"OHMPI: Open source and open hardware resistivity-meter": [[0, "ohmpi-open-source-and-open-hardware-resistivity-meter"]], "Summary": [[0, null]], "OhmPi Document Center": [[0, null]], "OhmPi V2023 (64 electrodes and 12V)": [[2, "ohmpi-v2023-64-electrodes-and-12v"], [7, "ohmpi-v2023-64-electrodes-and-12v"]], "The philosophy of OhmPi": [[2, "the-philosophy-of-ohmpi"], [7, "the-philosophy-of-ohmpi"]], "Hardware": [[2, "hardware"], [7, "hardware"]], "Specifications": [[2, "specifications"], [7, "specifications"]], "Building an OhmPi V2023 step by step": [[2, "building-an-ohmpi-v2023-step-by-step"], [7, "building-an-ohmpi-v2023-step-by-step"]], "Software and operation": [[2, "software-and-operation"], [7, "software-and-operation"]], "System architecture": [[2, "system-architecture"], [7, "system-architecture"]], "Loggers": [[2, "loggers"], [7, "loggers"]], "Configuration file": [[2, "configuration-file"], [7, "configuration-file"]], "Interfaces and applications": [[2, "interfaces-and-applications"], [7, "interfaces-and-applications"]], "Web interface": [[2, "web-interface"], [7, "web-interface"]], "Python interface": [[2, "python-interface"], [7, "python-interface"]], "MQTT interface": [[2, "mqtt-interface"], [7, "mqtt-interface"]], "STEP n\u00b01 : Raspberry Pi configuration": [[3, "step-n1-raspberry-pi-configuration"]], "PART A: OS installation": [[3, "part-a-os-installation"]], "PART B: Virtual Environment and packages": [[3, "part-b-virtual-environment-and-packages"]], "PART C: Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)": [[3, "part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"]], "STEP n\u00b02: Measurement board": [[4, "step-n2-measurement-board"]], "PART A Assembly of the measurement board": [[4, "part-a-assembly-of-the-measurement-board"]], "Required components": [[4, "required-components"], [5, "required-components"]], "List of components": [[4, "id1"], [4, "id2"], [5, "id1"], [11, "id10"]], "Description": [[4, "description"]], "PART B Start-up of the measurement board": [[4, "part-b-start-up-of-the-measurement-board"]], "PART C Check the measurement board": [[4, "part-c-check-the-measurement-board"]], "STEP n\u00b03: MUX board": [[5, "step-n3-mux-board"]], "PART A Assembly of MUX board": [[5, "part-a-assembly-of-mux-board"]], "PART B MUX board address": [[5, "part-b-mux-board-address"]], "PART C Validation of MUX board": [[5, "part-c-validation-of-mux-board"]], "STEP n\u00b04: assemble the OhmPi": [[6, "step-n4-assemble-the-ohmpi"]], "API reference": [[8, "api-reference"]], "Software interface to new hardware components": [[9, "software-interface-to-new-hardware-components"]], "OhmPi V 1.01 (limited to 32 electrodes)": [[10, "ohmpi-v-1-01-limited-to-32-electrodes"]], "The philosophy of Ohmpi": [[10, "the-philosophy-of-ohmpi"], [11, "the-philosophy-of-ohmpi"]], "Technical data": [[10, "technical-data"], [11, "technical-data"]], "Raspberry Pi configuration": [[10, "raspberry-pi-configuration"], [11, "raspberry-pi-configuration"]], "OS installation": [[10, "os-installation"], [11, "os-installation"]], "Virtual Environment and packages": [[10, "virtual-environment-and-packages"], [11, "virtual-environment-and-packages"]], "Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)": [[10, "activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"], [11, "activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"]], "Assembly of the measuring/current injection cards, and connection with the Raspberry Pi": [[10, "assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"], [11, "assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"]], "Electrical resistivity measurements board": [[10, "electrical-resistivity-measurements-board"], [11, "electrical-resistivity-measurements-board"]], "a) Description": [[10, "a-description"], [11, "a-description"]], "b) Implementation": [[10, "b-implementation"], [11, "b-implementation"]], "Current injection board": [[10, "current-injection-board"], [11, "current-injection-board"]], "First four electrodes resistivity measurement": [[10, "first-four-electrodes-resistivity-measurement"], [11, "first-four-electrodes-resistivity-measurement"]], "Multiplexer implementation": [[10, "multiplexer-implementation"], [11, "multiplexer-implementation"]], "Electrode connection": [[10, "electrode-connection"], [11, "electrode-connection"]], "Operating instruction": [[10, "operating-instruction"], [11, "operating-instruction"]], "Preliminary procedure (Only for the initial operation)": [[10, "preliminary-procedure-only-for-the-initial-operation"], [11, "preliminary-procedure-only-for-the-initial-operation"]], "Startup procedure": [[10, "startup-procedure"], [11, "startup-procedure"]], "Electrical resistivity measurement parameters description": [[10, "electrical-resistivity-measurement-parameters-description"], [11, "electrical-resistivity-measurement-parameters-description"]], "Complete list of components": [[10, "complete-list-of-components"], [11, "complete-list-of-components"]], "Table Title": [[10, "id9"]], "OhmPi V 1.02 (limited to 32 electrodes)": [[11, "ohmpi-v-1-02-limited-to-32-electrodes"]], "OhmPi project": [[1, "ohmpi-project"]], "Authors:": [[1, "authors"]], "Partners:": [[1, "partners"]], "Citing OhmPi:": [[1, "citing-ohmpi"]], "Introduction :": [[1, "introduction"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/doc/build/html/source_rst/Ohmpi.html b/doc/build/html/source_rst/Ohmpi.html index a3a19120..ae574b84 100644 --- a/doc/build/html/source_rst/Ohmpi.html +++ b/doc/build/html/source_rst/Ohmpi.html @@ -11,11 +11,11 @@ <script src="../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> - <script src="../_static/jquery.js"></script> - <script src="../_static/underscore.js"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../_static/doctools.js"></script> + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/js/theme.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> @@ -55,6 +55,7 @@ <li class="toctree-l1"><a class="reference internal" href="V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -82,15 +83,15 @@ <div itemprop="articleBody"> <section id="ohmpi-project"> -<h1>OhmPi project<a class="headerlink" href="#ohmpi-project" title="Permalink to this heading">ïƒ</a></h1> +<h1>OhmPi project<a class="headerlink" href="#ohmpi-project" title="Link to this heading">ïƒ</a></h1> <blockquote> -<div><a class="reference internal image-reference" href="../_images/logo_ohmpi1.JPG"><img alt="Logo OhmPi" class="align-center" src="../_images/logo_ohmpi1.JPG" style="width: 250px; height: 180px;" /></a> +<div><a class="reference internal image-reference" href="img/logo/ohmpi/logo_ohmpi.JPG"><img alt="Logo OhmPi" class="align-center" src="img/logo/ohmpi/logo_ohmpi.JPG" style="width: 250px; height: 180px;" /></a> </div></blockquote> <div class="line-block"> <div class="line"><br /></div> </div> <section id="authors"> -<h2><strong>Authors:</strong><a class="headerlink" href="#authors" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>Authors:</strong><a class="headerlink" href="#authors" title="Link to this heading">ïƒ</a></h2> <div class="line-block"> <div class="line">Rémi CLEMENT, Vivien DUBOIS, Nicolas Forquet, INRAE, REVERSAAL, Villeurbanne, France</div> <div class="line">Olivier KAUFMANN, Arnaud WATLET, Université de Mons, Mons, Belgium</div> @@ -100,7 +101,7 @@ </div> </section> <section id="partners"> -<h2><strong>Partners:</strong><a class="headerlink" href="#partners" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>Partners:</strong><a class="headerlink" href="#partners" title="Link to this heading">ïƒ</a></h2> <table class="docutils align-center"> <tbody> <tr class="row-odd"><td></td> @@ -115,7 +116,7 @@ </table> </section> <section id="citing-ohmpi"> -<h2><strong>Citing OhmPi:</strong><a class="headerlink" href="#citing-ohmpi" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>Citing OhmPi:</strong><a class="headerlink" href="#citing-ohmpi" title="Link to this heading">ïƒ</a></h2> <div class="line-block"> <div class="line"><br /></div> </div> @@ -127,7 +128,7 @@ </div> </section> <section id="introduction"> -<h2><strong>Introduction :</strong><a class="headerlink" href="#introduction" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>Introduction :</strong><a class="headerlink" href="#introduction" title="Link to this heading">ïƒ</a></h2> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. diff --git a/doc/build/html/source_rst/V2023.x.x/V2023.html b/doc/build/html/source_rst/V2023.x.x/V2023.html index ddeb42b7..39ad5875 100644 --- a/doc/build/html/source_rst/V2023.x.x/V2023.html +++ b/doc/build/html/source_rst/V2023.x.x/V2023.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> @@ -75,6 +75,7 @@ </li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -102,7 +103,7 @@ <div itemprop="articleBody"> <section id="ohmpi-v2023-64-electrodes-and-12v"> -<h1>OhmPi V2023 (64 electrodes and 12V)<a class="headerlink" href="#ohmpi-v2023-64-electrodes-and-12v" title="Permalink to this heading">ïƒ</a></h1> +<h1>OhmPi V2023 (64 electrodes and 12V)<a class="headerlink" href="#ohmpi-v2023-64-electrodes-and-12v" title="Link to this heading">ïƒ</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p><strong>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OhmPi. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p> @@ -124,7 +125,7 @@ This new version is made up of:</p> <p>The OhmPi V2023 software has been adapted to handle this new boards and also includes many new functionalities.</p> </div> <section id="the-philosophy-of-ohmpi"> -<h2>The philosophy of OhmPi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this heading">ïƒ</a></h2> +<h2>The philosophy of OhmPi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Link to this heading">ïƒ</a></h2> <p>The philosophy of OhmPi V2023 is to offer a new DIY multi-electrode resistivity meter. It is a resistivity meter with 64 electrodes, which can be upgraded to 128 electrodes. It is limited to low-current injection, but suitable for small laboratory experiments and small field time-lapse monitoring. OhmPi is developed by a team that seeks to share its experience and wishes to improve and offer a more and more robust tool to the community. OhmPi 2023 is completely different version from the previous one. @@ -132,9 +133,9 @@ We will stop the development on the version V1.0x, to dedicate our efforts on th </section> <hr class="docutils" /> <section id="hardware"> -<h2>Hardware<a class="headerlink" href="#hardware" title="Permalink to this heading">ïƒ</a></h2> +<h2>Hardware<a class="headerlink" href="#hardware" title="Link to this heading">ïƒ</a></h2> <section id="specifications"> -<h3>Specifications<a class="headerlink" href="#specifications" title="Permalink to this heading">ïƒ</a></h3> +<h3>Specifications<a class="headerlink" href="#specifications" title="Link to this heading">ïƒ</a></h3> <table class="docutils align-default"> <thead> <tr class="row-odd"><th class="head"><p><strong>Parameter</strong></p></th> @@ -210,7 +211,7 @@ control system</p></td> </table> </section> <section id="building-an-ohmpi-v2023-step-by-step"> -<h3>Building an OhmPi V2023 step by step<a class="headerlink" href="#building-an-ohmpi-v2023-step-by-step" title="Permalink to this heading">ïƒ</a></h3> +<h3>Building an OhmPi V2023 step by step<a class="headerlink" href="#building-an-ohmpi-v2023-step-by-step" title="Link to this heading">ïƒ</a></h3> <div class="toctree-wrapper compound"> <ul> <li class="toctree-l1"><a class="reference internal" href="V2023_step_01.html"><strong>STEP n°1</strong> : Raspberry Pi configuration</a><ul> @@ -237,9 +238,9 @@ control system</p></td> </section> </section> <section id="software-and-operation"> -<h2>Software and operation<a class="headerlink" href="#software-and-operation" title="Permalink to this heading">ïƒ</a></h2> +<h2>Software and operation<a class="headerlink" href="#software-and-operation" title="Link to this heading">ïƒ</a></h2> <section id="system-architecture"> -<h3>System architecture<a class="headerlink" href="#system-architecture" title="Permalink to this heading">ïƒ</a></h3> +<h3>System architecture<a class="headerlink" href="#system-architecture" title="Link to this heading">ïƒ</a></h3> <p>The OhmPi V2023 software is designed around a new architecture whose main components are summarized in the figure below.</p> <p>The general system configuration is defined in the <cite>config.py</cite> file covered in the <a class="reference internal" href="#configuration-file">Configuration file</a> section. The acquisition settings (i.e. injection duration, stacks…) are defined in a separate JSON file (default: ohmpi_settings.json).</p> @@ -247,7 +248,7 @@ The acquisition settings (i.e. injection duration, stacks…) are defined in a s A communication layer (I/O interface) on top of OhmPi allows for different user interfaces depending on the use cases (see <a class="reference internal" href="#interfaces-and-applications">Interfaces and applications</a>).</p> </section> <section id="loggers"> -<h3>Loggers<a class="headerlink" href="#loggers" title="Permalink to this heading">ïƒ</a></h3> +<h3>Loggers<a class="headerlink" href="#loggers" title="Link to this heading">ïƒ</a></h3> <p>Loggers have been introduced in this release. They use the excellent logging python package. Specific handlers have been implemented for running with ohmpi.py (one for logging to an mqtt broker (see <a class="reference internal" href="#mqtt-interface">MQTT interface</a> for more details) and one for creating zipped rotated logs on disk).</p> <p>Two loggers have been defined. The first one is dedicated to log operations execution. It is named exec_logger. The second one, named data_logger, is dedicated to log data. A third one is planned to log the state of health (SOH) of the system in a future version.</p> @@ -255,7 +256,7 @@ Specific handlers have been implemented for running with ohmpi.py (one for loggi <p>Advanced users may write new handlers and edit the <cite>setup_loggers.py</cite> file to customize the logging mechanisms to their needs.</p> </section> <section id="configuration-file"> -<h3>Configuration file<a class="headerlink" href="#configuration-file" title="Permalink to this heading">ïƒ</a></h3> +<h3>Configuration file<a class="headerlink" href="#configuration-file" title="Link to this heading">ïƒ</a></h3> <p>The configuration of the OhmPi file <cite>config.py</cite> allows to configure the OhmPi. A default version of <cite>config.py</cite> is provided in the repository. This file should be edited to customize the configuration following the user’s needs and preferences.</p> @@ -263,14 +264,14 @@ This file should be edited to customize the configuration following the user’s <p>One should make sure to understand the parameters before altering them. It is also recommended to keep a copy of the default configuration.</p> </section> <section id="interfaces-and-applications"> -<h3>Interfaces and applications<a class="headerlink" href="#interfaces-and-applications" title="Permalink to this heading">ïƒ</a></h3> +<h3>Interfaces and applications<a class="headerlink" href="#interfaces-and-applications" title="Link to this heading">ïƒ</a></h3> <p>Different interfaces can be used to interact with the OhmPi.</p> <p>Available interfaces are: - <a class="reference internal" href="#web-interface">Web interface</a> (=HTTP interface): run in bash: <cite>bash run_http_interface.sh</cite> - Python API: import the OhmPi class from Python script: <cite>from ohmpi import OhmPi</cite> (see <a class="reference internal" href="#python-interface">Python interface</a>) - MQTT: IoT messaging through a broker (see <a class="reference internal" href="#mqtt-interface">MQTT interface</a>)</p> <section id="web-interface"> -<h4>Web interface<a class="headerlink" href="#web-interface" title="Permalink to this heading">ïƒ</a></h4> +<h4>Web interface<a class="headerlink" href="#web-interface" title="Link to this heading">ïƒ</a></h4> <p>This is a user friendly graphical interface for new users as well as running quick and easy acquisitions.</p> <p>The Raspberry Pi of the OhmPi is used as a Wi-Fi Access Point (AP) and runs a small webserver to serve the ‘index.html’ interface. Using a laptop or @@ -284,24 +285,24 @@ to access the interface.</p> <figure class="align-default" id="id4"> <img alt="../../_images/http-interface-pseudo-section.png" src="../../_images/http-interface-pseudo-section.png" /> <figcaption> -<p><span class="caption-text">Web interface with its interactive pseudo-section.</span><a class="headerlink" href="#id4" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Web interface with its interactive pseudo-section.</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id5"> <img alt="../../_images/http-interface-evolution.png" src="../../_images/http-interface-evolution.png" /> <figcaption> -<p><span class="caption-text">Evolution of quadrupole apparent resistivity with time.</span><a class="headerlink" href="#id5" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Evolution of quadrupole apparent resistivity with time.</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id6"> <img alt="../../_images/http-interface-rs.png" src="../../_images/http-interface-rs.png" /> <figcaption> -<p><span class="caption-text">Contact resistance check.</span><a class="headerlink" href="#id6" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Contact resistance check.</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </section> <section id="python-interface"> -<h4>Python interface<a class="headerlink" href="#python-interface" title="Permalink to this heading">ïƒ</a></h4> +<h4>Python interface<a class="headerlink" href="#python-interface" title="Link to this heading">ïƒ</a></h4> <p>This interface offers a more direct access to the software components especially well suited for testing or automation on the Raspberry Pi.</p> <p>By importing the <cite>OhmPi</cite> class from the ohmpi.py, one can control the OhmPi using interactive IPython. Typically, it involves using the terminal or an Python IDE such as Thonny on the Raspberry Pi. One can also connect using @@ -312,7 +313,7 @@ be found on the OhmPi gitlab repository. We recommend downloading the entire repository as ohmpi.py import other .py files and default configuration files (.json and .py).</p> <div class="literal-block-wrapper docutils container" id="id7"> -<div class="code-block-caption"><span class="caption-text">Example of using the Python API to control OhmPi</span><a class="headerlink" href="#id7" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Example of using the Python API to control OhmPi</span><a class="headerlink" href="#id7" title="Link to this code">ïƒ</a></div> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="kn">import</span> <span class="nn">time</span> @@ -365,7 +366,7 @@ files (.json and .py).</p> </div> </section> <section id="mqtt-interface"> -<h4>MQTT interface<a class="headerlink" href="#mqtt-interface" title="Permalink to this heading">ïƒ</a></h4> +<h4>MQTT interface<a class="headerlink" href="#mqtt-interface" title="Link to this heading">ïƒ</a></h4> <p>This is an interface designed for an advanced remote usage of the OhmPi such as remote automation, data consumption by multiple processes and interaction with other sensors in the scope of a monitoring. It is based on the MQTT protocol, designed for the Internet of Things (IoT), to interact with the OhmPi.</p> <p>This option allows interacting remotely with a single OhmPi, a network of OhmPis, as well as auxiliary instruments and sensors. The communication is based on a publish/subscribe approach and involves a MQTT broker.</p> <p>An example of MQTT broker that can be used is <a class="reference external" href="https://mosquitto.org/">Mosquitto</a>. Depending on the monitoring needs, an MQTT broker can be set up locally on the Raspberry Pi, on a local network or any remote server reachable through the net. A local Mosquitto broker can be set up and enabled to run as a service on the OhmPi using the bash script install_local_mqtt_broker.sh.</p> @@ -373,25 +374,25 @@ files (.json and .py).</p> <p>Commands sent on the broker are received by the ohmpi.py script that runs on the OhmPi (make sure ohmpi.py starts on reboot) and further processed. MQTT commands are sent in JSON format following the Python API with kwargs as illustrated below:</p> <div class="literal-block-wrapper docutils container" id="id8"> -<div class="code-block-caption"><span class="caption-text">Updating acquisition settings.</span><a class="headerlink" href="#id8" title="Permalink to this code">ïƒ</a></div> -<div class="highlight-json notranslate"><div class="highlight"><pre><span></span>{ - "cmd_id": "3fzxv121UITwGjWYgcz4xw", - "cmd": "update_settings", Depending on the experiment needs, MQTT brokers can be set up locally on the Raspberry Pi or on a local or remote server. - "kwargs": { - "config": { - "nb_meas": 2, - "nb_electrodes": 10, - "nb_stack": 2, - "injection_duration": 2, - "sequence_delay": 100 - } - } -} +<div class="code-block-caption"><span class="caption-text">Updating acquisition settings.</span><a class="headerlink" href="#id8" title="Link to this code">ïƒ</a></div> +<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> +<span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4xw"</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"update_settings"</span><span class="p">,</span><span class="w"> </span><span class="err">Depe</span><span class="kc">n</span><span class="err">di</span><span class="kc">n</span><span class="err">g</span><span class="w"> </span><span class="err">o</span><span class="kc">n</span><span class="w"> </span><span class="kc">t</span><span class="err">he</span><span class="w"> </span><span class="err">experime</span><span class="kc">nt</span><span class="w"> </span><span class="kc">nee</span><span class="err">ds</span><span class="p">,</span><span class="w"> </span><span class="err">MQTT</span><span class="w"> </span><span class="err">brokers</span><span class="w"> </span><span class="err">ca</span><span class="kc">n</span><span class="w"> </span><span class="err">be</span><span class="w"> </span><span class="err">se</span><span class="kc">t</span><span class="w"> </span><span class="err">up</span><span class="w"> </span><span class="err">locally</span><span class="w"> </span><span class="err">o</span><span class="kc">n</span><span class="w"> </span><span class="kc">t</span><span class="err">he</span><span class="w"> </span><span class="err">Raspberry</span><span class="w"> </span><span class="err">Pi</span><span class="w"> </span><span class="err">or</span><span class="w"> </span><span class="err">o</span><span class="kc">n</span><span class="w"> </span><span class="err">a</span><span class="w"> </span><span class="err">local</span><span class="w"> </span><span class="err">or</span><span class="w"> </span><span class="err">remo</span><span class="kc">te</span><span class="w"> </span><span class="err">server.</span> +<span class="w"> </span><span class="nt">"kwargs"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="nt">"config"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="nt">"nb_meas"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"nb_electrodes"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"nb_stack"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"injection_duration"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"sequence_delay"</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span> +<span class="w"> </span><span class="p">}</span> +<span class="w"> </span><span class="p">}</span> +<span class="p">}</span> </pre></div> </div> </div> <div class="literal-block-wrapper docutils container" id="id9"> -<div class="code-block-caption"><span class="caption-text">Check contact resistances</span><a class="headerlink" href="#id9" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Check contact resistances</span><a class="headerlink" href="#id9" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4xw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rs_check"</span><span class="p">,</span> @@ -400,7 +401,7 @@ MQTT commands are sent in JSON format following the Python API with kwargs as il </div> </div> <div class="literal-block-wrapper docutils container" id="id10"> -<div class="code-block-caption"><span class="caption-text">Running a sequence.</span><a class="headerlink" href="#id10" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Running a sequence.</span><a class="headerlink" href="#id10" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4Yw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"run_sequence"</span><span class="p">,</span> @@ -409,7 +410,7 @@ MQTT commands are sent in JSON format following the Python API with kwargs as il </div> </div> <div class="literal-block-wrapper docutils container" id="id11"> -<div class="code-block-caption"><span class="caption-text">Running same sequence multiple times (nb_meas).</span><a class="headerlink" href="#id11" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Running same sequence multiple times (nb_meas).</span><a class="headerlink" href="#id11" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4Yw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"run_multiple_sequences"</span><span class="p">,</span> @@ -418,7 +419,7 @@ MQTT commands are sent in JSON format following the Python API with kwargs as il </div> </div> <div class="literal-block-wrapper docutils container" id="id12"> -<div class="code-block-caption"><span class="caption-text">Interrupt current acquisition.</span><a class="headerlink" href="#id12" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Interrupt current acquisition.</span><a class="headerlink" href="#id12" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4xw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"interrupt"</span><span class="p">,</span> @@ -433,19 +434,19 @@ This may help designing complex IoT experiments and monitoring systems in which <figure class="align-default" id="id13"> <img alt="../../_images/node-red_flow.png" src="../../_images/node-red_flow.png" /> <figcaption> -<p><span class="caption-text">Example flow in node-red to interact with an OhmPi.</span><a class="headerlink" href="#id13" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example flow in node-red to interact with an OhmPi.</span><a class="headerlink" href="#id13" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id14"> <img alt="../../_images/node-red_interface_control.png" src="../../_images/node-red_interface_control.png" /> <figcaption> -<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - control tab.</span><a class="headerlink" href="#id14" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - control tab.</span><a class="headerlink" href="#id14" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id15"> <img alt="../../_images/node-red_interface_data.png" src="../../_images/node-red_interface_data.png" /> <figcaption> -<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - data visualization tab.</span><a class="headerlink" href="#id15" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - data visualization tab.</span><a class="headerlink" href="#id15" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>For more documentation dedicated to node-red, please refer to the Node-red <a class="reference external" href="https://cookbook.nodered.org/">cookbooks</a>.</p> diff --git a/doc/build/html/source_rst/V2023.x.x/V2023_step_01.html b/doc/build/html/source_rst/V2023.x.x/V2023_step_01.html index 74eb1526..f3f710e3 100644 --- a/doc/build/html/source_rst/V2023.x.x/V2023_step_01.html +++ b/doc/build/html/source_rst/V2023.x.x/V2023_step_01.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> @@ -64,6 +64,7 @@ </li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -92,13 +93,13 @@ <div itemprop="articleBody"> <section id="step-n1-raspberry-pi-configuration"> -<h1><strong>STEP n°1</strong> : Raspberry Pi configuration<a class="headerlink" href="#step-n1-raspberry-pi-configuration" title="Permalink to this heading">ïƒ</a></h1> +<h1><strong>STEP n°1</strong> : Raspberry Pi configuration<a class="headerlink" href="#step-n1-raspberry-pi-configuration" title="Link to this heading">ïƒ</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p><strong>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p> </div> <section id="part-a-os-installation"> -<h2><strong>PART A:</strong> OS installation<a class="headerlink" href="#part-a-os-installation" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART A:</strong> OS installation<a class="headerlink" href="#part-a-os-installation" title="Link to this heading">ïƒ</a></h2> <table class="docutils align-default"> <tbody> <tr class="row-odd"><td><p><strong>Required components</strong></p></td> @@ -141,7 +142,7 @@ For this step, the installation instructions are well described on the Raspberry </div> </section> <section id="part-b-virtual-environment-and-packages"> -<h2><strong>PART B:</strong> Virtual Environment and packages<a class="headerlink" href="#part-b-virtual-environment-and-packages" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART B:</strong> Virtual Environment and packages<a class="headerlink" href="#part-b-virtual-environment-and-packages" title="Link to this heading">ïƒ</a></h2> <p>A virtual environment is a way to have multiple, parallel instances of the Python interpreter, each with different package sets and different configurations. Each virtual environment contains a discrete copy of the Python interpreter, including copies of its support utilities. It also protects your system in case of problems with the packages.</p> <p>All dependencies are specified in requirements.txt</p> @@ -178,7 +179,7 @@ to leave the virtual environment simply type:</p> </div> </section> <section id="part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"> -<h2><strong>PART C:</strong> Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART C:</strong> Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#part-c-activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Link to this heading">ïƒ</a></h2> <p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p> <p>1- Run the Thonny Python IDE software, Click on raspberry access <strong>menu > programming> Thonny pythonIDE</strong></p> <p>2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))</p> diff --git a/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html b/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html index 6f76d7dd..9428df38 100644 --- a/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html +++ b/doc/build/html/source_rst/V2023.x.x/V2023_step_02.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> @@ -64,6 +64,7 @@ </li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -92,20 +93,20 @@ <div itemprop="articleBody"> <section id="step-n2-measurement-board"> -<h1><strong>STEP n°2</strong>: Measurement board<a class="headerlink" href="#step-n2-measurement-board" title="Permalink to this heading">ïƒ</a></h1> +<h1><strong>STEP n°2</strong>: Measurement board<a class="headerlink" href="#step-n2-measurement-board" title="Link to this heading">ïƒ</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p><strong>Ohmpi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p> </div> <section id="part-a-assembly-of-the-measurement-board"> -<h2><strong>PART A</strong> Assembly of the measurement board<a class="headerlink" href="#part-a-assembly-of-the-measurement-board" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART A</strong> Assembly of the measurement board<a class="headerlink" href="#part-a-assembly-of-the-measurement-board" title="Link to this heading">ïƒ</a></h2> <section id="required-components"> -<h3>Required components<a class="headerlink" href="#required-components" title="Permalink to this heading">ïƒ</a></h3> +<h3>Required components<a class="headerlink" href="#required-components" title="Link to this heading">ïƒ</a></h3> <figure class="align-center"> <a class="reference internal image-reference" href="../../_images/00_mes_board_components.jpg"><img alt="alternate text" src="../../_images/00_mes_board_components.jpg" style="width: 600px; height: 450px;" /></a> </figure> <table class="docutils align-default" id="id1"> -<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id1" title="Permalink to this table">ïƒ</a></caption> +<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id1" title="Link to this table">ïƒ</a></caption> <colgroup> <col style="width: 8%" /> <col style="width: 18%" /> @@ -328,7 +329,7 @@ </table> </section> <section id="description"> -<h3>Description<a class="headerlink" href="#description" title="Permalink to this heading">ïƒ</a></h3> +<h3>Description<a class="headerlink" href="#description" title="Link to this heading">ïƒ</a></h3> <figure class="align-center"> <a class="reference internal image-reference" href="../../_images/schema_measurement_board.jpg"><img alt="alternate text" src="../../_images/schema_measurement_board.jpg" style="width: 600px; height: 450px;" /></a> </figure> @@ -568,7 +569,7 @@ corners)</p></td> </section> </section> <section id="part-b-start-up-of-the-measurement-board"> -<h2><strong>PART B</strong> Start-up of the measurement board<a class="headerlink" href="#part-b-start-up-of-the-measurement-board" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART B</strong> Start-up of the measurement board<a class="headerlink" href="#part-b-start-up-of-the-measurement-board" title="Link to this heading">ïƒ</a></h2> <table class="docutils align-default"> <tbody> <tr class="row-odd"><td><p><strong>Required components</strong></p></td> @@ -576,7 +577,7 @@ corners)</p></td> </tbody> </table> <table class="docutils align-default" id="id2"> -<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id2" title="Permalink to this table">ïƒ</a></caption> +<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id2" title="Link to this table">ïƒ</a></caption> <colgroup> <col style="width: 8%" /> <col style="width: 18%" /> @@ -675,7 +676,7 @@ Raspberry Pi’s power port.</p></td> </table> </section> <section id="part-c-check-the-measurement-board"> -<h2><strong>PART C</strong> Check the measurement board<a class="headerlink" href="#part-c-check-the-measurement-board" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART C</strong> Check the measurement board<a class="headerlink" href="#part-c-check-the-measurement-board" title="Link to this heading">ïƒ</a></h2> <blockquote> <div><p>Run the terminal, and write</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">i2cdetect</span> <span class="o">-</span><span class="n">y</span> <span class="mi">1</span> diff --git a/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html b/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html index 81f98e48..49172b0f 100644 --- a/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html +++ b/doc/build/html/source_rst/V2023.x.x/V2023_step_03.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> @@ -64,6 +64,7 @@ </li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -96,7 +97,7 @@ <p><strong>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p> </div> <section id="step-n3-mux-board"> -<h1><strong>STEP n°3:</strong> MUX board<a class="headerlink" href="#step-n3-mux-board" title="Permalink to this heading">ïƒ</a></h1> +<h1><strong>STEP n°3:</strong> MUX board<a class="headerlink" href="#step-n3-mux-board" title="Link to this heading">ïƒ</a></h1> <p>The multiplexing of the channels is a mechanical multiplexing based on OMRON’s manufacturing relays (G5LE-1-VD 12 VDC). Each relay is combined with a ZVN4206A power MOFSET. The raspberry has only 30 GPIOs, which is not enough to activate all the 64 electrodes, which represent 512 GPIOs. We used gpio expander I2C (MCP23017). We have associated these components with an I2C multiplexer of type type TCA9548A from adafruit. @@ -104,14 +105,14 @@ This combination allows to go up to 512 GPIOs and up to 128 electrodes. Each car In the following presentation for an OhmPi 64 electrodes, we will use the addresses 0X70 for channel A, 0X71 for channel B, 0X72 for channel M and 0X73 for channel N. 0X73 for the N channel. 4 MUX board will be needed to multiplex an OhmPi 64 electrodes.</p> <section id="part-a-assembly-of-mux-board"> -<h2><strong>PART A</strong> Assembly of MUX board<a class="headerlink" href="#part-a-assembly-of-mux-board" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART A</strong> Assembly of MUX board<a class="headerlink" href="#part-a-assembly-of-mux-board" title="Link to this heading">ïƒ</a></h2> <section id="required-components"> -<h3>Required components<a class="headerlink" href="#required-components" title="Permalink to this heading">ïƒ</a></h3> +<h3>Required components<a class="headerlink" href="#required-components" title="Link to this heading">ïƒ</a></h3> <figure class="align-center"> <a class="reference internal image-reference" href="../../_images/MUX_board_components.jpg"><img alt="alternate text" src="../../_images/MUX_board_components.jpg" style="width: 600px; height: 650px;" /></a> </figure> <table class="docutils align-default" id="id1"> -<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id1" title="Permalink to this table">ïƒ</a></caption> +<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id1" title="Link to this table">ïƒ</a></caption> <colgroup> <col style="width: 8%" /> <col style="width: 18%" /> @@ -401,7 +402,7 @@ In the following presentation for an OhmPi 64 electrodes, we will use the addres </section> </section> <section id="part-b-mux-board-address"> -<h2><strong>PART B</strong> MUX board address<a class="headerlink" href="#part-b-mux-board-address" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART B</strong> MUX board address<a class="headerlink" href="#part-b-mux-board-address" title="Link to this heading">ïƒ</a></h2> <p>To build an ohmpi it is necessary to have 4 MUX boards, with 4 different addresses. It is therefore necessary to identify each board, by assigning an address, which will be allocated in the OhmPi code. We present here the addresses selected by default.</p> <p>For the A electrode board, we suggest addressing it with address 0x70:</p> @@ -474,7 +475,7 @@ electrode name on the mux board (B).</p></td> </table> </section> <section id="part-c-validation-of-mux-board"> -<h2><strong>PART C</strong> Validation of MUX board<a class="headerlink" href="#part-c-validation-of-mux-board" title="Permalink to this heading">ïƒ</a></h2> +<h2><strong>PART C</strong> Validation of MUX board<a class="headerlink" href="#part-c-validation-of-mux-board" title="Link to this heading">ïƒ</a></h2> <p>The first step is to test the Mux boards before assembling them definitively. To test the Mux boards, it will be necessary first to make a simplified assembly of the Mux board and the measurement board.</p> <p>The first thing to do is to prepare a 50 cm long flat wire with two 6-poles connectors.</p> diff --git a/doc/build/html/source_rst/V2023.x.x/V2023_step_04.html b/doc/build/html/source_rst/V2023.x.x/V2023_step_04.html index 6758bf4e..bf676907 100644 --- a/doc/build/html/source_rst/V2023.x.x/V2023_step_04.html +++ b/doc/build/html/source_rst/V2023.x.x/V2023_step_04.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> @@ -64,6 +64,7 @@ </li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -96,7 +97,7 @@ <p><strong>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p> </div> <section id="step-n4-assemble-the-ohmpi"> -<h1><strong>STEP n°4:</strong> assemble the OhmPi<a class="headerlink" href="#step-n4-assemble-the-ohmpi" title="Permalink to this heading">ïƒ</a></h1> +<h1><strong>STEP n°4:</strong> assemble the OhmPi<a class="headerlink" href="#step-n4-assemble-the-ohmpi" title="Link to this heading">ïƒ</a></h1> <table class="docutils align-center"> <tbody> <tr class="row-odd"><td rowspan="2"><p>1</p></td> diff --git a/doc/build/html/source_rst/V2024.x.x/V2024.html b/doc/build/html/source_rst/V2024.x.x/V2024.html index e0123cbb..aae4dd9e 100644 --- a/doc/build/html/source_rst/V2024.x.x/V2024.html +++ b/doc/build/html/source_rst/V2024.x.x/V2024.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> <link rel="search" title="Search" href="../../search.html" /> @@ -99,7 +99,7 @@ <div itemprop="articleBody"> <section id="ohmpi-v2023-64-electrodes-and-12v"> -<h1>OhmPi V2023 (64 electrodes and 12V)<a class="headerlink" href="#ohmpi-v2023-64-electrodes-and-12v" title="Permalink to this heading">ïƒ</a></h1> +<h1>OhmPi V2023 (64 electrodes and 12V)<a class="headerlink" href="#ohmpi-v2023-64-electrodes-and-12v" title="Link to this heading">ïƒ</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p><strong>OhmPi is a participative project open to all, it requires skills in electronics and to respect the safety rules. OhmPi must be assembled in a professional context and by people competent in electronics. The OhmPi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OhmPi. The OhmPi team cannot be held responsible if the equipment does not work after assembly.</strong></p> @@ -121,7 +121,7 @@ This new version is made up of:</p> <p>The OhmPi V2023 software has been adapted to handle this new boards and also includes many new functionalities.</p> </div> <section id="the-philosophy-of-ohmpi"> -<h2>The philosophy of OhmPi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this heading">ïƒ</a></h2> +<h2>The philosophy of OhmPi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Link to this heading">ïƒ</a></h2> <p>The philosophy of OhmPi V2023 is to offer a new DIY multi-electrode resistivity meter. It is a resistivity meter with 64 electrodes, which can be upgraded to 128 electrodes. It is limited to low-current injection, but suitable for small laboratory experiments and small field time-lapse monitoring. OhmPi is developed by a team that seeks to share its experience and wishes to improve and offer a more and more robust tool to the community. OhmPi 2023 is completely different version from the previous one. @@ -129,9 +129,9 @@ We will stop the development on the version V1.0x, to dedicate our efforts on th </section> <hr class="docutils" /> <section id="hardware"> -<h2>Hardware<a class="headerlink" href="#hardware" title="Permalink to this heading">ïƒ</a></h2> +<h2>Hardware<a class="headerlink" href="#hardware" title="Link to this heading">ïƒ</a></h2> <section id="specifications"> -<h3>Specifications<a class="headerlink" href="#specifications" title="Permalink to this heading">ïƒ</a></h3> +<h3>Specifications<a class="headerlink" href="#specifications" title="Link to this heading">ïƒ</a></h3> <table class="docutils align-default"> <thead> <tr class="row-odd"><th class="head"><p><strong>Parameter</strong></p></th> @@ -207,20 +207,20 @@ control system</p></td> </table> </section> <section id="building-an-ohmpi-v2023-step-by-step"> -<h3>Building an OhmPi V2023 step by step<a class="headerlink" href="#building-an-ohmpi-v2023-step-by-step" title="Permalink to this heading">ïƒ</a></h3> +<h3>Building an OhmPi V2023 step by step<a class="headerlink" href="#building-an-ohmpi-v2023-step-by-step" title="Link to this heading">ïƒ</a></h3> <div class="toctree-wrapper compound"> </div> </section> </section> <section id="software-and-operation"> -<h2>Software and operation<a class="headerlink" href="#software-and-operation" title="Permalink to this heading">ïƒ</a></h2> +<h2>Software and operation<a class="headerlink" href="#software-and-operation" title="Link to this heading">ïƒ</a></h2> <section id="system-architecture"> -<h3>System architecture<a class="headerlink" href="#system-architecture" title="Permalink to this heading">ïƒ</a></h3> +<h3>System architecture<a class="headerlink" href="#system-architecture" title="Link to this heading">ïƒ</a></h3> <p>The OhmPi V2023 software is designed around a new architecture whose main components are summarized in the figure below.</p> <figure class="align-default" id="id4"> <img alt="source_rst/V2024.x.x/img/architecture.png" src="source_rst/V2024.x.x/img/architecture.png" /> <figcaption> -<p><span class="caption-text">Software architecture of OhmPi V2023.</span><a class="headerlink" href="#id4" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Software architecture of OhmPi V2023.</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>The general system configuration is defined in the <cite>config.py</cite> file covered in the <a class="reference internal" href="#configuration-file">Configuration file</a> section. @@ -229,7 +229,7 @@ The acquisition settings (i.e. injection duration, stacks…) are defined in a s A communication layer (I/O interface) on top of OhmPi allows for different user interfaces depending on the use cases (see <a class="reference internal" href="#interfaces-and-applications">Interfaces and applications</a>).</p> </section> <section id="loggers"> -<h3>Loggers<a class="headerlink" href="#loggers" title="Permalink to this heading">ïƒ</a></h3> +<h3>Loggers<a class="headerlink" href="#loggers" title="Link to this heading">ïƒ</a></h3> <p>Loggers have been introduced in this release. They use the excellent logging python package. Specific handlers have been implemented for running with ohmpi.py (one for logging to an mqtt broker (see <a class="reference internal" href="#mqtt-interface">MQTT interface</a> for more details) and one for creating zipped rotated logs on disk).</p> <p>Two loggers have been defined. The first one is dedicated to log operations execution. It is named exec_logger. The second one, named data_logger, is dedicated to log data. A third one is planned to log the state of health (SOH) of the system in a future version.</p> @@ -237,7 +237,7 @@ Specific handlers have been implemented for running with ohmpi.py (one for loggi <p>Advanced users may write new handlers and edit the <cite>setup_loggers.py</cite> file to customize the logging mechanisms to their needs.</p> </section> <section id="configuration-file"> -<h3>Configuration file<a class="headerlink" href="#configuration-file" title="Permalink to this heading">ïƒ</a></h3> +<h3>Configuration file<a class="headerlink" href="#configuration-file" title="Link to this heading">ïƒ</a></h3> <p>The configuration of the OhmPi file <cite>config.py</cite> allows to configure the OhmPi. A default version of <cite>config.py</cite> is provided in the repository. This file should be edited to customize the configuration following the user’s needs and preferences.</p> @@ -245,14 +245,14 @@ This file should be edited to customize the configuration following the user’s <p>One should make sure to understand the parameters before altering them. It is also recommended to keep a copy of the default configuration.</p> </section> <section id="interfaces-and-applications"> -<h3>Interfaces and applications<a class="headerlink" href="#interfaces-and-applications" title="Permalink to this heading">ïƒ</a></h3> +<h3>Interfaces and applications<a class="headerlink" href="#interfaces-and-applications" title="Link to this heading">ïƒ</a></h3> <p>Different interfaces can be used to interact with the OhmPi.</p> <p>Available interfaces are: - <a class="reference internal" href="#web-interface">Web interface</a> (=HTTP interface): run in bash: <cite>bash run_http_interface.sh</cite> - Python API: import the OhmPi class from Python script: <cite>from ohmpi import OhmPi</cite> (see <a class="reference internal" href="#python-interface">Python interface</a>) - MQTT: IoT messaging through a broker (see <a class="reference internal" href="#mqtt-interface">MQTT interface</a>)</p> <section id="web-interface"> -<h4>Web interface<a class="headerlink" href="#web-interface" title="Permalink to this heading">ïƒ</a></h4> +<h4>Web interface<a class="headerlink" href="#web-interface" title="Link to this heading">ïƒ</a></h4> <p>This is a user friendly graphical interface for new users as well as running quick and easy acquisitions.</p> <p>The Raspberry Pi of the OhmPi is used as a Wi-Fi Access Point (AP) and runs a small webserver to serve the ‘index.html’ interface. Using a laptop or @@ -266,24 +266,24 @@ to access the interface.</p> <figure class="align-default" id="id5"> <img alt="source_rst/V2024.x.x/img/http-interface-pseudo-section.png" src="source_rst/V2024.x.x/img/http-interface-pseudo-section.png" /> <figcaption> -<p><span class="caption-text">Web interface with its interactive pseudo-section.</span><a class="headerlink" href="#id5" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Web interface with its interactive pseudo-section.</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id6"> <img alt="source_rst/V2024.x.x/img/http-interface-evolution.png" src="source_rst/V2024.x.x/img/http-interface-evolution.png" /> <figcaption> -<p><span class="caption-text">Evolution of quadrupole apparent resistivity with time.</span><a class="headerlink" href="#id6" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Evolution of quadrupole apparent resistivity with time.</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id7"> <img alt="source_rst/V2024.x.x/img/http-interface-rs.png" src="source_rst/V2024.x.x/img/http-interface-rs.png" /> <figcaption> -<p><span class="caption-text">Contact resistance check.</span><a class="headerlink" href="#id7" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Contact resistance check.</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </section> <section id="python-interface"> -<h4>Python interface<a class="headerlink" href="#python-interface" title="Permalink to this heading">ïƒ</a></h4> +<h4>Python interface<a class="headerlink" href="#python-interface" title="Link to this heading">ïƒ</a></h4> <p>This interface offers a more direct access to the software components especially well suited for testing or automation on the Raspberry Pi.</p> <p>By importing the <cite>OhmPi</cite> class from the ohmpi.py, one can control the OhmPi using interactive IPython. Typically, it involves using the terminal or an Python IDE such as Thonny on the Raspberry Pi. One can also connect using @@ -294,7 +294,7 @@ be found on the OhmPi gitlab repository. We recommend downloading the entire repository as ohmpi.py import other .py files and default configuration files (.json and .py).</p> <div class="literal-block-wrapper docutils container" id="id8"> -<div class="code-block-caption"><span class="caption-text">Example of using the Python API to control OhmPi</span><a class="headerlink" href="#id8" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Example of using the Python API to control OhmPi</span><a class="headerlink" href="#id8" title="Link to this code">ïƒ</a></div> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="kn">import</span> <span class="nn">time</span> @@ -347,7 +347,7 @@ files (.json and .py).</p> </div> </section> <section id="mqtt-interface"> -<h4>MQTT interface<a class="headerlink" href="#mqtt-interface" title="Permalink to this heading">ïƒ</a></h4> +<h4>MQTT interface<a class="headerlink" href="#mqtt-interface" title="Link to this heading">ïƒ</a></h4> <p>This is an interface designed for an advanced remote usage of the OhmPi such as remote automation, data consumption by multiple processes and interaction with other sensors in the scope of a monitoring. It is based on the MQTT protocol, designed for the Internet of Things (IoT), to interact with the OhmPi.</p> <p>This option allows interacting remotely with a single OhmPi, a network of OhmPis, as well as auxiliary instruments and sensors. The communication is based on a publish/subscribe approach and involves a MQTT broker.</p> <p>An example of MQTT broker that can be used is <a class="reference external" href="https://mosquitto.org/">Mosquitto</a>. Depending on the monitoring needs, an MQTT broker can be set up locally on the Raspberry Pi, on a local network or any remote server reachable through the net. A local Mosquitto broker can be set up and enabled to run as a service on the OhmPi using the bash script install_local_mqtt_broker.sh.</p> @@ -355,25 +355,25 @@ files (.json and .py).</p> <p>Commands sent on the broker are received by the ohmpi.py script that runs on the OhmPi (make sure ohmpi.py starts on reboot) and further processed. MQTT commands are sent in JSON format following the Python API with kwargs as illustrated below:</p> <div class="literal-block-wrapper docutils container" id="id9"> -<div class="code-block-caption"><span class="caption-text">Updating acquisition settings.</span><a class="headerlink" href="#id9" title="Permalink to this code">ïƒ</a></div> -<div class="highlight-json notranslate"><div class="highlight"><pre><span></span>{ - "cmd_id": "3fzxv121UITwGjWYgcz4xw", - "cmd": "update_settings", Depending on the experiment needs, MQTT brokers can be set up locally on the Raspberry Pi or on a local or remote server. - "kwargs": { - "config": { - "nb_meas": 2, - "nb_electrodes": 10, - "nb_stack": 2, - "injection_duration": 2, - "sequence_delay": 100 - } - } -} +<div class="code-block-caption"><span class="caption-text">Updating acquisition settings.</span><a class="headerlink" href="#id9" title="Link to this code">ïƒ</a></div> +<div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> +<span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4xw"</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"update_settings"</span><span class="p">,</span><span class="w"> </span><span class="err">Depe</span><span class="kc">n</span><span class="err">di</span><span class="kc">n</span><span class="err">g</span><span class="w"> </span><span class="err">o</span><span class="kc">n</span><span class="w"> </span><span class="kc">t</span><span class="err">he</span><span class="w"> </span><span class="err">experime</span><span class="kc">nt</span><span class="w"> </span><span class="kc">nee</span><span class="err">ds</span><span class="p">,</span><span class="w"> </span><span class="err">MQTT</span><span class="w"> </span><span class="err">brokers</span><span class="w"> </span><span class="err">ca</span><span class="kc">n</span><span class="w"> </span><span class="err">be</span><span class="w"> </span><span class="err">se</span><span class="kc">t</span><span class="w"> </span><span class="err">up</span><span class="w"> </span><span class="err">locally</span><span class="w"> </span><span class="err">o</span><span class="kc">n</span><span class="w"> </span><span class="kc">t</span><span class="err">he</span><span class="w"> </span><span class="err">Raspberry</span><span class="w"> </span><span class="err">Pi</span><span class="w"> </span><span class="err">or</span><span class="w"> </span><span class="err">o</span><span class="kc">n</span><span class="w"> </span><span class="err">a</span><span class="w"> </span><span class="err">local</span><span class="w"> </span><span class="err">or</span><span class="w"> </span><span class="err">remo</span><span class="kc">te</span><span class="w"> </span><span class="err">server.</span> +<span class="w"> </span><span class="nt">"kwargs"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="nt">"config"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="nt">"nb_meas"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"nb_electrodes"</span><span class="p">:</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"nb_stack"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"injection_duration"</span><span class="p">:</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span> +<span class="w"> </span><span class="nt">"sequence_delay"</span><span class="p">:</span><span class="w"> </span><span class="mi">100</span> +<span class="w"> </span><span class="p">}</span> +<span class="w"> </span><span class="p">}</span> +<span class="p">}</span> </pre></div> </div> </div> <div class="literal-block-wrapper docutils container" id="id10"> -<div class="code-block-caption"><span class="caption-text">Check contact resistances</span><a class="headerlink" href="#id10" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Check contact resistances</span><a class="headerlink" href="#id10" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4xw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rs_check"</span><span class="p">,</span> @@ -382,7 +382,7 @@ MQTT commands are sent in JSON format following the Python API with kwargs as il </div> </div> <div class="literal-block-wrapper docutils container" id="id11"> -<div class="code-block-caption"><span class="caption-text">Running a sequence.</span><a class="headerlink" href="#id11" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Running a sequence.</span><a class="headerlink" href="#id11" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4Yw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"run_sequence"</span><span class="p">,</span> @@ -391,7 +391,7 @@ MQTT commands are sent in JSON format following the Python API with kwargs as il </div> </div> <div class="literal-block-wrapper docutils container" id="id12"> -<div class="code-block-caption"><span class="caption-text">Running same sequence multiple times (nb_meas).</span><a class="headerlink" href="#id12" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Running same sequence multiple times (nb_meas).</span><a class="headerlink" href="#id12" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4Yw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"run_multiple_sequences"</span><span class="p">,</span> @@ -400,7 +400,7 @@ MQTT commands are sent in JSON format following the Python API with kwargs as il </div> </div> <div class="literal-block-wrapper docutils container" id="id13"> -<div class="code-block-caption"><span class="caption-text">Interrupt current acquisition.</span><a class="headerlink" href="#id13" title="Permalink to this code">ïƒ</a></div> +<div class="code-block-caption"><span class="caption-text">Interrupt current acquisition.</span><a class="headerlink" href="#id13" title="Link to this code">ïƒ</a></div> <div class="highlight-json notranslate"><div class="highlight"><pre><span></span><span class="p">{</span> <span class="w"> </span><span class="nt">"cmd_id"</span><span class="p">:</span><span class="w"> </span><span class="s2">"3fzxv121UITwGjWYgcz4xw"</span><span class="p">,</span> <span class="w"> </span><span class="nt">"cmd"</span><span class="p">:</span><span class="w"> </span><span class="s2">"interrupt"</span><span class="p">,</span> @@ -415,19 +415,19 @@ This may help designing complex IoT experiments and monitoring systems in which <figure class="align-default" id="id14"> <img alt="source_rst/V2024.x.x/img/node-red_flow.png" src="source_rst/V2024.x.x/img/node-red_flow.png" /> <figcaption> -<p><span class="caption-text">Example flow in node-red to interact with an OhmPi.</span><a class="headerlink" href="#id14" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example flow in node-red to interact with an OhmPi.</span><a class="headerlink" href="#id14" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id15"> <img alt="source_rst/V2024.x.x/img/node-red_interface_control.png" src="source_rst/V2024.x.x/img/node-red_interface_control.png" /> <figcaption> -<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - control tab.</span><a class="headerlink" href="#id15" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - control tab.</span><a class="headerlink" href="#id15" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-default" id="id16"> <img alt="source_rst/V2024.x.x/img/node-red_interface_data.png" src="source_rst/V2024.x.x/img/node-red_interface_data.png" /> <figcaption> -<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - data visualization tab.</span><a class="headerlink" href="#id16" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example of a dashboard UI created with node-red to interact with an OhmPi - data visualization tab.</span><a class="headerlink" href="#id16" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>For more documentation dedicated to node-red, please refer to the Node-red <a class="reference external" href="https://cookbook.nodered.org/">cookbooks</a>.</p> diff --git a/doc/build/html/source_rst/api.html b/doc/build/html/source_rst/api.html index 29c90780..801837c2 100644 --- a/doc/build/html/source_rst/api.html +++ b/doc/build/html/source_rst/api.html @@ -11,14 +11,15 @@ <script src="../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> - <script src="../_static/jquery.js"></script> - <script src="../_static/underscore.js"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../_static/doctools.js"></script> + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/js/theme.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> + <link rel="next" title="Software interface to new hardware components" href="developing_hardware_components.html" /> <link rel="prev" title="OhmPi V2023 (64 electrodes and 12V)" href="V2024.x.x/V2024.html" /> </head> @@ -50,6 +51,7 @@ <li class="toctree-l1 current"><a class="current reference internal" href="#">API reference</a><ul class="simple"> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -77,7 +79,7 @@ <div itemprop="articleBody"> <section id="api-reference"> -<h1>API reference<a class="headerlink" href="#api-reference" title="Permalink to this heading">ïƒ</a></h1> +<h1>API reference<a class="headerlink" href="#api-reference" title="Link to this heading">ïƒ</a></h1> <div class="toctree-wrapper compound"> </div> <span class="target" id="module-ohmpi"></span></section> @@ -87,6 +89,7 @@ </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="V2024.x.x/V2024.html" class="btn btn-neutral float-left" title="OhmPi V2023 (64 electrodes and 12V)" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="developing_hardware_components.html" class="btn btn-neutral float-right" title="Software interface to new hardware components" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> diff --git a/doc/build/html/source_rst/developing_hardware_components.html b/doc/build/html/source_rst/developing_hardware_components.html index 7ee431e6..25e9be4d 100644 --- a/doc/build/html/source_rst/developing_hardware_components.html +++ b/doc/build/html/source_rst/developing_hardware_components.html @@ -11,11 +11,11 @@ <script src="../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script> - <script src="../_static/jquery.js"></script> - <script src="../_static/underscore.js"></script> - <script src="../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../_static/doctools.js"></script> + <script src="../_static/jquery.js?v=5d32c60e"></script> + <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../_static/doctools.js?v=888ff710"></script> + <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/js/theme.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> @@ -76,7 +76,7 @@ <div itemprop="articleBody"> <section id="software-interface-to-new-hardware-components"> -<h1>Software interface to new hardware components<a class="headerlink" href="#software-interface-to-new-hardware-components" title="Permalink to this heading">ïƒ</a></h1> +<h1>Software interface to new hardware components<a class="headerlink" href="#software-interface-to-new-hardware-components" title="Link to this heading">ïƒ</a></h1> <p><a href="#id1"><span class="problematic" id="id2">**</span></a>* DRAFT VERSION - TO BE REVIEWED * This section is intended for developers of a new hardware component as part of an OhmPi system.</p> <p>It presents some advices and best practices that should help developing new hardware components to work diff --git a/doc/build/html/source_rst/v1.xx/V1_01.html b/doc/build/html/source_rst/v1.xx/V1_01.html index 8a6d66e0..82e90711 100644 --- a/doc/build/html/source_rst/v1.xx/V1_01.html +++ b/doc/build/html/source_rst/v1.xx/V1_01.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> @@ -79,6 +79,7 @@ <li class="toctree-l1"><a class="reference internal" href="../V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -106,7 +107,7 @@ <div itemprop="articleBody"> <section id="ohmpi-v-1-01-limited-to-32-electrodes"> -<h1>OhmPi V 1.01 (limited to 32 electrodes)<a class="headerlink" href="#ohmpi-v-1-01-limited-to-32-electrodes" title="Permalink to this heading">ïƒ</a></h1> +<h1>OhmPi V 1.01 (limited to 32 electrodes)<a class="headerlink" href="#ohmpi-v-1-01-limited-to-32-electrodes" title="Link to this heading">ïƒ</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>This version corresponds to the version published in the Hardware X journal. @@ -118,13 +119,13 @@ We invite you to refer to this document to assemble Ohmpi V1.01.</p> <p><strong>Ohmpi is a participative project open to all, it requires skills in electronics and to respect the safety rules. Ohmpi must be assembled in a professional context and by people competent in electronics. The Ohmpi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The Ohmpi team cannot be held responsible if the equipment does not work after assembly.</strong></p> </div> <section id="the-philosophy-of-ohmpi"> -<h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this heading">ïƒ</a></h2> +<h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Link to this heading">ïƒ</a></h2> <p>The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available electronic cards it is a resistivity meter limited to 32 electrodes only. It is limited to low-current injection, but suitable for small laboratory experiments and small field time monitoring</p> </section> <section id="technical-data"> -<h2>Technical data<a class="headerlink" href="#technical-data" title="Permalink to this heading">ïƒ</a></h2> +<h2>Technical data<a class="headerlink" href="#technical-data" title="Link to this heading">ïƒ</a></h2> <table class="docutils align-default"> <tbody> <tr class="row-odd"><td><p><strong>Parameter</strong></p></td> @@ -176,9 +177,9 @@ control system</p></td> </table> </section> <section id="raspberry-pi-configuration"> -<h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Permalink to this heading">ïƒ</a></h2> +<h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Link to this heading">ïƒ</a></h2> <section id="os-installation"> -<h3>OS installation<a class="headerlink" href="#os-installation" title="Permalink to this heading">ïƒ</a></h3> +<h3>OS installation<a class="headerlink" href="#os-installation" title="Link to this heading">ïƒ</a></h3> <p>The first step is to start up the Raspberry Pi board, including installation of an OS (operating system). For this step, the installation instructions are well described on the Raspberry website</p> <ol class="arabic simple"> @@ -228,7 +229,7 @@ To ensure that the GPIOs are in Low position, you will need to modify the /boot/ </ol> </section> <section id="virtual-environment-and-packages"> -<h3>Virtual Environment and packages<a class="headerlink" href="#virtual-environment-and-packages" title="Permalink to this heading">ïƒ</a></h3> +<h3>Virtual Environment and packages<a class="headerlink" href="#virtual-environment-and-packages" title="Link to this heading">ïƒ</a></h3> <p>All dependencies are specified in requirements.txt</p> <div class="admonition note"> <p class="admonition-title">Note</p> @@ -262,7 +263,7 @@ to leave the virtual environment simply type:</p> </div> </section> <section id="activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"> -<h3>Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Permalink to this heading">ïƒ</a></h3> +<h3>Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Link to this heading">ïƒ</a></h3> <p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p> <p>1- Run the Thonny Python IDE software, Click on raspberry access <strong>menu > programming> Thonny pythonIDE</strong></p> <p>2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))</p> @@ -288,11 +289,11 @@ to leave the virtual environment simply type:</p> </section> </section> <section id="assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"> -<h2>Assembly of the measuring/current injection cards, and connection with the Raspberry Pi<a class="headerlink" href="#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi" title="Permalink to this heading">ïƒ</a></h2> +<h2>Assembly of the measuring/current injection cards, and connection with the Raspberry Pi<a class="headerlink" href="#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi" title="Link to this heading">ïƒ</a></h2> <section id="electrical-resistivity-measurements-board"> -<h3>Electrical resistivity measurements board<a class="headerlink" href="#electrical-resistivity-measurements-board" title="Permalink to this heading">ïƒ</a></h3> +<h3>Electrical resistivity measurements board<a class="headerlink" href="#electrical-resistivity-measurements-board" title="Link to this heading">ïƒ</a></h3> <section id="a-description"> -<h4>a) Description<a class="headerlink" href="#a-description" title="Permalink to this heading">ïƒ</a></h4> +<h4>a) Description<a class="headerlink" href="#a-description" title="Link to this heading">ïƒ</a></h4> <p>To measure electrical resistivity with Raspberry Pi, an ADS1115 was introduced, as proposed by Florsch [7]. The ADS1115 is a 16-bit ADC (Analog-to-Digital Converter), with an adaptable gain. Its value has been set at 2/3 in this study. The input signal value could lie between - to + 6.114 V. The ADS1115 is mounted on a board adapted from an in-house design. @@ -327,12 +328,12 @@ constitutes a potential hazard. We therefore recommend adding a 1.5-A fuse betwe <figure class="align-center" id="id1"> <a class="reference internal image-reference" href="../../_images/schema_measurement_board1.jpg"><img alt="alternate text" src="../../_images/schema_measurement_board1.jpg" style="width: 800px; height: 400px;" /></a> <figcaption> -<p><span class="caption-text">Measurement board</span><a class="headerlink" href="#id1" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Measurement board</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </section> <section id="b-implementation"> -<h4>b) Implementation<a class="headerlink" href="#b-implementation" title="Permalink to this heading">ïƒ</a></h4> +<h4>b) Implementation<a class="headerlink" href="#b-implementation" title="Link to this heading">ïƒ</a></h4> <p>The measurement board must be printed using the PCB file (Source file repository), with components soldered onto it by following the steps described below and illustrated in the following figure :</p> <ul> @@ -376,19 +377,19 @@ place a fuse holder with a 1.5-A fuse for safety purposes.</p> <figure class="align-center" id="id2"> <a class="reference internal image-reference" href="../../_images/measurement_board.jpg"><img alt="alternate text" src="../../_images/measurement_board.jpg" style="width: 800px; height: 500px;" /></a> <figcaption> -<p><span class="caption-text">Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers</span><a class="headerlink" href="#id2" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-center" id="id3"> <a class="reference internal image-reference" href="../../_images/measurement_board-2.jpg"><img alt="alternate text" src="../../_images/measurement_board-2.jpg" style="width: 800px; height: 700px;" /></a> <figcaption> -<p><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </section> </section> <section id="current-injection-board"> -<h3>Current injection board<a class="headerlink" href="#current-injection-board" title="Permalink to this heading">ïƒ</a></h3> +<h3>Current injection board<a class="headerlink" href="#current-injection-board" title="Link to this heading">ïƒ</a></h3> <p>To carry out the electrical resistivity measurement, the first step consists of injecting current into the ground. In our case, a simple 9-V lead-acid battery is used to create an electrical potential difference that results in current circulating into the ground. The current is injected through electrodes A and B (see Fig. 2). This @@ -403,7 +404,7 @@ they remain in the normally closed position. This set-up offers a simple and rob <figure class="align-center" id="id4"> <a class="reference internal image-reference" href="../../_images/current_board.jpg"><img alt="alternate text" src="../../_images/current_board.jpg" style="width: 800px; height: 400px;" /></a> <figcaption> -<p><span class="caption-text">Wiring of the 4-channel relay module board for current injection management</span><a class="headerlink" href="#id4" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Wiring of the 4-channel relay module board for current injection management</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>The next step consists of featuring the 4-channel relay module used for current injection and its assembly. The wiring @@ -416,20 +417,20 @@ to terminals B and A of the measurement board.</p> <figure class="align-center" id="id5"> <a class="reference internal image-reference" href="../../_images/installation_current_board.jpg"><img alt="alternate text" src="../../_images/installation_current_board.jpg" style="width: 800px; height: 700px;" /></a> <figcaption> -<p><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>Congratulations, you have build a 4 electrodes resistivity-meter.</p> </section> <section id="first-four-electrodes-resistivity-measurement"> -<h3>First four electrodes resistivity measurement<a class="headerlink" href="#first-four-electrodes-resistivity-measurement" title="Permalink to this heading">ïƒ</a></h3> +<h3>First four electrodes resistivity measurement<a class="headerlink" href="#first-four-electrodes-resistivity-measurement" title="Link to this heading">ïƒ</a></h3> <p>Under construction !</p> <p>Describe the way to validate the first part of the instruction. Electrical resistivity measurement on test circuit</p> </section> </section> <section id="multiplexer-implementation"> -<h2>Multiplexer implementation<a class="headerlink" href="#multiplexer-implementation" title="Permalink to this heading">ïƒ</a></h2> +<h2>Multiplexer implementation<a class="headerlink" href="#multiplexer-implementation" title="Link to this heading">ïƒ</a></h2> <p>The resistivity measurement is conducted on four terminals (A, B, M and N). The user could perform each measurement by manually plugging four electrodes into the four channel terminals. In practice, ERT requires several tens or thousands of measurements conducted on different electrode arrays. A multiplexer is therefore used to connect each channel to one of @@ -450,7 +451,7 @@ see Section 2.4). To execute this step, it will be necessary to follow the proto <div><figure class="align-center" id="id6"> <a class="reference internal image-reference" href="../../_images/connection.jpg"><img alt="alternate text" src="../../_images/connection.jpg" style="width: 800px; height: 400px;" /></a> <figcaption> -<p><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id6" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </div></blockquote> @@ -508,14 +509,14 @@ The next step consists of connecting the relay card inputs to the Raspberry Pi a </div></blockquote> </section> <section id="electrode-connection"> -<h2>Electrode connection<a class="headerlink" href="#electrode-connection" title="Permalink to this heading">ïƒ</a></h2> +<h2>Electrode connection<a class="headerlink" href="#electrode-connection" title="Link to this heading">ïƒ</a></h2> <p>At this point, all that remains is to connect the electrodes of each multiplexer to a terminal block (Fig. 13). In our set-up, screw terminals assembled on a din rail were used. According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure.</p> <figure class="align-center" id="id7"> <a class="reference internal image-reference" href="../../_images/cable.jpg"><img alt="alternate text" src="../../_images/cable.jpg" style="width: 800px; height: 300px;" /></a> <figcaption> -<p><span class="caption-text">Wire cabling for multiplexer and terminal screw connection</span><a class="headerlink" href="#id7" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Wire cabling for multiplexer and terminal screw connection</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>the next figure provides an example of multiplexer relay connections for electrode no. 1: this electrode of multiplexer MUX A must be connected to electrode no. 1 of MUX B. Moreover, electrode no. 1 of MUX B @@ -524,7 +525,7 @@ This operation must be repeated for all 32 electrodes.</p> <figure class="align-center" id="id8"> <a class="reference internal image-reference" href="../../_images/electrode_cable.jpg"><img alt="alternate text" src="../../_images/electrode_cable.jpg" style="width: 800px; height: 800px;" /></a> <figcaption> -<p><span class="caption-text">Example of a multiplexer connection to the screw terminal for electrode no. 1.</span><a class="headerlink" href="#id8" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example of a multiplexer connection to the screw terminal for electrode no. 1.</span><a class="headerlink" href="#id8" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <div class="admonition warning"> @@ -534,16 +535,16 @@ In case you bought 16 channel relay 5-V cards, you will need to add a DC/DC 12-V </div> </section> <section id="operating-instruction"> -<h2>Operating instruction<a class="headerlink" href="#operating-instruction" title="Permalink to this heading">ïƒ</a></h2> +<h2>Operating instruction<a class="headerlink" href="#operating-instruction" title="Link to this heading">ïƒ</a></h2> <section id="preliminary-procedure-only-for-the-initial-operation"> -<h3>Preliminary procedure (Only for the initial operation)<a class="headerlink" href="#preliminary-procedure-only-for-the-initial-operation" title="Permalink to this heading">ïƒ</a></h3> +<h3>Preliminary procedure (Only for the initial operation)<a class="headerlink" href="#preliminary-procedure-only-for-the-initial-operation" title="Link to this heading">ïƒ</a></h3> <p>The open source code must be downloaded at the Open Science Framework source file repository for this manuscript (<a class="reference external" href="https://osf.io/dzwb4/">https://osf.io/dzwb4/</a>) or at the following Gitlab repository address: <a class="reference external" href="https://gitlab.irstea.fr/reversaal/OhmPi">https://gitlab.irstea.fr/reversaal/OhmPi</a>. The code must be then unzipped into a selected folder (e.g. OhmPi-master). A “readme†file is proposed in the directory to assist with installation of the software and required python packages. It is strongly recommended to create a python virtual environment for installing the required packages and running the code.</p> </section> <section id="startup-procedure"> -<h3>Startup procedure<a class="headerlink" href="#startup-procedure" title="Permalink to this heading">ïƒ</a></h3> +<h3>Startup procedure<a class="headerlink" href="#startup-procedure" title="Link to this heading">ïƒ</a></h3> <p>As an initial operating instruction, all batteries must be disconnected before any hardware handling. Ensure that the battery is charged at full capacity. Plug all the electrodes (32 or fewer) into the screw terminals. The Raspberry Pi must be plugged into a computer screen, with a mouse and keyboard accessed remotely. The Raspberry Pi must then be plugged into the power supply (for laboratory measurements) or a power bank (5V - 2A for field measurements). At this point, you’ll need to access the Raspbian operating system. Inside the previously created folder “ohmPiâ€, @@ -554,7 +555,7 @@ hear the characteristic sound of a relay switching as a result of electrode perm are displayed on the screen. A measurement file is automatically created and named “measure.csvâ€; it will be placed in the same folder.</p> </section> <section id="electrical-resistivity-measurement-parameters-description"> -<h3>Electrical resistivity measurement parameters description<a class="headerlink" href="#electrical-resistivity-measurement-parameters-description" title="Permalink to this heading">ïƒ</a></h3> +<h3>Electrical resistivity measurement parameters description<a class="headerlink" href="#electrical-resistivity-measurement-parameters-description" title="Link to this heading">ïƒ</a></h3> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">27</span><span class="w"> </span><span class="sd">"""</span> <span class="linenos">28</span><span class="sd"> measurement parameters</span> <span class="linenos">29</span><span class="sd"> """</span> @@ -569,13 +570,13 @@ are displayed on the screen. A measurement file is automatically created and nam </section> </section> <section id="complete-list-of-components"> -<h2>Complete list of components<a class="headerlink" href="#complete-list-of-components" title="Permalink to this heading">ïƒ</a></h2> +<h2>Complete list of components<a class="headerlink" href="#complete-list-of-components" title="Link to this heading">ïƒ</a></h2> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date</p> </div> <table class="docutils align-default" id="id9"> -<caption><span class="caption-text">Table Title</span><a class="headerlink" href="#id9" title="Permalink to this table">ïƒ</a></caption> +<caption><span class="caption-text">Table Title</span><a class="headerlink" href="#id9" title="Link to this table">ïƒ</a></caption> <colgroup> <col style="width: 8%" /> <col style="width: 18%" /> diff --git a/doc/build/html/source_rst/v1.xx/V1_02.html b/doc/build/html/source_rst/v1.xx/V1_02.html index 9abfed13..6e7be104 100644 --- a/doc/build/html/source_rst/v1.xx/V1_02.html +++ b/doc/build/html/source_rst/v1.xx/V1_02.html @@ -11,11 +11,11 @@ <script src="../../_static/js/html5shiv.min.js"></script> <![endif]--> - <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> - <script src="../../_static/jquery.js"></script> - <script src="../../_static/underscore.js"></script> - <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> - <script src="../../_static/doctools.js"></script> + <script src="../../_static/jquery.js?v=5d32c60e"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> + <script src="../../_static/documentation_options.js?v=c6fcd74b"></script> + <script src="../../_static/doctools.js?v=888ff710"></script> + <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../genindex.html" /> @@ -79,6 +79,7 @@ <li class="toctree-l1"><a class="reference internal" href="../V2023.x.x/V2023.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../V2024.x.x/V2024.html">OhmPi V2023 (64 electrodes and 12V)</a></li> <li class="toctree-l1"><a class="reference internal" href="../api.html">API reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../developing_hardware_components.html">Software interface to new hardware components</a></li> </ul> </div> @@ -106,7 +107,7 @@ <div itemprop="articleBody"> <section id="ohmpi-v-1-02-limited-to-32-electrodes"> -<h1>OhmPi V 1.02 (limited to 32 electrodes)<a class="headerlink" href="#ohmpi-v-1-02-limited-to-32-electrodes" title="Permalink to this heading">ïƒ</a></h1> +<h1>OhmPi V 1.02 (limited to 32 electrodes)<a class="headerlink" href="#ohmpi-v-1-02-limited-to-32-electrodes" title="Link to this heading">ïƒ</a></h1> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p><strong>Ohmpi is a participative project open to all, it requires skills in electronics and to respect the safety rules. Ohmpi must be assembled in a professional context and by people competent in electronics. The Ohmpi team cannot be held responsible for any material or human damage which would be associated with the use or the assembly of OHMPI. The Ohmpi team cannot be held responsible if the equipment does not work after assembly.</strong></p> @@ -116,13 +117,13 @@ <p>In this version, we have improved the electronic measurement board. To upgrade from version 1.01 to 1.02, you just have to replace the measurement board by the new one proposed here.</p> </div> <section id="the-philosophy-of-ohmpi"> -<h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Permalink to this heading">ïƒ</a></h2> +<h2>The philosophy of Ohmpi<a class="headerlink" href="#the-philosophy-of-ohmpi" title="Link to this heading">ïƒ</a></h2> <p>The philosophy of Ohmpi V1.01 is to offer a multi electrode resistivity meter, from a set of commercially available electronic cards it is a resistivity meter limited to 32 electrodes only. It is limited to low-current injection, but suitable for small laboratory experiments and small field time monitoring</p> </section> <section id="technical-data"> -<h2>Technical data<a class="headerlink" href="#technical-data" title="Permalink to this heading">ïƒ</a></h2> +<h2>Technical data<a class="headerlink" href="#technical-data" title="Link to this heading">ïƒ</a></h2> <table class="docutils align-default"> <tbody> <tr class="row-odd"><td><p><strong>Parameter</strong></p></td> @@ -174,9 +175,9 @@ control system</p></td> </table> </section> <section id="raspberry-pi-configuration"> -<h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Permalink to this heading">ïƒ</a></h2> +<h2>Raspberry Pi configuration<a class="headerlink" href="#raspberry-pi-configuration" title="Link to this heading">ïƒ</a></h2> <section id="os-installation"> -<h3>OS installation<a class="headerlink" href="#os-installation" title="Permalink to this heading">ïƒ</a></h3> +<h3>OS installation<a class="headerlink" href="#os-installation" title="Link to this heading">ïƒ</a></h3> <p>The first step is to start up the Raspberry Pi board, including installation of an OS (operating system). For this step, the installation instructions are well described on the Raspberry website</p> <ol class="arabic simple"> @@ -226,7 +227,7 @@ To ensure that the GPIOs are in Low position, you will need to modify the /boot/ </ol> </section> <section id="virtual-environment-and-packages"> -<h3>Virtual Environment and packages<a class="headerlink" href="#virtual-environment-and-packages" title="Permalink to this heading">ïƒ</a></h3> +<h3>Virtual Environment and packages<a class="headerlink" href="#virtual-environment-and-packages" title="Link to this heading">ïƒ</a></h3> <p>All dependencies are specified in requirements.txt</p> <div class="admonition note"> <p class="admonition-title">Note</p> @@ -260,7 +261,7 @@ to leave the virtual environment simply type:</p> </div> </section> <section id="activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi"> -<h3>Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Permalink to this heading">ïƒ</a></h3> +<h3>Activate virtual environment on Thonny (Python IDE) (on Raspberry Pi)<a class="headerlink" href="#activate-virtual-environment-on-thonny-python-ide-on-raspberry-pi" title="Link to this heading">ïƒ</a></h3> <p>If you decided to use a virtual environment, it is necessary to setup Thonny Python IDE the first time you use it.</p> <p>1- Run the Thonny Python IDE software, Click on raspberry access <strong>menu > programming> Thonny pythonIDE</strong></p> <p>2- Thonny opens, Python runs on the root (Python 3.7.3 (/usr/bin/python3))</p> @@ -286,11 +287,11 @@ to leave the virtual environment simply type:</p> </section> </section> <section id="assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi"> -<h2>Assembly of the measuring/current injection cards, and connection with the Raspberry Pi<a class="headerlink" href="#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi" title="Permalink to this heading">ïƒ</a></h2> +<h2>Assembly of the measuring/current injection cards, and connection with the Raspberry Pi<a class="headerlink" href="#assembly-of-the-measuring-current-injection-cards-and-connection-with-the-raspberry-pi" title="Link to this heading">ïƒ</a></h2> <section id="electrical-resistivity-measurements-board"> -<h3>Electrical resistivity measurements board<a class="headerlink" href="#electrical-resistivity-measurements-board" title="Permalink to this heading">ïƒ</a></h3> +<h3>Electrical resistivity measurements board<a class="headerlink" href="#electrical-resistivity-measurements-board" title="Link to this heading">ïƒ</a></h3> <section id="a-description"> -<h4>a) Description<a class="headerlink" href="#a-description" title="Permalink to this heading">ïƒ</a></h4> +<h4>a) Description<a class="headerlink" href="#a-description" title="Link to this heading">ïƒ</a></h4> <p>To measure electrical resistivity with Raspberry Pi, an ADS1115 was introduced, as proposed by Florsch [7]. The ADS1115 is a 16-bit ADC (Analog-to-Digital Converter), with an adaptable gain. Its value has been set at 2/3 in this study. The input signal value could lie between - to + 6.114 V. The ADS1115 is mounted on a board adapted from an in-house design. @@ -330,7 +331,7 @@ the signal input on the operational amplifiers. This prevents the operational am <figure class="align-center" id="id1"> <a class="reference internal image-reference" href="../../_images/schema_measurement_board1_02.png"><img alt="alternate text" src="../../_images/schema_measurement_board1_02.png" style="width: 800px; height: 400px;" /></a> <figcaption> -<p><span class="caption-text">Measurement board (Ohmpi version 1.02)</span><a class="headerlink" href="#id1" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Measurement board (Ohmpi version 1.02)</span><a class="headerlink" href="#id1" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <div class="admonition note"> @@ -339,7 +340,7 @@ the signal input on the operational amplifiers. This prevents the operational am </div> </section> <section id="b-implementation"> -<h4>b) Implementation<a class="headerlink" href="#b-implementation" title="Permalink to this heading">ïƒ</a></h4> +<h4>b) Implementation<a class="headerlink" href="#b-implementation" title="Link to this heading">ïƒ</a></h4> <p>The measurement board must be printed using the PCB file (Source file repository), with components soldered onto it by following the steps described below and illustrated in the following figure :</p> <ul> @@ -385,19 +386,19 @@ place a fuse holder with a 1.5-A fuse for safety purposes.</p> <figure class="align-center" id="id2"> <a class="reference internal image-reference" href="../../_images/measurement_board1-02.jpg"><img alt="alternate text" src="../../_images/measurement_board1-02.jpg" style="width: 800px; height: 700px;" /></a> <figcaption> -<p><span class="caption-text">Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers</span><a class="headerlink" href="#id2" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Measurement circuit board assembly: a) printed circuit board, b) adding the 1-KOhm resistors ± 1%, c)adding the 1.5-KOhm resistors ± 1%, d) adding the black female 1 x 10 header and the 7-blue screw terminal block(2 pin, 3.5-mm pitch), e) adding the 50-ohm reference resistor ± 0.1%, and f) adding the ADS1115 and the LM358N low-power dual operational amplifiers</span><a class="headerlink" href="#id2" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <figure class="align-center" id="id3"> <a class="reference internal image-reference" href="../../_images/measurement_board-2-V1-02.jpg"><img alt="alternate text" src="../../_images/measurement_board-2-V1-02.jpg" style="width: 800px; height: 700px;" /></a> <figcaption> -<p><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Measurement board installation with Raspberry Pi</span><a class="headerlink" href="#id3" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </section> </section> <section id="current-injection-board"> -<h3>Current injection board<a class="headerlink" href="#current-injection-board" title="Permalink to this heading">ïƒ</a></h3> +<h3>Current injection board<a class="headerlink" href="#current-injection-board" title="Link to this heading">ïƒ</a></h3> <p>To carry out the electrical resistivity measurement, the first step consists of injecting current into the ground. In our case, a simple 9-V lead-acid battery is used to create an electrical potential difference that results in current circulating into the ground. The current is injected through electrodes A and B (see Fig. 2). This @@ -412,7 +413,7 @@ they remain in the normally closed position. This set-up offers a simple and rob <figure class="align-center" id="id4"> <a class="reference internal image-reference" href="../../_images/current_board.jpg"><img alt="alternate text" src="../../_images/current_board.jpg" style="width: 800px; height: 400px;" /></a> <figcaption> -<p><span class="caption-text">Wiring of the 4-channel relay module board for current injection management</span><a class="headerlink" href="#id4" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Wiring of the 4-channel relay module board for current injection management</span><a class="headerlink" href="#id4" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>The next step consists of featuring the 4-channel relay module used for current injection and its assembly. The wiring @@ -425,20 +426,20 @@ to terminals B and A of the measurement board.</p> <figure class="align-center" id="id5"> <a class="reference internal image-reference" href="../../_images/installation_current_board_1_02.jpg"><img alt="alternate text" src="../../_images/installation_current_board_1_02.jpg" style="width: 800px; height: 700px;" /></a> <figcaption> -<p><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Current injection board installation with Raspberry Pi</span><a class="headerlink" href="#id5" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>Congratulations, you have build a 4 electrodes resistivity-meter.</p> </section> <section id="first-four-electrodes-resistivity-measurement"> -<h3>First four electrodes resistivity measurement<a class="headerlink" href="#first-four-electrodes-resistivity-measurement" title="Permalink to this heading">ïƒ</a></h3> +<h3>First four electrodes resistivity measurement<a class="headerlink" href="#first-four-electrodes-resistivity-measurement" title="Link to this heading">ïƒ</a></h3> <p>Under construction !</p> <p>Describe the way to validate the first part of the instruction. Electrical resistivity measurement on test circuit</p> </section> </section> <section id="multiplexer-implementation"> -<h2>Multiplexer implementation<a class="headerlink" href="#multiplexer-implementation" title="Permalink to this heading">ïƒ</a></h2> +<h2>Multiplexer implementation<a class="headerlink" href="#multiplexer-implementation" title="Link to this heading">ïƒ</a></h2> <p>The resistivity measurement is conducted on four terminals (A, B, M and N). The user could perform each measurement by manually plugging four electrodes into the four channel terminals. In practice, ERT requires several tens or thousands of measurements conducted on different electrode arrays. A multiplexer is therefore used to connect each channel to one of @@ -451,7 +452,7 @@ To prepare the multiplexer, the channels of the two relay boards must be connect <figure class="align-center" id="id6"> <a class="reference internal image-reference" href="../../_images/multiplexer_implementation.jpg"><img alt="alternate text" src="../../_images/multiplexer_implementation.jpg" style="width: 800px; height: 500px;" /></a> <figcaption> -<p><span class="caption-text">Schematic diagram of the wiring of two 16-channel relay shields</span><a class="headerlink" href="#id6" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Schematic diagram of the wiring of two 16-channel relay shields</span><a class="headerlink" href="#id6" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>For this purpose, 0.5-mm² cables with end caps are used and their length adjusted for each connection in order to produce a clean assembly. @@ -465,7 +466,7 @@ see Section 2.4). To execute this step, it will be necessary to follow the proto <div><figure class="align-center" id="id7"> <a class="reference internal image-reference" href="../../_images/connection.jpg"><img alt="alternate text" src="../../_images/connection.jpg" style="width: 800px; height: 400px;" /></a> <figcaption> -<p><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id7" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Connection to the 16-channel relay shield</span><a class="headerlink" href="#id7" title="Link to this image">ïƒ</a></p> </figcaption> </figure> </div></blockquote> @@ -523,14 +524,14 @@ The next step consists of connecting the relay card inputs to the Raspberry Pi a </div></blockquote> </section> <section id="electrode-connection"> -<h2>Electrode connection<a class="headerlink" href="#electrode-connection" title="Permalink to this heading">ïƒ</a></h2> +<h2>Electrode connection<a class="headerlink" href="#electrode-connection" title="Link to this heading">ïƒ</a></h2> <p>At this point, all that remains is to connect the electrodes of each multiplexer to a terminal block (Fig. 13). In our set-up, screw terminals assembled on a din rail were used. According to the chosen multiplexer configuration, all the relays of each multiplexer will be connected to an electrode and, consequently, each electrode will have four incoming connections. Instead of having four cables connecting an electrode terminal to each multiplexer, we recommend using the cable assembly shown in the following Figure.</p> <figure class="align-center" id="id8"> <a class="reference internal image-reference" href="../../_images/cable.jpg"><img alt="alternate text" src="../../_images/cable.jpg" style="width: 800px; height: 300px;" /></a> <figcaption> -<p><span class="caption-text">Wire cabling for multiplexer and terminal screw connection</span><a class="headerlink" href="#id8" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Wire cabling for multiplexer and terminal screw connection</span><a class="headerlink" href="#id8" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <p>the next figure provides an example of multiplexer relay connections for electrode no. 1: this electrode of multiplexer MUX A must be connected to electrode no. 1 of MUX B. Moreover, electrode no. 1 of MUX B @@ -539,7 +540,7 @@ This operation must be repeated for all 32 electrodes.</p> <figure class="align-center" id="id9"> <a class="reference internal image-reference" href="../../_images/electrode_cable.jpg"><img alt="alternate text" src="../../_images/electrode_cable.jpg" style="width: 800px; height: 800px;" /></a> <figcaption> -<p><span class="caption-text">Example of a multiplexer connection to the screw terminal for electrode no. 1.</span><a class="headerlink" href="#id9" title="Permalink to this image">ïƒ</a></p> +<p><span class="caption-text">Example of a multiplexer connection to the screw terminal for electrode no. 1.</span><a class="headerlink" href="#id9" title="Link to this image">ïƒ</a></p> </figcaption> </figure> <div class="admonition warning"> @@ -549,16 +550,16 @@ In case you bought 16 channel relay 5-V cards, you will need to add a DC/DC 12-V </div> </section> <section id="operating-instruction"> -<h2>Operating instruction<a class="headerlink" href="#operating-instruction" title="Permalink to this heading">ïƒ</a></h2> +<h2>Operating instruction<a class="headerlink" href="#operating-instruction" title="Link to this heading">ïƒ</a></h2> <section id="preliminary-procedure-only-for-the-initial-operation"> -<h3>Preliminary procedure (Only for the initial operation)<a class="headerlink" href="#preliminary-procedure-only-for-the-initial-operation" title="Permalink to this heading">ïƒ</a></h3> +<h3>Preliminary procedure (Only for the initial operation)<a class="headerlink" href="#preliminary-procedure-only-for-the-initial-operation" title="Link to this heading">ïƒ</a></h3> <p>The open source code must be downloaded at the Open Science Framework source file repository for this manuscript (<a class="reference external" href="https://osf.io/dzwb4/">https://osf.io/dzwb4/</a>) or at the following Gitlab repository address: <a class="reference external" href="https://gitlab.irstea.fr/reversaal/OhmPi">https://gitlab.irstea.fr/reversaal/OhmPi</a>. The code must be then unzipped into a selected folder (e.g. OhmPi-master). A “readme†file is proposed in the directory to assist with installation of the software and required python packages. It is strongly recommended to create a python virtual environment for installing the required packages and running the code.</p> </section> <section id="startup-procedure"> -<h3>Startup procedure<a class="headerlink" href="#startup-procedure" title="Permalink to this heading">ïƒ</a></h3> +<h3>Startup procedure<a class="headerlink" href="#startup-procedure" title="Link to this heading">ïƒ</a></h3> <p>As an initial operating instruction, all batteries must be disconnected before any hardware handling. Ensure that the battery is charged at full capacity. Plug all the electrodes (32 or fewer) into the screw terminals. The Raspberry Pi must be plugged into a computer screen, with a mouse and keyboard accessed remotely. The Raspberry Pi must then be plugged into the power supply (for laboratory measurements) or a power bank (5V - 2A for field measurements). At this point, you’ll need to access the Raspbian operating system. Inside the previously created folder “ohmPiâ€, @@ -569,7 +570,7 @@ hear the characteristic sound of a relay switching as a result of electrode perm are displayed on the screen. A measurement file is automatically created and named “measure.csvâ€; it will be placed in the same folder.</p> </section> <section id="electrical-resistivity-measurement-parameters-description"> -<h3>Electrical resistivity measurement parameters description<a class="headerlink" href="#electrical-resistivity-measurement-parameters-description" title="Permalink to this heading">ïƒ</a></h3> +<h3>Electrical resistivity measurement parameters description<a class="headerlink" href="#electrical-resistivity-measurement-parameters-description" title="Link to this heading">ïƒ</a></h3> <p>In the version 1.02, the measurement parameters are in the Jason file (ohmpi_param.json).</p> <div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span> <span class="n">nb_electrodes</span> <span class="o">=</span> <span class="mi">32</span> <span class="c1"># maximum number of electrodes on the resistivity meter</span> <span class="linenos">2</span> <span class="n">injection_duration</span> <span class="o">=</span> <span class="mf">0.5</span> <span class="c1"># Current injection duration in second</span> @@ -582,13 +583,13 @@ are displayed on the screen. A measurement file is automatically created and nam </section> </section> <section id="complete-list-of-components"> -<h2>Complete list of components<a class="headerlink" href="#complete-list-of-components" title="Permalink to this heading">ïƒ</a></h2> +<h2>Complete list of components<a class="headerlink" href="#complete-list-of-components" title="Link to this heading">ïƒ</a></h2> <div class="admonition warning"> <p class="admonition-title">Warning</p> <p>The list evolve a little bit after the publication of the article, it is necessary to refer to this list, the article is out of date</p> </div> <table class="docutils align-default" id="id10"> -<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id10" title="Permalink to this table">ïƒ</a></caption> +<caption><span class="caption-text">List of components</span><a class="headerlink" href="#id10" title="Link to this table">ïƒ</a></caption> <colgroup> <col style="width: 8%" /> <col style="width: 18%" /> diff --git a/index.html b/index.html index 99805072..cc08146b 100755 --- a/index.html +++ b/index.html @@ -93,7 +93,7 @@ mosquitto_sub -h raspberrypi.local -t ohmpi_0001/ctrl <div class="modal-body"> <form> <div class="form-group row"> - <label for="nb_electrodes" class="col-sm-2 col-form-label">Nb electrodes</label> + <!-- <label for="nb_electrodes" class="col-sm-2 col-form-label">Nb electrodes</label> --> <div class="col-sm-10"> <input type="number" class="form-control-number" id="nb_electrodes" value="64"> </div> @@ -337,7 +337,7 @@ mosquitto_sub -h raspberrypi.local -t ohmpi_0001/ctrl function saveConfigBtnFunc() { // collect values from modal let formVals = { - 'nb_electrodes': parseInt(document.getElementById('nb_electrodes').value), + //'nb_electrodes': parseInt(document.getElementById('nb_electrodes').value), 'injection_duration': parseFloat(document.getElementById('injection_duration').value), 'nb_meas': parseInt(document.getElementById('nb_meas').value), 'sequence_delay': parseFloat(document.getElementById('sequence_delay').value), diff --git a/ohmpi/ohmpi.py b/ohmpi/ohmpi.py index 5d6eb1d8..e5edf9d0 100644 --- a/ohmpi/ohmpi.py +++ b/ohmpi/ohmpi.py @@ -42,31 +42,25 @@ VERSION = '3.0.0-beta' class OhmPi(object): - """ OhmPi class. + """OhmPi class. + Construct the ohmpi object. + + Parameters + ---------- + settings : dict, optional + Dictionnary of parameters. Possible parameters with their default values: + `{'injection_duration': 0.2, 'nb_meas': 1, 'sequence_delay': 1, + 'nb_stack': 1, 'sampling_interval': 2, 'tx_volt': 5, 'duty_cycle': 0.5, + 'strategy': 'constant', 'export_path': None, 'export_dir': 'data', + 'export_name': 'measurement.csv'`. + sequence : str, optional + Path of the .csv or .txt file with A, B, M and N electrodes. + Electrode index starts at 1. See `OhmPi.load_sequence()` for full docstring. + mqtt : bool, optional + If True (default), publish on mqtt topics while logging, + otherwise use other loggers only (print). """ - - def __init__(self, settings=None, sequence=None, mqtt=True, onpi=None): - """Constructs the ohmpi object - - Parameters - ---------- - settings: - - sequence: - - mqtt: bool, defaut: True - if True publish on mqtt topics while logging, otherwise use other loggers only - onpi: bool,None default: None - if None, the platform on which the class is instantiated is determined to set on_pi to either True or False. - if False the behaviour of an ohmpi will be partially emulated and return random data. - """ - - if onpi is None: - _, onpi = get_platform() - elif onpi: - assert get_platform()[1] # Checks that the system actually runs on a pi if onpi is True - self.on_pi = onpi # True if runs from the RaspberryPi with the hardware, otherwise False for random data # TODO : replace with dummy hardware? - + def __init__(self, settings=None, sequence=None, mqtt=True): self._sequence = sequence self.nb_samples = 0 self.status = 'idle' # either running or idle @@ -80,24 +74,12 @@ class OhmPi(object): self._hw = OhmPiHardware(**{'exec_logger': self.exec_logger, 'data_logger': self.data_logger, 'soh_logger': self.soh_logger}) self.exec_logger.info('Hardware configured...') + # default acquisition settings - self.settings = { - 'injection_duration': 0.2, - 'nb_meas': 1, - 'sequence_delay': 1, - 'nb_stack': 1, - 'sampling_interval': 2, - 'tx_volt': 5, - 'duty_cycle': 0.5, - 'strategy': 'constant', - 'export_path': None, - 'export_dir': 'data', - 'export_name': 'measurement.csv' - } + self.update_settings('settings/default.json') + # read in acquisition settings - # if settings is not None: self.update_settings(settings) - self.exec_logger.debug('Initialized with settings:' + str(self.settings)) # read quadrupole sequence @@ -167,18 +149,24 @@ class OhmPi(object): setattr(cls, i[0], i[1]) @staticmethod - def append_and_save(filename: str, last_measurement: dict, cmd_id=None): - # TODO: find alternative approach to save full data (zip, hdf5 or mseed?) + def append_and_save(filename: str, last_measurement: dict, fw_in_csv=None, fw_in_zip=None, cmd_id=None): """Appends and saves the last measurement dict. Parameters ---------- filename : str - filename to save the last measurement dataframe + Filename of the .csv. last_measurement : dict - Last measurement taken in the form of a python dictionary + Last measurement taken in the form of a python dictionary. + fw_in_csv : bool, optional + Wether to save the full-waveform data in the .csv (one line per quadrupole). + As these readings have different lengths for different quadrupole, the data are padded with NaN. + If None, default is read from default.json. + fw_in_zip : bool, optional + Wether to save the full-waveform data in a separate .csv in long format to be zipped to + spare space. If None, default is read from default.json. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ # check if directory 'data' exists ddir = os.path.join(os.path.dirname(__file__), '../data/') @@ -189,7 +177,23 @@ class OhmPi(object): # TODO need to make all the full data of the same size (pre-populate # readings with NaN in hardware_system.OhmPiHardware.read_values()) - if 'fulldata' in last_measurement: + if fw_in_zip: + fw_filename = filename.replace('.csv', '_fw.csv') + if not os.path.exists(fw_filename): # new file, write headers first + with open(fw_filane, 'w') as f: + f.write('A,B,M,N,t,pulse,polarity,current,voltage\n') + # write full data + with open(fw_filename, 'a') as f: + df = pd.DataFrame(last_measurement['fulldata'], + columns=['t','pulse','polarity','current','voltage']) + df['A'] = last_measurement['A'] + df['B'] = last_measurement['B'] + df['M'] = last_measurement['M'] + df['N'] = last_measurement['N'] + df.to_csv(f, index=False, header=False) + print('--------', fw_filename) + + if fw_in_csv: d = last_measurement['fulldata'] n = d.shape[0] if n > 1: @@ -229,7 +233,6 @@ class OhmPi(object): output : numpy.ndarray 1D array of int List of index of rows where A and B are identical. """ - # if we have a 1D array (so only 1 quadrupole), make it a 2D array if len(quads.shape) == 1: quads = quads[None, :] @@ -248,7 +251,7 @@ class OhmPi(object): their content won't be returned again. Only files not in the list will be read. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ # get all .csv file in data folder if survey_names is None: @@ -289,12 +292,12 @@ class OhmPi(object): return ddic def interrupt(self, cmd_id=None): - """Interrupts the acquisition + """Interrupts the acquisition. Parameters ---------- cmd_id : str, optional - Unique command identifier + Unique command identifier. """ self.status = 'stopping' if self.thread is not None: @@ -314,7 +317,7 @@ class OhmPi(object): Path of the .csv or .txt file with A, B, M and N electrodes. Electrode index start at 1. cmd_id : str, optional - Unique command identifier + Unique command identifier. Returns ------- @@ -342,12 +345,12 @@ class OhmPi(object): self.sequence = sequence def _process_commands(self, message: str): - """Processes commands received from the controller(s) + """Processes commands received from the controller(s). Parameters ---------- message : str - message containing a command and arguments or keywords and arguments + Message containing a command and arguments or keywords and arguments. """ self.status = 'idle' cmd_id = '?' @@ -378,19 +381,19 @@ class OhmPi(object): self.exec_logger.debug(f'Execution report: {reply}') def quit(self, cmd_id=None): - """Quits OhmPi + """Quits OhmPi. Parameters ---------- cmd_id : str, optional - Unique command identifier + Unique command identifier. """ self.exec_logger.debug(f'Quitting ohmpi.py following command {cmd_id}') exit() def _read_hardware_config(self): - """Reads hardware configuration from config.py + """Reads hardware configuration from config.py. """ self.exec_logger.debug('Getting hardware config') self.id = OHMPI_CONFIG['id'] # ID of the OhmPi @@ -407,12 +410,12 @@ class OhmPi(object): self.exec_logger.debug(f'OHMPI_CONFIG = {str(OHMPI_CONFIG)}') def remove_data(self, cmd_id=None): - """Remove all data in the data folder + """Remove all data in the ´data/´ folder on the raspberrypi. Parameters ---------- cmd_id : str, optional - Unique command identifier + Unique command identifier. """ self.exec_logger.debug(f'Removing all data following command {cmd_id}') datadir = os.path.join(os.path.dirname(__file__), '../data') @@ -420,48 +423,40 @@ class OhmPi(object): os.mkdir(datadir) def restart(self, cmd_id=None): - """Restarts the Raspberry Pi + """Restarts the Raspberry Pi. Parameters ---------- cmd_id : str, optional - Unique command identifier + Unique command identifier. """ - - if self.on_pi: - self.exec_logger.info(f'Restarting pi following command {cmd_id}...') - os.system('reboot') - else: - self.exec_logger.warning('Not on Raspberry Pi, skipping reboot...') + self.exec_logger.info(f'Restarting pi following command {cmd_id}...') + os.system('reboot') # this may need admin rights def download_data(self, cmd_id=None): - """Create a zip of the data folder. + """Create a zip of the data folder to then download it easily. """ datadir = os.path.join(os.path.dirname(__file__), '../data/') make_archive(datadir, 'zip', 'data') self.data_logger.info(json.dumps({'download': 'ready'})) def shutdown(self, cmd_id=None): - """Shutdown the Raspberry Pi + """Shutdown the Raspberry Pi. Parameters ---------- cmd_id : str, optional Unique command identifier """ - - if self.on_pi: - self.exec_logger.info(f'Restarting pi following command {cmd_id}...') - os.system('poweroff') - else: - self.exec_logger.warning('Not on Raspberry Pi, skipping shutdown...') - + self.exec_logger.info(f'Restarting pi following command {cmd_id}...') + os.system('poweroff') # this may require admin rights + def run_measurement(self, quad=None, nb_stack=None, injection_duration=None, duty_cycle=None, autogain=True, strategy='constant', tx_volt=5., best_tx_injtime=0.1, cmd_id=None, vab_max=None, iab_max=None, vmn_max=None, vmn_min=None, **kwargs): # TODO: add sampling_interval -> impact on _hw.rx.sampling_rate (store the current value, change the _hw.rx.sampling_rate, do the measurement, reset the sampling_rate to the previous value) # TODO: default value of tx_volt and other parameters set to None should be given in config.py and used in function definition - """Measures on a quadrupole and returns transfer resistance. + """Measures on a quadrupole and returns a dictionnary with the transfer resistance. Parameters ---------- @@ -470,36 +465,36 @@ class OhmPi(object): really create the route to the electrodes. nb_stack : int, optional Number of stacks. A stack is considered two pulses (one - positive, one negative). If 0, we will look for the best voltage. + positive, one negative). If 0, we will look for the best voltage. injection_duration : int, optional Injection time in seconds. - duty_cycle : float, optional, Default: 0.5 - Duty cycle of injection square wave + duty_cycle : float, optional + Duty cycle (default=0.5) of injection square wave. strategy : str, optional, default: constant - Define injection strategy (if power is adjustable, otherwise constant tx_volt) + Define injection strategy (if power is adjustable, otherwise constant tx_volt, generally 12V battery is used). Either: - vmax : compute Vab to reach a maximum Vmn_max and Iab without exceeding vab_max - vmin : compute Vab to reach at least Vmn_min - constant : apply given Vab (tx_volt) - - Safety check (i.e. short voltage pulses) performed prior to injection to ensure - injection within bounds defined in vab_max, iab_max, vmn_max or vmn_min. This can adapt Vab. - To bypass safety check before injection, tx_volt should be set equal to vab_max (not recpommanded) + Safety check (i.e. short voltage pulses) performed prior to injection to ensure + injection within bounds defined in vab_max, iab_max, vmn_max or vmn_min. This can adapt Vab. + To bypass safety check before injection, tx_volt should be set equal to vab_max (not recpommanded) vab_max : str, optional - Maximum injection voltage + Maximum injection voltage. Default value set by config or boards specs iab_max : str, optional - Maximum current applied + Maximum current applied. Default value set by config or boards specs vmn_max : str, optional - Maximum Vmn allowed + Maximum Vmn allowed. Default value set by config or boards specs vmn_min : - Minimum Vmn desired (used in strategy vmin) + Minimum Vmn desired (used in strategy vmin). Default value set by config or boards specs tx_volt : float, optional # TODO: change tx_volt to Vab For power adjustable only. If specified, voltage will be imposed. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ # check pwr is on, if not, let's turn it on switch_power_off = False @@ -519,11 +514,6 @@ class OhmPi(object): injection_duration = self.settings['injection_duration'] if duty_cycle is None: duty_cycle = self.settings['duty_cycle'] - # quad = kwargs.pop('quad', [0,0,0,0]) - # nb_stack = kwargs.pop('nb_stack', self.settings['nb_stack']) - # injection_duration = kwargs.pop('injection_duration', self.settings['injection_duration']) - # duty_cycle = kwargs.pop('duty_cycle', self.settings['duty_cycle']) - # tx_volt = float(kwargs.pop('tx_volt', self.settings['tx_volt'])) bypass_check = kwargs['bypass_check'] if 'bypass_check' in kwargs.keys() else False d = {} if self.switch_mux_on(quad, bypass_check=bypass_check, cmd_id=cmd_id): @@ -575,7 +565,6 @@ class OhmPi(object): for key in dd.keys(): # Check why this is applied on keys and not values... if isinstance(dd[key], float): dd[key] = np.round(dd[key], 3) - dd['cmd_id'] = str(cmd_id) self.data_logger.info(dd) self._hw.switch_mux(electrodes=quad[0:2], roles=['A', 'B'], state='on') @@ -591,23 +580,35 @@ class OhmPi(object): return d - def run_multiple_sequences(self, cmd_id=None, sequence_delay=None, nb_meas=None, **kwargs): # NOTE : could be renamed repeat_sequence + def repeat_sequence(self, **kwargs): + """Identical to run_multiple_sequences(). + """ + self.run_multiple_sequences(**kwargs) + + def run_multiple_sequences(self, sequence_delay=None, nb_meas=None, fw_in_csv=None, + fw_in_zip=None, cmd_id=None, **kwargs): """Runs multiple sequences in a separate thread for monitoring mode. Can be stopped by 'OhmPi.interrupt()'. Additional arguments are passed to run_measurement(). Parameters ---------- - cmd_id : str, optional - Unique command identifier sequence_delay : int, optional Number of seconds at which the sequence must be started from each others. nb_meas : int, optional Number of time the sequence must be repeated. + fw_in_csv : bool, optional + Wether to save the full-waveform data in the .csv (one line per quadrupole). + As these readings have different lengths for different quadrupole, the data are padded with NaN. + If None, default is read from default.json. + fw_in_zip : bool, optional + Wether to save the full-waveform data in a separate .csv in long format to be zipped to + spare space. If None, default is read from default.json. + cmd_id : str, optional + Unique command identifier. kwargs : dict, optional - See help(k.run_measurement) for more info. + See help(OhmPi.run_measurement) for more info. """ - # self.run = True if sequence_delay is None: sequence_delay = self.settings['sequence_delay'] sequence_delay = int(sequence_delay) @@ -629,9 +630,8 @@ class OhmPi(object): self.exec_logger.warning('Data acquisition interrupted') break t0 = time.time() - self.run_sequence(**kwargs) - # sleeping time between sequence - dt = sequence_delay - (time.time() - t0) + self.run_sequence(fw_in_csv=fw_in_csv, fw_in_zip=fw_in_zip, **kwargs) + dt = sequence_delay - (time.time() - t0) # sleeping time between sequence if dt < 0: dt = 0 if nb_meas > 1: @@ -643,14 +643,21 @@ class OhmPi(object): self.thread = Thread(target=func) self.thread.start() - def run_sequence(self, cmd_id=None, **kwargs): + def run_sequence(self, fw_in_csv=None, fw_in_zip=None, cmd_id=None, **kwargs): """Runs sequence synchronously (=blocking on main thread). Additional arguments are passed to run_measurement(). Parameters ---------- + fw_in_csv : bool, optional + Wether to save the full-waveform data in the .csv (one line per quadrupole). + As these readings have different lengths for different quadrupole, the data are padded with NaN. + If None, default is read from default.json. + fw_in_zip : bool, optional + Wether to save the full-waveform data in a separate .csv in long format to be zipped to + spare space. If None, default is read from default.json. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ # switch power on self._hw.pwr_state = 'on' @@ -669,9 +676,6 @@ class OhmPi(object): f'_{datetime.now().strftime("%Y%m%dT%H%M%S")}.csv') self.exec_logger.debug(f'Saving to {filename}') - # make sure all multiplexer are off - - # measure all quadrupole of the sequence if self.sequence is None: n = 1 @@ -685,11 +689,8 @@ class OhmPi(object): if self.status == 'stopping': break # run a measurement - if self.on_pi: - acquired_data = self.run_measurement(quad=quad, **kwargs) - else: # for testing, generate random data - pass - + acquired_data = self.run_measurement(quad=quad, **kwargs) + # log data to the data logger self.data_logger.info(acquired_data) @@ -698,7 +699,7 @@ class OhmPi(object): # log data to the data logger # self.data_logger.info(f'{acquired_data}') # NOTE: It could be useful to keep the cmd_id in the # save data and print in a text file - self.append_and_save(filename, acquired_data) + self.append_and_save(filename, acquired_data, fw_in_csv=fw_in_csv, fw_in_zip=fw_in_zip) self.exec_logger.debug(f'quadrupole {i + 1:d}/{n:d}') self._hw.pwr_state = 'off' @@ -713,7 +714,7 @@ class OhmPi(object): Parameters ---------- cmd_id : str, optional - Unique command identifier + Unique command identifier. """ def func(): @@ -726,7 +727,7 @@ class OhmPi(object): # TODO: we could build a smarter RS-Check by selecting adjacent electrodes based on their locations and try to # isolate electrodes that are responsible for high resistances (ex: AB high, AC low, BC high # -> might be a problem at B (cf what we did with WofE) - def rs_check(self, tx_volt=5., cmd_id=None): + def rs_check(self, tx_volt=5.0, cmd_id=None): # TODO: add a default value for rs-check in config.py import it in ohmpi.py and add it in rs_check definition """Checks contact resistances. Strategy: we just open A and B, measure the current and using vAB set or @@ -735,9 +736,9 @@ class OhmPi(object): Parameters ---------- tx_volt : float - Voltage of the injection + Voltage of the injection. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ # check pwr is on, if not, let's turn it on switch_tx_pwr_off = False @@ -745,8 +746,6 @@ class OhmPi(object): self._hw.pwr_state = 'on' switch_tx_pwr_off = True - # self._hw.tx.pwr.voltage = float(tx_volt) - # create custom sequence where MN == AB # we only check the electrodes which are in the sequence (not all might be connected) if self.sequence is None: @@ -759,17 +758,13 @@ class OhmPi(object): elec[:-1], elec[1:], ]).T - # if self.idps: - # quads[:, 2:] = 0 # we don't open Vmn to prevent burning the MN part - # # as it has a smaller range of accepted voltage - + # create filename to store RS export_path_rs = self.settings['export_path'].replace('.csv', '') \ + '_' + datetime.now().strftime('%Y%m%dT%H%M%S') + '_rs.csv' # perform RS check self.status = 'running' - self.reset_mux() # turn dps_pwr_on if needed @@ -788,25 +783,9 @@ class OhmPi(object): print(vab, current) time.sleep(0.2) - # self.switch_mux_on(quad, bypass_check=True) # put before raising the pins (otherwise conflict i2c) - # d = self.run_measurement(quad=quad, nb_stack=1, injection_duration=0.2, tx_volt=tx_volt, autogain=False, - # bypass_check=True) - - # if self._hw.tx.voltage_adjustable: - # voltage = self._hw.tx.voltage # imposed voltage on dps - # else: - # voltage = self._hw.rx.voltage - - # voltage = self._hw.rx.voltage - # current = self._hw.tx.current - # compute resistance measured (= contact resistance) rab = abs(vab*1000 / current) / 1000 # kOhm - # print(str(quad) + '> I: {:>10.3f} mA, V: {:>10.3f} mV, R: {:>10.3f} kOhm'.format( - # current, voltage, resist)) - # msg = f'Contact resistance {str(quad):s}: I: {current :>10.3f} mA, ' \ - # f'V: {voltage :>10.3f} mV, ' \ - # f'R: {resist :>10.3f} kOhm' + # create a message as dictionnary to be used by the html interface msg = { 'rsdata': { @@ -835,26 +814,26 @@ class OhmPi(object): self.status = 'idle' if switch_pwr_off: self._hw.pwr.pwr_state = 'off' + # if power was off before measurement, let's turn if off if switch_tx_pwr_off: self._hw.pwr_state = 'off' - # - # # TODO if interrupted, we would need to restore the values - # # TODO or we offer the possibility in 'run_measurement' to have rs_check each time? + + # TODO if interrupted, we would need to restore the values + # TODO or we offer the possibility in 'run_measurement' to have rs_check each time? def set_sequence(self, sequence=None, cmd_id=None): - """Sets the sequence to acquire + """Sets the sequence to acquire. Parameters ---------- - sequence : list, str - sequence of quadrupoles + sequence : list of list or array_like + Sequence of quadrupoles (list of list or array_like). cmd_id: str, optional - Unique command identifier + Unique command identifier. """ try: self.sequence = np.array(sequence).astype(int) - # self.sequence = np.loadtxt(StringIO(sequence)).astype('uint32') except Exception as e: self.exec_logger.warning(f'Unable to set sequence: {e}') @@ -863,12 +842,12 @@ class OhmPi(object): Parameters ---------- - cmd_id : str, optional - Unique command identifier quadrupole : list of 4 int List of 4 integers representing the electrode numbers. bypass_check: bool, optional - Bypasses checks for A==M or A==N or B==M or B==N (i.e. used for rs-check) + Bypasses checks for A==M or A==N or B==M or B==N (i.e. used for rs-check). + cmd_id : str, optional + Unique command identifier. """ assert len(quadrupole) == 4 if (self._hw.tx.pwr.voltage > self._hw.rx._voltage_max) and bypass_check: @@ -886,15 +865,15 @@ class OhmPi(object): Parameters ---------- - cmd_id : str, optional - Unique command identifier quadrupole : list of 4 int List of 4 integers representing the electrode numbers. + cmd_id : str, optional + Unique command identifier. """ assert len(quadrupole) == 4 return self._hw.switch_mux(electrodes=quadrupole, state='off') - def test_mux(self, activation_time=1.0, mux_id=None, cmd_id=None): # TODO: add this in the MUX code + def test_mux(self, activation_time=0.2, mux_id=None, cmd_id=None): """Interactive method to test the multiplexer boards. Parameters @@ -902,11 +881,11 @@ class OhmPi(object): activation_time : float, optional Time in seconds during which the relays are activated. mux_id : str, optional - id of the mux_board to test + ID of the mux_board to test. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ - self.reset_mux() # All mux boards should be reset even if we only want to test one otherwise we might create a shortcut + self.reset_mux() # all mux boards should be reset even if we only want to test one otherwise we might create a shortcut if mux_id is None: self._hw.test_mux(activation_time=activation_time) else: @@ -918,7 +897,7 @@ class OhmPi(object): Parameters ---------- cmd_id : str, optional - Unique command identifier + Unique command identifier. """ self._hw.reset_mux() @@ -937,13 +916,12 @@ class OhmPi(object): - export_path (path where to export the data, timestamp will be added to filename ; if export_path is given, it goes over export_dir and export_name) - Parameters ---------- settings : str, dict Path to the .json settings file or dictionary of settings. cmd_id : str, optional - Unique command identifier + Unique command identifier. """ if settings is not None: try: @@ -970,14 +948,14 @@ class OhmPi(object): self.settings['export_name'] = os.path.split(self.settings['export_path'])[1] def run_inversion(self, survey_names=None, elec_spacing=1, **kwargs): - """Run a simple 2D inversion using ResIPy. + """Run a simple 2D inversion using ResIPy (https://gitlab.com/hkex/resipy). Parameters ---------- survey_names : list of string, optional Filenames of the survey to be inverted (including extension). elec_spacing : float (optional) - Electrode spacing in meters. We assume same electrode spacing everywhere. + Electrode spacing in meters. We assume same electrode spacing everywhere. Default is 1 m. kwargs : optional Additional keyword arguments passed to `resipy.Project.invert()`. For instance `reg_mode` == 0 for batch inversion, `reg_mode == 2` for time-lapse inversion. @@ -1006,8 +984,8 @@ class OhmPi(object): reg_mode = 0 kwargs['reg_mode'] = 0 - pdir = os.path.dirname(__file__) # import resipy if available + pdir = os.path.dirname(__file__) try: from scipy.interpolate import griddata # noqa import pandas as pd #noqa @@ -1066,7 +1044,7 @@ class OhmPi(object): grid_v = griddata(df[['X', 'Z']].values, df['Resistivity(ohm.m)'].values, (grid_x, grid_z), method='nearest') - # set nan to -1 + # set nan to -1 (hard to parse NaN in JSON) inan = np.isnan(grid_v) grid_v[inan] = -1 diff --git a/ohmpi_settings.json b/ohmpi_settings.json deleted file mode 100644 index 2964e24b..00000000 --- a/ohmpi_settings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "nb_electrodes": 16, - "injection_duration": 0.2, - "nb_stack": 1, - "nb_meas": 1, - "sequence_delay": 120, - "export_path": "data/measurement.csv" -} -- GitLab