Changeset 639 in Sophya for trunk/Poubelle/archediab.old/archeops.h
- Timestamp:
- Nov 25, 1999, 2:07:25 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archeops.h
r637 r639 7 7 8 8 #define _archeops 9 #define version_num 2 49 #define version_num 25 10 10 11 11 … … 19 19 /* - utilise le fichier archeops.c */ 20 20 /* - nb_max_bolo=24 avec nb_bolo_util=18 */ 21 /* - change la structure du block param */ 21 22 /* - change la structure du block dilution */ 22 23 /* */ 24 /* VERSION 25: */ 25 /* */ 26 /* - la compression marche */ 27 /* - 4 signaux synchro O.K. */ 28 /* - change la structure dil : contient les temperatures */ 23 29 /* */ 24 30 /* */ 25 /* */26 31 /*======================================================================*/ 27 32 … … 30 35 /* --------------- parametres generaux de definition ------------- */ 31 36 /*======================================================================*/ 37 38 #ifndef int4 39 #ifdef __alpha 40 #define int4 int 41 #undef programme 42 #else 43 #define int4 long 44 #endif 45 #endif 46 47 #ifdef linux 48 #undef programme 49 #endif 32 50 33 51 #ifdef _planck … … 108 126 #endif 109 127 110 #define nb_sync 6 /* nombre de signaux de synchro */ 128 #define nb_sync 4 /* nombre de signaux de synchro */ 129 /* 6 pour diabolo */ 130 /* toujours multiple de 4 pour archeops */ 111 131 #define nb_element_catalog 256 /* nombre d'éléments catalog par reponse enregistreur */ 112 132 … … 160 180 enum{tc2_reset_epld,tc2_bolo_dacV,tc2_bolo_dacI,tc2_bolo_dacT 161 181 ,tc2_bolo_dacL,tc2_bolo_gain,tc2_bolo_voie,tc2_horloge 162 ,tc2_regul,tc2_auto_bolo,tc2_auto_dilu,tc2_dilution}; /* 11 codes: reste 5disponibles*/182 ,tc2_regul,tc2_auto_bolo,tc2_auto_dilu,tc2_dilution}; /* 12 codes: reste 4 disponibles*/ 163 183 164 184 … … 171 191 /* soit un code defini */ 172 192 /* soit le code tc3_vitesse+i avec i=0.. nb_type_block */ 173 enum{tc3_ periode,tc3_nb_mesures,tc3_temp_mort,tc3_flag,tc3_vitesse};174 #define tc3_suite tc3_vitesse+nb_type_block 193 enum{tc3_commande,tc3_periode,tc3_nb_mesures,tc3_temp_mort,tc3_flag,tc3_vitesse}; 194 /*#define tc3_suite tc3_vitesse+nb_type_block */ 175 195 176 196 … … 199 219 /* ------- codes de reconnaissance des paquets de télémesure */ 200 220 201 #define debut_block_mesure 0x45627491202 #define fin_block_mesure 0x83260432221 #define debut_block_mesure ((int4)0x45627491) 222 #define fin_block_mesure ((int4)0x83260432) 203 223 204 224 … … 230 250 { 231 251 char bolo_nom[32]; /* le nom de chaque bolometre */ 232 longbolo_code_util; /* le code d'utilisation du bolo */233 longbolo_bebo; /* le type d'acquisition: 0 pour MLPA 10 pour BEBODIFF */234 longbolo_num; /* l'adresse hard du bolo */235 longbolo_gain; /* le gain du preampli */236 longbolo_capa; /* la valeur capa du modulateur */237 longbolo_diviseur; /* le diviseur de la compensation */238 longcoef[7]; /* les coef pour le calcul de la température */252 int4 bolo_code_util; /* le code d'utilisation du bolo */ 253 int4 bolo_bebo; /* le type d'acquisition: 0 pour MLPA 10 pour BEBODIFF */ 254 int4 bolo_num; /* l'adresse hard du bolo */ 255 int4 bolo_gain; /* le gain du preampli */ 256 int4 bolo_capa; /* la valeur capa du modulateur */ 257 int4 bolo_diviseur; /* le diviseur de la compensation */ 258 int4 coef[7]; /* les coef pour le calcul de la température */ 239 259 } 240 260 param_un_bolo; … … 246 266 /* cette table ne change pas (en principe) en cours de mesure */ 247 267 { 248 longnumero_version; /* numero de version du header archeops.h */249 longn_max_bolo; /* nombre maxi de bolos (divisible par 4) */250 longn_per_block; /* nombre de periodes entieres dans un block */251 longn_max_mes_per; /* nb de points maxi dans une periode complete */252 253 longnb_bolo; /* nombre de bolometres effectivement lut */268 int4 numero_version; /* numero de version du header archeops.h */ 269 int4 n_max_bolo; /* nombre maxi de bolos (divisible par 4) */ 270 int4 n_per_block; /* nombre de periodes entieres dans un block */ 271 int4 n_max_mes_per; /* nb de points maxi dans une periode complete */ 272 273 int4 nb_bolo; /* nombre de bolometres effectivement lut */ 254 274 param_un_bolo bolo[nb_max_bolo]; 255 275 } … … 279 299 typedef struct /* La structure de transfert transputer vers mac */ 280 300 { 281 longdebut; /* code de reconnaissance de debut de block */282 longcode1; /* code1 du block */283 longcode2; /* code2 du block */301 int4 debut; /* code de reconnaissance de debut de block */ 302 int4 code1; /* code1 du block */ 303 int4 code2; /* code2 du block */ 284 304 285 305 param_bolo param; /* les parametres de mesure des bolometres */ 286 306 287 longfin; /* code de reconnaissance de fin de block */307 int4 fin; /* code de reconnaissance de fin de block */ 288 308 } 289 309 block_type_param; … … 297 317 typedef struct 298 318 { 299 longcode2; /* code de la ligne du journal */319 int4 code2; /* code de la ligne du journal */ 300 320 /* code idem code2 debut de block : */ 301 321 /* contient un code de commande */ … … 308 328 typedef struct 309 329 { 310 longdebut; /* code de reconnaissance de debut de block */311 longcode1; /* code1 du block */312 longcode2; /* code2 du block */330 int4 debut; /* code de reconnaissance de debut de block */ 331 int4 code1; /* code1 du block */ 332 int4 code2; /* code2 du block */ 313 333 314 334 ligne_journal jj[long_page]; /* block de 10 lignes de journal */ 315 335 316 longfin; /* code de reconnaissance de fin de block */336 int4 fin; /* code de reconnaissance de fin de block */ 317 337 } 318 338 block_type_journal; … … 322 342 /* ------------------------------------------------------------------------------------------ */ 323 343 #define bol_micro_volt(val,gain) ((1e7*(double)val)/(65536.*gain)) 324 /* avec gain = param.bolo_gain[bolo]*gain_ampli(reglage.bolo[bolo]) */344 /* avec gain = (double)parametr.bolo[bolo].bolo_gain*gain_ampli(reglage.bolo[bolo]) */ 325 345 326 346 … … 353 373 typedef struct 354 374 { 355 longmot1; /* dac1 = mot[11..0]; dac2=mot1[23..12] */375 int4 mot1; /* dac1 = mot[11..0]; dac2=mot1[23..12] */ 356 376 /* gain = mot1[27..24]; phase = mot1[31..28]; */ 357 longmot2; /* dac3 = mot[11..0]; dac4=mot1[23..12] */377 int4 mot2; /* dac3 = mot[11..0]; dac4=mot1[23..12] */ 358 378 /* voie pour reglages auto = mot2[31..24]; */ 359 379 } … … 465 485 #define bit_piles_auto 4 466 486 467 enum{vanne_rien,vanne_ferme,vanne_ouvre,vanne_auto_pression,vanne_auto_pression_piles,vanne_auto_pression_piles_temps}; 468 enum{trans_rien,trans_normal,trans_rapide,trans_lent}; 487 enum{vanne_zero,vanne_rien,vanne_ferme,vanne_ouvre,vanne_auto_pression,vanne_auto_pression_piles,vanne_auto_pression_piles_temps}; 488 enum{trans_zero,trans_rien,trans_normal,trans_rapide,trans_lent}; 489 enum{helium_zero,helium_continu,helium_40s,helium_400s}; 469 490 470 491 … … 483 504 typedef struct 484 505 { 485 longdebut; /* code de reconnaissance de debut de block */486 longcode1; /* code1 du block */487 longcode2; /* code2 du block */506 int4 debut; /* code de reconnaissance de debut de block */ 507 int4 code1; /* code1 du block */ 508 int4 code2; /* code2 du block */ 488 509 reglage_bolo reglage; 489 longfin; /* code de reconnaissance de fin de block */510 int4 fin; /* code de reconnaissance de fin de block */ 490 511 } 491 512 block_type_reglage; … … 495 516 typedef struct 496 517 { 497 long debut; /* code de reconnaissance de debut de block */ 498 long code1; /* code1 du block */ 499 long code2; /* code2 du block */ 500 /* long data_dil[50]; data brutes de la dilution */ 501 long switch_dil; 502 long ADC_dil[48]; /* la lecture des 48 ADC de la carte DIL */ 503 long DAC_dil[4]; /* les 4 dac de la carte dilution */ 504 long DAC_sst[4]; /* les 4 dac de la carte sst */ 505 long gyro_dil[3][nb_per_block*2]; /* les gyros a supprimer */ 506 long fin; /* code de reconnaissance de fin de block */ 518 int4 debut; /* code de reconnaissance de debut de block */ 519 int4 code1; /* code1 du block */ 520 int4 code2; /* code2 du block */ 521 int4 switch_dil; 522 int4 ADC_dil[48]; /* la lecture des 48 ADC de la carte DIL */ 523 int4 DAC_dil[4]; /* les 4 dac de la carte dilution */ 524 int4 DAC_sst[4]; /* les 4 dac de la carte sst */ 525 int4 temperature[4]; /* valeurs lues sur cartes BEDIFF modifiees */ 526 /* int4 gyro_dil[3][nb_per_block*2]; les gyros (block gyros) */ 527 /* int4 data_dil[50]; data brutes de la dilution */ 528 int4 fin; /* code de reconnaissance de fin de block */ 507 529 } 508 530 block_type_dilution; … … 530 552 531 553 /* position des mesures sur les multiplexeurs */ 554 /* J10A -> temperatures basses t_b1 t_b2,t_b3 t_b4 36 37 41 35 */ 555 /* J10B -> temperatures basses t_a1 t_a2,t_a3 t_a4 38 11 34 28 */ 556 /* J1?? -> temperatures hautes t_h1 t_h2,t_h3 t_h4 */ 532 557 533 558 enum{ 534 /* multiplex11..18:*/ mul11_,mul12_ ,p_haut ,p_memb ,t_h1 ,t_h4 ,t_h3 ,t_h2535 /* multiplex21..28:*/, mul21_ ,mul22 ,p_charb,p_R4 ,mul25_ ,p_C3 ,p_R3 , mul28536 /* multiplex31..38:*/, mul31_ ,p_C4 ,p_air ,t_a3 ,t_b4 ,t_b1 ,t_b2 ,t_a 2559 /* multiplex11..18:*/ t_a2 ,mul12_ ,p_haut ,p_memb ,t_h1 ,t_h4 ,t_h3 ,t_h2 560 /* multiplex21..28:*/, mul21_ ,mul22 ,p_charb,p_R4 ,mul25_ ,p_C3 ,p_R3 ,t_a4 561 /* multiplex31..38:*/, mul31_ ,p_C4 ,p_air ,t_a3 ,t_b4 ,t_b1 ,t_b2 ,t_a1 537 562 /* multiplex41..48:*/, t_b3 ,d_4He ,RP_He ,mul44 ,d_3He ,j_he3 ,j_he7 ,j_he4 538 563 /* multiplex51..58:*/, j_he5 ,j_he1 ,j_he8 ,j_he2 ,j_he6 ,pirani ,mul57 ,mul58 539 564 /* multiplex61..68:*/, p_m18B ,p_10B ,p_m18D ,mul64 ,p_p18B ,p_10T ,p_Ch ,p_p18D 540 565 }; 541 enum{t_a1,t_a4}; /* en attendant de trouver leurs places */ 542 /* reste libres : mul 11 - 12 - 21 - 22 - 25 - 28 - 31 - 44 - 57 - 58 - 64 */ 566 /* reste libres : mul 12 - 21 - 22 - 25 - 31 - 44 - 57 - 58 - 64 */ 543 567 544 568 … … 549 573 typedef struct 550 574 { 551 longdebut; /* code de reconnaissance de debut de block */552 longcode1; /* code1 du block */553 longcode2; /* code2 du block */575 int4 debut; /* code de reconnaissance de debut de block */ 576 int4 code1; /* code1 du block */ 577 int4 code2; /* code2 du block */ 554 578 555 579 char gps[80]; /* les données GPS (une chaine maxi 80 cara) */ 556 580 557 longfin; /* code de reconnaissance de fin de block */581 int4 fin; /* code de reconnaissance de fin de block */ 558 582 } 559 583 block_type_gps; … … 565 589 typedef struct 566 590 { 567 longdebut; /* code de reconnaissance de debut de block */568 longcode1; /* code1 du block */569 longcode2; /* code2 du block */591 int4 debut; /* code de reconnaissance de debut de block */ 592 int4 code1; /* code1 du block */ 593 int4 code2; /* code2 du block */ 570 594 571 595 short bol_per[nb_max_bolo][nb_max_mes_per]; 572 596 573 longfin; /* code de reconnaissance de fin de block */597 int4 fin; /* code de reconnaissance de fin de block */ 574 598 } 575 599 block_type_une_periode; … … 579 603 typedef struct 580 604 { 581 longdebut; /* code de reconnaissance de debut de block */582 longcode1; /* code1 du block */583 longcode2; /* code2 du block */584 char synchro[nb_ sync][nb_per_block*2];585 586 longfin; /* code de reconnaissance de fin de block */605 int4 debut; /* code de reconnaissance de debut de block */ 606 int4 code1; /* code1 du block */ 607 int4 code2; /* code2 du block */ 608 char synchro[nb_per_block*2][nb_sync]; 609 610 int4 fin; /* code de reconnaissance de fin de block */ 587 611 } 588 612 block_type_synchro_sol; … … 592 616 typedef struct 593 617 { 594 longdebut; /* code de reconnaissance de debut de block */595 longcode1; /* code1 du block */596 longcode2; /* code2 du block */618 int4 debut; /* code de reconnaissance de debut de block */ 619 int4 code1; /* code1 du block */ 620 int4 code2; /* code2 du block */ 597 621 char comment[1024]; 598 longfin; /* code de reconnaissance de fin de block */622 int4 fin; /* code de reconnaissance de fin de block */ 599 623 } 600 624 block_type_pointage_sol; … … 606 630 typedef struct 607 631 { 608 longdebut; /* code de reconnaissance de debut de block */609 longcode1; /* code1 du block */610 longcode2; /* code2 du block */632 int4 debut; /* code de reconnaissance de debut de block */ 633 int4 code1; /* code1 du block */ 634 int4 code2; /* code2 du block */ 611 635 /* pour chaque bolo, un vecteur 72 points */ 612 longdata_bolo[nb_max_bolo][nb_per_block*2];636 int4 data_bolo[nb_max_bolo][nb_per_block*2]; 613 637 /* data D.S. (en mots de 32 bits) */ 614 longfin; /* code de reconnaissance de fin de block */638 int4 fin; /* code de reconnaissance de fin de block */ 615 639 } 616 640 block_type_bolo; … … 620 644 typedef struct 621 645 { 622 longdebut; /* code de reconnaissance de debut de block */623 longcode1; /* code1 du block */624 longcode2; /* code2 du block */646 int4 debut; /* code de reconnaissance de debut de block */ 647 int4 code1; /* code1 du block */ 648 int4 code2; /* code2 du block */ 625 649 /* chaque gyro: un vecteur tde 72 valeurs */ 626 longgyros[3][nb_per_block*2];627 longmagneto[3]; /* 1 bit par echantillonage soit 3*32bit>72 */628 longfin; /* code de reconnaissance de fin de block */650 int4 gyros[3][nb_per_block*2]; 651 int4 magneto[3]; /* 1 bit par echantillonage soit 3*32bit>72 */ 652 int4 fin; /* code de reconnaissance de fin de block */ 629 653 } 630 654 block_type_gyro; … … 634 658 typedef struct 635 659 { 636 longdebut; /* code de reconnaissance de debut de block */637 longcode1; /* code1 du block */638 longcode2; /* code2 du block */639 longsst[nb_per_block*2][18];660 int4 debut; /* code de reconnaissance de debut de block */ 661 int4 code1; /* code1 du block */ 662 int4 code2; /* code2 du block */ 663 int4 sst[nb_per_block*2][18]; 640 664 /* chaque mesure: un paquet de 18 mots de 32 bits */ 641 longfin; /* code de reconnaissance de fin de block */665 int4 fin; /* code de reconnaissance de fin de block */ 642 666 } 643 667 block_type_sst; … … 647 671 typedef struct 648 672 { 649 longdebut; /* code de reconnaissance de debut de block */650 longcode1; /* code1 du block */651 longcode2; /* code2 du block */652 longfin; /* code de reconnaissance de fin de block */673 int4 debut; /* code de reconnaissance de debut de block */ 674 int4 code1; /* code1 du block */ 675 int4 code2; /* code2 du block */ 676 int4 fin; /* code de reconnaissance de fin de block */ 653 677 } 654 678 block_type11; … … 658 682 typedef struct 659 683 { 660 longdebut; /* code de reconnaissance de debut de block */661 longcode1; /* code1 du block */662 longcode2; /* code2 du block */684 int4 debut; /* code de reconnaissance de debut de block */ 685 int4 code1; /* code1 du block */ 686 int4 code2; /* code2 du block */ 663 687 /* nombre de mots = nb valeurs/4 +1 */ 664 688 /* pour chaque bolo, un vecteur 19 mots */ 665 longdata_bolo[nb_bolo_util][ (nb_per_block/2) +1 ];666 667 longfin; /* code de reconnaissance de fin de block */689 unsigned int4 data_bolo[nb_bolo_util][ (nb_per_block/2) +1 ]; 690 691 int4 fin; /* code de reconnaissance de fin de block */ 668 692 } 669 693 block_type_bolo_comprime; … … 673 697 typedef struct 674 698 { 675 longdebut; /* code de reconnaissance de debut de block */676 longcode1; /* code1 du block */677 longcode2; /* code2 du block */699 int4 debut; /* code de reconnaissance de debut de block */ 700 int4 code1; /* code1 du block */ 701 int4 code2; /* code2 du block */ 678 702 /* nombre de mots = nb valeurs/4 +1 */ 679 longgyro[3][ (nb_per_block/2) +1 ];680 longfin; /* code de reconnaissance de fin de block */703 unsigned int4 gyro[3][ (nb_per_block/2) +1 ]; 704 int4 fin; /* code de reconnaissance de fin de block */ 681 705 } 682 706 block_type_gyro_comprime; … … 686 710 typedef struct 687 711 { 688 longdebut; /* code de reconnaissance de debut de block */689 longcode1; /* code1 du block */690 longcode2; /* code2 du block */712 int4 debut; /* code de reconnaissance de debut de block */ 713 int4 code1; /* code1 du block */ 714 int4 code2; /* code2 du block */ 691 715 /* pour chaque diode, un vecteur 11 mots */ 692 longsst[nb_photo_diodes] [(nb_per_block*2/7) +1 ];693 longfin; /* code de reconnaissance de fin de block */716 unsigned int4 sst[nb_photo_diodes] [(nb_per_block*2/7) +1 ]; 717 int4 fin; /* code de reconnaissance de fin de block */ 694 718 } 695 719 block_type_sst_comprime; … … 702 726 typedef struct /* etat de l'enregistreur */ 703 727 { 704 longnb_total_catalog;705 longmemoire_libre;706 longnb_block_erreur;728 int4 nb_total_catalog; 729 int4 memoire_libre; 730 int4 nb_block_erreur; 707 731 }status_flash; 708 732 709 733 typedef struct 710 734 { 711 longdebut; /* code de reconnaissance de debut de block */712 longcode1; /* code1 du block */713 longcode2; /* code2 du block */714 715 longcommande; /* la commande a laquelle ce catalog repond */735 int4 debut; /* code de reconnaissance de debut de block */ 736 int4 code1; /* code1 du block */ 737 int4 code2; /* code2 du block */ 738 739 int4 commande; /* la commande a laquelle ce catalog repond */ 716 740 status_flash status; /* etat de l'enregistreur */ 717 longnombre; /* */718 longcode[nb_element_catalog]; /* code type et numero */719 longfin; /* code de reconnaissance de fin de block */741 int4 nombre; /* */ 742 int4 code[nb_element_catalog]; /* code type et numero */ 743 int4 fin; /* code de reconnaissance de fin de block */ 720 744 } 721 745 block_type_catalog_flash; … … 726 750 typedef struct 727 751 { 728 longdebut; /* code de reconnaissance de debut de block */729 longcode1; /* code1 du block */730 longcode2; /* code2 du block */731 longcommande; /* type de commande a l'enregistreur flash */732 longfin; /* code de reconnaissance de fin de block */752 int4 debut; /* code de reconnaissance de debut de block */ 753 int4 code1; /* code1 du block */ 754 int4 code2; /* code2 du block */ 755 int4 commande; /* type de commande a l'enregistreur flash */ 756 int4 fin; /* code de reconnaissance de fin de block */ 733 757 } 734 758 block_type_cmd_flash; … … 743 767 typedef struct 744 768 { 745 longdebut; /* code de reconnaissance de debut de block */746 longcode1; /* code1 du block */747 longcode2; /* code2 du block */769 int4 debut; /* code de reconnaissance de debut de block */ 770 int4 code1; /* code1 du block */ 771 int4 code2; /* code2 du block */ 748 772 #ifdef transmet_data_brute 749 773 char data[nb_per_block*nb_max_mes_per*nb_byte_mot]; 750 774 #endif 751 longfin; /* code de reconnaissance de fin de block */775 int4 fin; /* code de reconnaissance de fin de block */ 752 776 } 753 777 block_type_data_brute; … … 757 781 typedef struct 758 782 { 759 longdebut; /* code de reconnaissance de debut de block */760 longcode1; /* code1 du block */761 longcode2; /* code2 du block */762 longfin; /* code de reconnaissance de fin de block */783 int4 debut; /* code de reconnaissance de debut de block */ 784 int4 code1; /* code1 du block */ 785 int4 code2; /* code2 du block */ 786 int4 fin; /* code de reconnaissance de fin de block */ 763 787 } 764 788 block_type_18; … … 768 792 typedef struct 769 793 { 770 longdebut; /* code de reconnaissance de debut de block */771 longcode1; /* code1 du block */772 longcode2; /* code2 du block */773 longfin; /* code de reconnaissance de fin de block */794 int4 debut; /* code de reconnaissance de debut de block */ 795 int4 code1; /* code1 du block */ 796 int4 code2; /* code2 du block */ 797 int4 fin; /* code de reconnaissance de fin de block */ 774 798 } 775 799 block_type_19; … … 782 806 typedef struct /* La structure de transfert transputer vers mac */ 783 807 { 784 longdebut; /* code de reconnaissance de debut de block */785 longcode1; /* code1 du block */786 longcode2; /* code2 du block */787 longmot[(taille_maxi_block_archeops)/4];788 longfin; /* code de reconnaissance de fin de block */808 int4 debut; /* code de reconnaissance de debut de block */ 809 int4 code1; /* code1 du block */ 810 int4 code2; /* code2 du block */ 811 int4 mot[(taille_maxi_block_archeops)/4]; 812 int4 fin; /* code de reconnaissance de fin de block */ 789 813 } 790 814 block_type_modele;
Note:
See TracChangeset
for help on using the changeset viewer.