Changeset 649 in Sophya for trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_archeops.c
- Timestamp:
- Nov 25, 1999, 2:56:34 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_archeops.c
r643 r649 42 42 // de la lecture du block bolo 43 43 44 block_type_gyro blk_gyro2; // block memoire pour les gyros qui seront traitées lors 45 // de la lecture du block bolo 46 44 47 45 48 … … 48 51 void lit_block_archeops(int err) 49 52 { 50 if(verifie_block_printf(blk_tm)) return; 51 52 { 53 def_nom_block 54 static int mon_num_block; 53 static char ss[1000]; 54 def_nom_block 55 static int mon_num_block; 56 57 if(!fenetre(fenetre_lecture_blocks)) nouveauT(fenetre_lecture_blocks,0,"lecture blocs"); 58 59 if(verifie_block_printf(blk_tm)) 60 { 61 if((mon_num_block+1)==numero_block(blk_tm)) 62 { 63 mon_num_block=numero_block(blk_tm); 64 if(!fenetre(fenetre_lecture_blocks)) nouveauT(fenetre_lecture_blocks,0,"lecture blocs"); 65 ecritT(fenetre_lecture_blocks,fin_f,"%s\n",ss); 66 sprintf(ss,"%d ->",mon_num_block); 67 } 68 if(strlen(ss)<500) sprintf(ss+strlen(ss)," **%s ",nom_block[type_block(blk_tm)]); 69 ecrit_fichier_ARCH(blk_tm); // ecrit les fichiers en erreur sur le disque 70 return; 71 } 72 73 { 55 74 if(mon_num_block!=numero_block(blk_tm)) 56 75 { 57 76 mon_num_block=numero_block(blk_tm); 58 printf("\n%d ->",mon_num_block); 59 } 60 printf(" %s ",nom_block[type_block(blk_tm)]); 77 if(!fenetre(fenetre_lecture_blocks)) nouveauT(fenetre_lecture_blocks,0,"lecture blocs"); 78 ecritT(fenetre_lecture_blocks,fin_f,"%s\n",ss); 79 sprintf(ss,"%d ->",mon_num_block); 80 } 81 if(strlen(ss)<500) sprintf(ss+strlen(ss)," %s ",nom_block[type_block(blk_tm)]); 61 82 } 62 83 … … 78 99 case block_bolo_comprime : traite_block_bolo_comprime((block_type_bolo_comprime*)blk_tm); break; 79 100 80 case block_sst : traite_block_sst((block_type_sst*)blk_tm); break; 81 case block_sst_comprime : traite_block_sst_comprime((block_type_sst_comprime*)blk_tm); break; 101 case block_sst : traite_block_sst((block_type_sst*)blk_tm); 102 traite_block_sst_brut((block_type_sst*)blk_tm); break; 103 case block_sst_comprime : traite_block_sst_comprime((block_type_sst_comprime*)blk_tm); 104 traite_block_sst_comprime_brut((block_type_sst_comprime*)blk_tm);break; 82 105 83 106 case block_gyro : traite_block_gyro((block_type_gyro*)blk_tm); break; … … 86 109 case block_synchro_sol : traite_block_synchro_sol((block_type_synchro_sol*)blk_tm); break; 87 110 88 case block_status_flash : printf("**** **************status flash recut ********************* \n");son(133);break;111 case block_status_flash : printf("**** status flash recut **** nblock=%x - %d *** \n",((block_type_status_flash*)blk_tm)->status.nb_total_blocks,((block_type_status_flash*)blk_tm)->status.nb_total_blocks/256);break; 89 112 90 113 #ifdef transmet_data_brute … … 115 138 void traite_block_journal(block_type_journal* blk) 116 139 { 140 long mothexa[5]; /* les 5 mots hexa de la telecommande */ 141 117 142 int i,code,blocknum; 118 143 if(!fenetre(fenetre_journal)) nouveauT(fenetre_journal,0,"journal"); … … 124 149 blocknum=numero_block(&blk->jj[i]); 125 150 if(code) break; // code vaut 1 pour vider une page de journal incomplete 126 ecritT(fenetre_journal,fin_f,"block_num= %d code %d ==> %d %d %d %d %d %d %d %d \n", 127 blocknum,code, 128 blk->jj[i].mot[0],blk->jj[i].mot[1],blk->jj[i].mot[2],blk->jj[i].mot[3], 129 blk->jj[i].mot[0],blk->jj[4].mot[5],blk->jj[i].mot[6],blk->jj[i].mot[7]); 130 } 131 } 151 mothexa[0]=blk->jj[i].mot[5]; /* 4 bit choix de commande */ 152 mothexa[1]=blk->jj[i].mot[6]>>2; /* les 4 bits poid fort du code direction */ 153 mothexa[2]=((blk->jj[i].mot[6]<<2)&0xc) + ((blk->jj[i].mot[7]>>6)&0x3); 154 mothexa[3]=(blk->jj[i].mot[7]>>2)&0xf; 155 mothexa[4]=(blk->jj[i].mot[7]&0x3); 156 157 if(blk->jj[i].mot[0]) 158 { 159 ecritT(fenetre_journal,fin_f,"block_num= %d code %d ==> telecommande_OK : %d %d %d -> %x %x %x %x %x \n", 160 blocknum,code,blk->jj[4].mot[5],blk->jj[i].mot[6],blk->jj[i].mot[7] 161 ,mothexa[0],mothexa[1],mothexa[2],mothexa[3],mothexa[4]); 162 } 163 else 164 { 165 ecritT(fenetre_journal,fin_f,"block_num= %d code %d ==> erreur telecommande : %d %d %d -> %x %x %x %x %x \n", 166 blocknum,code,blk->jj[4].mot[5],blk->jj[i].mot[6],blk->jj[i].mot[7] 167 ,mothexa[0],mothexa[1],mothexa[2],mothexa[3],mothexa[4]); 168 } 169 } 170 } 171 172 173 132 174 133 175 //----------------------------------------------------------------------------------------- … … 176 218 if(c1==13) i=80; 177 219 } 220 } 221 } 222 223 224 225 226 227 void traite_block_gyro_comprime(block_type_gyro_comprime* blk) 228 { 229 int i; 230 block_type_gyro bk_gyro; 231 block_type_gyro* blk2=& bk_gyro; 232 if(!fenetre(fenetre_gyroscope)) return; 233 //printf("*************** decompress data gyro \n"); 234 for(i=0;i<3;i++) decompress_7_2((long *)blk->gyro[i],blk2->gyro[i],nb_per_block*2); 235 blk2->code1=blk->code1; 236 blk2->code2=blk->code2; 237 traite_block_gyro(blk2); 238 } 239 240 241 void traite_block_gyro(block_type_gyro* blk) 242 { 243 int k; 244 double y[15]; 245 246 int temps_cntl; 247 double secondes; 248 blk_gyro2 = *blk; 249 250 if(!fenetre(fenetre_gyroscope)) return; 251 252 for(k=0;k<72;k++) 253 { 254 y[0]=20.*(blk->gyro[0][k]-32768)/32768.; 255 y[1]=20.*(blk->gyro[1][k]-32768)/32768.; 256 y[2]=20.*(blk->gyro[2][k]-32768)/32768.; 257 258 // printf(" y = %g %g %g %g %g \n",y[0],y[1],y[2],y[3],y[4]); 259 temps_cntl =numero_block(blk)*nb_per_block*2+k; 260 secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine; 261 tracen(fenetre_gyroscope,3,secondes,y); 262 // printf("secondes=%g\n",secondes); 178 263 } 179 264 } … … 306 391 gg->don.don_bolo[j]=0.5*(ancien_don_bolo[j]+s*(((val_DS(j,i)-aa)<<1)/nb_coups)); // copy bolos 307 392 ancien_don_bolo[j]=s*(((val_DS(j,i)-aa)<<1)/nb_coups); 393 // if( (i==1) && (j==14) ) 394 // { 395 // def_gains 396 // printf(" brut=%d ofset=%d nbcoups=%d gg->don.don_bolo[j]=%d parametr.bolo[j].bolo_gain=%d gainampli=%g micro-volts=%g \n" 397 // , val_DS(j,i) ,aa ,nb_coups ,(int)gg->don.don_bolo[j] ,parametr.bolo[j].bolo_gain ,gain_ampli(gg->reglage.bolo[j]) ,(double)xbolbrut(j)); 398 // } 399 // 308 400 } 309 401 … … 313 405 } 314 406 407 gg->don.gyro[0]=20.*(blk_gyro2.gyro[0][i]-32768)/32768.; 408 gg->don.gyro[1]=20.*(blk_gyro2.gyro[1][i]-32768)/32768.; 409 gg->don.gyro[2]=20.*(blk_gyro2.gyro[2][i]-32768)/32768.; 410 411 315 412 316 413 // gg->don.sync[j]=synchro_DS(j,i);
Note:
See TracChangeset
for help on using the changeset viewer.