From 3b0221619d931d9e001ffd550c7c7bbbb430f2f5 Mon Sep 17 00:00:00 2001 From: Alex Mikhalev Date: Wed, 15 May 2019 17:15:48 -0700 Subject: [PATCH] more work on calibration --- calib/calibgyro.nb | 509 +++++++++++++++++---------------------------- main/e32_driver.cc | 4 +- 2 files changed, 197 insertions(+), 316 deletions(-) diff --git a/calib/calibgyro.nb b/calib/calibgyro.nb index 335cd9c..6ec2a8f 100644 --- a/calib/calibgyro.nb +++ b/calib/calibgyro.nb @@ -10,10 +10,10 @@ NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] -NotebookDataLength[ 179209, 3896] -NotebookOptionsPosition[ 176031, 3833] -NotebookOutlinePosition[ 176366, 3848] -CellTagsIndexPosition[ 176323, 3845] +NotebookDataLength[ 171933, 3777] +NotebookOptionsPosition[ 168757, 3714] +NotebookOutlinePosition[ 169092, 3729] +CellTagsIndexPosition[ 169049, 3726] WindowFrame->Normal*) (* Beginning of Notebook Content *) @@ -35,7 +35,7 @@ Cell[BoxData[{ RowBox[{ RowBox[{"data", "=", RowBox[{"Import", "[", - RowBox[{"\"\\"", ",", + RowBox[{"\"\\"", ",", RowBox[{"HeaderLines", "\[Rule]", "1"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ @@ -43,12 +43,13 @@ Cell[BoxData[{ RowBox[{"data", "[", RowBox[{"[", RowBox[{"All", ",", - RowBox[{"7", ";;", "9"}]}], "]"}], "]"}]}], ";"}]}], "Input", + RowBox[{"4", ";;", "6"}]}], "]"}], "]"}]}], ";"}]}], "Input", CellChangeTimes->{{3.764181138593279*^9, 3.764181180255095*^9}, { 3.7641814517144814`*^9, 3.764181455934593*^9}, {3.764181490536357*^9, 3.764181494963828*^9}, {3.764181657781171*^9, 3.7641816705271997`*^9}, { - 3.766446368924687*^9, 3.766446374406006*^9}}, - CellLabel->"In[3]:=",ExpressionUUID->"9d982e0c-62ac-49c9-8fab-0efac1e57ee1"], + 3.766446368924687*^9, 3.766446374406006*^9}, {3.766449298946238*^9, + 3.766449301289379*^9}}, + CellLabel->"In[64]:=",ExpressionUUID->"9d982e0c-62ac-49c9-8fab-0efac1e57ee1"], Cell[BoxData[ RowBox[{ @@ -81,287 +82,166 @@ Cell[BoxData[ 3.764181311588319*^9}, {3.764181372869302*^9, 3.764181404947816*^9}, { 3.764181593568303*^9, 3.764181595326483*^9}, {3.764181673887734*^9, 3.764181742499264*^9}}, - CellLabel->"In[6]:=",ExpressionUUID->"9e6d0196-dead-4dc5-9762-497e415abc3e"], + CellLabel->"In[66]:=",ExpressionUUID->"9e6d0196-dead-4dc5-9762-497e415abc3e"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"plotdata", "[", "magdata", "]"}]], "Input", CellChangeTimes->{{3.764181745429572*^9, 3.7641817495884113`*^9}}, - CellLabel->"In[7]:=",ExpressionUUID->"55fc2693-bfc0-4284-878d-723d16de613e"], + CellLabel->"In[67]:=",ExpressionUUID->"55fc2693-bfc0-4284-878d-723d16de613e"], Cell[BoxData[ GraphicsBox[{{}, {{}, - {RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.003666666666666667], + {RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.004583333333333334], AbsoluteThickness[1.6], PointBox[CompressedData[" -1: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 -/vGtRN+bOfH2H23ob2We7OT52fqo/wd56Fgf +1:eJyNmm1olmUUx/f2bBbh9qzQSbWakeGaoghWLPXWKCsQyzIl/OLLIq3ch+z9 +xeWsDwopMaESiykhZWmhFBOTzJDeMFEiNammBGYamSxxJFaw333D7+bw+GXj +4rqec51zrnP+53+d626a1z6jraKsrOzwf3/+/79pwsmXK+4oJrP2/jTssTXV +yam3N5Z3Li8mM24/3fzI2kKy8kLr+iltxWTbN59MfP+m6mRt4xVd62cWk76p +DdUt57L5aP2iH8dcuqymmBx+bWZxcX1NsmPOF0/NG19Mhrzy5W+/Hyqk+zG+ +a13HiM9HFJOnL1t1vuXJ6gT9vr/k4eGPNmT6XVn78cFTBzJ9vP8bd0/qPflA +Nm/7mD/S8V3tdV2ZvPM7l545uiSbRx/0Qx/sYT9+b/nIwx7msQf5j3d2D77x ++UKqL/vxe/zJfvjf69HP9tme8atHj/9gW94/nBfyRlfMf6Fyd+Zfy+f36Gf7 +0HdszeSpm7Znv8de9OnfV+gbdSbzF/YhD30j/9pe/I3+ttf+Zf8Hd8xuGD40 +bw/6jHzmiVfLv6pLx6zHf8jDX+iDPyY2tbbP35qN+T1j5wdjx4vPn/3tb/Rx +fjmfsBd9kcd5Me98RJ7zkbHxgf2Qj32cl+11PCLP8UI+Ptc/6J/es3WpvsjD +H+i3r+PZcYsaM3nowzz7O95Zjz6ON+MF5+v9HT8+H8eT9TOeReeDP/A//nQ+ +9tz/zqjNY2ty+Gv8YD36T08un7t7Q6YP+cb+6OvfO3+RZ/3xN2OvRz72XH1s +xcoN+/N47PWeB4+wB7ww/hJPrn/GF5+38cvnyfkgH32ID84DfZDPevvX+jKP +PPvf9c/n5zHxSnxF+cn+5g+uH/jT+/N74wnrmXd8+/fGH+Or8dL8Iz3fm3t+ +7j5Yl663Py0/0sf7b5ny9fT3JhRS+Y7/rl33/nViTiGHL8ZL52fEHyzfeMLY +9dD10vlqPI/yHXmuZ17P/thvfkk9ZT/r6/w0PyF+iS/G2L96/d4jtx3N5DNv +fxMPrLd+jJ3Pro/kA/4FT/179AOvwAv7hzH7Wb7Xm6+wn/Ep4mfwozS+hvWe +mnw8X48dL+anXm/8c/21Po7/Unhu/7Ce88N+xuav1t982ednPEGe6znrbZ/z +ifqNfviHMfMf7jm0pCqpz8WX+TP6OX6Q99aBln1/3FOT/p78MR/wfWzXrx89 +tGBMfTJn1reD2lfV5OT5fB1fxjf7w/Hq8yY/zV+df/irfUHjuc7yzF/oa37m ++6D5CmPzE+wxX8Q+9vN5sN73L9cv198on81fonx1/aG+2X/83nzK8W08dr4a +ryJ+RP0En83XjWfof8vr0zrm9tQlf+5sHtp8oSoXXz4f6895oo/5Aufn/Iju +l+YLjk/G1EPni/ma5TMmXs3nnP/Oz6j/YH4X8UXf16P1KR6Lb/1wtvfapjez +81qwZv+4T5cPTm7oa1u4cU9lcucvtZMurKtNx+AT8cH+vv/5PoC/OV/nD/oz +D16U6k84vsw/XM8cf8Zj689645/xGHngW5ovA/Xa9RD/kS/EO/m4uH/rNSOX +VYV8OLpPOx+ifPV9y/kY9W/wr+8LjnfjBf7kfM238A/1xP035vGv72vEX+6+ +PBDv7pcSX44H6wM+8HvXW/Mt9uf34A/4srTz7xPHTmf6Eg/IJx5ah111/ZbN +GZ60vHjf7Hc/y+KB9fh72o7KWxd2V+X0wR7sw/+Of/RxPfJ9Gn8ar4yH2Gu8 +ivoXxmPHu/1p/V1/zb/cjzVeRnzI8ef6734/8s0fnG/m0/af65n3J/7d7436 +Z1F/wP0b8zv3I7DP/UznT8QPzF8YEy9+j4j4vvmd3wOsn/1v/Xxf8/n6Phy9 +f1hf+9t4GfVrfD62j/3MJ53v7vc435iP+qGOH9dL94Oi8zIfjd6j3O+P7vuR +fsgjnvw+EtU7+9v24D/7y/aZfxl/fF7mm+5/OP+j/qfjF3tcj40Ptudi+50R +vuBf+E00H91PHP/uF5h/OT8j/DNfMn/G31H/zvqaf/j8XA+8v/HB8eh4dTxE +/frovul65vdd/A//op5E92HHO/sb/6N6Y3x1PTefjOzz+7Hvs44341vk/6gf +yDz6+H7n/HY9cbxH81F+sJ78Mp+P3gfcT3B+RPFofGZ/42NUX41Xjkf4ss/D +/Q7rb3xzP8346Hro/jdj+Lff86L48Lz5meMh8o/xy+dpvmK88v72t/GA+4/j +ye8H0fuc7+P2h/El6i9H/egIP6J+N/v5vSHiU67H5lOl7HU/yHjgfoL7w46n +6D0ues8xf4ru3xfbfyv1vYPlGe/db4jwphS/cn2L+q2Of99vkJfjZwP31+j7 +APO3qB9g/Im+x8Ee8sv8wnzA98eoH2j7yWfm2d/fb/j+4P6M/WG8cv/A+huv +o+8ZzL/cr4vqF/rRryj1PYf5V9R/AP/dr3H80c/ze63fqxyPnJfrHf0g5wPz +nB/6HB+yvf6lFXW5+xHzjNEPPoe/ou9vjGfR93L+3o2x8S96T3K9NZ823kf8 +wvXV9c34E31/6H6n8Se6n+JP4210P7O+7AffiOqT3yvAM/frfJ9jf/c3bI/7 +sVH/w+dre/z9ld8HSuGd66/fo4wH/r7T+Ob+iuPZ/Y/o+72ov2B9iedI36j/ +7vct1w/jN/6Pvu9kbH6b3q8G8Mv1O8oXy4v4SMT/ja+OF+OH+0uuN+7/un8Y +ff+J//4FwnFDNg== "]]}, - {RGBColor[0.880722, 0.611041, 0.142051], PointSize[0.003666666666666667], + {RGBColor[0.880722, 0.611041, 0.142051], PointSize[0.004583333333333334], AbsoluteThickness[1.6], PointBox[CompressedData[" -1:eJyl23tYzfcfAPBcJnciIt1rIpc6SRd16lvndE53mU1uIWUjGmbMpRPJkDG3 -rWxjmLvfTJm5pzdpplhYv2LdO7kOyd1IP7/n83l/9zzfz7Pn7Xn8tee1hzrn -+/1c3jf2E6e/N6m5iYnJyBYmJv//76+7THoU3feEg9fPjh+9fZCkdO0s5ysL -G73gdG5ry0Eq2pFbH1oez/KCZ+ktbj41iJ5TpfJ7Eu8FA+4Wj/24zp00/nz8 -+0rjn8ffTxm/X+jRF1a2Df/uCqdWqV/H0Mbvh59Xafy8vtXHJuoSPEjvKbsa -Y1M3GE6NrIK6MHfBVlJufdXLAVC2zatcn+JGumnUQ6NroyX0m9bqiF070akX -5z9zV7WQPy/l9fmN+p3xbSWtRfHh8+f8BKcXH/xiSoaNlLC2d2UzGw1p9vct -pfTsiFxtWIhgd4dhk0dlviOpxo9bZCiJJM0/r7Tp4XAr0xlRgtnnbC89inqn -/KFfpGD2Piwk46rzjgvvh5Jmz9ta2vb1gtRRmcGCE2yep6VaOEmZ+x4HBzn6 -k85t+OWjjAQz6eXMF9fWq70Et9yf4TtI1RVGD8g6qw3zJs3Wz7swvaTa8MGI -AMEHJj0/1r7QDT783KGiqFFL+rc+RSesCnyg8YpTQK1jiODFNWPz2hdKUNLr -l9OPQsNJR6f/1SNmhi/kqzP8P9VECOb7DGzNhjukrwklzZ8/hA8pODWtQCd4 -967VYPuqmeRac3GM3xkt6SuLK3tp3KykyfNsyjdV6ASzfWYnddnse+rVrTDS -7PN0kPD7KV1ps2RR8jlbqem8nX9WizDS/H1KX7lOtm9mFix42r2bC49m9JJu -lt+dPyXD/63N1r+pdDelW/XxnGDS+avGnC9qNIfEv+8s+utQqGC7uB5ZdWEO -8O2GgWdu7wknPf2Er/uI+AGw/FgnKXFbhGBcDweNS6siK0JJs3XtATsNsxY+ -HiGa34NgY9l920+3IkkvG379eq8cX3jXrndN0E/RgnF9Zz+LjNtRTLum/asU -lYUXmFyrrxxmI9qsV/+N20MHwu6Z01PyPMNJ386wrrV9Zc/vL41gdp52g/k1 -v3++trtacKbl1s17MrvAGan05KK2nqSPb+zSeb1bG7hQ8MR+eoOb4Lbhflum -FbSC01f3TXJ3Gkwa93OvjctTkkq1gtn6c4ZOB5trRsRHkrbt2OWH5HOu0OPg -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 -NX+OvP7hJ/0PU2Fnlg== +1:eJyNmnto1lUYxyV36cZiEW0jdXOa1ZzCFFcj1/sWliCFZZqGIiRZzbxERUWM +qIQsAq3QIoVyonRbWmhFWdEFRhfLoVhLsbLQ6ebmpg7SLlbk5/fC58fD2z8b +h985z3mu3+dy3uHzlkybf8agQYN2//Pn3/8zv/2xYtGqouyaUzOHNkw7nJl2 +bX/N3WsKs5eeffypiV/2ZLZ8/d5VrZcXZVeVfHeq4fqezMDk8qLaE4XZp/84 +Obx+Vne4v/K38tYrdnVndj83o3Tx+cXJ+Quf+OJQ9w+5/aw3lI7/feJ1vZmH +zl3xZ+0DOX52nXVX9cLy3Pqi897t6NkZ8/vilMy+w7cUJWvk83fTe7nq7b2N +2SOp8/AH/8iD/JyHf59HHr4jT3XFvQsbP+/N3Le0pWR0c2FKP+OGbL8z+9GR +RJ+s0T/6ZT/y+H7W8Fv/zNj6N7fk7IN+fD/f0S9r6LEf/mwv+K0rvnryGx/k +7Iu8f/XPfWfcvkOZk+2FA2OO5c4jH/ThlzX3m5/y4heWN2w/nOgb/XIe+sjH +fu5nP/Kwhp+Sga1vTdjTleIP/VlfnEcf7I/Wz/Y0ZybM7Ur4i85zP/rkftbo +2/Twb8eT49V4wHefhx/8H32yxv/QB9+hjz9iL/zF8RHZizXxiPyWB31gv/ZH +Hx6/YFhhCh/gx/LhX9A3HsC/8YI199u/Tc/699r6c/wZX4yPrOEH/t6fvmHM +xrriVPwYD+1/1h/8+n7Omx73Qc/2Nz3OG/+QhzX+F/Hr7+BRR+myhVVD+xK8 +wF+Mb9BjzX7kgR/jF/5l+9k+8BPlQ+hzXz48jvAS+awPxx9r7nM82t+JT9cD ++exvfLG9vD+qP3ye71H8Oj85X2M/42ukX+vDeOL7N13z1dTXGwtT/g5+r/z0 +pqNdc9L1kulzHv2grwgfnL+eXzVqw9rZfcna/s9+46/1jf6wT+Sftqf9E36R +3/ju/OHvjj/7M2v8a+/q+2dXl/Wn8Az6D3ZMumPsPZ0pPHJ+sXysqXfML/75 +WFflpHG35+oh8IjzxlvwErzAXyw/9y3b03Jb3YKDCX3rC/4d746vqD5z/oz6 +B9N3vWr8Mv7h/67H7P+ud20P5zvvN75gb/Tt+He+tX6dL7AX9PC/KN/gf9yH +P5G/fxkxb8rI0qOJfuDf+R37G49dL3Of64GXdta2995YnPgf8cN+14/Qx5/n +zNx25pIVOX6gh3+6XrX90EfXN6+eqDmxP1VfuN6M/A//YT/yRPpy/cV+6k/j +sfHR9TL2QV7i3/WK84/x3/juetTx7f4E+lH8Rfnf/m5949/Qxz6OP9eL5gf9 +DyvbVb2uoy/VP5I/jSfGs6hf7vu4pqzmVEFij6g+d/5y/Qg/rh+dX5wPbG/z +a/whH+IvUT1gfOQ8/mp7Gs8dn8ZX45vrC/t3lN9d7+C/rs9YYy/w5JKB+U2v +tA1OvrM+0Dq1YdQ5xxL/+M+PDiT9H3jp+hJ9g2fIV/DrzzvqOg8m/N+6bvO2 +6pX9CV5An+/gg+V1/+D5kf0B/SEv+nG/zX2uJ8CrEWs/K12/oz+FN+YP+siL +/jy/Qd7FJzdXXvZ4QXZRW9OTNc37Q/s6H3i+BZ4n+4ddsHLdjP5EH/Z343MK +v3Te/m5/hL79wfUx+iF+oYe++I6+8V/o43/OR9AjPu1fxLPnQ9zneSt4Sb61 +vHx3fQi+QB9+iWfnuysrhly8aWMuf9c+cvOs1z7JxSf7uf+GDwdPbGopSORx +f4B8x39a+v3Yns6UvPDj+Zb7PePr9Iq2vVWr+1LxZXmhx3n7K/SRN5o/ul41 +nps+9+NvyM93/M/1o/Gd+92PGA883zP+uN6K8Mvz6Xz47XrK+90PmB/iE326 +XrE/WN5ovup4Rh7XX+7HjRfu18yP49XzPcvrftX1R9TPWP5o/sJ5x4frH/Pn +etX5w/a0PI5f2xf8IF7Y73mt5xXuNxyPUX/metH4Gs3HXE/bHtH7E/zjT64n +na/8/uN6xf2F5ztRfel5BvuJB/fzfq8jvh3/8Bf1F57P5nvPwT7uvxxvrv8d +b65PqG983vpxP+Z5tO1hf43eA81f9P5BfHpeCX3jWTSvNP5F83vHh+3Pfvsr +9/n9zPNr/D/KP56PuT+BnvNJvnmT81E0P3U8W37XY9b3/30Pt/6sf+eHKL9F +9MyP338d/8Yvv79G/bvnZ9zn+bbfU60f7G38jua7Uf8bze+i/Or5Q/T+G+GP +/dX50vNY69f9MvvJD9zP2vZ1vo7wwfFr/4jep42njlfni8j/bC/Hs+ON/sd4 +Hb2n2r6eD0bvb9a/7Wf8tr7MT/R+5vrD9an5Nz47P/k+y+t8gj2i9wj30/aX +6D3Oa9dP0fzS/Hp+73md8dD+5Xk83/2eYryxfe0fnPfvG6J+KN97IfK6n7E/ +5cN75y/Xu7aP859/f0R8ub62/pxv6U/dT1h+v1dE71fMPzwfiOYz/v2A+wvb +B379+6Yo30Iv+f3Z6fkS9OjXXa9Evzdx/cX8CP7Rt+tZ43/0Poo8xLP7MeY/ +rJEvqi+dT8EPvkMPfhxf0Xsu/Pn3OfCTxPNpfaOfaD7k/OF63f5vfHf/YX5d +vzq/G7/8+xTzh37yzcP4Hv1eDn9x/YM+o9/v+b3Cvy/hPssb4bH7Ye53f+j3 +Icdn9PsC91PWp/sP/x7O9gbvon4t6i/9+03jYfT7Tsvn91rjjf3D+OD5hf3X +/HreEL335XtPj/oN0/PvDdzvw4/nb7af5y1RvHie63rE9aLjxfjq+HY8R/UN +70esyTfQB7+4f+7olq0jlx9NvTf9DcaeQ5o= "]]}, - {RGBColor[0.560181, 0.691569, 0.194885], PointSize[0.003666666666666667], + {RGBColor[0.560181, 0.691569, 0.194885], PointSize[0.004583333333333334], AbsoluteThickness[1.6], PointBox[CompressedData[" -1:eJyl22dUVNcWB3BEY8PEhmKBYQAFIyIgBFTapg6dQSIDwwwzgyUCGjUGUCMD -SCxgDBoMKoJgiS1qwBBUlC4aWwgGQR8wQxPRiEoUYyM8zWVf17pnvXXeWn7K -+n2I0849Z+//2RhELJ+3SFNDQyNkoIbG2/8WdFySiQ9awU69Vv3CZhFwXVE6 -dJKVpRW8aNjLzx8VQvXzlIGdf8dbwcm/BlX43xcRNuuqlXzePgt6b01xajUK -oRr/f8NJTc4PKkWE8fV/fpTanNBLt9fZV7r63VagfVLQstYshHDTlMFJ34us -oHXwOuWEIXTj+8X3w7Vdc1GEx0Jr9vPTXB6iLmv3nsV+n1w3HLBtFCgtYJeO -XD/7d7pNlw4+w9eygKCpV1TzToQSxvfbvfhDlSiebjed2tPXLtvDy+pM/YTH -pBduN1YN4LnC4bhuZaOHmOqUfN9SN29PuHbKJOl6HWlLWXhifJ0fyNbV8Mwf -S6jOfhKkO2SFP5x8VOnsYhRO+Kn/B41P7P2Ap1olP6stJ9y29ZpRwmMvEM7d -Lj92kO4D33+VFLrTHSoVkc0CJemdJ3rcXYwcoefm/CSxsYzq1ytf3Ul3sIUJ -GU7q8V1hhMVmeZfcvGfDPFNfdXRxCNXL65rj5wc7wcpOM55KHkx48QbDpupe -N3CpsU90F9HNPJeekGG0kF/9mHTd5F8qnnr5sOuf5iqHDMcvXX0hLDPM4DiE -ENYfHWSYss0LBntaJxkeFlHtM/dK+dIrHiDObTKoEpI2b/k9zP6CG0x7klbi -NSmE6iVreI3ZTR7w6vIE/cXNYsJjcuzK/7nnDfLYAN74ZinV+PnWucSqLj4I -J9x3je+YN9AbKhcek386WE71DvMlBgNGu0Phc22NtuWkOxu71kZmOEKcmYH+ -l+Xv7y7luOZzxe4gtB4p375DQXXUyweJfxZ6gZZ7UU7QC9KZu2ZeuH/UB5YN -jMv1/ziC6s1FIyHqgC/sjbjJ93UmXdC2Ue3X5AX2++pz3FLoPhS/KqEn2AtM -tA2bR31Lmjdp/IGT9/zA7nBornS3guqpfOMWl5NC9nnmOv+5n+KHWiEYvv0h -5RKqNe48UgXyhJDXoVGueyWU8JGVy5WVNj7gerUoYYZARDVzfrnCjUP3ebe3 -BRNe2/Lbhu3jHUBoK2zObiJ9AepLEofbgE3oAd7+3BCqr195ZrC82wKmDhXB -vnQx4YrbJxbNmvIJpP54pcR0bijVk7M2K5fVu7Hvh+uRBZquwQv82POP5gkF -2xJrdAJh6cPOhLMZYYQFV5N4UQaBsOVIiqP+KhnVku27cjdGBsBwH/vcpcMU -hHE9/1uP2EdQPV0zS1UldYf1W/9Ux2SR7txv0BbIA2YfjqD70R3HOcMP2sCj -L0arUxoVhFNqC7ZEZsyEo28+zqJAupn1YcZ+Pq4vpz0fF503HQbZR7acOi6j -WhdKH6lfm7HnOdeFft1njqRaw+kaDZXmCbqZumUOONTEtAyJJ/3lV14LCtwA -yud+qz+dL6WaqRddocJ6hP7oUeGElwzuTtKrF0BPQ33SKhu6R/OW6eaP8oRP -IhbnXHohIVxrcrbSOMoLNpVth+Sfw6jG8+HamaNJHR2hhLufqJPrY73Z841m -gw8CDEQr3p3XXON+eT9mS1lIKt0Vvg2lp6a7Qcrp30qlYtLScUeqmofZs/U1 -zSu3jbqjVTILop9GJd44JCa84YaOy29t0yBs56R9OWvCqcb1mGm81GlikJww -1s9X16c4DW8jrd5i/p82B2uIyI2WwUW613k+V6lfO8CRtDJ9pYI00x+4QepJ -LafZyeFUt2q8jO975glVttqOYVZSwtrptmXXLvuCeXRE0k/Pwqju6Oz+ak+h -L3Qt+KD0Q7GYcHvSr4Z+v/tARcCbJ3VVKNW4v+H+zzXuz/eU/s7KtjCqFSuu -6/VW+8PXp4cY8BOlhEdPnpF10MsfNuwuTLgjklPN9IkC4N9YLtv0VEEY199M -uwtODzQjqMb19fJGQ86WOTLCzOvPhA3Xvnf+5Y9Qqj9bJ5McOwj9dW0w4fan -Peuu13mz/STNa1ZXJ90RCfvrhDDCm1StLQ4qIXse0oznp9b0Y8ofgiWEPWoG -6idbCqEMRvFdLejG37PU4zu+BMIIM/u4b/8+J6a6NrND7/AKTzgfMsHw8IoQ -wqsXOCuEg97tRzTHvqjb1BM8B2Q7W5yagkLe20Pi73VV904BlYaVulxXRri0 -+5fPMhZaQk/xxubZHymoZn4XO3h2elCz/j+kcf94u42F5dON3xf2A1z/Oq36 -vO4VLzBqeKG8b0Ia69Gmwb+o/zMjnGpv160u3xn5sPsR19hP6mSVq817xVSf -uapsupflBxdcJzhtDQojLM7O2ncmxQ86Yi4YTM6TUo39RJxFRE6il5zwRes/ -iv3vCyD99WaZZbCCaqw3Ov3z+ooekWbylhnwuuVu6ZBXcqqPNtwW8dqnQnXu -voT1h6SEqy35XxXXW8Kp2rWlNbslVNeceqivlW8NlV6ZTocWiAljnoX5Hc09 -S46ZPDE3B9sgA17KtlDCWJ+6lRYqXxrTjXke9udcM7+bGbu+/l/PPdGQG3tU -Thjr4fDcg2WapgqqMV/tKXKXz9hIetn8MbeHxNuz/TPNOfz8JgcVsPUH17Gt -X5zXNHWGdE0tufdiujcFdXRMLraDzxsjlJ8vDieM+RJTB4ZRHau2tH+2wLa/ -7w99b/80JL21zcENDqbEJZrEiQhj/Yz7Kc0DynUdlG0+7PrlGusD7BdoZvK1 -ALa+57qodG3j6XUBYBUkTvAplBHGvBLrEZoxf3jdPg20k0nj/qbztiHKofvW -etVkVwtfdv/gmvlevCHTyLR0xFW6/+0rswWwISOm71Y1aeb3FUDltKE89SMZ -1UyOJwAfBy2XNWMlhPX0REbn8gT9OXII1SOnr9Rrs/CAzcXCstioYMKTjnyT -kPO3CzSPSUzwNqF7xLXh7kUH5kDWpCWOd5+ICDPnrylM3Fas6m2UUJ00qCrN -UseE7T+4xvrwQvg0ud0zunH/Lez5I6HuLuntRdnxd0QAw/zj+Wu2083kKJ5s -/8711t1uxc3DfPtzeul7G/vT68d/SCy4GEZ17NJBrTFST+Br1RisSBQTxn4c -9xeamXXhAXGL17dI/EhjXo7nF829DYtKH953Zs8vrnNOJCcX1zuz65Vm7AfK -5++FW8mkMc/D85fmmNVD2w7H27D9PteC2Wara3Qs+/uaEKo/mfIw/6mXKZvP -cI3nJd7HcK2wGbDxjsgCHq5OV+9/QPcc2YPi56mW8Fp1yOnVFwrCmAelvS4v -e1JEN9PPOLP5F9cOgvZzO7zd2f2Z5pYR/ygtdQRgI2nfe/KelDDer2C9SzPm -LQ0T7FqmSkkX1r/Z0It92Pswmtd++lo9Ws8X3m5zK2/LCTN5rwe82X31BSsj -qGbyent4VlApGxtLGvOWp2WX5O4ZcqpbV5ncSug1gdyUvJZ7WdL/aTx/acb1 -iPkR10x/+q7fphnvM/fw7ztqDBIRZn43H/b+mWbMPzD/55o5P3zA/ay1smW8 -mGrs3wIMK0qHppLep32iUavE5f821qcxotjy5mESwkw/ZgdOVSubb0rCqVa0 -vYyLr3OAmh3ZSuFGGeFTf12Vf3PBGYp1Y9X5EjnVD1IntnQ1ubLnJ9e4n+P9 -Gs3Jb8ojjUECmCH4FXhGpP+SektnTXFn74tpZvofJ7be4joie7rayvHNAit9 -pD7vKyPcF/qkzbx3Ovt908ycb7bsvAfXH9rE8MYFusGBtBeJsCmYauZ88GDv -Y7jG+hvzZZpxP8T1yjXTf7qxeSDN+Hz+L6dX9QoOLZjbfy8roVr9Q+3UNgub -/n2MNPaLSzsXJ+RupPvhriLTc3kmkK43OWn14HDCn164NyUs3xKSMk7K91gr -qI7aVGocnTeXPb+4fhzpH77QzZW9v6QZ8xw8v7hm7mne1Ws0+9qmOMsH+kHj -mLPNI/wkhF/djSzjawnhzy+8wbdS+t5m9nl/EK3RVJgUKqjGehHv27heLddo -cXWYCxN/vN73YwLdmEcEWv6m/noEaXyesV6nefbzioXHDlrApFQ7Vfs1KWF8 -/eRKLcN5uWFUN1gMX38p7l39yTX2Y1hP0szcZ/j1v46YMObH+PzRzOyDQvZ+ -jGvm+wmEDL5RbsXHUsID1MtUsz8KBOPX85yWr5JQ/U2xjqzA7V0ezTXz7/qB -/zS3MoPMUKoxr8B5Ga5xngrzeZpxvq3EV9sgRigmjPftuz/K3hv3QkY13mfe -DexOuBSnIHxsUXT89vF+cKtbxt88QE41k2sEQG+xNs+6TEK4883jeS8tAPKb -lWUDi8RURxw4rvb1F7J5LdfM3JWQrYdpxvkMvL/nGucxSsY/Ve3yVVA9vU8c -flZbCLc7s3IiIkkHji8pqYt8Vz/TbBfUef5ilCtMyA/QqEpTEGb6SWu4/WeT -/vJuOdXM/KQRlATM35e0W0Y4/ieD2TPbZrLPO80nxu5sGxfuwp7/XC9rbVdu -ivVj57lovp/xpvD4xxlKFfudhx8MJlyb6HzjcLwxW4/TvJD3IjlJZwp738Z1 -sOlY5dGds8DM8YOy56kKqnFeb8ezwbIJHhGE8fMf3di7N+Sygmq8X/QadTKx -4jBpzDPS+jSdNVzpZuZ4PCA8ewE820865HiL4d8rPoHCv77ruywjjfMbWN/S -jHkA1kNcY56A8zY0z3lQsmD11y5Mf24lIoz7Jc4r0Yx5LuYZXOP9NK4/mnFe -oWru/JLPXgYTxu8H72tpvt6+Z9nn7YbsfAnXTB9pzPanNON63ZC/gT9kBWmm -T5vLzjvQ7FnVpxc42oV9P1xjf4/9BM1137bqxgi92ftbrnGed6rmTafNyXT/ -tVqsbN4kZM8TrjGfx/tJmvW2fR1vd9qDnU/kGvNSzHtoxvu2o9Fd8ceMJYRx -vu3x0jTViq0hVGMeqV1wuSXdQUQY69eXN3X5uzRCqcbzFefB39eYb+H8Mdc4 -z4zzHjRj/jely0P/ibmMMNa7xnp35DbGCqp3aevnbBvmBCGrEuUfHYogjPMy -OH/HNZNL+MOwwJLcDRPlVO/pE+nN2eYLtdkme38+KyWM87DY/9E88rRrZcR0 -AVvvco3znEYvvPlThVKqMd/EvI9rzNumPfZ3dAii+1zWmFHpFh+zzzvXzPlr -DQ8i3zSiUaFUY76KeTPXi8f0rA/42x2sFx3Wry0Lphqfd+xPuC5d2FY+PloI -w2xOJtTHiqnGeRn8ewWu8X4vU0vCi86je0ZyVPJYW0/2PoFrzCvw7zFoZs65 -2ez9PddYv2CeRjN+nx3iAo2ukXLCeH9mdyyTH2WgoJr5e4o5bD3LNeYZuJ/S -jPNVOP/ONZMHTWGfF5pxnhDnj9/XTP5hz+Zb/wUL5ynC +1:eJyFmn1o1lUUx9UMw0D3rEiFptuUUUbiC4pD7XkqkYpCkCLLENRpJIYRhkSG +2gxLQQq0QhF1JgX5hyL9YWqQxkCojIG5UtEp0zk3dU6zLWu94Oc+8Plx2D/P +w49777nnnPs9r/dWzF86a2G/Pn36/Pbvz3//W3peLKue1Zb/alrb+/1m5AoP +Dbzx4dSj7fn2bV/0rV2TK2wa9EtP9bPt+fU9U+qeWJgrrL/dXTFp9uX8luH3 +b6x7oTif8RF/DN09+fjl9M36xSfHDnxvQHH+wVe+Xz5/Uq6wKzfhz6kzrqT9 +4OfprauqDlcVv+GPb+ZDL+LH416/rXzv6WmFq/lTq44NHrmxOP+vb1d2nltW +5B9+kB9+4N/7QZ9x6FUOe3PJtCNXMvqF/vgHj71aOHQ18cs3661f5LH88Ae/ +yMd69mN/1jPOefE9pt+Cd+86Upzv8zC/lh9+/+6Y+/X4pkuZ9ebH+oce/PA9 +dMCnG6qPtWX0i7zQh3/mwy/zvf7lg7OHVg7JFQbdPLBn4snWzHk9/PZbG/oe +LUn8MN/0mA8/fD9WMWXpgn25wsftK/IT57Zm1mMfzLe9oC++kQd66Bt8w4/1 +bX0yDr+s57x8/ugTerY3xu0/2A+8IJ/lZz14ND3bF/K8033P7aZbJen8oGf+ +4Mf+inHoW37bu/2H/Rfn6/MyfmyfxnfEn8/P9oU+4M/6ZD7nbXu0fMyH35mF +++Yd2Zm1N+gZD6yP/Jv5cXzxfOjDb9n5det3NsTxjPmNubVLysuupXHwYnls +P8ZnhB/HS/sz+0/OE/rGT4QHz/f5MI580LO/tf+yv/Q3+jW+7H+sL9YbH46/ +zGe97dX5hPFtfVr/Hrc/sf2n85q8/8yOxqz/j/AGPz4vnw/+G/pRPmP/bf06 +PzFeoPfJpqpd2+dcS99RvIvwF+Ub1rfjhe3X8cz8s7/Pn3HiqfkFz8x3/nV6 +87I5lUM6En4dP5Y3Tl805o2L+Y/qfjr15LkiXh1fLB/zyXfgz/Ksbh0xfXzN +pcQf/sj2gD/FX7IevOCvfL5rT+6YN25xS0Zf0Id/xuHf/t7+wvbofJz8KPEz +rKn98ZaSjD3bfqP83/7L+IFf82O8+dt4tb/mvDk/+PG38RvVL873wB/27voE +/DEfPDF+buT8Z0blrmfkgT/k5Rt59tT/uqx/oTTZA/hiP+d/4AP8QY/5rId/ +8Aieja/vmvcuqhlbmvBp/nxeyNv645ddo7uaM/mBzzuKb+AH+0Qe51uOd0tr +hnfV9i3NyB/FK+cDPh/yE+zf9bfzRe8X2bP5cf7r+iayP8sf2afz8xS/ZD/g +wecZ1fPwP3zI8cq6xqI/BP+Od67X7M9dLzueVH/23Kp5+0vCfN/f8As/nKfj +AfbN+TEffThfcP3tfBy8uN7yeVv/to8oH7b/hx/Hrwh/9p/Oz52PGC/mJ33f +8Y/4kxO3msorNhfjS82mhgmH1gwqXNg9s7rq3s78U2cH53u2Di50/3z3zUc7 +LyT/ZH9pe8WfoZ/+5882jLvYks73pbp9P1Ru7Ej4gT7jUf/D9YPzG+fP6B95 +nV/YH/NtfzJy++Hc5w0daX/nG+yPf0Ne4rXPF3mxl9frX/tg9IrmTP6Mfmzf +8At/+PNUb/2/T0dGHuefUb+N9Z5vfwC/0Effpk9+zPnaftEX8QR9Ix/00a/z +J+iBT/AF3iP/HdXf+EvXB8RbxqFH/GV/6ON/sOeVtb+3nu/I9k9YDx6cv7o+ +Qh73w+DnxpnaE2PaLyZ54Af9u7/legh9sv/zw+pPl2++lqmn3P+zP3c/0/JG +/S/j3f4c+q5HLD/6AX+9xVf4cfwBf1F/AHt1P8j1r+Mn4/Z3jo8+X+sr6i9F ++ZjjiflxP4Jx5LP92J5dXyG/43WUz7gedj5ne/B61++uX6N6POrPgY9oP+zD +eIjyP/AUxfMon2A/8Gs8uF5wPyTqLzjfYb3t0fHO663v3vpjnu98wvm6803j +3/7E/VHXT1H+ZnrO740/99+wB+Mp6o85nkf2EPU/Xb8bz44Xvi8w3h0vLa/r +8+j+MhqP6lPns1F96PrC8oMn9o/s03g0vl1feb71E8WDqN8f2bf5cTx0fWB/ +E/Vr3X+1PZB/Rf4n8k/On+Df9bT7Zb3d/7p+iuzT/tX0on57ZE/2p1F96f6O +/bHzM+Pd/TbH36g/5/sH5+POH40P35dH93mOf/YvEZ58/vYn+B/y5Sheuh8b +1dfu1/k8vX90/xn1L5zf2t7t352vuT9seR0vov6u+032D1E/OLoPYz/7c+/v +/mXUj4vq6+h+1/zYv0b5UyQP+Wp0P2J/Fd2XW17nJ+4fw4/lczz0+wn7G+8X +3edE+antwfbZW34R1Sfun9jfe310Pxy9r3F86+3+NrrPdj1je6F+tf+L1rs+ +ieotxyPfn0T9e+a7Pk31tvjhm/4b9FzP0v/AHqL45v4X8rk/wP70D+A3woP9 +N/TS/cad/hL4cr1u/LietT3SPzLe0Kfrm+h+1++17M/p59H/8X1U9J4IPCA/ +/oN+kOn5/hR6LQ98U7p6XfGbeId8fg9FPoe+oY++o/tc5x/RexbnD45f0fs1 +5zvRew/rI3qv4PhueoxH/SW/X4n2j96jRfgyPfsz8o3oPZ3fM/q+Orrf9X1O +1E/x+x7XT8Z3FL99H2v8eH/3Rx3fo/5B9H7G/tb+0Pfd7o/4vYb9vfURvRdy +Pm7+LE/Ur3A+4/zCeMSfRPVs+r7jv/w+y/qN3nNG+Yjfk1ie6L2O6fn+yPEG +vLi/PfeRHQdGbbie9Es8YL9/AD7+PGw= "]]}, {}}, {}, {}, {}, {}}, - AspectRatio->1, Axes->{True, True}, AxesLabel->{None, None}, @@ -383,16 +263,17 @@ jPNVOP/ONZMHTWGfF5pxnhDnj9/XTP5hz+Zb/wUL5ynC Part[#, 1]], (Identity[#]& )[ Part[#, 2]]}& )}}, - PlotRange->{{-48.580223, 149.189255}, {-48.580223, 149.189255}}, + PlotRange->{{0, 4.562517}, {0, 4.562517}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, { - Scaled[0.05], + Scaled[0.02], Scaled[0.05]}}, Ticks->{Automatic, Automatic}]], "Output", - CellChangeTimes->{3.764181749939802*^9, 3.766446469555615*^9}, - CellLabel->"Out[7]=",ExpressionUUID->"551a0a4d-9c48-465d-a89f-cd9f99b2a3ce"] + CellChangeTimes->{3.764181749939802*^9, 3.766446469555615*^9, + 3.766449304704153*^9}, + CellLabel->"Out[67]=",ExpressionUUID->"48a7598a-c3ad-4fbe-8b50-040c41a68393"] }, Open ]], Cell[CellGroupData[{ @@ -403,17 +284,17 @@ Cell[BoxData[ CellChangeTimes->{{3.764181409889127*^9, 3.764181442609482*^9}, { 3.764181514100668*^9, 3.7641815148825817`*^9}, {3.764181607119375*^9, 3.764181607403371*^9}, {3.764181758111438*^9, 3.764181767887418*^9}}, - CellLabel->"In[8]:=",ExpressionUUID->"f29f83fe-0d9c-4ec9-a48d-4ac4733e0b37"], + CellLabel->"In[68]:=",ExpressionUUID->"f29f83fe-0d9c-4ec9-a48d-4ac4733e0b37"], Cell[BoxData[ RowBox[{"{", - RowBox[{"116.30393427336477`", ",", - RowBox[{"-", "24.307276719626124`"}], ",", "38.53010771378502`"}], - "}"}]], "Output", + RowBox[{ + "4.336554627397248`", ",", "2.7682587589041114`", ",", + "0.9084274041095914`"}], "}"}]], "Output", CellChangeTimes->{{3.7641814300122833`*^9, 3.764181460376156*^9}, { 3.7641814985945263`*^9, 3.764181515876246*^9}, 3.764181791217758*^9, - 3.766446498975295*^9}, - CellLabel->"Out[8]=",ExpressionUUID->"2dc0ef3f-a14d-4822-bee3-ca2dae6419c7"] + 3.766446498975295*^9, 3.766449306968647*^9}, + CellLabel->"Out[68]=",ExpressionUUID->"0176ee7a-c016-4715-9be7-f468c8a52979"] }, Open ]], Cell[CellGroupData[{ @@ -423,15 +304,15 @@ Cell[BoxData[ RowBox[{"Median", "[", "magdata", "]"}]}]], "Input", CellChangeTimes->{{3.764181613250167*^9, 3.764181618795424*^9}, { 3.7641817603848677`*^9, 3.764181772489642*^9}}, - CellLabel->"In[9]:=",ExpressionUUID->"9c3fe212-89fa-46ec-bed5-0affe4811ced"], + CellLabel->"In[69]:=",ExpressionUUID->"9c3fe212-89fa-46ec-bed5-0affe4811ced"], Cell[BoxData[ RowBox[{"{", - RowBox[{"114.403427`", ",", - RowBox[{"-", "26.689135`"}], ",", "40.33358`"}], "}"}]], "Output", + RowBox[{"4.333628`", ",", "2.761925`", ",", "0.915555`"}], "}"}]], "Output",\ + CellChangeTimes->{3.764181619514329*^9, 3.764181793290881*^9, - 3.7664465007700577`*^9}, - CellLabel->"Out[9]=",ExpressionUUID->"3728d178-440c-4986-b655-f92e30ae6302"] + 3.7664465007700577`*^9, 3.7664493084423*^9}, + CellLabel->"Out[69]=",ExpressionUUID->"12ffca60-31f1-4604-bc28-c70d0430498e"] }, Open ]], Cell[CellGroupData[{ @@ -3851,52 +3732,52 @@ Cell[CellGroupData[{ Cell[580, 22, 253, 4, 31, "Input",ExpressionUUID->"bb7c7b01-0cfa-4c90-a2db-09590ed14465"], Cell[836, 28, 189, 2, 35, "Output",ExpressionUUID->"d714e440-83e1-402e-946a-6ad01a10cf86"] }, Open ]], -Cell[1040, 33, 726, 17, 55, "Input",ExpressionUUID->"9d982e0c-62ac-49c9-8fab-0efac1e57ee1"], -Cell[1769, 52, 1196, 31, 78, "Input",ExpressionUUID->"9e6d0196-dead-4dc5-9762-497e415abc3e"], +Cell[1040, 33, 774, 18, 55, "Input",ExpressionUUID->"9d982e0c-62ac-49c9-8fab-0efac1e57ee1"], +Cell[1817, 53, 1197, 31, 78, "Input",ExpressionUUID->"9e6d0196-dead-4dc5-9762-497e415abc3e"], Cell[CellGroupData[{ -Cell[2990, 87, 213, 3, 31, "Input",ExpressionUUID->"55fc2693-bfc0-4284-878d-723d16de613e"], -Cell[3206, 92, 17339, 302, 370, "Output",ExpressionUUID->"551a0a4d-9c48-465d-a89f-cd9f99b2a3ce"] +Cell[3039, 88, 214, 3, 31, "Input",ExpressionUUID->"55fc2693-bfc0-4284-878d-723d16de613e"], +Cell[3256, 93, 10004, 182, 384, "Output",ExpressionUUID->"48a7598a-c3ad-4fbe-8b50-040c41a68393"] }, Open ]], Cell[CellGroupData[{ -Cell[20582, 399, 382, 6, 31, "Input",ExpressionUUID->"f29f83fe-0d9c-4ec9-a48d-4ac4733e0b37"], -Cell[20967, 407, 404, 8, 35, "Output",ExpressionUUID->"2dc0ef3f-a14d-4822-bee3-ca2dae6419c7"] +Cell[13297, 280, 383, 6, 31, "Input",ExpressionUUID->"f29f83fe-0d9c-4ec9-a48d-4ac4733e0b37"], +Cell[13683, 288, 412, 8, 35, "Output",ExpressionUUID->"0176ee7a-c016-4715-9be7-f468c8a52979"] }, Open ]], Cell[CellGroupData[{ -Cell[21408, 420, 289, 5, 31, "Input",ExpressionUUID->"9c3fe212-89fa-46ec-bed5-0affe4811ced"], -Cell[21700, 427, 298, 6, 35, "Output",ExpressionUUID->"3728d178-440c-4986-b655-f92e30ae6302"] +Cell[14132, 301, 290, 5, 31, "Input",ExpressionUUID->"9c3fe212-89fa-46ec-bed5-0affe4811ced"], +Cell[14425, 308, 299, 6, 35, "Output",ExpressionUUID->"12ffca60-31f1-4604-bc28-c70d0430498e"] }, Open ]], Cell[CellGroupData[{ -Cell[22035, 438, 452, 11, 57, "Input",ExpressionUUID->"ba904e9b-6ade-4303-bb25-888ab020ce48"], -Cell[22490, 451, 304, 6, 35, "Output",ExpressionUUID->"321c1e77-a353-4be9-9632-d9517a3816e7"] +Cell[14761, 319, 452, 11, 57, "Input",ExpressionUUID->"ba904e9b-6ade-4303-bb25-888ab020ce48"], +Cell[15216, 332, 304, 6, 35, "Output",ExpressionUUID->"321c1e77-a353-4be9-9632-d9517a3816e7"] }, Open ]], Cell[CellGroupData[{ -Cell[22831, 462, 501, 11, 55, "Input",ExpressionUUID->"bd9700b2-e7a8-4e50-89dd-94e26b677ce3"], -Cell[23335, 475, 18801, 326, 377, "Output",ExpressionUUID->"453d177f-229c-4e4d-9047-ac6236f40828"] +Cell[15557, 343, 501, 11, 55, "Input",ExpressionUUID->"bd9700b2-e7a8-4e50-89dd-94e26b677ce3"], +Cell[16061, 356, 18801, 326, 377, "Output",ExpressionUUID->"453d177f-229c-4e4d-9047-ac6236f40828"] }, Open ]], Cell[CellGroupData[{ -Cell[42173, 806, 288, 5, 55, "Input",ExpressionUUID->"6e2382e3-be00-4738-b380-b67947d32194"], -Cell[42464, 813, 2188, 44, 239, "Output",ExpressionUUID->"7fa39ef2-0291-4db6-a828-5655fe6d521d"] +Cell[34899, 687, 288, 5, 55, "Input",ExpressionUUID->"6e2382e3-be00-4738-b380-b67947d32194"], +Cell[35190, 694, 2188, 44, 239, "Output",ExpressionUUID->"7fa39ef2-0291-4db6-a828-5655fe6d521d"] }, Open ]], Cell[CellGroupData[{ -Cell[44689, 862, 252, 4, 31, "Input",ExpressionUUID->"f59e178c-131f-4dbe-a224-900a668b0237"], -Cell[44944, 868, 26051, 753, 240, "Output",ExpressionUUID->"005e660e-a3cb-455a-aa38-bfb71605e943"] +Cell[37415, 743, 252, 4, 31, "Input",ExpressionUUID->"f59e178c-131f-4dbe-a224-900a668b0237"], +Cell[37670, 749, 26051, 753, 240, "Output",ExpressionUUID->"005e660e-a3cb-455a-aa38-bfb71605e943"] }, Open ]], Cell[CellGroupData[{ -Cell[71032, 1626, 608, 13, 82, "Input",ExpressionUUID->"af4ea829-9f16-4620-aa00-c20b3bfb3945"], -Cell[71643, 1641, 364, 7, 35, "Output",ExpressionUUID->"324450e0-efaa-4874-813e-26827ab7e928"], -Cell[72010, 1650, 387, 8, 35, "Output",ExpressionUUID->"54298d47-7b8b-469d-b52b-3f8da3de3be2"] +Cell[63758, 1507, 608, 13, 82, "Input",ExpressionUUID->"af4ea829-9f16-4620-aa00-c20b3bfb3945"], +Cell[64369, 1522, 364, 7, 35, "Output",ExpressionUUID->"324450e0-efaa-4874-813e-26827ab7e928"], +Cell[64736, 1531, 387, 8, 35, "Output",ExpressionUUID->"54298d47-7b8b-469d-b52b-3f8da3de3be2"] }, Open ]], Cell[CellGroupData[{ -Cell[72434, 1663, 381, 9, 55, "Input",ExpressionUUID->"cbc8f16e-97a5-475f-8071-d73aef03f302"], -Cell[72818, 1674, 18946, 328, 374, "Output",ExpressionUUID->"eafe3610-11d1-4605-afee-d4fdf3dc26c4"] +Cell[65160, 1544, 381, 9, 55, "Input",ExpressionUUID->"cbc8f16e-97a5-475f-8071-d73aef03f302"], +Cell[65544, 1555, 18946, 328, 374, "Output",ExpressionUUID->"eafe3610-11d1-4605-afee-d4fdf3dc26c4"] }, Open ]], Cell[CellGroupData[{ -Cell[91801, 2007, 288, 5, 55, "Input",ExpressionUUID->"c3a95ca1-f798-4a77-a332-82397c454067"], -Cell[92092, 2014, 10949, 313, 242, "Output",ExpressionUUID->"56e9edd5-bbf4-46aa-81e4-1926050b9e16"] +Cell[84527, 1888, 288, 5, 55, "Input",ExpressionUUID->"c3a95ca1-f798-4a77-a332-82397c454067"], +Cell[84818, 1895, 10949, 313, 242, "Output",ExpressionUUID->"56e9edd5-bbf4-46aa-81e4-1926050b9e16"] }, Open ]], Cell[CellGroupData[{ -Cell[103078, 2332, 349, 6, 31, "Input",ExpressionUUID->"25184dae-8e32-46f2-b4df-4067e177155f"], -Cell[103430, 2340, 72585, 1490, 392, "Output",ExpressionUUID->"361b115e-8f0f-45ab-83e8-7704c0daae6c"] +Cell[95804, 2213, 349, 6, 31, "Input",ExpressionUUID->"25184dae-8e32-46f2-b4df-4067e177155f"], +Cell[96156, 2221, 72585, 1490, 392, "Output",ExpressionUUID->"361b115e-8f0f-45ab-83e8-7704c0daae6c"] }, Open ]] } ] diff --git a/main/e32_driver.cc b/main/e32_driver.cc index 87dc59f..712f1bf 100644 --- a/main/e32_driver.cc +++ b/main/e32_driver.cc @@ -312,7 +312,7 @@ int E32_Driver::ReadLn(char* data, size_t data_size, TickType_t ticks_to_wait) { int read, total_read = 0; while (total_read < data_size) { read = Read(&byte, 1, ticks_to_wait - (current_tick - start_tick)); - if (read < 0) { + if (read < 1) { return read; } if (byte == '\n') break; @@ -332,7 +332,7 @@ int E32_Driver::ReadLn(std::string& data, TickType_t ticks_to_wait) { int read, total_read = 0; while (true) { read = Read(&byte, 1, ticks_to_wait - (current_tick - start_tick)); - if (read < 0) { + if (read < 1) { return read; } if (byte == '\n') break;