From 1b36640c4fa71ebc4dda03d04171c63c809f2375 Mon Sep 17 00:00:00 2001 From: Tristan Krause Date: Wed, 3 Apr 2019 15:20:49 +0200 Subject: [PATCH] mcu debug stuff entfernt --- driver/Makefile | 28 ++++++++----- driver/cli | Bin 0 -> 57600 bytes driver/cli.cpp | 91 ++++++++++++++++++++++++++++++++++++++++ driver/gnuplotscript.gp | 6 +-- driver/main.cpp | 1 - driver/test_plot | Bin 37120 -> 37120 bytes firmware/B15F.elf | Bin 16716 -> 16624 bytes firmware/requests.cpp | 1 - firmware/usart.cpp | 1 - 9 files changed, 112 insertions(+), 16 deletions(-) create mode 100755 driver/cli create mode 100644 driver/cli.cpp diff --git a/driver/Makefile b/driver/Makefile index 6353eb8..c3b752a 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -3,25 +3,33 @@ # Author: Tristan Krause # Creation Date: 2019-03-22 -# Umgebungseinstellungen +# Environment COMPILER_PATH = g++ - -OUTPUT = main -CFLAGS = -std=c++14 -O3 -Wall -Wextra -LDFLAGS = -OBJECTS = main.o drv/usart.o drv/b15f.o drv/plottyfile.o drv/dot.o +# Options +OUT_MAIN = main +OBJ_MAIN = main.o +OUT_CLI = cli +OBJ_CLI = cli.o +CFLAGS = -std=c++14 -O3 -Wall -Wextra +LDFLAGS = +OBJECTS = drv/usart.o drv/b15f.o drv/plottyfile.o drv/dot.o COMPILE = $(COMPILER_PATH) $(CFLAGS) -B15F: $(OBJECTS) +main: $(OBJECTS) $(OBJ_MAIN) @echo "Linking..." - $(COMPILE) $(OBJECTS) -o $(OUTPUT) $(LDFLAGS) + $(COMPILE) $(OBJ_MAIN) $(OBJECTS) -o $(OUT_MAIN) $(LDFLAGS) + +cli: $(OBJECTS) $(OBJ_CLI) + @echo "Linking..." + $(COMPILE) $(OBJ_CLI) $(OBJECTS) -o $(OUT_CLI) $(LDFLAGS) help: @echo "This Makefile has the following rules:" - @echo "make B15F .... to compile (default)" - @echo "make clean ... to delete objects, elf and hex file" + @echo "make main .... to compile main.cpp" + @echo "make cli .... to compile Command Line Interface" + @echo "make clean ... to delete objects and executables" clean: @echo "Cleaning..." diff --git a/driver/cli b/driver/cli new file mode 100755 index 0000000000000000000000000000000000000000..8ae139b3dbc0a1416a7cf3849bc49a77229fd434 GIT binary patch literal 57600 zcmeFadwf*I`9FSg*|6NQ0YT%Xdep@x3NZ@=5|NrEyWy-XkdgpV&`n4-BoeYQ*+5X# zXcA?+Y@1eV@zRP`E%j2-TBN8n+!DMt;0>?D`&lCrr9!-s-}{-FvwL>4YpvgY{`tLn zc#%2to@btU=9y=nd1lVp-Rtbm!o-9GNxPDypGlPK&)`VDD9C?Z+#t!9a;4$;dxmtn zl!AOR!+3c^B6Mv$eJ#QhAOC+{X1uGvXFe-oPBjtsnHCLSQYPs>1 z*DccZw$~PKBKk%6uZkmv>jJ0um4?q#A&w#0~w3Yp*ZdSIS#%ejy!d7 z+I=z({wp|-Sn@m?hyRQ?<7kXSe}0^Ho8#bWoN;N7LvM|PUmM4sUyoxy>2dgU#L+(- zeoVbR5QqP`IQH2XN1t!R!G98`-FxETDRJ!WtT_F8G>)9N#lc;1+WiXp9}{CXq% zb#df59EVd~S|IzdjCL69?ZMN1o5)%&*(y@HrAk&zs`#85sw^Bo3dc zaoVL-DV85tAIA<4#?fa@oOxFeXMFqP={&eR1S}5#x2HbfVOI8*ilrbaZ_S`3Wz( zU1s?r_E(bf&|kuP1fDMNZj3MCvf#sONm7R3zd4HjLV@Q;wOb+hcSi9kg&m$HrAkEw zyg`^ByUH<+W293gd85qoY2eE)#AA)#%8K*OqZn+O-v>8W!yddnNUE|=tTl+1Ni zx*OcfYZ|@ohLX7jwVpb6N%^u`H!q7_a_PKcPo8V8tER5e-Qaap+U*O9Jtbg=0L%I2N>A#zOh)Vu3QPozGV16rC7V5O%L!$8WOQs3mYlMY7S-9m;FGnlkga z5-@)8^yn^cutWOEOnUTyMu!WZv$~-MBZc180;sGl!l+}s%U#Q0c6F|ba&JX73W~iX zqPM!iv)Wbbu3PS{<_5&AhdTamgb-ZIYim8=iBW8>aMyclJavq@Wtz(csTwedn%%~* zFBmdLfOl3Fnc`YB*)kc^y1a4?hTT)KVoIH7H5*VG13qWGp($yb ztc`WVEC@|snjd+3m7=BpRPN~wZa9opn6;rH;p4rmoO;mc{gM747dGo|fM0<-;5rU< zi+LJ!LU7i`_WPWI7#QXdB7GU>9oB--SxE_uW~wlnDsE#jZG+X+p7TFdC#LsY zSA)C0w!9+35&ke?H2eFv^J*${1V!j$3|DAzF&FZm+XDIU@_Kl=O7aXeY;~*gml8CVu*(BPuNf=5^?hgp5CHuIK0cwoYFp@7c?^f)i%kvz*G0b9|yLyGX4 zxs@L7G?|me%!pb9bs|Sv6fASWoF6fhgwlVAIdkJ@dZ}t~N4muy(K3x&1-vLc`T{oF z;0!A~O3etXmD2=vv@zY+C82!U|5@hy}e;@>WzLfT)w|%IiFhwQhI4MDYoX4Xaee z3Rgw-3RhKmO|4W<%dk|n-0f|YFpaSaX={qt-CTn%k^$6tTx@}%g~eOZ=*B|lZIGam zN@-PNT|FWfZQcu{DD$On^a81d|mS#I0vkF|3vnFTdgzl$??kwWAv=qcs zvn+YMM9W&Fg3?m!EQiaIH6<&uEKgSyQE9S8pGBaVh?6|+e-cje=sp=IvMETZ#DM?F z?0y*TD4!%5k@8ZlW+ILgsB{GIVbVy!$H3B2jGEU-V*H3NwM2Y};je+AoLZ7bGn~pf zcZ!CoM&!Q)8L2rM}=`U zHKQf;;|r7%&s%06QK^^#`OWCeB*1}R_UuVnR;r8y$+&HN3dO_VN0o-XaY8z8&-GkMx9 z&cii4JA>mbQFxia*G1tS0`G{zI|aTW3g0Z+-4unZV&Akm3U3knpsi83Y~ylvM&V_G zz9$No#QFV!D15V^?~THH1+GTn^#UJ=!qWwRN$ls0Ts*1Q#czyJcv>09)1vSmLEkU* zq48v`2@Zqr(sAaEA`> z)#2Ki02Qk`e1VR>Uxyd#@BtmppNR0nw2d;mA^iwbW_j&g0h60O?_ePQXy*rnFVR4x z+W7(DOLcg!uq(pp*@<>(=NyF7xNDboZbA5^8i-Uo{~)|nhim5$gkP@1>whn^9F8%V zztf7EbvXCPyre~kCuzh;*XeK^8HKJ69Zqd)*9ILVTZ20I($?Jg+6sS7Ld?&K!=+`s3i63@X%aDxvInU=V|>qTz}3v zpue`p**d&lhnsbHvksr2!&`LtPj&b@ z9iE}XJ9M~MN?GX!9e%EkexnXQPls>P;S+WEW*t6Bhi}#4SvtH^hiB{Xy*k{Y!+Ui2 zWF3A$hfmSry*hlV4p((}jt=kF;nQ^ZfDWIo!zJOL$^LV7xKW4a>F_iiet`~8*WojC zxU9o3)ZrOAe5MZ1*5N+sn+yjh1UI=n@PU#!E|>F_x^yhDdOb@&DyK39it)Zz1V_$D1bUx#nj;Uzj; zY5mlw_ze%Ql_jOU)0;ThqqOce?g~*1=8U*XmIfz`!e7%F`M9HeHI)Z@2XReEq&zM6 z!5)_XdJXcl6b3t4{tL>}5*Xaf@}E$imcHOdmVb}(wB!XlSpE&l(^3~~Vfp=(Co>M# zv;4D^r==}e#_~HUPfJ>`h~>9Yo|dv;KFdEwd0N7P*)0D6UxK3BRB`Em^@{mcN1Wv{VIqSpF)?(-IZzWcdcl)6x{&%<@-I zov~H`Tdlq zB_vqS^3PJ9mX2T<%kQK-Eg8WgmfuEsS}KD1EdLngX^9ACv-|^;r==k%v-~}jrzIhn z#`3pQo|b~3#PYwPJZ%kv{ok_jr#vkQ!CscXf%3Ez1bbNiD$3Im5bR|62FjD`4{m1p zD=1GcKe&7pgg(o zU_Q%Fru+=bXS4jdlqZ)Rlv(~P%9E=Orm_4fl>Zs!C6*scd2-Fc{%_d$Q$C;ay)2(d zd2+?U9+v-lHS*+wgPkn@1?9>01~;?(CzQ8Qek04jM|pC=!48&xgYx8hgDot-pYr5# zgY_)`Eal172FqA}C-PMt$g@ic2722G1RIe`sXxyns1=Lp40z=(?6`y-=NX|S)-@< z2Kt|K`b#;zU!z~3(O;#}_mj;2nP+nPb2cop za-al87qevMr!h9FWUZ$R;V=sg)r!0nX95-|F*!QQGY z(;00{pO@_-uOH5%{-Z<~$a#RV$vlqw%8uhnimzYUp!relWXB4`90jjG%f%vL|E_4}4Z3!e!3kh~)7g(Y{M1EPY3KSw= zOoI5n*`A0c0mEOa_;W3tm5P7V1o9b*&uLaHo(Jvi9j=}R*G(#Oybecg)hGxc&< zRC}kX{T!@krY!}d{Ef+q?{JmLW2h{Wq%NEJB*~PSY+h$GpQw&yEKKcBf`NaA<*4HO zM6DC`_b_Zbt%~X?7^n8mrZq&Pj^>$pir;2dDwQe8Osb|l7-Q*@%Xa;PWK`FEg>et$ z{2c4OLUQd=Z#)^df$?{xQ<5Xq%P2Ug()?HNfEc{m&v~^s!qw)ZT3JTJ`(m!3eSeqMTPfC-cxF8vac1h0VBIl-%(pc|2kkoaXHaDYJZ?IBss)PV1> z`W7_Q*Vh;9`?&AJzW1v-78cVS^c{)G~U8}VaZS7EllAp+#*`|7b=SuE)gw^p%xYv zvr!gJWW{RY@5fLzkaJ47i6mg(;l4gi z_s=fD?fx%JX`?@YioQ@x=XUyM7kyzG<1`y7*Ykzxk{w@|F5gM1Dse#+5+pG5iw0TR zMsW_vlg(-)dgX5{Lc!}OP;H#{JkV~V;EN6G9(69KI&0b)6v9|%YwI{VbUClxrx=c(+rw~Kx;b%hhUbiVu2&brWAvW?~~Df&C667igz-Ai>mjGqDNe zoI%nCX8!R?sFT7dny=?D#mxK_FyA}s0rVDx<3zVOQMZ~9?v_(@Yi|1?Q``MuVr6}s zWz{;@{x7ibb*oRK@qcW*F+oxrQQLow#AGG0j(`GUF;|klUg`)G0hxSTUomu*2UIE4&QMaM!Rp%!eY}CpD4Z~Hq(}OX)NLWN2y;yQakLY(vO^y z@V3L(ZQAmB-z2u4sBfawnTb_#hqCpb$BN&-?~dKFaxAFq`065M$JfJ@%xA56udK?j z`hVucqKh?S1ay#hz_+t$H(8&rhwI*Yxz$Dbx9smzt91Gx`Ru+flF#8A)XQgm8r~8X zETk-EQess}HhYVNq$K9~e4SILkiO4LHh-_6udW(z^gz=5$0EH$6ucMCJ~eHzj}jv>b_G`T z%x6tc?9bbI%`9yuD41?*P@}!`+C7T@an>4^*{N)qHEpq(&oH%b!)8>uem6;`Qvgl! z?0;kfREkzQwwYzD5|Vm44T8S}l-rjzcq*#h zby`L53JW-9)*=4?mn?lfoK$6kXvj`eZ;HEC>KbuE|Kq)sJeqvu76 zKc}G8+>Q~t8qM!-|)~&Shwd}VXrGla(RC}$t-Vs=wM%}Jg z{6-~El&0kEGqqhwvSI=PR8YF!+=8mOH+JQxv4UpBm!@>*8v#qoR+9x``Og}_2Ey@lWFT78J>p)p1y8s13sp@!F+H&7mJ2j-?J ze!)VM!(U)j@}4!dy$u>i9&Bp8nOA?DRWr3+Lk+ZdD*mf6(#06EM#wQI-PBgkT5jVl z`<~*}y4zSaFq67auXPVve2SCg9mcR+(@zFPDs1h>NDTtILO?~1)-FKDOl=klii-gU ze@Z)w_CpwPQ=5_QeV;ge@EP6e%cL8aQ-*>b1V3fFA1`u&tBscZY88z>%rHaop?|*O z^ghhLt8w?4dLFCD#SS_#0wHnWaJfVW7|B|*CJ}_(!=S5;j=b-XdxCPlgJf;$d8{ee z9=E$Yd67DfrH9q$KL=@G=6ML^)s3GG4jwUi^3zP2ZA@LkMXXPI`W{2ueRt8HUFri= zGcYp=TTFF3YUs7D1nkhh5dK%F9Aei3jR${8YVhp|UW9ISg!c=y%p28NEQUO6+Hydh zPPd3dck~*EAHd?I^M8^4t@TrAaH_cqww|i2beEkr$S zQPMnQcu^V)KUihWd)4ZD*>vNBpocf4srt$GQ%g`e6P2;Adl=K_btnzGJ64TYg+f0p zF6vd#p?{Paa4%rri)tnr92~MAlY}C!I}QCHRodS)we7+jZn-)aUYkDuW!m0|$m_7G z_ECjyRX)V_)$nBLVV~Q63n-z?44tnQPP-t|LL!qW z)cXI0H1T@kUua}~YyCRGTiE(_<+a1Q?aYm0-#KmjAdMabJQIu6Rw!8tUV@n+_R%{A z6448oY5P3@gHzBM76)xVE^75*Nw9PV&tX;a$p`;2AN&F{AH%A(%>*hn_fu%VZ@3!( z;>6o2;f9kKGMrz4jts}Um>ErArWaJ|BSCIBAAiEy*vY2nL3M!a3Gsel{I$a)!&Ot; zdQQVa*5Gx>h<;E=+8L@>7*)?3Ksm3|f*z_{K&h7FkBAq)2*qOx4_OpMs*3Mb%YNOg z)?$~f`Lj&YI;VM->4~GqRwr9qXBQ0<5|s@sm{2NquxKGL zdk~|HfFv=2^66}xTGpCpVLGl)!I;3IE0#{~*Cr?WcC>!ZY!@xiH26Qt`gZL5>gW#4 zipiMgzP(E8&V+qxYrmq*D1nIWUNWdH5YoEty3w?hWV8+%O|5Pm%H<#JPByh)4awUv zf!LYRT61aZM~S8_ClO`Qx|4XZLa~u`oozZ8AZlV8Zfloq*yt7nx9T<+51rY31xCo@ zkY$rV48!OY$7Y^2H?VwkpfpJxguOvYX$a-|+V`8YJc( zX7+ziSe*wBEUs33Z_v(b&Bxd_=Ix=lI%cn! zE$xOGyhHxikTd}Ebcv|+kND{WV-QV%qH+=fe@|PH-VP+ ze$Q5Qz#i%by=#yZNKFRVW=R63tbHc6GjnhmrYv?+lG?7aDf<}!OtX(EiJr0z=m7Wi z#}RajY5O!N)qxNBw9Q7xS$kyqh(YUVZuTZA+7(m1bH2$=*%d>)F}EM<0M1 zE8yuLY1{LcS$&;+>H;pBsr_`YAj|k1V?c)MV@8nE%;j7Hv9{6UAoX1^gPa!wfKlH} zBNoV^lYEksonfHGr-;aR&;~2Gk|=yT!|Qg~{oaoePCVC);bFQ;4AgWILe{Kc@*an02(8 zy+j_*_Zc>3Y6ip(9)cEGd~lF<9?3~YV6==z|{6Ngkh@!+rZ%j zD5w$=$ayc1+MK!Hg@G6aVbxN`%CG|fCd)QTq9={t@#Yg()0Rj68jh-7MekHyYng?$AXL<}jY z_cVmikN96mA^x0`E+QEc;+ z|2}cY=1FPY1?V7lB9j<2e#>RlV9q0@*l5FGev0Z^+yK=;KUi)2C;CpJEs@`O;9GpRIv%X1qe^Uuz|Fx%`LLQmLQ&kTli;BGAWHiVgm!rl zmJU0Zyd5ZV`VRHI(6_hmuYGT+J;8!xaB@H~=U}SMs_s7#mp&2bTm-LKB+)1BNr>(bsGA zA44Z$`p-+^@XzP;>Q)+b-@)zKn7m7ZmjVrU0mm)Ac=aVwzgg7JVD(Rls4q^plz=Cl z^|AF+Y&bneU6_c42@e+ohO^L&(vHpeFjL#@;N%Rf#s>SC!}l-srh^c$b-+ZHfGybS z3y?`@s>S)uIP<#VbZpAgx@_e65bl7r_LOJ=woz%?HcCAIQhXoL>C`dxW@d%phYh`- zjs>B0-(hS5DMaa_1_|}AF!pU^=i=BA{;uzBb!jh30yF=H2i9smQE_8vV%!d^laPj$ zhw)$NARqCn0?*<5kfP>dhwobi%_@4>hCOF{5oWy87br#IJ;#*UUWOY}W}u!W3tLQ? zmvxvj-5X7rD>s`mn>tOI*YxO=*Pa17QeWZeN+6JijMCcM-`!4kGMeaaABQ^{SS53} zg55stm~k4`o=&8J_G~1M)(;WBwad80;kI>fzfy649pfpj-+=V@Mxr6L7XV0Tx&~@r zC|TDbs#E+=Q~S{Ph3vr4;ah4pb|t67Y4kQNRRV5x37xB7rkemt;BUl_oe-)fG9dqN zwFVqmh+rKE5S{4KpAbG@^JXc&k^E$B4*H?M)aKxS=s=Ahvf(hpx|BW93`GI5cExPlZ)*zx#LarfC&0xQYoz73!4k-GEc)$WE$oG4fMip)fD3n)xu@-g%@%NL>n zJ5GSf;CRpHR*pLj7KS z4!qP8iPney?o#_OJhUvm{|2Q8)jN>apU0IfWLCo55Sgm){UPRA3MZ!72e+RSnMrvJ zKZ82xfxgau&O_hy_PB)dWRGF{*~F%KM0ba4-QA^*KnKE83iBDy5sP7Nzd;9}vj>r= zA02?Xp;ye}$lOj#!xl92CG{Fw>9!o94mYq>=&W#uzTN6wxV5%?J7~IPXYK*h zEuBlw?4kLre_q3$yIANkl2Mg;i+R+d7cGK|Z`XF3+v<2?Ua`wZp|n!dnNTK`?fCi( zWyipz%$}Ogg$pGqbC>CfH}N!O22@4jyo614VB8WMX5{Te)95cfrthFdQ2iY(B3N({ zph@aBwsag+zrbX<5TbT2(Vw5P=htvZ` zs4t89*a=8#fv)~^QQtGPK9l!j@}Q6x=L3>Df)g(ZT0zbG(=E!G`}u@N1xtcwhRXjW z%5lmhsn2TV6#vot3?cbi1R3qs)IWmE^aSgkD#Yu7YMF*a_sIY2>*tI5BdLBxxc(+l zzvJK3mqdNGi8&kf(PvVzdJ^4Z0FlR|@~>3Lt<4WQ-}XI23%fIL;qb6DiW84+(rkGA z(E@2ArWoF@p)D64DB8@)Hvhfs35N|2-`0V0P9S->%`cwOfWW9;0Z+7jG>T}X0~kVW z)UU_A4PGP}1z3~&)p`I{9I_GN;}9A5On)^0aQ`pD@5FtTy&Wg%i4+_oUQf5Sewsj! zKGN)_Cq7V;YR$%Z0q?TJd4Y)+%uP7ncOKhE;mP{y0`leOy+V5FRx4hm$YD<+p2^@u z^fOc2V?x9?XeaMGSY`FuCG`bls&G?fz5W_$Fllv4)y%=9Ro#le7z<=0Es%HoT$a>x zUPGNg&e4f%gR_kul2IEbzz*i1^VPZjr;_`D&uzzn_g%QLwp@o}h4zX;T3ZIyBP5T1 z7`93DJX7Z`_nO*loQ5B0PDdu}Z%8N2u#XD|n-_A&qXMft`|GE?)?eL%m4g1tOLnPqAf#@6`9Aq(qD|I1 zR&op=+J2umKQ25T>YMu`+aLLF+J6pu)wNIY7~W_T%ZM|8I4O{`=Ug;){ihvh)9GuH z6mi-QHS)Ms!Q)1nd{_tkxn1@&NxctJ;3*}}S4?eha#0;m!*J-ju5W2rUWBXu5jc@c z4qQKY{P^)>`_9}up#_&W=-aU)nD*zE7Oa@I9ZKNhL|>O;vhB;4y6Ay(>l;bRd5Bpu z-%#>)uAaw&xx?zu&@A3Q*p5of7%nFZz(a}KXy)x83&PV+k~9=@D?YW!i_=2tn`V8x zFs(*pzz1H(*nLdK*2XGdgJ-hGv9m0MQpxhK1%GzHq}r&%ft=rGQp4ToxBA{bYHs|4 zb7fd*&b88~K z$!sG_al&sz2F6c=f<1)pjl*WVarj4s1vIbUg!>C9gKeF7f`Faj9JZy$kv~0lFQcO& z3^1Jv;SMMK#7frx{$-dMF{k>vsk!61)a-oMn!@msdSO#}{c<_MFJ_3~fB# zQA?Sw!MpD^?Dyfr6@RHwnNgZ%YWonP;K`u(awSlJ2tLW_ucVg;YR#qCGKtp~;G4gM z>a^DuWYbOER12>y;C#;1{xvdu=ZoOAmJaAJ$5&w6h1VBCjkWHAM$jl7)ZiJow^S|0 zaJJN%hb7Pn|1d10?fZ^%4X;6jcp*J`ZQo7p;GnA+<~54NrHrGg{eCLAem9MyW@PMj zoqQ>h<+Whh_aNz)6od}K(Lo|6T{6gL-k42WgeHkprY3PlUU`vap8w?FXi@A~_!!gM5FXaqi1${O5)>H!B|+I=$*Nc|}Fq48~F#P)H~n0YDPkEeTPLex8I zsdXogC|@(R4Tp)TH&O$G-@)^fzp?BmcSEt)cW^dz+DBtw#$G!*nUsn3JYTnFwsB`q zj|RFPbR% ze1zZ$6sCQ=+T{$r+VuijcHq@6CtmGJH{EnC&*CKE3IsUJW^MFl6&vDOb2Ub67W0wd zKa80?jR_72`Fl1~N#sDzl@Je_N`b_DzrUV!#qebzrfwkTGbFU%pX(N85Y}WR6uektRIzg>|^9`Ml8<(#beYC%e^jz%WZyLKW-Ni73E! zxD^?w_D&?~Yv9RGU!W~)hw;7)g7+;SSTkQ%S77l$?-A@DR$a6ZA^jbTDX}H)R@dX! z+5%VH-T=n7++I_A4Q|lDS-gQ6)W9k<;H>DqjctDC)_jnF{Vo_ec6>VtZP;r*pdGI* zvzIp6U&D>ForCYN4M(RlSb%{2FV^pZz_?1<0QZ>MF%=|x8+`ZQDf|rN7%|JCqTky! zMW2m!6~AFUfFT-w8SzvI2 zXnGsYc*q2?7^r_Hn9W>xD}NCd&206zoOCRaCWlF{jUz$otf5=Iie@&@bNZg2QRV9!*vk(3s|Z*z_S^S@A+I6m?jgA+(kseh8GoAnqkY z8yr*nt7soV0Qpy45CDh3CYh=2xA;Uta6E`u`)CrvnA#g@tzIA6Usw@uSrKoU+K$0} z2hYYIGW8rZ$#!~pUWm<%Zu{0_YI_unLBzLj_wtOI6t1yuNR2mHXd`O8$TR9bXiBs} z=b@2pJi-OxZQR2$ht<1S4O*thn}^gG`3*_MUj`2z|C&sTg*MckX>2^Pw`OjOEfeg? z0$WvUFmg@|7K=a2g7g_0bs^a>o==`4N$SaLWZ82u-Jsme(8KC;=r`X{{<@3mYK`VQ!VXM-=~qWsUm zDR=_4QvxzPL+h}X@K;$|utwlRSDtFD>ch4cUWPMVzH#W9J<5Q6LlLYHt$PqgebYU= zddVzH4$c{pyX+}4O3Q|!v}?9UQs06fAZtaacy+16x0^pnEJVAcnrk5;S!+1HWO0Q5 zCqJ1bvp5~f(4GObQH#<)n(;?HhctkoWGh4;BvF;XifV+hT+jlx!|5u3pokH=3xupI zO1lf91TEl#7C_J`GMd0{X&4t*M@SJ%;yLX-@sVoC5^pkWz)`18IS&`g}?eZSj<2L8*> z`~Jv=EY9=3SE)gNtml2TyHOIDxrd$!v=9|PnrUa;4y!YfhC7e_4eSRG_=*+32kXcg zO5WSvvqhXYL!m7n-0?(sT3Ovi%<|rD`pDrw%}iUu2~a6nYVgk}3HeK+C9;3?y~g-3 zTMoA<-p6D6Z9FOEF|h9lj*D{@zeyMKV&i~gM?8#nWd2jh+>4WI0}d8UZKq+%Is+3W zXP#=h@mH9hj_y4;MkLQhZp*07V5-3#V!^oy$DFip_qrW{)!2O|I(*Ze{;M#xy|me5 zv2(gJ;kb7=<9!#gYaK*{wif4UH@%CdkVS;HnA`4A zq?Q~zJ~RY_SVubWo_T^}$HxY!0^(sK)-5v;TZt;*#0pFiCtfgCe6L*`@SX(;zg9@X zsTfilx)CK`q--Q^YgoRshRU}iNKq21i1-)9=O+&s*LMO&<>bg=Q`i zEN=ngU0HSP!0_h1-}C|MF((HV9aN_PotuEic1>6`@W2hDkP%w^oxYW6ruNO~BToHt zb*n%0u^a3BTTQ>~dsNst1z=bSWo#|aXSRa_M%r1(iZ4a+EyB29nIx?sc)7fj<{b?@ z3_+%?2KG&9?1S@~KVmKx2009$CNSM}IaX%cg0x?O!LVD725SJ2-<#_@7F+?09S?5? z$jqqkH|m4b1e!YgA5?hMn@Jm$LV)V8(PK>QPp}J8??WjZy84rylpa*wl#*aL5L9O1 zgvZ;XjzOiqXToz&^mj3ib{403Pp7dO5uPb>kIRj-W-by7f2kh|f)3c%O zoU82n1d{Jl{tgN0x=uOsStT%PfiqxJ@KL~bL+$(uh7@iFt*}PWhBI$R)7#jIFG!jj zFx!-N`aH+&+jWNNhKpF4M$ck&Mo4_EPgCd}d>9>MUYaR+mlfzw}88`%+A11!Md8z7&`3=bEmRZ*tal< z9^HqN&fKX4k{7`0tfO@8(BmANKY`jI+q0n|*qxQ^t`K(D1-s)mQHxld8Abb37`lWH zoxZdA=e|~uO@uWXo}}C?Xg?s@3)zK2{^Us%;L{cOOpvK<5AGGRi-&dNJJcF#Yq?P%?U-FyZ7Flur98C`wf>dJ`c&4I$f3zJqG@G-#ZT?>o(%boOW zclS0l9>|$=0>*|v9@@zUbo|-VWQ!R}Y`n=NG-5gvDVZ`TslZ>C`2=)-pO@;j|WHSmuL1%3F4ao>H~I)@1Gw!Sy89$kvlY;`JJ@e;coF=FS>Q68JP`rW1SD&C?*ksn>1EhycH_&`(8m&b{ zEZ$W7DbBzuc%388fIC5ZckoegX%rZ?2~Xtj;&CV(^p~avf_L$>cH*=n{!$67ZgvJ{=4XJ(^`Fv*z;$awn>if-9s}NuW!n+ppHpVX@pMQPSZYpF zZxSV>XU3e)UK#{QlUpNKFB2fmkPxLJKr*usPkM~Plf#`(f6i3M*wtpH zj|@P!hDpfMD|klnfq}M;vhlvxSM?t7+>}*IsDhEO2R>`cIq5b zQ^2sE`p!PGOxx4e&J6n4FY#2bVybV%ri}}83RUpqEeTL>%LZq40OE;#4caDwD1_t_aw{RIRVKc(ISv z8joM;dy@{T_dkLWL7Md_(wTVoN4gg0Nchw*j+KqhyhGkq+Wwzrh=NBhrY*a1OV4XA zMJ_P49d$?&>+pX;$^TMI7{|lvX+*odpO{+(bTWh3+hbV*N(ob)N>J;b6!?gy-;m9y znS_vubW#%mL*6;Ebi{P6VFyxfg52^@R5t+-w){rZiS#EEwyA#d7gP^iU9Va&FrazB z%&O%RUAlTFdhGBQs)~Q~7^=*TmKi@D!6)N!E}trD5=r6blRI>d(d5Jf44VI%uf$sn zT(ADsa_fu9>LjQ-IPp7*b@~2|9V00IX0m%hGn{D5*afKbVU*;JG$BOO>!=6Ny9`3! z;XSIC$-M}28!kbIguu3OX?@s?<5cpXI+n%~wLW3#p1ytTeH!k+=r|8AOW|b}ezXid z>0KB<++%N)98`RCj9G~3T%W3@5-%(~?7B`l5B0H$8NCYc=I4BZJq-I$J2k%NVGz=5 z&@}Op{~OC+Xjb2%zTgaro(@6IJo=E35vpxJ)MO{!gwKeYvJp4pY>3`IS`YhB6LeLn zkF4(VLO02fOf`X#@c-0aAcubKQfz-Jm;~b|X3`+%OdunGT)&6L`yRj@7^)I@^*t8$ z{j@%{e1&h#nO@~voVad&^6JDR5t}R*Z$%Ebav6=FfBbgl9dqtFo3}Duj4K+vld51; zN&pdm(-XrY_H)>OBu4CCw$K;CguV_=oX@gzA7@~~aapFP8k0^x6G!Y;-**n*QD^3d zboQg{_%2Dk>p?Vz2XnIJP0jvrP=;@)u+ir-#=V6>NT9>uPoQc20f_GXwuwZe5p+)c_zzJvXjJv(4dpA{_}wung09%@ zy-E540=Yir!Q?uyk_eY?f@O&fRJ1v2}Mj#+EG?u^VR`E})vIxmWs(a$qA%3hDRy!HZF zl4aSmf~QsZT@rUC?k8kQi>(XhEu1&|0(od_a)y){(c(mTb&VUkuJ+Wrv$C?J36)X_ ze)9xB)FR`jN-C<|m8cRq>ipMuq&obh5PmXBuE4L4pu(hmF4wdPGrzI5r*r7VWU^B!n|4TZiFS3FUPkW$@APzfLS|@_(2&N z(+M`%Snj>*B5D2{3{a(9358?Uc-<9V{1i;F`^qMF-Br97LRzVT|8h-6rWlAbrCFZx zhDzCiUwC6p!Vb!7t1x^tsIsKVSyxk0?Uk3itMH3D_&f}RT}`&D^#ffk(WDdFW8JbY zS|AtJG^|`*-Vl-;v~tr*{8?DtfHAk^*cxh9xf|jP52=t}9X(hR!WX@JOjlTM@{01h zI+;s~-?}PqsKHMT%8Uqq=)GaOV9C|;qzd_`wT<%mmF`sw>y|gUYrQqgF&aN_Du6=I1RNkrwKn_ zRtHORH_I!V8XIZAX2H!sk@Ax4iSo25m&tGv7+a!-pFK5c2K^>?Iqr@34-S^$e$xYk zgX@rPMY<8GigYW|bh!CjV6O_&m+@|7GtyCb3b6?(y+E|}p~1lqVA$1I-^LjvX)jXx zcw+{ZOE1z5Nbf~DfHkQHse(8o4Qtv~r1?lo5jfEoTnr$68L1I5x{5R%DgDl62GTS< zA1?ly#E8F8Au0^<{}+M@*&MYx&f&T=>eo= zNYn9r_)bdkblnVo&3MHi4g3a>+J>W_c)w{qQssrg!A_)Gk$#Fa<3;orrz@pMvypB< zT8i`l(iWrxNbf|N{!i!;X)e;2kv1d!7U@=`W}G$+Aax?G-VePaHNJ#?Azg=5rTi*xpcue=Mnk?uu$3(|G?JOKHV4M=w*-HWuB^zlC0p%kAZ$)@^9>6@_!J{}zG zN41f_pEIJg062GWO+u0z^`bOX{4kZwXcfOIR;QJ4mMk;+I9Af1X-MXDej zK)MvE@zCI4J<@cfZAdeaZa|ug^dY1Q(oUqMNMA-;jZ{V2jPzTi>yW0Uq5L!GA8E$n z!NF#v14ti2y0;(wL%QK}=pUcGsQv=&BVBg{_KUQ1U~up)%72CNrl(~{ok$0emLWBM z4ZB2|j&vQ;bx3=V(nYVe(Uox30x6+6E#cHr!;BpX!_o*p4gc#m4Gx}11mcQKFG*&U z6aB_}Fs86ADK)JyHT`1K$koOc>7r9+oIAyQ7O|lEHvCWj)8HV6Ds&OP6#vtJpHJw5 z)U>6kMn>;NHUoGT;d4^cE(Z>ENbB)Gd*|RFOrBkYZN&eHz%cFDMcCu`pP|Fjk>88| zW?-2}B_%bjHIZ6_T=@S1{^!OiL%=3EQ8o=Uyk1SH9zCnCk5NW?p)294A}7=GusiZj zm!(s=uDL!)e_qr*f;4#sjBi$I+AkAlrKSgxW~IvOldY*4HyZ4z*{vzFQ}Yw+Mxg>)N;|y61tV>FCG?dx3q52kA>g`ge{_u?LdYC$}0B zkBoqKm^0D|x|gAg4ZAnbL9SQ*y)eGxLYPS@8Y}j*7 zz`btVXQ#>~sp*Am&?Op!7SK6C_fN>F8-rMF&Q2{$%7o3tY;z*2KM!7Ic*%fmk}#g@ zX`bAe1iNodPP~KOi?nGHH%A$Rf4fWd4*W@>Ze;LGL4B7uv|3Z97 zXAi+X?!)*ecSrD1LVgOS+L~fZElSEw9O|g7BeTIrL7X!Vub`peq918KJf=39TLU zd*UT=%DgBmjZsE2cA#u2%E%u^_OmWR#;u_9{s6jO(5(mE^dbC~Y0j6;1&Ukm1zk1S z!OKSdT)=pU`H%HV_(Ml(OG46@@g^hMlJS2j*mNRB{jF%bH4%oC=o_J}S47hSnhU!J z2b&^jYC<$N;PvRk2GCqh>w=TZCTtzPTCAnaMi-=ZCM3QU%SNYy&!?!`^V;B`o7xK7 zD6_Zbkb9Un^5>eJf{c7)KiW4Q7#zG3{v!DZGT-kfE>5jax)c*7hM$@>lKc+E`U+xo zPcryD7l&VANY}H`sieKJbsh3$w7;o*esJ(buuI+&!81I5djH*%kW^-fDI{hm)=~Ud z!Lt`Jd;{*2_j8`>6X%dmh2G&)3qnd`b;xEt}KN&3_< zve)N<)dTCHR-@)Od7dluYY^gVs)L`Rl}5c2zs^d19mIN6XDaH@XI|sA6RQsWf|Kpw ze^%#C)am^X>-3<`+TI`D4$avf=q(+4@e|3vj>D)ycf!A7{TBX}%?Hfhh)s%}`Li^% zIe_}lkw5zwPBQEt5$_F&r5C35CgVqpWBMM93j7EDSAwVaqrt(mNTxmD8D8^eBYyr9 z_Z)oRLw;i~wmOx!4fPu`$~J>n>BoqHai9Eq@WNg+y!P|CXT-k!7SQNz_B3D}z%(06 zL;Y-E>vfn7m<`xEU~b&&`X1g#DCCzE+DE`IHN;vN`2H7sHiHkjB<;c%a*o`Pp!6n4 zpCv#JWGA14^pym|ual%cg4QP*@b!rgBpMz_lJ+JVHsQCA6Acd~NjD`KuyMF6iPsus zM0&pAV#y9|fs4^%a7weq{Zzwz>0*ALcIGS4_-_&ok0nZ*5`V&IN1cSa7a1;<7IK=r z8>rnw35K_f($mEMy(GhHM(LX*!`;KBzGMTIiu;Bc_8X-~sL>~l1RTO&BQ?BWXYws@ ze}5QhxM_^Eb)=zvjI?W{;o~&vz{q3hc!$aGRGRdF$?(rK>2D^3Zw!7H=x#{#&=^DO zSZU`NFnni>;nuOzw_^+&#!9~)3m{5Ilpiy-1;k(PN`7Cm)SX~`&L};WWWfE+$*1A|n`F@a)nNFGQF`8B=wk{( z;iJQTnea=a)MYe)2Gwg9fox-f;ZLd3=EOfIyf#{TJlXJUs&p{<=_F(xG`^8=pGoQ( z`BP*DM*bA{4~%-4$ofa4;`&s>6DH}NR0Dv{Q~*JC+io&EZ<6jX5xmi4K&5VWkM@l7 z4VOqOL5cg+2}qj_>l37hg{2uY4L0c_t|!wa9s~plhSo&scmjvAF2F{sBhm1=QF=7d z&^27zkvOGexO9Eejmdufj4K4id`kw~=r-A=z;C~wUf6+icJ6J;8lEJx@iL^tcog&>V=(M)9 z-=l9S;D}6t4z4nh=Q;enLuR*|1>P&t`Y1Z>_v(A;pcz+M8B3%dk>|Pp{r&%&23oF) z-J^|h@cgy0>9rUuI(^2-={5ZIsQgip#}r+q#H!}X(BJ!OJ5%6N0S>w@Qz@HU9>N!3n4GNdPO-MWzbb6ZUh-SLneGY{n1@X z;=c6vGP@IOqyvKSI8lxh7j~T_(o!L)hWCpCO>Xu}$Dq~D2(-WpA981xM)!?4dWD`D zgtuuC5aMhMAJnA_Z@jU*wtvDSPL|IS z(k&wG66vcV{Ya!oMVeyfEu1LQb3{5#q=h0~B+@F8t`g~uBE40l_ltCkNV`P(sz^T) z=~0oUOc3ph^c;~+6KSDH7m2h=q^m@FqeyQR>HQ+zBGN9AzADm>M0!-DDd&jxMS6}% zr-`&sq>DsaCDK(Qy-}pMiu8VwZV_phNM9A{M{vt^W7^8aK)j%w`u9Tp(vGT!xpZn&jzOQ?jxrO`hJw zvX*Ntxmnp$GdUblD|RLcJJMXuLFh=5q(q5+7b*Hml9D8EOgvfA{F%N^l4OuHKNg9n zNSeQk#D__mABe<_A^#DH50^AQ6^W0KG=CO}<6KV6&q#cfR1_1(hB?N#CP_F%%FuJ* z_eqjT($)!mX%bFtdd2z?iQ|{_uF)eJpRrO|ODy~ZDZ3*UJ}$H#=}VKaI%w-qBz~f_ zQLImq_(@VM|Cof;Mq5uJ>9HC{*(a4JNvBA1Ok7(n!(6aVNXgRYgJFc<(K?d|J!|o3 zmLR}M6Rh?W$#S>M5UNiXodw3?GYvTL(c;-?K9ld3K@mQiA@#=Ma~p8tqs7C~eDd#> zK@sNjB<^GJc@{YF(c) z?7L;O6mEA0!-v|>GQmgNFR)7ZQ^)9s+F<~AEcxU0>$i;0SZQJmJCDWZkD!;Nq4Q`9 z<1^HrahQZ_+>m+EBXBLQBPzPyXMBd*|5w1rLZ4}MoUVr_k_`VSUa=AgPx2TJdnSX# zC6-BPZXEg*g1$G3|8E4oaRuk2wfi^VXOTVFI4+uzUJ&&16&%;%+f$Q-{4{ZJY1=FM zk(o246D9dJnc@5|p0x@3j>{R0H(vR*1~|2=?bEb&eqpg1)zg!v;~>BJg}M;pp8Vx*kV>A8WjB74#d~ z184M6(5npRb@hMg1UnX=GZ>C}$D&+GqIpPHT^#!BX^7ot*9rK|fjG9T#(;Qs8qnT#O@{V^?(?{x=KyUSV%#LJync(7zZ5 ze^>CS7wv}nHH_?V=yfLWSmTnz@KmW@$g@mTEn$38rJ^zp91%F}cWAzA>;Cxy_r&4< zL>&Ar(XKRyGZ1DW{Y$i~oug>(dlYt2vE-i)oaUW&j-t)GpU0v96Yw#KCri=s*nY?v9l@SK71FSGHyriTyX@Td20NuFr>6NhuX^%QYF^lk=SmjEX}lP~;C3qvL8 zW5k+$iugu~0lFNp>Oc3}x3>O()^0}bj z9HpO=MsYc#*Bvv%bqvJqMRD+A;G_rb98uGMy}*kKI0Gz0?D8`{(3^$l>3v7KHVV8* z;2Ix#&mh*g><3QcqMd7!AE8T)L!TFCJ-UqHsZ#!OUZ1^>g4;C$-#nk=zvYP(h{NZu zIQU=V;9Y`$y|9zTg8yf56l6dBVnUoJ@DJng8Hj_Y!llO2+tfI?hv68PC_DL;z_Z1C z*Vcu*1YRFCUQYz=s4%+j9w?8xcy5U{Gi5P=ndw_u1RUU-A*UZUnuZGhKr0Y z*&yh9#k`&=${rJVzTl(956=OodDkiY+m&L1mEm&>gqMkVr_H0az+>6N-EnaG;r21Q z{brh2U;fE(o#5g&8O&qxFOGv>37pnP?Yvp5ds7_xrx=bnKT6Ld#C++DvfJ|oUKT}v zJ;R5}{}OQWC))m9TaQ%W6c0zohtEMDY0!^yw;aLjOVE@4qt~5Hpdx+d3VNfcRe*zI zqTejWD^uW?0VlgHTEGE%SCOu37|!qYe>>vfe~E+d)c8lO!zW?9 z=x-S(JR;~%1Fns!fLM~naO`WuxFBp`*V;Jrx5mNu11J4Q&);_h|1t~btNE*A0`IBk zIK3-Hm*d3Pa$XLc?4ehz`z?%Gl5PbaYrHlyKCsUVI3c~$PM013X&j|=#jn~0A{D)yG#*)X)aQMAx zoIm?K18%R0Lw{Qw{B_h}>xEDld)F1%HqevaHVeH$Ja)Yaoch~Y$n%W?&%^^O;?ol4 z|7Qt2U(7Fh-+)>QfZk@-xYZ0BF=^0*QV?9IDE$9U^JGVF906P&Wq#FH!vJ=@+#imQl3aHz%`u< zh$Vjz^!ZVK>1I(0Vn(H-@r??_3N!T^hX8%jl%zE^KlFwJd)k^J2>N81^>_D z_F0qs!u9vYqBcp>m}E0=loe#r_0sYw9Msjtt_vp zlU$b;d!4y1SB~?7xzF#{|6I1cs+l9IKFuS+B4(uiV zA?hl8ok5%mmh2+-S?ofPOe?Rfw0XSt1yk@>s%Y>wdhyi_Srrn#(!jmE1|OM+Fe_aZ zwVpb6qvUc`dR)tEJL!+y_sadMj zxZHL4k^-rUzLUaL*|c)y8dTBcT%^AM;5trJA-!dEoZd0hDNiE=N# zeL&Q3P0pH}l@q%~8@{_>NQ)7ILOkwBN|M#@d!HbFzL7kxS;U*N8~ z#17-s%qTDP?I!l>XnJ&&ESb;d|A(&TVw_y)t(!(5vM+Vzb)Lprx4V9b%|-}bk8g~? zS3TGl{21p}&A(M+NDKeDpUlG->hNz@u@}v$SQ*iktjQMAU$HmTTicM{x*YRejo!+d zI#*L8z5|4*eu!AiRxML#dfRI1i&xipE2_ES@{+0a1tbNYx;lK32qrr(iZF=jn7SC} zQeH%+)_~{y_~sY#6P|_w3rQbKcrgKT>Kkh6yv1HPlSXe%MI-USf>Q2U2A5suf|IGJ z&d-NOvd(h2ELl^e1`ob?WJpIMWU}NysKTZ?CUeP}dUuE^JU70O=qh()eSB$At$U~^ z6B15mo?(8IH_|oC8}fA}usHM;15@msimybejXBL0glD4%?YhfXI^eIfUH0N>t_U>= zHI(D~mY@WvQ~O$*2yMU$_()l3q~M}4SgZJ03~`?ph8N?j?p-c#b%STM3%y?Mt>z;Y zJxpwZ4*A9$&3*kydv0v3Szc#fFsFEGWM`Q{yDA$!uIh4V&W*-Pier3V4>_5rZ}|~g zU)5O0EU7ATXk%4iCQ036nw#owc31pZhePXwB_|a4U^L^o*Ql`-jptUnYY{~>HNs8W z7H2iMtFm0K<;~5mdVJ%Qhiuim#$V!B6*R8<8#MzMF=D!3g_gX70IVg#GTIWD`M93xp%3B;eu2g*|=Cf*NP z&ZF&3FpRa>m2$!Pgq&Piv%Cghd$j<*RRk_#redrdT7=7%eBo%OFdyv_Uz=qws`gf2 z5i--s+2wF&tKbQW-L+Np6-#sRwM^*SO83f&`ZZyzx3IV^(jStOCJo~YnBdOo>xj6m zFoEErnG`Sx`hu$ZXoF~6gUDH1fAn!)bZ9emb#*xl5fOG4dvhwh@Vtola}j5+uEBRj z*~vGGh%%R!9QvL!-nP&{HssX4qf1){(BtMBZ@7Ov%q(#Xalg!{e^971m3A=XtH~F; z90(ZZ16T=tMo$G;p2dRifm$w>GaGa@ghp@7+8%^$K{OX5X8B5*E$$ExpB+~k5*AbGG znc5u9XNj;u8-6$fZTMM$NMvZh>qQR1OnJo$S4H&-7kvj@Scg+3Zv|Q?_j((`pxBIX z#<^@_(f);kQJ7BD5<->}A+oj~(MP$ilDP%iZVfBEWtz(+7I4kk#&Rd$x7-)aDW2le zI>N_{kB@%#z(D8n>BF{xQOeG;us~367}}2Lk{`RKiGX5qIhG&K^2H4`UN?q-&#wP; zv!4s$-3^Gw?JFaVQ$(=bBTf;nQnbZ}ey9`G+|++%S+GopWbi>0U1{TYG2#+hGVH77 zVWC@I*TfDs(B(Q$!%CbIKoR&}NvuajAS<3ui%b3d60yyWGO4gH+}1iZqc2%zDhisUpgsv9 zS)zfGk_KuzM1@2{$A3UU#rM6LZ#_G^ce%3|>HKDP=grK{ym|B9n|X6a;g^@$b|Ej1 z+Gi*qi<>sB$VbaW%sJLQgFW9GLhw9V+{iv@HCtF$aA_nBGQ%e~juy`<#BJOvCT>$d zwnCitq`{k3yB3*vlHp#I}$2MJi3z|x|`0p=*S0}cZlTlKEya*9gIuCdk=<^!dA!E4gIt~Lc^hu}<)i3@WL$HcTqG}vr zLpXfl=rw61jPw%YT%}Amk*Q?NX|}?oak^0F9i5}|#)2;>xVP|ne) zF*Wk;U2N1eT+d&2PSZ>@1hGN~KR8D^2R-9ncN%~>fj10{n_$qq>@M%h^uIiZVQc0m zq=j=>t0Tgay3lZ23HHXxP{w8;Zxsep$|>=9U}As*xlsT+7Pm!UsHo+Y6~VztJ+2>Y z1-5&DM9(m>#eU3=Zhn^%5#elYel6oj#{+4S*Ddpr}c(< zZzZ(;dVe%s4RPnUac1K*W#fINq4%rwx>0n{rR8O}+Mh|fdOpwl1Hk;)!HHtn1sESM zlNA3oV4T9(e;w1(r=W_ZgOllObRGXoAZ2QTtGknQ^!y0rIhY^2H@H8Xm!g*v8QvYk z&`Ja!Th8(%rO2J6h^B|wFiv4;!mrVFdc3ert#mx`+qshw3Q-EB4`Kc^i#*r|r=}I= zc6wbIinAQnjv}q4{rPl=2)E2qNO4JuE$2D5k;4u9?cz8NlJE$W&UMI7QV_>5O2HqO zDxSTA7>{fSzvm-@J4H?x(Rm_0=5dM;Klk{8?<%8*G5!a5{ttYqRloc*1@C!0ou|+_ zKNb4`5gf@b+W(g?NRW5_F~A+e`bqdYSHWW|Z{Sb$%imK_{_MzNA@09V@sz&e!k1sD z;LjdU?N>g*CwNcabEV~fE@+KL9=4x-r}iUi;RSyAyuin~GY0va${$|!3t!*=74i~) zk4OmeM-`MmKJkeY=U++L4K=(zB%qCepy!-ULq0V%fD4{9U;8wkp+1^FT|H0 ztf1PfI+YguHo}+RjNtDNh3TN`)zj}HeEHQ1UQtF5qt8ix@c0@(`QHjoG;kh2uK&jf zUw*oR{GS40i0l6)!vE|`ms{{RoW~A>`c2P%MTGsY_RH^A@L#>~2yy*?;yF%R+8ksS z`86(2nJV0vTmrwUU+`}{V-xk6@*_U=_{ygOlosUqTDD*KI!h^6A#2I}H@0q0$Jr}+|rdzyKaUqO8(emC~JCqL2gECyh-yQtv qyRY&g0_T_7ZV&v==}#{53g_d(pnCO;X9er<-~PkpxE3Kq$>cxRN5ixL literal 0 HcmV?d00001 diff --git a/driver/cli.cpp b/driver/cli.cpp new file mode 100644 index 0000000..7254a58 --- /dev/null +++ b/driver/cli.cpp @@ -0,0 +1,91 @@ +#include +#include // sudo apt-get install libncurses5-dev + +#define WIDTH 30 +#define HEIGHT 10 + +int startx = 0; +int starty = 0; + +char *choices[] = { + "Choice 1", + "Choice 2", + "Choice 3", + "Choice 4", + "Exit", + }; +int n_choices = sizeof(choices) / sizeof(char *); +void print_menu(WINDOW *menu_win, int highlight); + +int main() +{ WINDOW *menu_win; + int highlight = 1; + int choice = 0; + int c; + + initscr(); + clear(); + noecho(); + cbreak(); /* Line buffering disabled. pass on everything */ + startx = (80 - WIDTH) / 2; + starty = (24 - HEIGHT) / 2; + + menu_win = newwin(HEIGHT, WIDTH, starty, startx); + keypad(menu_win, TRUE); + mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice"); + refresh(); + print_menu(menu_win, highlight); + while(1) + { c = wgetch(menu_win); + switch(c) + { case KEY_UP: + if(highlight == 1) + highlight = n_choices; + else + --highlight; + break; + case KEY_DOWN: + if(highlight == n_choices) + highlight = 1; + else + ++highlight; + break; + case 10: + choice = highlight; + break; + default: + mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c); + refresh(); + break; + } + print_menu(menu_win, highlight); + if(choice != 0) /* User did a choice come out of the infinite loop */ + break; + } + mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]); + clrtoeol(); + refresh(); + endwin(); + return 0; +} + + +void print_menu(WINDOW *menu_win, int highlight) +{ + int x, y, i; + + x = 2; + y = 2; + box(menu_win, 0, 0); + for(i = 0; i < n_choices; ++i) + { if(highlight == i + 1) /* High light the present choice */ + { wattron(menu_win, A_REVERSE); + mvwprintw(menu_win, y, x, "%s", choices[i]); + wattroff(menu_win, A_REVERSE); + } + else + mvwprintw(menu_win, y, x, "%s", choices[i]); + ++y; + } + wrefresh(menu_win); +} diff --git a/driver/gnuplotscript.gp b/driver/gnuplotscript.gp index a53b822..06749ca 100644 --- a/driver/gnuplotscript.gp +++ b/driver/gnuplotscript.gp @@ -11,9 +11,9 @@ set label at 4,7 'U_{GS} [V] = 480' left set label at 3,13 'U_{GS} [V] = 500' left set label at 2,22 'U_{GS} [V] = 520' left set label at 1,33 'U_{GS} [V] = 540' left -set label at 0,38 'U_{GS} [V] = 560' left -set label at 0,38 'U_{GS} [V] = 580' left -set label at 0,38 'U_{GS} [V] = 600' left +set label at 0,39 'U_{GS} [V] = 560' left +set label at 0,39 'U_{GS} [V] = 580' left +set label at 0,39 'U_{GS} [V] = 600' left unset output set terminal qt unset output diff --git a/driver/main.cpp b/driver/main.cpp index 4519a31..eb0c66c 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -1,6 +1,5 @@ #include #include -#include "drv/usart.h" #include "drv/b15f.h" #include "drv/plottyfile.h" diff --git a/driver/test_plot b/driver/test_plot index cdc226e2660df3d76125fe03ff1fbcbf6853f189..e71ea1241e1596613c140862fde2ef8d23b3e21b 100644 GIT binary patch literal 37120 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 literal 37120 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 z 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 diff --git a/firmware/B15F.elf b/firmware/B15F.elf index 16170e82816e9aa7839f315153b9957851a639df..d557f06bbc8003ef23657b6d147f85ea02a76de6 100755 GIT binary patch delta 1637 zcma)-e`r%z6vyvPO!8iq=HmXZhvGo@+WnQmsIS^V*@}&WF@&=2-n=wzGtmX^ zd-t4s?&o~ZyO)#ONt~DPkXyIVDto=I!OaNKVL%A!$iQTH9dwdFgL01(@0ADMdA6Um zq+Miuj4bJwi|=!+JXRY_G3S`?m}%x`Mr9r_h&8cRb|-U`sbnk6e6={KEKSePUb}OR zSI5)|^}zzXhJ)M=^AC+PrXT;drf(3~&g>cNG{(Qc%Xq2#pV*M}3%=An89Oa!oVEE! zc#-&QNoIIRzK(`hmX(Ags~K)6Rm+83kMPpIl~_Vbz)i#qD{vPyhFkJ(mGW-s*8-^? zY{^A@yL&d~QEO8{sa_5{-T5uayRsrP!*0Uewz4cLZYiXOxnL^E$u5E^fwiz~nz?0& z%f?%QV@uL~S+%Bf`lEr>8GS3VB|Wa!JbUzq)z!5Q_3*v^qUAHZq8^!BvpUrG)HQ33 zO!uy*X{?cm@q7FhcU2ac;F!g~WJ=Fbw@3A{1lziDV}>Z!3B zZ4UQt_z3H18lw;qFMhFdv1jg6Nl$_lD<_4YD#TiKPm@1FVo#LCK9?&T%zAYiScXoU zoh^Mu=(CBqz8ZeAwb(m0T`4YWP>Q^u!iA9o+A)>Dc#&6>*ezVz?E4~-DQkV!%Te)4}!-R6~?TjbCJd+ zkUsVqX=4i&@V>7VXJEqDfM0^&dT2-Q;GN@{i(!&=U{|OA1`Z zA3!J=)7=vw89XR7TM+u4?4n>7>624d_%rCoE#L`>Sb+ABXgJ9sq{5q_-Pj8gA(8)( zBob&MoesTVL}(Yxg#!3<;KKoY657L2!|Nu5y5N)WyEqIF!(a0I%?QmB)ijBPLFfpa zZ-`q?HWv@+VlX?+h@b`!fL>uEe-CYnBq z){)9CM7QF-a3@+ro_~?&8{lfIF?>b3{aNU5vqM*#4L3m_@pV@tR0&el4i|}U0Im|> f+pP%23%+IIvq43B&6a!wq2qA8>B#p^7jf_Ca445}eFvdUDhYXzy*lGBf$zdL7SLYNo`AsiK;a;TI|LS#zWT@GiIgPmoAf?3@` z2q`ax{1^3TF9`S4^^x2PeQ zg^27v9+G3_4Kr6;C;SyXNkvm6MO65KkTOd8=I69o2+4{b6C=H2;nv6-h?42tUvdVfkGcO#Qa!O~*%w=k zT55`6do!=Q6pQcJD}rQ+>GXvg(6J~lkCGp|$qHsUL?%)i=+OnNg6VesN!d2{!6^x(N#1_hRCw|4A1Zcz0N>qcZuHLm3x0SArx0SY)LLi>l zcoyIn+`q{WQ<&J~v(H!vsisZSPJ8GFw1qxx!7|5l^sw3Cp(IBfEjHF<*|0JQ?X(fR z=jh@pN^wu^AbgGnr$piFoM+(@UU&MrXNz&Y>kWI@Ovp67#fU3ukG6|=+*J$jW5Oj- z;#)4s@RLX(D7asOZftf-w(qGSJ2S*_WTTOg81}iHFpXbQJ&Cv6K0~00kbZo!?k(uS zfx45nPfdhOP_LO0Gf&7Re8J;`o!IA*=#7s&5=VHv?5U-Td!8T+;eM}^^NRSfw+hsF z!rNkkL%7EG6b+!s_XM25eZCs1Pf$II7ko7wDZ^>sdWfQ}p$5LftyEvf-Be%1BUJCj Va}6~WjhhKMAg~mr2m2GT@eiZt)5!n; diff --git a/firmware/requests.cpp b/firmware/requests.cpp index 8d068ff..a44eb73 100644 --- a/firmware/requests.cpp +++ b/firmware/requests.cpp @@ -197,7 +197,6 @@ void rqAdcDacStroke() int16_t count = static_cast(usart.readInt()); count *= delta; - dio1.writePortA(0xFF); for(int16_t i = start; i < count; i += delta) { diff --git a/firmware/usart.cpp b/firmware/usart.cpp index 658a01b..d039fcf 100644 --- a/firmware/usart.cpp +++ b/firmware/usart.cpp @@ -61,7 +61,6 @@ void USART::handleRX(void) volatile void USART::handleTX(void) volatile { - dio0.writePortA(send_pos); if(send_pos < send_len) { while (!(UCSR0A & (1<