Changeset 645 in Sophya
- Timestamp:
- Nov 25, 1999, 2:35:30 PM (26 years ago)
- Location:
- trunk/Poubelle/archediab.old
- Files:
-
- 1 added
- 1 deleted
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archediab.sources/c/bit_block.c
r643 r645 9 9 #include "archeops.h" 10 10 #include "bit_block.h" 11 #include "choix_param.h" 12 #include "structure.h" 13 #include "tm.h" 14 #include "tache.h" 15 #include "bolo.h" 16 #include "carte_acqui.h" 17 #include "carte_pci.h" 18 11 19 12 13 20 #define cadence_taux 16 21 #define mode_acquisition 0x00 //0xff en mode inverse, 0x00 en mode normal 14 22 unsigned long buffer; 15 23 int llgg,somme,type_du_block,numero; 16 24 int deb; /*deb vaut zero si aucun debut n'a encore ete trouve*/ 17 25 int compteur; 18 int cpt_cherche_debut; 26 int cpt_cherche_debut; 27 unsigned long taux; 28 unsigned long Nvide, Nplein; 19 29 def_long_block 20 30 … … 25 35 { 26 36 int i,m,bit; 37 27 38 // unsigned char bit; /*c'est le bit lu*/ 28 39 29 bit=un_bit() ;40 bit=un_bit()^mode_acquisition; 30 41 switch(bit) 31 42 { … … 38 49 } 39 50 51 40 52 compteur++; 41 53 i=compteur%32; 42 54 43 55 56 44 57 45 58 switch(deb) … … 108 121 if(pbk->mot[m] == fin_block_mesure) 109 122 { 123 /* 110 124 if(calcul_somme_block(pbk,llgg)!=somme) 111 125 { 112 126 ecrit_erreur_bit(erreur_somme); 113 127 114 /*on continue quand meme*/128 115 129 } 130 */ 131 116 132 // else ecrit_erreur_bit(bloc_correct); 117 133 118 134 deb=0; 119 135 Nplein=compteur+1; 136 compteur=0; 137 //Calcul du taux de remplissage 138 taux=taux+(((0xffff-taux)*Nplein)>>cadence_taux); 139 tt->nb_lec_fofo_ext=((taux*1000)>>cadence_taux); 120 140 return(lit_bit_un_block); 121 141 … … 129 149 } 130 150 151 152 153 131 154 132 155 } 133 } 156 157 } 158 159 134 160 } 135 161 break; … … 138 164 default : 139 165 140 166 if(compteur>1000) 167 { 168 Nvide=compteur; 169 compteur=0; 170 taux=taux-((taux*Nvide)>>cadence_taux); 171 tt->nb_lec_fofo_ext=((taux*1000)>>cadence_taux); 172 } 141 173 if(buffer==debut_block_mesure) 142 174 { 143 175 deb=1; 176 Nvide=compteur-32; 144 177 compteur=31; 145 178 pbk->debut=buffer; -
trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c
r643 r645 208 208 209 209 210 #define c(j,i) (1e-4*(double)parametr.nom_coef[parametr.bolo[j].numero_nom_coef].coef[i]) 210 211 211 212 // les temperatures sur les cartes modifiées 212 213 { 213 double I,V,R[ 4];214 double I,V,R[8],llR; 214 215 int j,k; 215 216 def_gains; 216 217 k=0; 218 217 219 for(j=0;(j<nb_max_bolo) && (k<4);j++) 218 220 { … … 222 224 V=0.001*bol_micro_volt(blk->temperature[k],(double)parametr.bolo[j].bolo_gain*gain_ampli(gg->reglage.bolo[j])); 223 225 if(I>0.0000001) R[k]=V/I; else R[k]=0; // R en 224 k++; 226 //------ calcul de l'etalonnage en temperature des cartes temperature simplifiées 227 // j=numero de bebo T[k] = R[k+4] en Kelvin 228 if ((R[k]-c(j,6))>1.) 229 {if((log(R[k]-c(j,6))-c(j,0))>0.001) llR= log(log(R[k]-c(j,6))-c(j,0)) ; else llR=0;} 230 else llR=0; 231 R[k+4] = exp( c(j,1) + c(j,2)* llR + c(j,3)* llR* llR + c(j,4)* llR* llR* llR + c(j,5)* llR* llR* llR* llR) ; 232 if(R[k+4]>9999) R[k+4]=9999; 233 k++; 225 234 } 226 235 } 227 236 228 if(R[0]<90.) ecritD(fenetre_dilution,dil_temp,"germ= %6.2f 4K=%5.1f 1.6K=%5.1f 10K=%5.1f",R[0],R[1],R[2],R[3]); 229 else ecritD(fenetre_dilution,dil_temp,"germ= %6.3fk 4K=%5.1f 1.6K=%5.1f 10K=%5.1f",R[0]*0.001,R[1],R[2],R[3]); 237 238 if(R[0]<90.) ecritD(fenetre_dilution,dil_temp 239 , "ge=%6.2f 4K=%6.2f 1.6K=%6.2f 10K=%6.2f\rge= %6.3fK 4K=%6.2fK 1.6K=%6.2fK 10K=%6.2fK " 240 ,R[0],R[1],R[2],R[3],R[4],R[5],R[6],R[7]); 241 else ecritD(fenetre_dilution,dil_temp 242 ,"ge=%6.3fk 4K=%6.2f 1.6K=%6.2f 10K=%6.2f\rge= %6.3fmK 4K=%6.2fK 1.6K=%6.2fK 10K=%6.2fK " 243 ,R[0]*0.001,R[1],R[2],R[3],R[4]*1000.,R[5],R[6],R[7]); 244 245 230 246 if(litD(fenetre_dilution,dil_trace_tempe,0))// trace les sondes de niveau helium 231 247 { … … 240 256 strcpy(graph->xtitre,"minutes"); 241 257 } 242 tracen(fenetre_temperature_dil, 4,minutes,R);258 tracen(fenetre_temperature_dil,8,minutes,R); 243 259 } 244 260 } -
trunk/Poubelle/archediab.old/archediab.sources/c/tache_archeops_bit2.c
r643 r645 23 23 // 24 24 // 25 // lit directement les blocks recu tsur la fifo et les envoie au programme principal25 // lit directement les blocks recus sur la fifo et les envoie au programme principal 26 26 // 27 27 … … 34 34 35 35 //***************************************************************************************** 36 unsigned long N_total_bits,M; 37 unsigned short Max,Min; 36 38 37 39 void init_tache(void) … … 69 71 70 72 71 char un_bit( void)73 char un_bit() 72 74 { 73 75 static int i; 74 76 static unsigned long RR; 77 unsigned short Val; 78 75 79 lit_carte; if(rien_a_lire) return(bit_vide); // fifo vide -> retour -> sort du while 80 81 N_total_bits++; 82 Val=((RR>>1) & 0x3f); //permet de lire les bits de temps dans RR 83 84 //Calcul de la nouvelle moyenne glissee du temps 85 M=M-(M>>16)+(Val<<8); 86 87 88 //Calcul du Max 89 if(N_total_bits==0) Max=Val; //initialisation au premier passage 90 if(Val>Max) Max=Val; //changement de maximum 91 if((N_total_bits%60000)==0) 92 { 93 Max=Max-1; //Diminution tous les 60000 bits 94 N_total_bits=0; 95 } 96 97 //Calcul du Min 98 if(N_total_bits==0) Min=Val; //initialisation au premier passage 99 if(Val<Min) Min=Val; //changement de minimum 100 if((N_total_bits%60000)==0) Min=Min+1; //Augmentation tous les 60000 bits 101 //tt->nb_lec_fofo_ext=M; 102 103 104 76 105 //if( RR & 1 ) return(bit_un); 77 106 //else return(bit_zero); 78 107 if( RR & 1 ) return(bit_zero); 79 108 else return(bit_un); 109 80 110 } 81 111 … … 135 165 } 136 166 if(lec_fifo > tt->nb_lec_fofo_int) tt->nb_lec_fofo_int=lec_fifo; 137 if(!tt->nb_lec_fofo_ext) {tt->nb_lec_fofo_ext=tt->nb_lec_fofo_int;tt->nb_lec_fofo_int=0;}167 //if(!tt->nb_lec_fofo_ext) {tt->nb_lec_fofo_ext=tt->nb_lec_fofo_int;tt->nb_lec_fofo_int=0;} 138 168 139 169 } -
trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c
r643 r645 217 217 case tc_dir_reset_epld : //printf("tc_reset_epld:\n"); 218 218 219 for(j=0;j<14;j++) tc_char(j); 219 // for(j=0;j<14;j++) tc_char(j); 220 for(j=0;j<15;j++) tc_char(j); // reset epld+transputer 220 221 tc_char(1);tc_char(1); 221 222 tc_char(0x00);tc_char(0x00); // synchro -
trunk/Poubelle/archediab.old/archeops.c
r643 r645 18 18 /* Pciel = coef5 - Pelec coef5= I * Ai (tables xavier) */ 19 19 /* tau = - ln ( 1 + Pciel / coef6 ) coef6= I * Bi (tables xavier) */ 20 /* */ 20 /* */ 21 /* Pour les thermometres 1 à 4 (germanium et carbone Allan-Bradley) */ 22 /* les coefficients sont utilisés differemment, ills permettent de convertir */ 23 /* R vers T */ 24 /* llR= log(log(R)-c(0)) */ 25 /* T = exp(c(1) + c(2)* llR + c(3)* llR* llR + c(4)* llR* llR* llR + */ 26 /* c(5)* llR* llR* llR* llR) */ 27 /* */ 21 28 /**************************************************************************************/ 22 29 … … 33 40 34 41 35 /* n om , on/off , 0 = MLPA , N° bolo ,gain_pa , capa*1000 , diviseur , coef*10000 */42 /* numero_nom, on/off , 0 = MLPA , N° bolo , gain_pa , capa*1000 , diviseur , coef*10000 */ 36 43 /* , 0 ou 1 , 2..8 = BEBO , hard , , 4700 , 333 , */ 37 44 /* 10 = Bediff , , , */ … … 44 51 /*---------------------------------- fenetre : -----------------------------------*/ 45 52 46 param_bolo parametr={2 6,24,36,88,18,53 param_bolo parametr={27,24,36,88,18, 47 54 48 55 { 49 { 1 , 0,10,1 , 200, 22000 , 200 },50 { 2, 1,10,2 , 200, 22000 , 200 },51 { 3, 1,10,3 , 200, 22000 , 200 },52 { 4 , 0,10,4 , 200, 22000 , 200 },53 54 { 5, 1,10,5 , 1000, 4700 , 1000 },55 { 6 , 0,10,6 , 1000, 4700 , 1000 },56 { 7, 1,10,9 , 1000, 4700 , 1000 },57 { 8 , 0,10,10, 1000, 4700 , 1000 },58 59 { 9, 1,10,11, 1000, 4700 , 1000 },60 { 10, 1,10,12, 1000, 4700 , 1000 },61 { 11, 1,10,13, 1000, 4700 , 1000 },62 { 1 2, 1,10,14, 1000, 4700 , 1000 },63 64 { 13 , 1,10,17, 1000, 4700 , 1000 },65 { 14, 1,10,18, 1000, 4700 , 1000 },66 { 15 , 1,10,19, 1000, 4700 , 1000 },67 { 16, 1,10,20, 1000, 4700 , 1000 },68 69 { 1 7 , 1,10,21,500, 22000 , 500 },70 { 1 8 , 1,10,22,500, 22000 , 500 },71 { 1 9 , 1,10,25, 500, 22000, 500 },72 { 20 , 1,10,26, 500, 22000, 500 },56 { 0 , 2,10,1 , 200, 22000 , 200 }, 57 { 10 , 1,10,2 , 200, 22000 , 200 }, 58 { 8 , 1,10,3 , 200, 22000 , 200 }, 59 { 0 , 2,10,4 , 200, 22000 , 200 }, 60 61 { 2 , 1,10,5 , 1000, 4700 , 1000 }, 62 { 0 , 2,10,6 , 1000, 4700 , 1000 }, 63 { 4 , 1,10,9 , 1000, 4700 , 1000 }, 64 { 0 , 2,10,10, 1000, 4700 , 1000 }, 65 66 { 10 , 1,10,11, 1000, 4700 , 1000 }, 67 { 7 , 1,10,12, 1000, 4700 , 1000 }, 68 { 0 , 1,10,13, 1000, 4700 , 1000 }, 69 { 17 , 1,10,14, 1000, 4700 , 1000 }, 70 71 { 3 , 1,10,17, 1000, 4700 , 1000 }, 72 { 1 , 1,10,18, 1000, 4700 , 1000 }, 73 { 5 , 1,10,19, 1000, 4700 , 1000 }, 74 { 0 , 1,10,20, 1000, 4700 , 1000 }, 75 76 { 13 , 1,10,21, 500, 22000 , 500 }, 77 { 14 , 1,10,22, 500, 22000 , 500 }, 78 { 15 , 1,10,25, 500, 22000 , 500 }, 79 { 16 , 1,10,26, 500, 22000 , 500 }, 73 80 74 81 { 21 , 3,10,27, 1000, 22000 , 0 }, 75 82 { 22 , 3,10,28, 1000, 1000 , 0 }, 76 83 { 23 , 3,10,29, 1000, 1000 , 0 }, 77 { 0, 3,10,30, 1000, 1000 , 0 },84 { 19 , 3,10,30, 1000, 1000 , 0 }, 78 85 79 86 }, 80 87 { 81 { " therm_10k" , {12000 ,1804000 , 72800,0,0,0,0} },82 { " v1-bedif1" , { 5000 , 123100 , 334200,0,0,0,0} },83 { " v1-bedif2" , { 5000 , 123100 , 334200,0,0,0,0} },84 { " v1-bedif3" , { 5000 , 123100 , 334200,0,0,0,0} },85 { " v1-bedif4" , { 5000 , 123100 , 334200,0,0,0,0} },86 87 { " v1-bedif5" , { 5000 , 123100 , 334200,0,0,0,0} },88 { " v1-bedif6" , { 5000 , 123100 , 334200,0,0,0,0}},89 { " v1-bedif7" , { 5000 , 123100 , 334200,0,0,0,0} },90 { " v1-bedif8" , { 5000 , 123100 , 334200,0,0,0,0} },91 92 { " v1-bedif9" , { 5000 , 123100 , 334200,0,0,0,0} },93 { " v1-bedif10" , { 5000 , 123100 , 334200,0,0,0,0} },94 { " v1-bedif11" , { 5000 , 123100 , 334200,0,0,0,0} },95 { " v1-bedif12" , { 5000 , 123100 , 334200,0,0,0,0} },96 97 { " v1-bedif13" , { 5000 , 123100 , 334200,0,0,0,0} },98 { " v1-bedif14" , { 5000 , 123100 , 334200,0,0,0,0} },99 { " bedif15" , { 500 , 58800 , 12500,0,0,0,0} },100 { " bedif16" , { 5000 , 123100 , 334200,0,0,0,0} },101 102 { " bedif17" , { 5000 , 123100 , 334200,0,0,0,0} },103 { "bedif18" , { 5000 , 123100 , 334200, 0,0,0,0} },104 { "v1-bedif19" , { 5000 , 123100 , 334200, 0,0,0,0} },105 { " v1-bedif20" , { 5000 , 123100 , 334200,0,0,0,0} },106 107 { "germanium" , { 3500 , 17100 , 646500,0,0,0,0} },108 { "therm_4k" , { 12000 ,1804000 , 72800,0,0,0,0} },109 { "therm_1.6k" , { 12000 ,1804000 , 72800,0,0,0,0} },88 { "Niente" , { 5000 , 0 , 0, 0,0,0,0} }, 89 { "ch1-bolo1" , { 5000 , 600000 , 140000, 80000, 25000, 0, 0} }, 90 { "ch1-bolo2" , { 5000 , 600000 , 140000, 60000, 25000, 0, 0} }, 91 { "ch1-bolo3" , { 5000 , 600000 , 140000, 65000, 25000, 0, 0} }, 92 { "ch2-bolo4" , { 5000 , 600000 , 140000, 90000, 25000, 0, 0} }, 93 94 { "ch2-bolo5" , { 5000 , 600000 , 140000, 100000, 25000, 0, 0} }, 95 { "ch2-bolo6" , { 5000 , 600000 , 140000, 110000, 25000, 0, 0} }, 96 { "Dum100mK1" , { 5000 , 588000 , 125000, 0,0,0,0} }, 97 { "Dum100mK2" , { 5000 , 588000 , 125000, 0,0,0,0} }, 98 99 { "Dum100mK3" , { 5000 , 1361800 , 125000, 0,0,0,0} }, 100 { "Dum100mK4" , { 5000 , 1361800 , 125000, 0,0,0,0} }, 101 { "Lou100mK1" , { 5000 , 5680000 , 560000, 0,0,0,0} }, 102 { "Lou100mK2" , { 5000 , 5680000 , 560000, 0,0,0,0} }, 103 104 { "Lou1.6K5" , { 5000 , 0 , 0, 0,0,0,0} }, 105 { "Lou1.6K6" , { 5000 , 0 , 0, 0,0,0,0} }, 106 { "Lou10K7" , { 5000 , 0 , 0, 0,0,0,0} }, 107 { "Lou10K8" , { 5000 , 0 , 0, 0,0,0,0} }, 108 109 { "R10MOhm" , { 5000 , 0 , 0, 0,0,0,0} }, 110 { "bedif18" , { 5000 , 123100 , 334200, 0,0,0,0} }, 111 { "v1-bedif19" , { 5000 , 123100 , 334200, 0,0,0,0} }, 112 { "therm_10k" , { 45000 , 28907 , 16028 , -1327 , 1472 , 872, 0} }, 113 114 { "germanium" , { 0 , 30719 , -910 ,-16389 , 2927 , 0, 0} }, 115 { "therm_4k" , { 45000 , 28907 , 16028 , -1327 , 1472 , 872, 0} }, 116 { "therm_1.6k" , { 45000 , 28907 , 16028 , -1327 , 1472 , 872, 0} }, 110 117 111 118 } … … 114 121 /*fin_param*/ 115 122 116 123 /* Definition Mai-Juin 1999 124 { 125 { "v1-bedif1" , 1,10,1 , 200, 22000 , 200, { 5000 , 123100 , 334200,0,0,0,0} }, 126 { "v1-bedif2" , 1,10,2 , 200, 22000 , 200, { 500 , 136180 , 9010,0,0,0,0} }, 127 { "v1-bedif3" , 1,10,3 , 200, 22000 , 200, { 500 , 136180 , 9010,0,0,0,0} }, 128 { "v1-bedif4" , 1,10,4 , 200, 22000 , 200, { 5000 , 123100 , 334200,0,0,0,0} }, 129 { "v1-bedif5" , 1,10,5 , 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 130 { "v1-bedif6" , 1,10,6 , 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 131 132 { "v1-bedif7" , 1,10,9 , 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 133 { "v1-bedif8" , 1,10,10, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 134 { "v1-bedif9" , 1,10,11, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 135 { "v1-bedif10" , 1,10,12, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 136 { "v1-bedif11" , 1,10,13, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 137 { "v1-bedif12" , 1,10,14, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 138 139 { "v1-bedif13" , 1,10,17, 1000, 100000 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 140 { "v1-bedif14" , 1,10,18, 1000, 470000 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 141 { "bedif15" , 1,10,19, 1000, 470000 , 1000, { 500 , 58800 , 12500,0,0,0,0} }, 142 { "bedif16" , 1,10,20, 1000,2200000 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 143 { "bedif17" , 1,10,21, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 144 { "bedif18" , 1,10,22, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 145 146 { "v1-bedif19" , 2,10,25, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 147 { "v1-bedif20" , 2,10,26, 1000, 4700 , 1000, { 5000 , 123100 , 334200,0,0,0,0} }, 148 { "germanium" , 3,10,27, 1000, 22000 , 0, { 3500 , 17100 , 646500,0,0,0,0} }, 149 { "therm_4k" , 3,10,28, 1000, 1000 , 0, {12000 ,1804000 , 72800,0,0,0,0} }, 150 { "therm_1.6k" , 3,10,29, 1000, 1000 , 0, {12000 ,1804000 , 72800,0,0,0,0} }, 151 { "therm_10k" , 3,10,30, 1000, 1000 , 0, {12000 ,1804000 , 72800,0,0,0,0} }, 152 153 }*/ 117 154 118 155 /* bolos campagne 1998-1999 */ -
trunk/Poubelle/archediab.old/archeops.h
r643 r645 7 7 8 8 #define _archeops 9 #define version_num 26 10 11 9 #define version_num 27 10 11 #if version_num>=27 12 #define ECC_TOTAL 255 13 #define ECC_DATA 239 /* Nb de bytes de data encodes */ 14 #define ECC_SIZE (ECC_TOTAL-ECC_DATA) /* Nb de bytes encodeurs */ 15 #define SIZE_HEAD sizeof(int4)*3 /* 3 mots d'entete de blocs */ 16 #endif 12 17 /*======================================================================*/ 13 18 /* */ … … 31 36 /* */ 32 37 /* - int4 pour compatibilité toutes machines */ 33 /* */ 38 /* */ 39 /* VERSION 27: */ 40 /* - ajout dans chaque block-type d'une structure "ecc" dont la */ 41 /* taille est adaptee a la taille du bloc: */ 42 /* on ajoute 16 bytes servant a la correction d'erreur */ 43 /* pour chaque paquet de 241 bytes de donnees. */ 44 /* les bytes d'ECC sont calcules avant envoi sur la ligne */ 45 /* telemesure. */ 46 /* Ils peuvent servir a l'arrivee pour verifier et corriger quand */ 47 /* c'est possible les donnees. On peut corriger au maximu 7 bytes */ 48 /* erronnes. */ 49 /* */ 34 50 /*======================================================================*/ 35 51 … … 321 337 322 338 param_bolo param; /* les parametres de mesure des bolometres */ 323 339 unsigned char ecc[((((sizeof( param_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 324 340 int4 fin; /* code de reconnaissance de fin de block */ 325 341 } … … 350 366 351 367 ligne_journal jj[long_page]; /* block de 10 lignes de journal */ 368 unsigned char ecc[((((sizeof(ligne_journal)*long_page+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 352 369 353 370 int4 fin; /* code de reconnaissance de fin de block */ … … 524 541 int4 code2; /* code2 du block */ 525 542 reglage_bolo reglage; 543 unsigned char ecc[((((sizeof(reglage_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 526 544 int4 fin; /* code de reconnaissance de fin de block */ 527 545 } … … 542 560 /* int4 gyro_dil[3][nb_per_block*2]; les gyros (block gyros) */ 543 561 /* int4 data_dil[50]; data brutes de la dilution */ 562 unsigned char ecc[((((sizeof(int4)*64+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 544 563 int4 fin; /* code de reconnaissance de fin de block */ 545 564 } … … 589 608 /* ------------------------------------------------------------------------------------------- */ 590 609 591 typedef struct 592 { 593 int4 debut; /* code de reconnaissance de debut de block */ 594 int4 code1; /* code1 du block */ 595 int4 code2; /* code2 du block */ 596 597 char gps[80]; /* les données GPS (une chaine maxi 80 cara) */ 610 #define GPS_DATA 80 611 typedef struct 612 { 613 int4 debut; /* code de reconnaissance de debut de block */ 614 int4 code1; /* code1 du block */ 615 int4 code2; /* code2 du block */ 616 617 char gps[GPS_DATA]; /* les données GPS (une chaine maxi 80 cara) */ 618 unsigned char ecc[((((GPS_DATA+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 598 619 599 620 int4 fin; /* code de reconnaissance de fin de block */ … … 612 633 613 634 short bol_per[nb_max_bolo][nb_max_mes_per]; 635 unsigned char ecc[((((sizeof(short)*nb_max_bolo*nb_max_mes_per+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 614 636 615 637 int4 fin; /* code de reconnaissance de fin de block */ … … 625 647 int4 code2; /* code2 du block */ 626 648 char synchro[nb_per_block*2][nb_sync]; 649 unsigned char ecc[((((nb_per_block*nb_sync*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 627 650 628 651 int4 fin; /* code de reconnaissance de fin de block */ … … 638 661 int4 code2; /* code2 du block */ 639 662 char comment[1024]; 663 unsigned char ecc[((((1024+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 640 664 int4 fin; /* code de reconnaissance de fin de block */ 641 665 } … … 654 678 int4 data_bolo[nb_max_bolo][nb_per_block*2]; 655 679 /* data D.S. (en mots de 32 bits) */ 680 unsigned char ecc[((((sizeof(int4)*nb_max_bolo*nb_per_block*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 656 681 int4 fin; /* code de reconnaissance de fin de block */ 657 682 } … … 668 693 int4 gyro[3][nb_per_block*2]; 669 694 int4 magneto[3]; /* 1 bit par echantillonage soit 3*32bit>72 */ 695 unsigned char ecc[((((sizeof(int4)*3*nb_per_block*2*3+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 670 696 int4 fin; /* code de reconnaissance de fin de block */ 671 697 } … … 681 707 int4 sst[nb_per_block*2][18]; 682 708 /* chaque mesure: un paquet de 18 mots de 32 bits */ 709 unsigned char ecc[((((sizeof(int4)*nb_per_block*2*18+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 683 710 int4 fin; /* code de reconnaissance de fin de block */ 684 711 } … … 692 719 int4 code1; /* code1 du block */ 693 720 int4 code2; /* code2 du block */ 721 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 694 722 int4 fin; /* code de reconnaissance de fin de block */ 695 723 } … … 706 734 /* pour chaque bolo, un vecteur 19 mots */ 707 735 unsigned int4 data_bolo[nb_bolo_util][ (nb_per_block/2) +1 ]; 736 unsigned char ecc[((((sizeof(int4)*nb_bolo_util*((nb_per_block/2) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 708 737 709 738 int4 fin; /* code de reconnaissance de fin de block */ … … 720 749 /* nombre de mots = nb valeurs/4 +1 */ 721 750 unsigned int4 gyro[3][ (nb_per_block/2) +1 ]; 751 unsigned char ecc[((((sizeof(int4)*3*((nb_per_block/2) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 722 752 int4 fin; /* code de reconnaissance de fin de block */ 723 753 } … … 733 763 /* pour chaque diode, un vecteur 11 mots */ 734 764 unsigned int4 sst[nb_photo_diodes] [(nb_per_block*2/7) +1 ]; 765 unsigned char ecc[((((sizeof(int4)*nb_photo_diodes*((nb_per_block*2/7) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 735 766 int4 fin; /* code de reconnaissance de fin de block */ 736 767 } … … 770 801 int4 erreur ; /* Si la commande a induit une erreur */ 771 802 status_flash status ; /* etat de l'enregistreur */ 803 unsigned char ecc[((((sizeof(int4)*2 + sizeof(status_flash)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 804 772 805 unsigned int4 fin ; /* code de reconnaissance de fin de block */ 773 806 } block_type_status_flash ; … … 781 814 782 815 int4 commande; /* type de commande a l'enregistreur flash */ 816 unsigned char ecc[((((sizeof(int4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 783 817 784 818 int4 fin; /* code de reconnaissance de fin de block */ … … 814 848 #ifdef transmet_data_brute 815 849 char data[nb_per_block*nb_max_mes_per*nb_byte_mot]; 850 unsigned char ecc[((((nb_per_block*nb_max_mes_per*nb_byte_mot+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 851 #else 852 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 816 853 #endif 817 854 int4 fin; /* code de reconnaissance de fin de block */ … … 826 863 int4 code1; /* code1 du block */ 827 864 int4 code2; /* code2 du block */ 865 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 828 866 int4 fin; /* code de reconnaissance de fin de block */ 829 867 } … … 837 875 int4 code1; /* code1 du block */ 838 876 int4 code2; /* code2 du block */ 877 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 839 878 int4 fin; /* code de reconnaissance de fin de block */ 840 879 } … … 852 891 int4 code2; /* code2 du block */ 853 892 int4 mot[(taille_maxi_block_archeops)/4]; 893 unsigned char ecc[((((sizeof(int4)*(taille_maxi_block_archeops/4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 854 894 int4 fin; /* code de reconnaissance de fin de block */ 855 895 }
Note:
See TracChangeset
for help on using the changeset viewer.