paparazzi-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paparazzi-commits] [4742] cleaning calibration tools


From: antoine drouin
Subject: [paparazzi-commits] [4742] cleaning calibration tools
Date: Mon, 29 Mar 2010 08:01:43 +0000

Revision: 4742
          http://svn.sv.gnu.org/viewvc/?view=rev&root=paparazzi&revision=4742
Author:   poine
Date:     2010-03-29 08:01:43 +0000 (Mon, 29 Mar 2010)
Log Message:
-----------
cleaning calibration tools

Modified Paths:
--------------
    paparazzi3/trunk/sw/tools/calibration/test_gui.py

Added Paths:
-----------
    paparazzi3/trunk/sw/tools/calibration/calibrate.py
    paparazzi3/trunk/sw/tools/calibration/sensor_calibration.py

Removed Paths:
-------------
    paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_1.bz2
    paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_2.bz2
    paparazzi3/trunk/sw/tools/calibration/151_ADC_GENERIC_1.bz2
    paparazzi3/trunk/sw/tools/calibration/calib.py
    paparazzi3/trunk/sw/tools/calibration/calib_accel_mag.sce

Deleted: paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_1.bz2
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_1.bz2 2010-03-29 
08:00:02 UTC (rev 4741)
+++ paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_1.bz2 2010-03-29 
08:01:43 UTC (rev 4742)
@@ -1,28 +0,0 @@
-BZh91AY&address@hidden
-\xF6\xE9TQT\xA3\xA6\xA8|sb\x99\xB2v\xE7a_u\x87Oy\x9A:\xF7\x98\xE4\xF70&{8
        \xEF=\xC3ӝ\xBA*x`\x95 
j\x9F\x82L\xA9Fe05H\x9E\x85$\xA1M\xD5(I\x9A\xA9\xE9?\x83\xF8?'\xE0-]$C\xC0c?\xAB\x9C\xB3\xF7\xDE\xF6~\xE0l'1\x98{\xBCْQp߻l\xC9\x9C\x84fS^J\xD61Ɔ
      \xB0p3Β&\x98\xF8\x96BY}\xE0q0h\xC7]L3\xA1\xDE\xE1\x87p\xBB\xCCܺ(\xB0p 
nn]\x88</\xD7\xEE\xCE\xF8\xF2㩳
-\xBBM\xF3\x9A1q\x84eD\x84\xC2<e\x92\xDFHU\x85h\xC9\xC0\xC7\xD3s\x98\x96\xC3|\x854q\xCB\xF6\xD28\xB0p\xC1<\xA4'address@hidden&address@hidden
-\x93\xD4;\xD7n\x86\x8E\x9Czx\xEE\xD9<s\x98\xF7;\xA0\x85\xF1\xE1\xCC3\x86e织K!c\xD0\xEE6\xF7i5۫η\x97tbZ\xD9e\xCDiK\xA1\x82c+)\x83Q\xAA\xEC\xA1nwg\xBB7s\xB0X\x82\xD6{r\x99\x8C\xDA\xF5\xE3n2\xC8\xB6

\xC4\xC5\xEE\xE7\xB7\xE1\xE9'j\xB6\xED\x90jX8s\xCE{\xBC\xDE\xF6\x9Fx\x97\xBEq\xCC\x9AA\xF0^\xEB\xACYI\xF5\xE7\x9E[#\xE2\xCE?r\xCCo\xC1\xF9\x99\xB7\xE8b\xF5\xC61\xBFR\x8Cn\x9A\x87i\xB9Je\xACgk'\x8CZt\x92M\xD3kÒh\xEDݴ\xA3\xE1\x92\xF0\x{1FB0A1}\xFB\x8ELOi\x9C(\xB65<>ܽ\xC1\x93b\xCDLj'\xAA\xC1\xD9\xE4q\x97kDY\xE3\x9Es\xC0\x9Ddx\xC7
       \xE6R\\x86Ks=\x9Ez\xFB\xC8\xDC\xD7      
\xA8x\x93fee1t\xDE+\xCC\xEBDz5\xCA\xE0\xCEf]C\xDDۋ]\xCF\xACu\xFB'\xDA}G\xD7\xEB\x8DL\x87\x81\x98LyT\xAE\x89n-\xA8\x88\xEA\x9FWq\xA4\xE4\xD9\xCD\xDFZ\x8Ef\xA7!\xF3D\xDE\xE9\xEC\xE1\xDDA\xED\xED~\xF7\xA2;\xC7
-\xA6\x8CC}*ھ\x99;\xE1\x9B\xE9y\xF0\xB1\xBE\xCC\xDA:
\xE7\xCE\xE9`\xE0ٌM\xB9\x96%Z\xF1\xB5\x89Cı\xE9v*lS'\xB5]\x95!\xAC΍\x9A\xF73o%X\xEA\xEE\xE3\xEE{*ks\xC5\xDAL\xF2\xF3ңÛ\xB5\xAB.\xB3
-X\xE7\xDAZI{0\x877\x8D;address@hidden/\xBC^R\xBB\xC8c\xD6
-\xDE.˖vH\xEC
-\x8B(\xE6\x9C\xF1\x98\xE0B{35\x94
-ie@,ݚ\xF9J<\xF5\x{167E5D}\x9EQMrُy\xA7\xBBpۇ\xEB\x8F\xE5\xB3=\xA3\x8C\x9D\xB9F\xF99\x97}\xECA\xA2\xCFd\xA7\xA8\xD5I\xDD$A\xBC\x83\xCDgy
    
ڽ\x9EA:p/t<T\xE8\x82A\xD1C\x9B˺\x9E\xE5NMM\xFF]{\xA7\xE4ߺ2r\x85\x8F\xD7T#\xE4\xC9X\xBD|address@hidden)y
-\xCAUU\x96j\xB7}\x8Ee+\x88     
\xED-B\x99M\xFD\x84\xF1\x98\x8C\xFA\x9D\x83\xDC\xE7\xB6N+3\xD8sw\xC4v\x9E2\x8C\xDBk\xE5Q\x8C\xCC\xDB\xFB/}\xC2|y\xF8\xB8cȍH\xC2bn\x9A\xF3n\x91\xB4\xF9,8\xA6D
-!\xE2Lcݖ\xF6\x8Agq\xBEj\x9E{ 
\xC3\xF6\xC9\xE8\xF7P\xB3F\xD1\xE2f\xBC\xF5̑<\xE3Mӫ\xE6\xFB\xC2 
ck\x84\xDC\xC3\x94\xF7\x9CB#‰\xF6%
\xD0i\xA4!\xB3F\xDB\xE2\xCE\xE8q\xA6\xC3\xF5A\xE8+ruJ6q/\xA2\xDA\xDDr\xBC^\x85\xAA\xF2h\xD0\xCC\xC3–\xB9\xD7\xD7\xCD`k\xBD\x99\xE3:\xC7!\xA4\xE4\xAC\xDCpSgA;+\xAE\x9D\x92

\xA4LD\xB7(\xF4\xF4wѸ&\x83\x85\x9D'\xDCG\x89\xE1\xB8\xF7\x95\x81\x9B\xE8\xFE>\xBC\xA50\xE6K\xD7d\xC1\xB1W\xF5\xADOf{|\xEFyzfE\xB7g\xAD+H\xF3\xB32WQJ\xC2{\xAB\x9C\xB7w\x96?_\xAF\x81[\xB7\x90\x87=W\xAD\xDB\xCBk\x94#\x9A\xBD\xB1\xBF\x88>\x87\xD7\xDE׼\xCE<\xE3\xE4_5}\xD4<address@hidden'\xA3`ܹ}Y3\xD95)
-\xF4i\xE4%\x9FYC\xCE\xCDmL\x8D\xBEKp\xA5\x98ϭ\xC1o\x9DD\x9A\xCAtd\x888\xAC\xCF1\xEC\xC7\xEC\xBEkt\xEEu8y$\x9A\xFB\xDA\xEES\x84\x84O?N\xFAo(\xBEi4خ;\xEF\xB3

\xDEaw\xCA\xC7lK_T<\xB4\xA7\x86\xFF\xFEw\xF9?\x90\x9F\xD4a\x82\x96\xD9|\xF6MiW\x92V\x92\xB1ddY3[sj\xBC\xED)\x90I3>\xF5}\xBD\x97\xB0\xD6B
-:H\xF0p\xCF\xD25\x99y,\xD6ar1v\xE9\xC2ڱ%\xA1i\xBA\xBD\x9A\xF0\x98™l\xE1\xB6\xDD21\xD9L\xA1=\x96\xD5\xD39y]\xDC²\xB55\xA3F~S\xA9\xCDl\x92M\xBB\xC56\x9C0G\x9AS\x83\xCF\xECȾQ\xD4\xE3\xBDr\xA8\x8D\xB0\xAA\xAA3\x8E\xE2\xF0'q\xC6\xC6V񻇻\xBB\xBE\xBC\x96\x97\xEC\xFC\xA8\xAE\x80꒍I!\xC54\xF3\xFA\xFF\xAC\xB0j\x84\x80\x9B\x85\xFE\x87\xF1\xDF\xDF\xE1#\x90H\xC8m
-\x91#\xF20TV3\xA4\x83L\xCC\xC44"#\xD1 
\xA75v\xD4\xBB\xE4d\xA0\xF4P\xA8\xB1\xEDƒ{\x96ًլOB\xBDN\xB1CX\xA9\xC2UQj\xB2OI\xEB\xB7\x97\x9B\xEF{z\xCFj\xFD`;address@hidden
 \xC6'^\xC7\xBEG\xDE\xF8\x90da;\x83\xBE\xEE     
jȲ,\x9CP\xEF\xB6ф\x91\x8B'\xF4HD\x8BH\x91 
\xC4\xE2\xF0޹UET\x94U~P:\x91P)(\x90\x901\xC5"A\x8CV
'G\xBC\xD7d\xA9*\xA5UpH\x91X\x91"@\x89       \x81A=lj\xEFI
\xF0\x82\x82 \xF0\xF3\xC0\xF0\xF0/\xB9ِ\x90b\xCD\xC2/
-w"q\x8Et\xF7\x89$\x92BN<w<\x89 
\x9A}\xFCo\xF1\xF6[lV\x83H\x9F~(\xD6\xCE=\xA1&address@hidden 
\x83_q\x86[F\x8FZ0\x91tz\xBA\\xB12\x8D#\xB5\xA2\xA6\xBC\xE7\xEC\x9D\xC1\xCC>\x81eM\xEEX\xEBs\xA7\xAF\x81\xA8F'vr\xB9N\xABMwlj\xCD\xBDrwX\xC2\xEF%ܹ\xAE\xF3}\xD7=\xBFo\xD8b\xFF\\x92\x8A\xAA\x9F!\xAC\x81";\xC6FIC\x8E/˴\x92Hȱ
-\xC7n\xB7I$\x83 c\xB8\x92\x8CX\xC8I\xC0u\x8A\xBD׻Z*\xA3Kh\x9A
&;w\xF3o,\xC8I\xEEL\xE8\xC8I$\xFFN\xF0\xE3\xEC\xF9\xB5#B\x86\x98S\xE3\xD0\xED\xB3\xFA\x9AI$a\x84"\xCE0\xD7\xFB\xA3$\xDCG\x96=(\xA0\x94\xA4\x92\xA4\x87\xB5X\xE6o\x98\xA5\xDDO\xDBُ\x9D\xEB7-7Fv,OFN?
-\xA4\x97k\xD3*Z:o\xB2\xD3|\x8Fd\xADך\xE7\xD3\xC2\xF4h\xAF)\xCD\xCE\xED\xE0#\xB9\xB2QD\x84\x98\xEE1.ddLw\xB7
\x90\x90\x9B\x83\x8Cb\xE9$\x84\x837\xB5ь\x91\x8B?\xF1\xC7x\xED\xB3! 
\x92n8\xE3/\xBC\xC9H\xFB\x80ƺ,$\x8C\xC7w|M\x94\x90df\xE0Ƕ\xF1 
\xC8Ŝ6$\xBF\xC7\x88'\x85>\x85_\x83|\xC6 
g\xBEU\xB6\x8B\xFD\xD1ӫl\x89\xFAAx|\x8E\xA5E\xD3[kO䈭BY
-\x9Ekќ\xEB
-\x93AC\xF8|n\xFA\xF0|\xEE\xEF\x8El\xBD\x9B\xC4\xED\x9B.9<qY1       
.\xD2G\xD9\x9F\xE4\xF1\xF2\xA1Ρ\xEC\x84r\xE7\xA8ξ\xB9\x8F4\xB8\xB4\xD4$\x98N\xF8\xF5U]\Y\xFF\x8E\xFD.\x92
d\x92x\xB2\xB2$g\xBD\xEE\xDB̌\x8A\xFB\xBA
$\x8Cd\xF6?\x85j~}\xF4\x82\x92x(\xEF\x85_"
\xF9\x9B\xF5\x82D\xA0\xF0\x9B\x96۶\xCEEշ4\xFB\xE8H\xB0dg\xD50\xFB\xE9b\xCA\xE6\x9Aٵ\x97Y\x9C\xD6\x8F\xBE\xF8\x90c
 
\xCF\xF88\x83\xF8w\xDF|%\xB1\xFE[\x9AY\xD5sRO{\x95(\xAA\xAA\xA2\xABV2Y\xF9>\xE1a\xFA\xE9\xD2q\xFE\x898\xF8\xC7\xF3\xF1\xC7\xA2\xF0A\xBE\x81\x9C$d\x82\x8C\x90H$#
        H$\xD1%AŮw}5-\xED\xF9\xBD 
Y\xE2q߁o\xAB!q\x85Yo\x93lv\xFB\xBCk*\xEDI$\x8F4gs\xA7\xDB$\xB5\xAF)=\x81\xDC\xE5\xD5\xFD\xF7\xBD\xE5+\xD6_\xF4\xA5\xE6N\x92Q]1\xC0w\xEF\xF4I;\xFD\xEF\x8D'\xEFV\xC276

й\xDA٣\xFA?\x89F\xF7\xDF\x8C\xB8\x8F:hf\x94\xF4\xD3޾.6dj]\xD6\xC3\xB34\xD8\xD3\xCD!\xE5U'C\xCC\xF5}ip\xD89\x92\xD1Fi\xA6d$\x95\x89.eǑQ\xFF\xB8\xE0w\xC9\xF3^\xFB[/S
-p\xE6\x93K/\xC2#\xF1\xC7?\x9F\xBE=?\x99\xD6\xCDSmWi\x8Dup\xEC2\xA8֔\xFD\xE5U_\xC7ww\xBB\xD4|}\xA4/Z\xC3Nul\xB1\xDBO\xB0\xF2\xFD\xC7v\xFBE>Zkf\xD7\xC1\xD2gRԇʢ?p}\xFB\xF7\xAFߩufZΤ\xC66y\xD0Ĵ\x93Z\xD5\\x92\x96\x87\xC0<<\x81m\x9F\xD9\xF7\xDF4\x98\x91\x8C\xA6
 
\xA1\x8Bޚ\xDE9hw\xB7\x93P\xA9D\x9A\x84\xD5_\x9C\xDE{$f\x97E\x96V=\x9Ai[\x88k2<\xDB\xA8\xB1e\x84\x9F\xDF{o\xB1

\x9A\\xDE\xC9q!R&YH\xA3\xB9\xFE\xDF߿,\xF4\xEA?z\xBC\xAB<\xC9N\xDC\xED̀\x85\xD5q\xAAZY\x93w:~\xC8
-\xBCn>\xC1\x9A\xE95\xCDΏpe>\xF7\x8Dj\xD9$\x96\xCF\xEA\xE2\xE0\xD1ּ\xEB/gY\xA6\x98ٓ\xFB\xE1Q\xFC\xDB\xE7銣,e\xAE\xB1\x92\xA3"\x8Dу~ED~\xEF\xFD\xF7\x9F\xBF~-\xA6\x8DJ\xE6ZH\xED!#\xBF
-\xA9{\xD2z0o0\x89\xE6\xEC\xF9Q\xFD\xF8\xEE\xEE\xFD\xEF2}/\xEA&\xB5M\xA1q%."*^>8=\xE3\xE7\x8CN\x9D\xF7ª\xFD\xDCw\xB7\xBEY\xE2\xD85\x87i\x85%>U\xEE\xAFw
-\xD3\xD6/\xDA\xCD-6\xDA\xDC\g\xE5g|p\x9E}\xF1\xEEiI\x87m\xAD\xCCc舌;\xE3\x8FK\xE2}\xA5˙6\xAE\xF2IO\xC7\xE0\xF8$D\x89̠\xA8\x94
K`\x9D8'+O\xE3       F\xB7s\xA9\xA4\x91\x81\xEF\xF7\xFC-HA\x88\x88\x89!#  
"a\x82\x91\x8B\x91\x91\xE5o\xAF\xBF\xB1\xFB\xE2\xCB\xC9U\xFBJ˿\xAA\xFCo\xF1K\xDCX\xAE\xBC\x9C\xFA\xF0\xD3eH\x81\xB1ع\xF7uV\xDE?Y%z^k)\xCB\xC5\xDD]\x88
-\xA2_\xB9t\xF7 \xD7-~\xA2\xEBFؙ;|"\xA3\x89<l\xD0 
\x93\xF4Ƕg\xD3꒲*o\x85U\xFB\xBB\x8E\xEF\xBEw\xD6}\xAA:\xE6\xC93\xB7\xC2+\xF1\xC7q~Oz6\xCBh\x92t\x84!:\xAA:\xEE\xDA9G$\x90\x9C

\x80\x9C/\x9C\x92\x9C\xE2H\x84"H$"\xA4"address@hidden:󤮝!$\xE8\xF4$B$\xC8W\xDB\xE9\xB9!\xF5\x91
        
\x81\xC1l\x879$\x84&\xC5^0$#\xF3\xFD\xF7\xF1\xFB\xF8򒓱\x81\xAF'\x8D
-ՔUč\xB4Q\xBC\xDF\xFA\x86L#\xA4l\x88\x84\xF2\xB2\xA6\xDB\xFAo\xDB\xC7ӿGퟒ4V'\xACFJK
address@hidden(\xCA\xE3\x880\xEA\x87\xFE\xB7\xB6)\xEE\xED\xDD\xE2\x95?[m\x80\xBAs\xFAt\xAE\xAB\x942?=fJ\xE3κu\xF7\xC0֔:O*\xB1\xDD\xD5;\xD7|⦶sݼݭ\xBCi~^4
   $\x80?A\xB9\x83\xF0}\xBC\xA2\xA3\xB8\xDFl\xAA.8\xC0g\xF7\x8F
-\xA8\xF8\xE3|\xFD\xF4R\xFA\xFF\x83\x808?U\xDCq\xF0)\xB9ݸ%U\xA0wqN\xEF\xD7*\xA3C\x8F~\x8B4L"+\xE6\xA8\xFC\x90\xE0\xE1\xBFSAb\x90\xA1\xE7\xC3\xDD\xF1\xEF\xB8\xF7\xC2\xF3\xFCb\xAA$H=YZ\xAA\xDEy̏1a\x92$\x90\x88\xB1\x8C\x92\xB74M\x9Eu\x868}Q\x87\x99\xE3\xCE\xFC\xEA3\xD8n\x9F<w\xDD\xC8r\xC9
 
\xBE\xACM\xA9\xEBSo\xD5i\xF8T\xEE+L\xDAm\xAA\x9E\xEC\xDBٞw\xDB>\x9C"\xB0H%#?\xD8\xC4\xF1_wm\xB0\xA28
       U\xFF\x83\x82\x9F\xEDm\x84\xD8
-my%\xD9\xC3{%\x90\x84:\xA2\xE8\xB8\xEC\xCA"88\xBC\xAA\xAA\xDE\xE2\xF4\xA2\xAA7\x8F\xFE.\xE4\x8Ap\xA1
 \xB7\xA5\xFF\x8C
\ No newline at end of file

Deleted: paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_2.bz2
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_2.bz2 2010-03-29 
08:00:02 UTC (rev 4741)
+++ paparazzi3/trunk/sw/tools/calibration/150_ADC_GENERIC_2.bz2 2010-03-29 
08:01:43 UTC (rev 4742)
@@ -1,23 +0,0 @@
-BZh91AY&address@hidden()3h\xA4\x81o\xBB\xB1\xD6^Y2V`\xD9͕ӓ\x938\xE7n.s\x9A\xA7\xE8\xA5F*~*\x80\x80hJz$)\xAA\x9E\x90H\x89\x82\x92*dR\xA7\xEA\x9E\xD4\xFD\xDD\xC6\xC8|\xBE\xF5\xF9XYi

wd2\xFF\x91Ф\xAAV\xB0\xC5e*c(\xCD9\xBC2\xF4\xB5\xED\xEA8\xBEl3\x99\xBB\xBA\x86\x96\xE1\x85\xC5\xF2\xA6\xD7(V\xBAi\x8B\x90-
-A\xD8R\x84$P? 
LL٫\xDE\xE3\xAC\xE0\xAE\xAF\xB10\x83H/\xB4A\x93\xD6\xC2M/\x97n\xBE\x8AR\x85\x92W\x8Fe\xEC(address@hidden"\xDAG(

zk\xE29bZhn\xA3MA\xA6\x906\xD0rK\x80\xE6\xD7Y!'\x87~\x95\xC8\xC1`\xB9$\xE3Lƫ|[\x81\x85ך\x99\xCF!\x8A0x\xE0\x82=Gqx\x9AŁ\x9C\xB8\xC3(\xAE-v!$!VTuS΢\x9B>\xD3>V\x85\xBE\xF3\xCA^C7\xCC\xF0\xBD\xA1\xEDǪ\x8F3\xDB\xD3m\xC4\xF1w:&\x96\xC0Ӧ\xAFJJ\xFE\xADky
-\xA1\xA1D\x8F\xD2.\x95YbO\xBA'\xEE\xC8\x89\xFA\xE1\xC1\xDE~\xEA#\xA9˼v\xC0\x9ED5\xEB\x94\xE7U\xBA\xD0c꼢B\xC6
 \x81\xE9^\x88}\xB8\xBD\xBD\xAF\xD7\xC7\xCA\xF5p\x8D\xA1v\xEB%]\xF2
-\xCBw95D\xE5\xECZw'\xB3%l\xB3|y6\xB7GXT7\xA6۾"X\xD2\xCDCa\xC1۬\xD1\xDA\xE7\x97N\x9D:\xF7|Y\xCF\x85\xF0\x86s\xC9zu\xB9\x83\x85\x85i\xBE\xD2

\xCA+G+\xC2\xC1\x9B\xD5\xC5\xE1\xC8D񧯼=\xB4\xDB\xE0a\xF9'\x99\xD2yC\xCBrLoI]o 
       +\xC4^\xDF(K\x98\xFD\xD9\xF7ael;address@hidden/'؍\xF4\xF3\xC0\x93      
\xF0\x8F
-\xE4\x995a\xC7i\x86\xEF2:\xE3P\xE2-7'address@hidden:w
-\xF5\xC7\xE7\xBA\xDB\xCC_WJ\x97\xF0  
\xF71_̩\xD3j\x92\xA2\xF4\xF1nu*\&\xB6\x8Dؓh^%\xA7\xDA-\xE6\x9BP\xF2\xC4\xE2
-\xEDhZ\x8CT$S::V\xEB7Nd\xCE{\xDE͍o/\xDD%\xF9\xB4\xD3m\xA44\x90\x84,HI!D\xF8\xDD
 ~}\xF1q\xCFi\xC6\xEC\xCEz\xE4ܺ\xF4\xFB4~\xD7\xE5w\xF2/ 
\x83)address@hidden&{,\x80\xE4\xCD^oA\xE9ņ.\xD7\xE0\xE0\xCC\xF0x\xA8\x88\xEFKE\xF1"ik\xB0\xC3Y\x99iw
-\x86\x9DV\xBE\xA7\xD0\xE3      
uQ\xCC\xEE\x9C\xCD\xF7a>20M\xC0\x87D\xDB)\xBE\xA1\xEB\xE3^\xDE\xEE\xA6]\xC76\xD7\xF4\xE7\xA5\xA4gbY=\xD7V\xE55tc\xCBuU\xD6\xD8ynV\xCC\xE1\xD2&\xE836\xD36w\xAAmbs,\xDF\xB5\xDA\xCF\xE0F
    
address@hidden<Ɋ\xA5{F#\xDE\xF7\xD7\xBF1]\xCC\xC7^gX\xE7\x84$\x9D\x89{hC\xB3\xE3\xDD7
 \x8C\xF9\xD9G\x80\x99
-{\xDB\xD1\xC0\xFE\xB5\xDC\xEA3\x89\xCEٴ\xFAi\xBB\xED\x8FE\x96\x94WVE$\xB8\xE7\xB3\xD9;\xB7:I}\xB84\xA6`\xB5\xEE\xDFs\xBD纞\xE8^L}N\x856\xAEE(\x83\x82\x94D\xAB\x83K\x8D:\x82
       
\xD9/\xE5\xF7\xCF\xE1%R\x9FY\x88F\x96\x9C\xD4\xC0\xA4\x81\x81\xC9-ZZF\xDD\xF5\xE7g5`\xD90\xA4&,\x93,\xAE\xB1\xD8\xC9'\xDF}\xF2\xEE\xDE\xE9\xB2\xEC\xBA9\xB8\xC6繜\xB0\x89ն\xAE\xD9\xD3"\x974ᙽ{t\xED6\xABX\xD4\xE6V\x80'TEfcE\xD432TE\x81\x80\xC1Q!\x92
-\x891\x82\xAA3\x82\x8A\xC31\x82"\xB3
`\x88\x90\xC2EQA8~\xCCp\x83\xD5\xE3\x85\xC7
-Y\xA6\x9F]AD˿D1\xC42=6̂\xD6\xE2\xA8ċ\x84\x8C\xFD\xBB\xB3f$\xB6\xE4\x94       
\xE8Z\x9C
-\xE8\xDF\xE0V4t\x8CP[)\xBD{\\x8Apɥ
fӅA9-!IC\xB4>9\xFEXH0ffaL\xB5\xB28\xCC3\x92\xAA\x88\xD1\xFB\x9AEj\xFFL12K$\x92I'P\xCD"\xCE\\xE75\x92Y$\x82Y$$\x96H$d\x90\x92Y4\xCEmp\xE7(\xE7?"\xA2=HW\x89\xC1\x82$\x82I
 
\Ù\x9B8H\xC2H\xCDA\xD1\xCEi®\\xE0\xBB(P\xBAn\xD1P&\xC1IHĚo4\xB9˜\xE5\xCEJ\xEBR\xBC\xC0\xF1\xF4\x8B\xEF\xA7\xF7\xE9\x97\xF0\xBF\xD31\xB3\xF7\x8D1&y\x88\x8C\xB0\xE2d^ȍ\x98\xD5\xFD\x8B\xECC\xDEr\xBDdw\xB3˭\x8C\x89{ʳ/\xCB='\xBC\xB2O[\xF0[\xE4\xEF\xD5\xE9\xB9|\x97j\xBD\xCC\xF5\xC7\xE5\xEB(\x9D\xE0\xC2D\x91\xCC\xCC.\x96
d\x90f\x94\xC0\xB6\xC9 
\xACp\xFEp\xCD\xA5$\x84\xA3D`\xAB\x8B\x88\xCC\xCE\xA2+K\x85\xA2\xA20b\xD8\xCCCP/\x8F\x9A\xB4dϹ~\xFD
-g-
-\xB9\xF8&\xF6丕/Xh\x9C\xA4\xE6\xEE\xBB]rTf\xDA[\xC9s.\xF2\x9B\xC82\xEE\xD6q\xC6\xB9R\xD7Vt\xD1)f\xCDt\xEA\xD8~\xF7\xD1
 \xB3\xCBʼ<\x8F\xA8L\x9A\xF9ɭg\xB6\xB5G\xE4=\xB5\xB9w\xBDv\xDB\xF5\xF5{\xDF
-\x82\xAA\xCF(\xAC\xA7\x9Ew\xB0z\xB8\xBAf\xEEI6ٜ\xD9W\x91\xFB3\xBEi\xE9\xD8\xFA\xBAl.\x92\x8C\xBE\xE2x\xC3\x9Ec\xE9<ZY)'\x97Z]Wۈ\xAF\xB3\xE4E\xD8N\x8C;\xAE\xB4\xD5X\xF7TT\xE8f\xEB\xCE=\x83\xB6\xC8RR\x9B\xB2\xCD\xCBV\xAB\xD5E\xEE}\x9C\xF7=a,\xCBo.\xEC\x93c\xBB\xBB\xECT|g\x8B\xEFo\xAB&V\xED\xB14\x9BH\xCB\xE4E|\x87\xC2g\xF7~\x80\xF5\x91\xEB\xFC\xBE\xE0\x9C\xC0cB\xD5h\xF4\xC4[
 q\xCBpT9bX2FFDSmA*1\xA9"\xFD\x9C\x8EI       
$*ܻ\xFD\xBF}\xF6mz\xE09[^\xA6\xED\xB3\xEFvy;\x99\xE8\xDA\xEA\xF7)~\xF7\x87\xA3\xE8n\xE7\x81\xD42$\x97[\xD9\xDC8On\xD8#A82\xCF\xDEψ%\xE8\xF3\x82s\xA4\xB6\xDAӺn\x89\xAD\x96\xED7\xA2\xAA\xBD)\x9D\xEB
-^\xED"\xE8\x97v\xD6\xBBv\xF5Tz\x9C\xBC\xEE\xD9M۷Kb鶓r\xB9\xD8"/s\xB3\x9D\xB6\xD6+؄b\xD5Rٰ\xD7Qꪫ\xB8w\xE7M{\xC6cwc\xB1)\xB3n\xE9\xBA.\x91ѽ\xA2*\xB3\x88\xF6\xB7\xA1ݳZ5\xAEͻe\xDBn\xD15\xEDxd\xB1\x82\xCD^V\xDCݻ\x95\xB9M\xB0\x89\xC78u\xC2vp묵\xDA]\xBB\xBBLX{\x89\xF9EQ\xE8r\xBD\xE2/ns\x9Br\xB9\x8E\xEB$\xB8h\x97𾶁|dEQg\x85\xF8\xD8j?\xDB\x83\xE3\xDDM\xEC,=d\xB7"\xB1\x8D\x8C\x8Cl\xA8\xEBfVm\xDD#%\xB1\xB1Bb\x96\x9Ba\xB5v(\xBA\x8C\xE5\xEED\xFF\xA99\xEE\x8E\xDDz֙\xB2z\xB3|\xBB\x9Dob\x90\xBC\xE9=R\xF2)\xAB\xBC\xB2{6x\xD4w1\x97\xCF{7w\xE2\x8Dg\x90\x92\xBEvɈ\xC5H
 
b\xF4O\xA5\xECؖ\xC1\xB093J\x9C୶a\xCE\xBC\xDBn\xBA\xB7wH\xD3]\x98\x830\xD39\xBC\xE6\xEB7Pۓr\x80\xB9UpT\\xFA&">address@hidden;\x90\xBB\xC9%六\x81\xD4\xD7n۝\xCCN\xA4\xFD
     \xF1\xF0\xFB\xFD\xFC\xA77\xBD>\xFE\x82       
\x87L\xEF\xEE\xE7Qd\x84c3#T\x89\xF9+\x8A\xAA%W\xB6\xA2\xE2\xE3dQ\xF6\xD6
-\xA7
-F\xD6\xC0\xBA\xBBN\xA1\xB9"0wjJ5\x94w[ż\xB3\x90}z\xFA;\xD1yc\x97`\x82.\x82\xD9Rl\xD1h&\xD8\xC1\xB6\x8C\xA4\xD9s939\xC7p\xDD\xCD\x82\x83O\xE5S\x87;\xD9#$\xDE\x9CØr\x86\xBB\x81\x9B\x90%\xB9B\x94\x89\x94"K(v\xE6j\xDBm\xB1\xFC\x88F\xE2\xD5sZ\xAAlm\xAF\x90/\x94\xC1\x88\xB4\xD2\xC3\xE2\xF1„\xC5䄅\xB3;\xBB\xA7\xCF*\x90\xD7"\D\xA3\x91\xC5V\xDA]\xB3u\xB2\x8B\x97e\xD614﾿\xB6\xE2훝%\xEB\xEB\xA5k\xA4\xA9\x9D2\xFD\x95\x89\xA7\xE8q\xF9\xF5%
-洖I\xEES"\xB3\x95ͷ\xEF>\xAC\xC0
-
-!芴Q\xC5~\xED\xA2/\xC8b\xCF}\xB4Dy\xC4K4\x81\xE0ݢ#4`fX`%\x90\x86Y`\x89MsJ"\xD0\xD6\x80\x96&a\x88\x99\x9D\xF7\xA5D]\xAC\x84IҗW\xBE\xF8^\xDE\xF3H\xA8\xBE
        
\xF0\x91`\x90"O/\xBBڊ\xD4:ȍ\x91\xD4͢4P\xD8iA\x8C\xFD?\x8F\xDF{ʯ3\xFA&Q 
\xA7\xFB\xCEPB\xD3\xEC\xC7>ϳ߿) 
\xE3$U9%d\x8B"LD\x820c$f5\xD6\xF7o\xDC\xE7\xE3\x9Fs\xE3\xFC?~\xCER\xE9\xEC\xE7\xE8_'\xEC\x93ռ\xC1\xAB\xEC\xA7ٮI\xE3|׳\xDB[\xF6%[\xE0\xF9\xB1\xFEI$\x8A
-e\xA6\x8Bj\xD2\xC3\xDC4\xABE]\x98TE\x8Ab'?\xF5F\xDA*\xB5S@;\xEE\xE6ft\x8A\x8B\xA3\xD58aV"+\xCC"*\xC1T\xC00\xCA.
  Q'\xA0m\xB1\xEA 
k|q\x90\x8F\x88\xFC|\xBCi\xA97\xCFM\xF4\xACe\x94\xEB\x91\xC1U]\x91(\xBA\xD2ر\x8CEV\xAC\xBB&\xDAA]\xDBQ{\xDF{\xEF^}\xB9\xCEc\xEA\xC7\xE8\xC6'\x87\xBD\xE7\xED\xEBΥ\x9E\x92G\x94\xBD\xB5^\xF6\xDB\xF5\xF9\xBFxt\x8Ce\xD6r\xF6\xE4}}\x90o\xE0
-p[\x95T\\xFA\xBBt\xE7J;EU\xF9T\xF0x\xDD""\xD1\xD5\xCC""\xC5\Ne\xAD\xC3.T\xE6\xD5L\xB5TF\xE5%*\xA2\xC7\xFC.\xE4\x8Ap\xA1
 ]\xB2\xBA
\ No newline at end of file

Deleted: paparazzi3/trunk/sw/tools/calibration/151_ADC_GENERIC_1.bz2
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/151_ADC_GENERIC_1.bz2 2010-03-29 
08:00:02 UTC (rev 4741)
+++ paparazzi3/trunk/sw/tools/calibration/151_ADC_GENERIC_1.bz2 2010-03-29 
08:01:43 UTC (rev 4742)
@@ -1,26 +0,0 @@
-BZh91AY&address@hidden,address@hidden(\x9E\xB3\x98\xF7ۛ|=ύ\xF7Ǿ\xDD\xF3zv9\xC0={\x96\xDF{\xC0}{\xCF|\xED\xF3\xCD\xEEzx\xDDة\xE1\x82U4\xA7\xE0\x89\xAA\x80`H\xA7\xA2BIM)OQ\xA2\xA7\xA4
-\x89&address@hidden'F\xBE{\x86\xC1\x9B\xD0\xF8S\x98\x85
-h\x8D\xFE
-\xEA\x85̞H\xEE\xF0I\xE3\xCFxS\xED\xD4 1\x92\xAE߁\xC0\xF7\xEF\xC1!
O[\xD9\xC9}H^\x8E\xE0{\xDB\xF78\xE6M\xFE\x9C>)Ă\xA3\xC1x";\xBD\xE1\x9B\xF5\xC1Å3(\xF7\xC0\x9C\x98\xB0n\x8E\xF7\x83\xB7A\x82\xE6\xACҗ{\xEE(oå\xAD
    cG\xE8\xA7q\xEF\x91aS\x8C
\xFB\xA6\x8D\xF9/A\xF7\xA5\xF6y]\xD0x\xE0q39\x98\xD3>\xA7p\x9D\xA4\x8A[\xDA'$\x9E\xB26s]e\x93\x8A\x93#\(\xC5*:w3S\xA8R\x96\xA4T\xD4a\xF1\x99\xD6\xD80\x86\x89$8\xC3\xF6ٞW/\xB9\x90q4\x9E޽\xBC[\x9E\xF3\xEB\xF0>\xF2\xDE\xFC`\xA5Qn::\x8E\xF8\x81\x9FQ\x87|address@hidden
 
hLI\x86̊\x84\xC4HC|殸\xDF\xEF5ߝw\xCE\xC6\xEFoq\xC1\x8E\x8EfGnV\xE6bj\xB7΍Z\xD2#\xC1\\xEEKr\x86\xFB6s\x83\xF2\xF6\xE5\xB2Ϟn\xEC\xA4I\xB5\x8A\xF6\xE6\xC7>;\xC6{i\xF2\xED(\x97\xB7B\x99\xED[\xE6\xA8]\xD0\xC7t\xFB\xCBi\xA6H\xB4\x94Q\xFA\xB6\x8Cra\xF3\xD66\xC8\xFBz\xC5g\x875\xB9\xEA=,\xF6\x8F\x8ABU\xEB+W\xAD
-c\x93Ì#Yy\xE6\xF4\x9C\xA3\xD8ϻ\x89ֽ\xBC\x88\x{153A54}_U\xC1w\xBC\xB1\xC5T!\xB2\xF2\xCC\xE9\xD9\xE1Z

n\x8F%zw{\xF1\xF1{\xED\xE8ԣ\x8F\xBA\xA3\xCC\x9F\xCFْ2\xEElVī\xF66*\xDE]\xD0l\xB5N\xF4Ƚ\x859\xDE\xB9٫*OL\xF4;\xC2\xE6,KB\xA6I\xB5ף/address@hidden@\xA0\x89\xBFOg\x96\xB2\xB3<m\xC1\xA6g\xA2Xڼ[\xAD\xEAF\xFA\xCAv\xFA\xCE\xCDu\xC4%t)\xC6
-r\xBFpv\xA0{\xD7s\xF6Z\xFBNj\xECR\xE6\x87CՎZԙ\xDE\\x87\xAC\x87\xE6\xA6\xDD]\x9E\xB6\xB5\xEC\xAAM\xF6\x83\x9A\xFDhZ[\x86\xB6\xCDERS\xF3\xA2\x895FX\xB9!\xBF\u^\xA6]\x98F
      
\x9Ct\xAB\xC2&}\xEFG\xB5\xCC\xF6e[\xBB\x90\xBE5C\xEC\xAB<\xF5\xDC72`Z\xBD\xCBz\xB2\xE4\xB9\xA9\xFB\xD7'r\xD2"\xAFt\xBC\xE6\xB9f\xF9\xF9\x84\xF8vNG]}\xB7\xC5kH\xBF<\xF6\xB4\\xA7\x94\xE3\x98؊\xB3\xBE\xD1e\xA1\x94\<\xCA\xF15\xA4/G\xF6l\xA9w\x9A\xDEõ\xF3n];8\xA4r\xEBE5h\xBCV\xAE!<\xF4\x94\xEAV\xB7\xE5\xB4k\xCE"/u\xDBZo
 \x80\xD6UK$=&\xB6e\xFF{\xE300
\xC0\xC0\xB6o\xD4\xDFs\xF9Sz\x92PҖ\xA4E\x90Tn˝\xA1#I    
\xA6\xC1Wi\xEC\xD7>\xAB6Hh\xA6\xE2\x9F\xCB9)\xA7j\xDDVts\x95\xCCG\xE8\xD3,p\xA2\xFC\xD93\xC4L]\xF2\xA1\xF6g\xCCqGPGM\xC03\xF9\xAA!NT\xCF{z\xBE\xE5Yc\xBB\xCB\xCAVDZd!\xFC\xD0O}"\x953Jr,\xACXJ\xD0<\xCAh_F!B\xB0\xE5{[HqA
-=<\x9E\xB4l\xB7\xD6\xEEo\xE6A_3\x8A\xFE:\xB1"\xAE_N\xCC\xF9\x8AA\xE5\x8C\xC1\x97\x8B'J\xCA\xC8u\xF1\x8FX\xAD\x8C
 \xF5\x819\xFBQ\xEE\xEFo\x96\xAE\x961\xEC\xCE^s\xE8K\xECd\xC5xc\x95S\x85 
\x8A\xE2Q\xF2\xF7\x88\xCC(E\x89\xA6\x93\xE9[̋g       \xD0\xD8\xC2\xC9#N
-\xE6\xD0<\x91F\xE2啱Gsp\x92\x80N\xAC*\xAE\x97\xDC)@\x86J8   
ή\xEE]5\xC4phyU\xEE\xE6\xFBA݂Ť\xA6N!1\xA1mm|
эܳ\xD5\xE0$u\xD4D'\xC5aƖ<G\x84\x9F)\xA1\x89;\xD2K\xC7\xC4vZ\xBCa\x92<\x91\x9EK\x8B:M$\x8D\xE2I\xC399\xE7`\xB9\xF7\xD1\xD98\xE4\xFD9\xEB/i#\xF1I\xBC\x9FX
,\xF4i\xBE¶/q\xC67\xD3\xDD\xEC\xE75\xE7/
-\x8A 
address@hidden&\\xA3s;ć\xAF\xE9>\x9CW\xC5Ҟ\xC7\xE7\xE0rtZy\x863w=C˸.\x9F\xBD\xDAď^\xF2\xFD.2AR\xFD_?\x8F\xB94TR\xB0\xFD\xEFN('?݁E?~\x90\x9F?A\xF7ޟs\x97\x87\\xDC\xC5~\x92=La\xF7ߺO\x961\xCC2\x8E\xF0&9\xB7\xE6\xF3m\x94\x86\xC7m\x8B\xE81\xAAM\xC6\x84+%f~\xAC3\xF5-\xB5n(\,҂\xD6\xA8\xEAV\xB4E\xFA\xA4-Ŏ\xE8\xB9\xE0l_\x8D\xEBk\xCEf[a\xC3r)\xBAQTYX35\x95\xE3\xBA\xF0\x94\xDBF[\xD8\J*K\x9B\x91F\x8C\xDE]\xE7\xEF\xBD\xBB\xC1~gO
-\x88\xFF\xB3>=\xDDਈ\x8A\x88\xE8\xC1Ue\xF74\xE2*""\xBC\xCBj\x88\xADH"#s3\x92\xAA#L4s%EK\xE0\x8E5\xDB\xF4\xEEx\xE3\x83"\x96\xEFsn\xB7\xC0\x8F
 
\x81$\xE8\xA8A\x92\xE2\xB9f\xCBy\x8AڭF\l\xA6ؚ\xC8y\xF1f\xBD\x92\xDB\xDD\xDB"address@hidden,L
\xE6KV$03\xF1$I$\x92K&\xA6\xEFF\x95\x95\x9A\x9D$\x92L\x92\xC1
\x92\xB2C$\xC9!$$\x9A\xEFU\x86eaf\xA6$2A\x91$D\x90Ih\xBD\x95\x95\x95\x9DMGȐ\x86QJX\xB2\xA5X\xA5H
 \x92H\x83\xB1\xDC\xEC\xCA\xCB5\x92RI\x92d\x92JId\x96     
$\xA4\xD0.\xB73\xD9"J%
-\xDD\xCC\xCA\xC30\xB3BJ\x92\x945n\xAD\xCB2\xB2\xCD   
%\xC0\x8E\xE9(\\xF3\xD1.\xE1\xE0\xD3\xF6\xAA'q\xF9\xF3\xA5V\x8D\xA8\xB2\xC9(\xC11Ң\xE4\xA3jl
-U\xB2\xC4S\xB2~m7XfAE\x8EX\xABʻ\xF5{\xDA+s;\xAE\x9B\xB2)\x9D\xC7r>\xA7\xE3;\xBB\xD9ؙz\xA9h\xD2
-\xCEr#\xF7.\xEEW\x9D\x93\xC5\xC9K\x98̘\xF5X\xDD%d\xE8RVsY>\xF8\xF1\xF5z\xAA\x8B\xF4R:\x89tTD\xE0&f\xE6e\x95\x81\xB4H0\xA9+a6\xD3l
-$w-Ƙm&\xB103\x80{\xAC\xD2\xE2\xEE\xF2Es7"\xBD\xE0\xBDH\xD7x\xAFV,\xDC\xC1\xE2\xF21\x82[\xF7v\xC4\xEFV,XJa\xDC\xECX\xCBz\x96\xADt\xBA\xEB
-%$M
H\xE6&\x8CI6\xA2R\x90Ú\xEDY\x96\xE5\xCC\xE2&f\xF2&\x9F\xBC"\xA1\xE9fN|&H\xCF\xE7\xD3k\x89\xDBV\xF1
 \x8Em\x9D\xE3$\x873Y\xDB\xE3x1\xD7dQ(\xC2Y'\x9D\xD7w\xEE
-{\x99\x9D\xBE~\x80rڟ\xE1}\xDAV1\xD3Yž9\xADU[\xAB$頀\xC88\xE5iۓ\x97\x9D\xE3\xD1l'\xEA&ˑ{\xE3\xD9\xFA0\xEBb6\xC6\xF2\xEB\xED\xFE\xB0dgN\xE1\xD3Ky
"8\xD4J\x9C       \x82A)
-\xC8$A-\x84\xC2R\x96Ymm޽$\xC8\xC9\xFF\x9A'c۞\xBB,٭\x96\x90\xB3\xD3Č\x8C\x8C\xF6\xC7ݧ\xAC\x8D[kb0.\x9B\xD3\xD2I\xB3ن\xEF;\xEB
-خ.\x96\xEE\xCB5˗-\xCF>address@hidden:[
-cMe\xEB\xE2FA\x8B<\x93\x87d\x96\xDFY\x8D.͊Il.\xAC\x8E\xE9\xD6\xDAa\xB4\x98Odtn\x8AJ%}χ\x87\xC0"@\x86?\xB8p)h\xC6U\\x94X,
 \xA2\xA2C&|\xC8eƚ\x92/K  A
-\xF6;\x99\xF3X\x92~DӖJ\x90\xA4 
\xF0\xF7GӼg\xA7\xB7\xA6\x8Dۏ\x9D\xDC\xEFw\xAE\xEC\x95\xE6k\xA0\x8Ani\xC1\xDC'Wrɤ\xF7r\xAE\xF1{\x9C\xF3\xB9%=\x9E\xB9F\x97-\xE9\xDE\xF8\xFA\xAD\xD6z\xAF*\xBE\x8A\xCB\xB1\xBB>\x9F\x89,\xFF\xB3\x80fd\xF7\x92xf\xCB鵯\xBC20dgC
\xF9\xCC\xC3wg\x8BK&飰w\xDEd! Θ^\xBC,\xED\x9C\xEB 
\xC237\xAC\x8F\x9D\x96m4f\xBBNoIF2\x8C3C\x95\x9D\x8Cg\x9B\xB6\x94\xBD\xF4db\xC6J\x91\xE6A\xC8v\x8D&\xF3\xBD"\xC6H\xCD3\xB8u\xEC\xD96h\x96\xED\xEFjŌ\x8C\x9B\x9A\xF5\x8C\xED\xEDI\xB1\xB6ko\xF1\x86``wތY\xFBǸ|}ue}\xEE\x8E.[\x8B\x960Y\xA7\xF7$\xF0&\xA6\xB4\xE4\xF4\xF5\xAEUh\xA4\x91Hԫ\xB7c\x9Bv\xECܑ\xD9i\xBB+U\xB0풼I(\xD2\xCCx\xA3\x84b)\xB2Ԫe\x9Cijc?\xA6Wr\xEE\xDE

>\xDB\xC8\xE2\xBA`q=\xEE\xEC\xB8\x9C\xC4Z\x9D\xD5px\x9A\xED\xCD\xE9\xC9\xF7'\x99g\x94}*\xB59\xAC\xDF5\xAA\xF3y\xA7\xDFu\xA0\xB88\x97\x99\xB1\x8C|I\xA4\xD2a\xE3\xC8wEc/Nљ\xBD'.
  
\xDBN"*\xFF\xB0̆\xE8\xCEۍgoQ;\x81\x99Ê\xE8\x8BS\x8A"<30\xDC\xE1\xD4\xD9I\xD8Ί\x88\xF7
\xCD\xEF7\xBA$\x8D\xB3kvKY
-訏s
?\xB0:{\xBE\xA7Vk3\xCA*\xF8\xC3\xD9y\xE6d\x92I\xC5^\xCC=\x9E\xDE\xDB\xEBmu\xA6\xAC\x8A>\xD5D|\xBB\xF7\xCFp,\x9F\x9F~\x8A\xBB\xA6\xF5\xBF\xEF_\xC1\xF1m2\xAA\xB8RL\x96\x91\xBBEV\xE6K\x847
-\xB6\x9CxN,\x89\xB8\x99\xA3%\xAEK+\xA2Bjf\x8B
-$BLYMu\x97R\xB4\xB8e,L\xAC\xA2\xB1\xD3#\x89\xB4\xD6-?\xBE\xFC)9{\x83\x89\xAE\xDE%+u\xAAG\xBD\x9B\xA8\x95\xDBi\xB4\xA9\xC9H\x88\xD3\x97\x8F\xAB\xB5.\xEE\xA5
 \xE9\x94\xBD\xAA\\x9A㚾\xF7=\xDDQ\xDAJ\xF6NB\xA3V\xC7,\xBC( 
\x82\xF8l\xF7NNȕ"y5f\xFBED}\xE3\xF7\xC7Il,\xDBV\xEC\xB3\xDCQ\xA6\x9BxZ\xDA\xCEUG\x817\xB3\xB5\xB2\xB7\xB6\xEE\xE6\x9BN\xC5U\xF1\xEC\xCE9\xD3\xCEh\xC1S\xDA"\xA3\xEC\xC6\xF7\xA7\xAD\xF3m\x92*o\xA8\x8A\x8F\xB0\xCC\xC3\xC0\xCE\x{9C854E}\xCD\xD8=Q\xF6fx\xCC\xEF{\xCA{]\x89\xBB[c\xBBo\x91\x9E\xC37\x83\xE8\x9C\x{1E020F}\x839\xEC\x95>\xED\xF3\xD7\xE7\xE8T\x98\x88\xD5f\xBEO^\xC5˝k:\xB8\xBAڗvi"\xDA\xE6\xCA\xEE\xCB
-\xB7$\xBD\x97ޞר:X\x8E8\xC8(address@hidden      
\xED\xB56H\x8E&\x8D>\xD9\xDD-ܹ\xC33\x9BpL\x9F>S\xC8Q]Ճ9\xC78\xEC\xDD\xCEoc|\xED\xF6\xED\xEE\xF7\xDE`
 \xB3ʐI%\xF1"\x80=\xAE\xEC\xDC\xE1QW^snW\x97\xBA\xDEUpP?\x88  \x90    
\x94\x99                
e=\xF1;<\xBC*\xA2\xF0O!fR\x85\x82`)bO<\xEE\xBB"*\xEC{HbQ\x90      \x86   
 \x86\x99b;z\xD2".\x93e\xA5\x99\xA4\xA0\x98
-;\xF0\xB9\xE9\x97U\xE9\xEDDE\xC7\xD8\x86"\x9A\xBD8y\xCF8TG8D\x9Cy\xD9\xDDUiܓMͶݪ\xABԆ\xE5\xD3\xFAJO_<\xE3\xF4\xA4\xC7\xC2k\xFCt7\xA4\xDBrI\xB7Q\x85\xEE3,\xCB"ۘ\x9E!\xB6\xECڬ+\xB5D\xD2\xEE\xC6H\xC3a\xC7rFKd]c\xA3\xB7De\x93{j\xEF'

3ցz\x9F\xBB\x8DZ\xC0\xA3\xCE\xF5.n\x92'\xC5q\xCB~\xDD\xCC:w\x94}\xDB\xEB\xE4\x91a>e\x97e\xD0Z{\x9F\x86\xF7I\xDA\xDFr\xF7\xC1<\xE6s\xDA\xF0\xE7|\xF3$\xBC\xC2I\xF7\xE4IH\x8A\xBE\x9D\xF7TE\xA8\x83\xBAu\xA4U]y\xEE\xE9U\x9C\xE3œ\xEEgUG\xBBڎ\x8A\x88\xEE\xCA*#Kۢ\xA9\xA6\xF3\xB0\xE7\x83\xCF\xF1\xFDG
       
\x84\xC6Ut\xF2xWٝK\xAAD\xE7\xCD:\xDC\xED\xCF\xCDf\xB6i]l\x82봛!MVm\x86\x8E欰\xB4\xD7tۊݥT٬sl]Q\x8C\xC6
-\xBB\xF5W\xAB*\xAA\xEFշ\x839"\x8C\xBE\xE8Vj6\x99~IyK\xA8\xE7&\xE7=\xAE\x89+\x90IBtBy\x89\x9E\x90\hܜ\xA7y\xD4z\xD2\xEA\x9D\xE2\xB2>)\xA5>\xF5|~Ͻg5˞\xDD[\x8D\xB5U~\x92;:\xDE\xF6\xAA\xB7i\x9D\xBDmU\x8A\x9Ak֓Q\xA2\xEB\xE78a\xE6܄T|6芮\xE0i*\x8A4ʹUWI\xFE.\xE4\x8Ap\xA1!\x98k\xFE\xC4
\ No newline at end of file

Deleted: paparazzi3/trunk/sw/tools/calibration/calib.py
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/calib.py      2010-03-29 08:00:02 UTC 
(rev 4741)
+++ paparazzi3/trunk/sw/tools/calibration/calib.py      2010-03-29 08:01:43 UTC 
(rev 4742)
@@ -1,151 +0,0 @@
-#
-# My first attempt at python
-# calibrate accelerometer
-#
-
-# http://www.ngdc.noaa.gov/geomagmodels/Declination.jsp
-
-import re
-import scipy
-from scipy import optimize
-from scipy import linalg
-from pylab import *
-
-#
-# parse the log
-#
-def read_log(ac_id, filename, sensor):
-    f = open(filename, 'r')
-    pattern = re.compile("(\S+) "+ac_id+" IMU_"+sensor+"_RAW (\S+) (\S+) 
(\S+)")
-    list_meas = []
-    while 1:
-        line = f.readline().strip()
-        if line == '':
-            break
-        m=re.match(pattern, line)
-        if m:
-            list_meas.append([float(m.group(2)), float(m.group(3)), 
float(m.group(4))])
-    return scipy.array(list_meas)
-
-#
-# select only non-noisy data
-#
-def filter_meas(meas, window_size, noise_threshold):
-    filtered_meas = []
-    filtered_idx = []
-    for i in range(window_size,len(meas)-window_size):
-        noise = meas[i-window_size:i+window_size,:].std(axis=0)
-        if  linalg.norm(noise) < noise_threshold:
-            filtered_meas.append(meas[i,:])
-            filtered_idx.append(i)
-    return scipy.array(filtered_meas), filtered_idx
-
-#
-# initial boundary based calibration
-#
-def get_min_max_guess(meas, scale):
-    max_meas = meas[:,:].max(axis=0)
-    min_meas = meas[:,:].min(axis=0)
-    n = (max_meas + min_meas) / 2
-    sf = 2*scale/(max_meas - min_meas)
-    return scipy.array([n[0], n[1], n[2], sf[0], sf[1], sf[2]])
-
-#
-# scale the set of measurements
-#
-def scale_measurements(meas, p):
-    l_comp = [];
-    l_norm = [];
-    for m in meas[:,]:
-        sm = (m - p[0:3])*p[3:6]
-        l_comp.append(sm)
-        l_norm.append(linalg.norm(sm))
-    return scipy.array(l_comp), scipy.array(l_norm)
-
-#
-# print xml for airframe file
-#
-def print_xml(p, sensor, res):
-    print ""
-    print "<define name=\""+sensor+"_X_NEUTRAL\" 
value=\""+str(int(round(p[0])))+"\"/>"
-    print "<define name=\""+sensor+"_Y_NEUTRAL\" 
value=\""+str(int(round(p[1])))+"\"/>"
-    print "<define name=\""+sensor+"_Z_NEUTRAL\" 
value=\""+str(int(round(p[2])))+"\"/>"
-    print "<define name=\""+sensor+"_X_SENS\" value=\""+str(p[3]*2**res)+"\" 
integer=\"16\"/>"
-    print "<define name=\""+sensor+"_Y_SENS\" value=\""+str(p[4]*2**res)+"\" 
integer=\"16\"/>"
-    print "<define name=\""+sensor+"_Z_SENS\" value=\""+str(p[5]*2**res)+"\" 
integer=\"16\"/>"
-
-filename = 'log_accel_a2p'
-ac_id = "158"
-if 1:
-    sensor = "ACCEL"
-    sensor_ref = 9.81
-    sensor_res = 10
-    noise_window = 20;
-    noise_threshold = 40;
-else:
-    sensor = "MAG"
-    sensor_ref = 1.
-    sensor_res = 11
-    noise_window = 10;
-    noise_threshold = 1000;
-    
-    
-print "reading file "+filename+" for aircraft "+ac_id+" and sensor "+sensor
-
-measurements = read_log(ac_id, filename, sensor)
-print "found "+str(len(measurements))+" records"
-
-flt_meas, flt_idx = filter_meas(measurements, noise_window, noise_threshold)
-print "remaining "+str(len(flt_meas))+" after low pass"
-
-p0 = get_min_max_guess(flt_meas, sensor_ref)
-cp0, np0 = scale_measurements(flt_meas, p0)
-print "initial guess : "+str(np0.mean())+" "+str(np0.std())
-print p0
-
-
-def err_func(p,meas,y):
-    cp, np = scale_measurements(meas, p)
-    err = y*scipy.ones(len(meas)) - np
-    return err
-
-p1, success = optimize.leastsq(err_func, p0[:], args=(flt_meas, sensor_ref))
-cp1, np1 = scale_measurements(flt_meas, p1)
-
-print "optimized guess : "+str(np1.mean())+" "+str(np1.std())
-print p1
-
-print_xml(p1, sensor, sensor_res)
-
-subplot(3,1,1)
-plot(measurements[:,0])
-plot(measurements[:,1])
-plot(measurements[:,2])
-plot(flt_idx, flt_meas[:,0], 'ro')
-plot(flt_idx, flt_meas[:,1], 'ro')
-plot(flt_idx, flt_meas[:,2], 'ro')
-
-subplot(3,2,3)
-plot(cp0[:,0]);
-plot(cp0[:,1]);
-plot(cp0[:,2]);
-plot(-sensor_ref*scipy.ones(len(flt_meas)));
-plot(sensor_ref*scipy.ones(len(flt_meas)));
-
-subplot(3,2,4)
-plot(np0);
-plot(sensor_ref*scipy.ones(len(flt_meas)));
-
-subplot(3,2,5)
-plot(cp1[:,0]);
-plot(cp1[:,1]);
-plot(cp1[:,2]);
-plot(-sensor_ref*scipy.ones(len(flt_meas)));
-plot(sensor_ref*scipy.ones(len(flt_meas)));
-
-subplot(3,2,6)
-plot(np1);
-plot(sensor_ref*scipy.ones(len(flt_meas)));
-
-show();
-

Deleted: paparazzi3/trunk/sw/tools/calibration/calib_accel_mag.sce
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/calib_accel_mag.sce   2010-03-29 
08:00:02 UTC (rev 4741)
+++ paparazzi3/trunk/sw/tools/calibration/calib_accel_mag.sce   2010-03-29 
08:01:43 UTC (rev 4742)
@@ -1,83 +0,0 @@
-//
-// compute neutral and scale factor from a serie of idealy homogeneously 
spread raw
-// measurements components, assuming the norme of the measured quantity is 
constant
-//
-
-clear();
-
-exec("calibrate_utils.sci");
-
-ac_id = 15;
-//log_name = '/home/john.stower/paparazzi3/var/logs/08_11_24__12_53_41.data';
-//log_name = 'log_x1_mag_raw';
-log_name = 'log_accel_mercury3';
-//log_name = 'log_accel_booz2_a1_5';
-
-
-
-sensor_type = SENSOR_ACCEL;
-
-select sensor_type
-
-case SENSOR_ACCEL then 
-  sensor_name = "ACCEL";
-  ref_norm = 9.81;
-  resolution = 2^10;
-  reject_noisy_data = 1;
-  threshold = 4000;
-  size_avg = 10;
-
-case SENSOR_MAG then
-  sensor_name = "MAG";
-  ref_norm = 1.;
-  resolution = 2^11;
-  reject_noisy_data = 0;
-
-end
-
-
-// read log
-[time, sensor_raw] = read_log_sensor_raw(ac_id, sensor_type, log_name);
-
-if 0
-pause
-for i=1:3
-  for j=1:length(time)
-    if sensor_raw(i,j) < 0
-      sensor_raw(i,j) = sensor_raw(i,j) + 2^16;
-    end
-  end
-end
-end
-
-// plot raw sensors
-scf();
-display_raw_sensors(time, sensor_raw);
-
-// reject noisy data
-if reject_noisy_data
-  [time_filtered, sensor_filtered] = filter_noisy_data(time, sensor_raw, 
threshold, size_avg);
-  time = time_filtered;
-  sensor_raw = sensor_filtered;
-end
-
-// compute intial calibration
-[p0] = min_max_calib(sensor_raw, ref_norm);
-
-// plot initial guess calibrated sensors
-[mic, gmic] = apply_scaling( p0(1:3), p0(4:6), sensor_raw); 
-scf();
-display_calib_sensor(time, mic, gmic, 'initial calibration', ref_norm);
-
-// optimise initial calibration
-[p, err] = datafit_calib(sensor_raw, ref_norm, p0);
-//p = p0;
-printf("datafit error : %f\n", err);
-
-// plot optimized calibrated sensors
-[mfc, gmfc] = apply_scaling( p(1:3), p(4:6), sensor_raw); 
-scf();
-display_calib_sensor(time, mfc, gmfc, 'final calibration', ref_norm);
-
-// print xml for airframe file
-print_xml(sensor_name, p, resolution);
\ No newline at end of file

Added: paparazzi3/trunk/sw/tools/calibration/calibrate.py
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/calibrate.py                          
(rev 0)
+++ paparazzi3/trunk/sw/tools/calibration/calibrate.py  2010-03-29 08:01:43 UTC 
(rev 4742)
@@ -0,0 +1,71 @@
+#! /usr/bin/env python
+
+import os
+from optparse import OptionParser
+import scipy
+from scipy import optimize
+
+import sensor_calibration
+
+
+def main():
+    usage = "usage: %prog [options] log_filename"
+    parser = OptionParser(usage)
+    parser.add_option("-i", "--id", dest="ac_id",
+                      action="store",
+                      help="aircraft id to use")
+    parser.add_option("-s", "--sensor", dest="sensor",
+                      help="sensor to calibrate ( ACCEL or MAG)",
+                      action="store", default="ACCEL")
+    parser.add_option("-v", "--verbose",
+                      action="store_true", dest="verbose")
+    (options, args) = parser.parse_args()
+    if len(args) != 1:
+        parser.error("incorrect number of arguments")
+    else:
+        if os.path.isfile(args[0]):
+            filename = args[0]
+        else:
+            print args[0] + " not found"
+            sys.exit(1)
+    if options.verbose:
+        print "reading file "+filename+" for aircraft "+options.ac_id+" and 
sensor "+options.sensor
+    measurements = sensor_calibration.read_log(options.ac_id, filename, 
options.sensor)
+    if options.verbose:
+       print "found "+str(len(measurements))+" records"
+    if options.sensor == "ACCEL":
+        sensor_ref = 9.81
+        sensor_res = 10
+        noise_window = 20;
+        noise_threshold = 40;
+    else: # MAG
+        sensor_ref = 1.
+        sensor_res = 11
+        noise_window = 10;
+        noise_threshold = 1000;
+    flt_meas, flt_idx = sensor_calibration.filter_meas(measurements, 
noise_window, noise_threshold)
+    if options.verbose:
+        print "remaining "+str(len(flt_meas))+" after low pass"
+    p0 = sensor_calibration.get_min_max_guess(flt_meas, sensor_ref)
+    cp0, np0 = sensor_calibration.scale_measurements(flt_meas, p0)
+    print "initial guess : avg "+str(np0.mean())+" std "+str(np0.std())
+#    print p0
+
+    def err_func(p,meas,y):
+        cp, np = sensor_calibration.scale_measurements(meas, p)
+        err = y*scipy.ones(len(meas)) - np
+        return err
+
+    p1, success = optimize.leastsq(err_func, p0[:], args=(flt_meas, 
sensor_ref))
+    cp1, np1 = sensor_calibration.scale_measurements(flt_meas, p1)
+
+    print "optimized guess : avg "+str(np1.mean())+" std "+str(np1.std())
+#    print p1
+
+    sensor_calibration.print_xml(p1, options.sensor, sensor_res)
+    print ""
+
+    sensor_calibration.plot_results(measurements, flt_idx, flt_meas, cp0, np0, 
cp1, np1, sensor_ref)
+
+if __name__ == "__main__":
+    main()


Property changes on: paparazzi3/trunk/sw/tools/calibration/calibrate.py
___________________________________________________________________
Added: svn:executable
   + *

Added: paparazzi3/trunk/sw/tools/calibration/sensor_calibration.py
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/sensor_calibration.py                 
        (rev 0)
+++ paparazzi3/trunk/sw/tools/calibration/sensor_calibration.py 2010-03-29 
08:01:43 UTC (rev 4742)
@@ -0,0 +1,114 @@
+
+import re
+import scipy
+from scipy import linalg
+from pylab import *
+
+#
+# parse a log and extracts raw sensor measurements
+#
+def read_log(ac_id, filename, sensor):
+    f = open(filename, 'r')
+    pattern = re.compile("(\S+) "+ac_id+" IMU_"+sensor+"_RAW (\S+) (\S+) 
(\S+)")
+    list_meas = []
+    while 1:
+        line = f.readline().strip()
+        if line == '':
+            break
+        m=re.match(pattern, line)
+        if m:
+            list_meas.append([float(m.group(2)), float(m.group(3)), 
float(m.group(4))])
+    return scipy.array(list_meas)
+
+
+
+#
+# select only non-noisy data
+#
+def filter_meas(meas, window_size, noise_threshold):
+    filtered_meas = []
+    filtered_idx = []
+    for i in range(window_size,len(meas)-window_size):
+        noise = meas[i-window_size:i+window_size,:].std(axis=0)
+        if  linalg.norm(noise) < noise_threshold:
+            filtered_meas.append(meas[i,:])
+            filtered_idx.append(i)
+    return scipy.array(filtered_meas), filtered_idx
+
+
+#
+# initial boundary based calibration
+#
+def get_min_max_guess(meas, scale):
+    max_meas = meas[:,:].max(axis=0)
+    min_meas = meas[:,:].min(axis=0)
+    n = (max_meas + min_meas) / 2
+    sf = 2*scale/(max_meas - min_meas)
+    return scipy.array([n[0], n[1], n[2], sf[0], sf[1], sf[2]])
+
+
+#
+# scale the set of measurements
+#
+def scale_measurements(meas, p):
+    l_comp = [];
+    l_norm = [];
+    for m in meas[:,]:
+        sm = (m - p[0:3])*p[3:6]
+        l_comp.append(sm)
+        l_norm.append(linalg.norm(sm))
+    return scipy.array(l_comp), scipy.array(l_norm)
+
+
+#
+# print xml for airframe file
+#
+def print_xml(p, sensor, res):
+    print ""
+    print "<define name=\""+sensor+"_X_NEUTRAL\" 
value=\""+str(int(round(p[0])))+"\"/>"
+    print "<define name=\""+sensor+"_Y_NEUTRAL\" 
value=\""+str(int(round(p[1])))+"\"/>"
+    print "<define name=\""+sensor+"_Z_NEUTRAL\" 
value=\""+str(int(round(p[2])))+"\"/>"
+    print "<define name=\""+sensor+"_X_SENS\" value=\""+str(p[3]*2**res)+"\" 
integer=\"16\"/>"
+    print "<define name=\""+sensor+"_Y_SENS\" value=\""+str(p[4]*2**res)+"\" 
integer=\"16\"/>"
+    print "<define name=\""+sensor+"_Z_SENS\" value=\""+str(p[5]*2**res)+"\" 
integer=\"16\"/>"
+
+
+
+#
+# plot calibration results
+#
+def plot_results(measurements, flt_idx, flt_meas, cp0, np0, cp1, np1, 
sensor_ref):
+    subplot(3,1,1)
+    plot(measurements[:,0])
+    plot(measurements[:,1])
+    plot(measurements[:,2])
+    plot(flt_idx, flt_meas[:,0], 'ro')
+    plot(flt_idx, flt_meas[:,1], 'ro')
+    plot(flt_idx, flt_meas[:,2], 'ro')
+    xlabel('time (s)')
+    ylabel('ADC')
+    title('Raw sensors')
+  
+    subplot(3,2,3)
+    plot(cp0[:,0]);
+    plot(cp0[:,1]);
+    plot(cp0[:,2]);
+    plot(-sensor_ref*scipy.ones(len(flt_meas)));
+    plot(sensor_ref*scipy.ones(len(flt_meas)));
+
+    subplot(3,2,4)
+    plot(np0);
+    plot(sensor_ref*scipy.ones(len(flt_meas)));
+
+    subplot(3,2,5)
+    plot(cp1[:,0]);
+    plot(cp1[:,1]);
+    plot(cp1[:,2]);
+    plot(-sensor_ref*scipy.ones(len(flt_meas)));
+    plot(sensor_ref*scipy.ones(len(flt_meas)));
+
+    subplot(3,2,6)
+    plot(np1);
+    plot(sensor_ref*scipy.ones(len(flt_meas)));
+
+    show();

Modified: paparazzi3/trunk/sw/tools/calibration/test_gui.py
===================================================================
--- paparazzi3/trunk/sw/tools/calibration/test_gui.py   2010-03-29 08:00:02 UTC 
(rev 4741)
+++ paparazzi3/trunk/sw/tools/calibration/test_gui.py   2010-03-29 08:01:43 UTC 
(rev 4742)
@@ -7,6 +7,7 @@
 import calib_gui
 
 PPRZ_HOME = os.getenv("PAPARAZZI_HOME")
+import code; code.interact(local=locals())
 sys.path.append(PPRZ_HOME + "/sw/lib/python")
 
 import messages_tool





reply via email to

[Prev in Thread] Current Thread [Next in Thread]