Changeset 649 in Sophya for trunk/Poubelle/archediab.old/archeops.h
- Timestamp:
- Nov 25, 1999, 2:56:34 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archeops.h
r645 r649 7 7 8 8 #define _archeops 9 #define version_num 27 10 11 #if version_num>=27 9 #define version_num 28 10 11 /* defini ici que si l'on n'a pas inclu ecclib.h qui contient les memes definitions */ 12 #ifndef _ECC_LIB_H_ 12 13 #define ECC_TOTAL 255 13 14 #define ECC_DATA 239 /* Nb de bytes de data encodes */ … … 15 16 #define SIZE_HEAD sizeof(int4)*3 /* 3 mots d'entete de blocs */ 16 17 #endif 18 17 19 /*======================================================================*/ 18 20 /* */ … … 48 50 /* erronnes. */ 49 51 /* */ 52 /* VERSION 28: */ 53 /* - corrigée la taille du block gyroscope avec ecc */ 54 /* - compatible avec la generation de l'ecc dans le transputer */ 55 /* - mais sans ecc: trops long a calculer */ 56 50 57 /*======================================================================*/ 51 58 … … 180 187 #define tc_dir_transputer 1 181 188 #define tc_dir_reset_epld 3 189 #define tc_dir_reset_trp 4 182 190 183 191 /* ------------- codes des prefix des telecommandes traités le transputer -------------- */ … … 202 210 enum{tc2_reset_epld,tc2_bolo_dacV,tc2_bolo_dacI,tc2_bolo_dacT 203 211 ,tc2_bolo_dacL,tc2_bolo_gain,tc2_bolo_voie,tc2_horloge 204 ,tc2_regul,tc2_auto_bolo,tc2_auto_dilu,tc2_dilution}; /* 12 codes: reste 4 disponibles*/ 212 ,tc2_regul,tc2_auto_bolo,tc2_auto_dilu,tc2_dilution 213 ,tc2_raz_fet,tc2_reset}; /* 13 codes: reste 3 disponibles*/ 205 214 206 215 … … 212 221 /* code2=tc2_horloge : */ 213 222 /* soit un code defini */ 214 /* soit le code tc3_vitesse+i avec i=0.. nb_type_block */ 215 enum{tc3_commande,tc3_periode,tc3_nb_mesures,tc3_temp_mort,tc3_flag,tc3_vitesse}; 216 /*#define tc3_suite tc3_vitesse+nb_type_block */ 223 enum{tc3_commande,tc3_periode,tc3_nb_mesures,tc3_temp_mort,tc3_flag}; 217 224 218 225 … … 227 234 228 235 229 /* code2=tc2_dilution : */ 230 236 /* code2=tc2_dilution : commandes setbit,clrbit */ 237 enum{tc3_clr_bit_dil,tc3_set_bit_dil,tc3_fet_raz}; 238 239 /* code2=tc2_reset : commandes setbit,clrbit */ 240 #define tc3_reset 13 241 #define tc4_reset 73 231 242 232 243 /*______________________________________________________________________________*/ … … 337 348 338 349 param_bolo param; /* les parametres de mesure des bolometres */ 350 #ifdef _ECC_LIB_H_ 339 351 unsigned char ecc[((((sizeof( param_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 352 #endif 340 353 int4 fin; /* code de reconnaissance de fin de block */ 341 354 } … … 366 379 367 380 ligne_journal jj[long_page]; /* block de 10 lignes de journal */ 381 #ifdef _ECC_LIB_H_ 368 382 unsigned char ecc[((((sizeof(ligne_journal)*long_page+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 383 #endif 369 384 370 385 int4 fin; /* code de reconnaissance de fin de block */ … … 513 528 #endif /*********** fin des structures swappées ****************/ 514 529 515 enum{regul_stop,regul_chauffage_null,regul_sans_deglitch,regul_avec_deglitch };530 enum{regul_stop,regul_chauffage_null,regul_sans_deglitch,regul_avec_deglitch,stop_moteur,moteur_direct_p,moteur_regul_p,moteur_direct_m,moteur_regul_m}; 516 531 517 532 #define bit_piles_5V 1 … … 541 556 int4 code2; /* code2 du block */ 542 557 reglage_bolo reglage; 558 #ifdef _ECC_LIB_H_ 543 559 unsigned char ecc[((((sizeof(reglage_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 560 #endif 544 561 int4 fin; /* code de reconnaissance de fin de block */ 545 562 } … … 560 577 /* int4 gyro_dil[3][nb_per_block*2]; les gyros (block gyros) */ 561 578 /* int4 data_dil[50]; data brutes de la dilution */ 579 #ifdef _ECC_LIB_H_ 562 580 unsigned char ecc[((((sizeof(int4)*64+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 581 #endif 563 582 int4 fin; /* code de reconnaissance de fin de block */ 564 583 } … … 579 598 #define vanne_EVF 0x00040000 /* 10: commande vanne EVF */ 580 599 #define chauffage1 0x00004000 /* 6: chauffage 1 */ 581 #define chauffage2 0x00002000 /* 6: chauffage 1 */582 #define chauffage3 0x00001000 /* 6: chauffage 1 */583 #define chauffage4 0x00000800 /* 6: chauffage 1 */584 #define chauffage5 0x00000400 /* 6: chauffage 1 */585 #define chauffage6 0x00000200 /* 6: chauffage 1 */600 #define chauffage2 0x00002000 /* 5: chauffage 1 */ 601 #define chauffage3 0x00001000 /* 4: chauffage 1 */ 602 #define chauffage4 0x00000800 /* 3: chauffage 1 */ 603 #define chauffage5 0x00000400 /* 2: chauffage 1 */ 604 #define chauffage6 0x00000200 /* 1: chauffage 1 */ 586 605 #define chauffage7 0x00000100 /* 0: chauffage 7 */ 606 607 enum{nbit_chauffage7,nbit_chauffage6,nbit_chauffage5,nbit_chauffage4,nbit_chauffage3 608 ,nbit_chauffage2,nbit_chauffage1,nbit_vanne_EVB,nbit_vanne_EVO 609 ,nbit_vanne_EVV,nbit_vanne_EVF,nbit_switch_pile_par_15,nbit_switch_pile_par_5,nbit_switch_helium}; 587 610 588 611 /* position des mesures sur les multiplexeurs */ … … 595 618 /* multiplex21..28:*/, mul21_ ,mul22 ,p_charb,p_R4 ,mul25_ ,p_C3 ,p_R3 ,t_a4 596 619 /* multiplex31..38:*/, mul31_ ,p_C4 ,p_air ,t_a3 ,t_b4 ,t_b1 ,t_b2 ,t_a1 597 /* multiplex41..48:*/, t_b3 ,d_4He ,RP_He , mul44,d_3He ,j_he3 ,j_he7 ,j_he4620 /* multiplex41..48:*/, t_b3 ,d_4He ,RP_He ,t_pile ,d_3He ,j_he3 ,j_he7 ,j_he4 598 621 /* multiplex51..58:*/, j_he5 ,j_he1 ,j_he8 ,j_he2 ,j_he6 ,pirani ,mul57 ,mul58 599 622 /* multiplex61..68:*/, p_m18B ,p_10B ,p_m18D ,mul64 ,p_p18B ,p_10T ,p_Ch ,p_p18D 600 623 }; 601 624 /* reste libres : mul 12 - 21 - 22 - 25 - 31 - 44 - 57 - 58 - 64 */ 625 /* T_A1 EST AUSSI LE DRIVER DU MOTEUR DE PIVOT */ 602 626 603 627 #define val_multiplex(qq) (0.0003052*(double)((qq)-0x8000)) … … 616 640 617 641 char gps[GPS_DATA]; /* les données GPS (une chaine maxi 80 cara) */ 642 #ifdef _ECC_LIB_H_ 618 643 unsigned char ecc[((((GPS_DATA+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 644 #endif 619 645 620 646 int4 fin; /* code de reconnaissance de fin de block */ … … 633 659 634 660 short bol_per[nb_max_bolo][nb_max_mes_per]; 661 #ifdef _ECC_LIB_H_ 635 662 unsigned char ecc[((((sizeof(short)*nb_max_bolo*nb_max_mes_per+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 663 #endif 636 664 637 665 int4 fin; /* code de reconnaissance de fin de block */ … … 647 675 int4 code2; /* code2 du block */ 648 676 char synchro[nb_per_block*2][nb_sync]; 677 #ifdef _ECC_LIB_H_ 649 678 unsigned char ecc[((((nb_per_block*nb_sync*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 679 #endif 650 680 651 681 int4 fin; /* code de reconnaissance de fin de block */ … … 661 691 int4 code2; /* code2 du block */ 662 692 char comment[1024]; 693 #ifdef _ECC_LIB_H_ 663 694 unsigned char ecc[((((1024+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 695 #endif 664 696 int4 fin; /* code de reconnaissance de fin de block */ 665 697 } … … 678 710 int4 data_bolo[nb_max_bolo][nb_per_block*2]; 679 711 /* data D.S. (en mots de 32 bits) */ 712 #ifdef _ECC_LIB_H_ 680 713 unsigned char ecc[((((sizeof(int4)*nb_max_bolo*nb_per_block*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 714 #endif 681 715 int4 fin; /* code de reconnaissance de fin de block */ 682 716 } 683 717 block_type_bolo; 684 718 685 /* --------------------- structures N° 9 : données des gyroscopes et du magnétometre*/719 /* --------------------- structures N° 9 : données des gyroscopes */ 686 720 /* ----------------------------------------------------------------------------------------- */ 687 721 typedef struct … … 692 726 /* chaque gyro: un vecteur tde 72 valeurs */ 693 727 int4 gyro[3][nb_per_block*2]; 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)] ; 728 #ifdef _ECC_LIB_H_ 729 unsigned char ecc[((((sizeof(int4)*3*nb_per_block*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 730 #endif 696 731 int4 fin; /* code de reconnaissance de fin de block */ 697 732 } … … 707 742 int4 sst[nb_per_block*2][18]; 708 743 /* chaque mesure: un paquet de 18 mots de 32 bits */ 744 #ifdef _ECC_LIB_H_ 709 745 unsigned char ecc[((((sizeof(int4)*nb_per_block*2*18+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 746 #endif 710 747 int4 fin; /* code de reconnaissance de fin de block */ 711 748 } … … 719 756 int4 code1; /* code1 du block */ 720 757 int4 code2; /* code2 du block */ 758 #ifdef _ECC_LIB_H_ 721 759 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 760 #endif 722 761 int4 fin; /* code de reconnaissance de fin de block */ 723 762 } … … 734 773 /* pour chaque bolo, un vecteur 19 mots */ 735 774 unsigned int4 data_bolo[nb_bolo_util][ (nb_per_block/2) +1 ]; 775 #ifdef _ECC_LIB_H_ 736 776 unsigned char ecc[((((sizeof(int4)*nb_bolo_util*((nb_per_block/2) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 777 #endif 737 778 738 779 int4 fin; /* code de reconnaissance de fin de block */ … … 749 790 /* nombre de mots = nb valeurs/4 +1 */ 750 791 unsigned int4 gyro[3][ (nb_per_block/2) +1 ]; 792 #ifdef _ECC_LIB_H_ 751 793 unsigned char ecc[((((sizeof(int4)*3*((nb_per_block/2) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 794 #endif 752 795 int4 fin; /* code de reconnaissance de fin de block */ 753 796 } … … 763 806 /* pour chaque diode, un vecteur 11 mots */ 764 807 unsigned int4 sst[nb_photo_diodes] [(nb_per_block*2/7) +1 ]; 808 #ifdef _ECC_LIB_H_ 765 809 unsigned char ecc[((((sizeof(int4)*nb_photo_diodes*((nb_per_block*2/7) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 810 #endif 766 811 int4 fin; /* code de reconnaissance de fin de block */ 767 812 } … … 801 846 int4 erreur ; /* Si la commande a induit une erreur */ 802 847 status_flash status ; /* etat de l'enregistreur */ 848 #ifdef _ECC_LIB_H_ 803 849 unsigned char ecc[((((sizeof(int4)*2 + sizeof(status_flash)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 850 #endif 804 851 805 852 unsigned int4 fin ; /* code de reconnaissance de fin de block */ … … 814 861 815 862 int4 commande; /* type de commande a l'enregistreur flash */ 863 #ifdef _ECC_LIB_H_ 816 864 unsigned char ecc[((((sizeof(int4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 865 #endif 817 866 818 867 int4 fin; /* code de reconnaissance de fin de block */ … … 848 897 #ifdef transmet_data_brute 849 898 char data[nb_per_block*nb_max_mes_per*nb_byte_mot]; 899 #ifdef _ECC_LIB_H_ 850 900 unsigned char ecc[((((nb_per_block*nb_max_mes_per*nb_byte_mot+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 901 #endif 851 902 #else 903 #ifdef _ECC_LIB_H_ 852 904 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 905 #endif 853 906 #endif 854 907 int4 fin; /* code de reconnaissance de fin de block */ … … 863 916 int4 code1; /* code1 du block */ 864 917 int4 code2; /* code2 du block */ 918 #ifdef _ECC_LIB_H_ 865 919 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 920 #endif 866 921 int4 fin; /* code de reconnaissance de fin de block */ 867 922 } … … 875 930 int4 code1; /* code1 du block */ 876 931 int4 code2; /* code2 du block */ 932 #ifdef _ECC_LIB_H_ 877 933 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 934 #endif 878 935 int4 fin; /* code de reconnaissance de fin de block */ 879 936 } … … 891 948 int4 code2; /* code2 du block */ 892 949 int4 mot[(taille_maxi_block_archeops)/4]; 950 #ifdef _ECC_LIB_H_ 893 951 unsigned char ecc[((((sizeof(int4)*(taille_maxi_block_archeops/4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 952 #endif 894 953 int4 fin; /* code de reconnaissance de fin de block */ 895 954 }
Note:
See TracChangeset
for help on using the changeset viewer.