Ignore:
Timestamp:
Nov 25, 1999, 2:56:34 PM (26 years ago)
Author:
ansari
Message:

archediab 28 vol

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Poubelle/archediab.old/archeops.h

    r645 r649  
    77
    88#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_
    1213#define ECC_TOTAL 255
    1314#define ECC_DATA 239       /* Nb de bytes de data encodes */
     
    1516#define SIZE_HEAD sizeof(int4)*3  /* 3 mots d'entete de blocs */
    1617#endif
     18
    1719/*======================================================================*/
    1820/*                                                                      */
     
    4850/*      erronnes.                                                       */
    4951/*                                                                      */
     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
    5057/*======================================================================*/
    5158
     
    180187#define         tc_dir_transputer               1
    181188#define         tc_dir_reset_epld               3
     189#define         tc_dir_reset_trp                4
    182190
    183191/*  -------------  codes  des  prefix des  telecommandes traités le transputer  --------------   */
     
    202210enum{tc2_reset_epld,tc2_bolo_dacV,tc2_bolo_dacI,tc2_bolo_dacT
    203211        ,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*/
    205214
    206215
     
    212221/*      code2=tc2_horloge       :                                                               */
    213222/*              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                                       */
     223enum{tc3_commande,tc3_periode,tc3_nb_mesures,tc3_temp_mort,tc3_flag};
    217224
    218225
     
    227234
    228235
    229 /*      code2=tc2_dilution      :                                               */
    230 
     236/*      code2=tc2_dilution      :       commandes setbit,clrbit                                                 */
     237enum{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
    231242
    232243/*______________________________________________________________________________*/
     
    337348
    338349        param_bolo      param;          /*      les parametres de mesure des bolometres         */
     350#ifdef _ECC_LIB_H_
    339351        unsigned char ecc[((((sizeof( param_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     352#endif
    340353        int4            fin;            /*      code de reconnaissance de fin de block          */
    341354        }
     
    366379
    367380        ligne_journal   jj[long_page];  /*      block de 10 lignes de journal                   */
     381#ifdef _ECC_LIB_H_
    368382        unsigned char ecc[((((sizeof(ligne_journal)*long_page+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     383#endif
    369384
    370385        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    513528#endif          /***********   fin des structures swappées       ****************/
    514529
    515 enum{regul_stop,regul_chauffage_null,regul_sans_deglitch,regul_avec_deglitch};
     530enum{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};
    516531
    517532#define bit_piles_5V    1
     
    541556        int4            code2;          /*      code2 du block                                  */
    542557        reglage_bolo    reglage;                                                                                       
     558#ifdef _ECC_LIB_H_
    543559        unsigned char ecc[((((sizeof(reglage_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     560#endif
    544561        int4            fin;            /*      code de reconnaissance de fin de block          */
    545562        }
     
    560577/*      int4            gyro_dil[3][nb_per_block*2];    les gyros  (block gyros)                */
    561578/*      int4            data_dil[50];    data brutes de la dilution                             */
     579#ifdef _ECC_LIB_H_
    562580        unsigned char ecc[((((sizeof(int4)*64+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     581#endif
    563582        int4            fin;            /*      code de reconnaissance de fin de block          */
    564583        }
     
    579598#define vanne_EVF               0x00040000      /*  10: commande vanne EVF      */
    580599#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      */
    586605#define chauffage7              0x00000100      /*  0: chauffage 7      */
     606
     607enum{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};
    587610
    588611/*  position des mesures sur les multiplexeurs          */
     
    595618/* multiplex21..28:*/,  mul21_  ,mul22  ,p_charb,p_R4   ,mul25_ ,p_C3   ,p_R3   ,t_a4   
    596619/* 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_he4 
     620/* multiplex41..48:*/,  t_b3    ,d_4He  ,RP_He  ,t_pile ,d_3He  ,j_he3  ,j_he7  ,j_he4 
    598621/* multiplex51..58:*/,  j_he5   ,j_he1  ,j_he8  ,j_he2  ,j_he6  ,pirani ,mul57  ,mul58 
    599622/* multiplex61..68:*/,  p_m18B  ,p_10B  ,p_m18D ,mul64  ,p_p18B ,p_10T  ,p_Ch   ,p_p18D         
    600623        };
    601624/* reste libres :  mul   12 - 21 - 22 - 25 -  31 - 44 - 57 - 58 - 64    */
     625/* T_A1 EST AUSSI LE DRIVER DU MOTEUR DE PIVOT   */
    602626
    603627#define  val_multiplex(qq)      (0.0003052*(double)((qq)-0x8000))       
     
    616640
    617641        char            gps[GPS_DATA];  /*      les données GPS (une chaine maxi 80 cara)       */
     642#ifdef _ECC_LIB_H_
    618643        unsigned char ecc[((((GPS_DATA+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     644#endif
    619645
    620646        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    633659       
    634660        short           bol_per[nb_max_bolo][nb_max_mes_per];           
     661#ifdef _ECC_LIB_H_
    635662        unsigned char ecc[((((sizeof(short)*nb_max_bolo*nb_max_mes_per+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     663#endif
    636664
    637665        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    647675        int4            code2;          /*      code2 du block                                  */
    648676        char            synchro[nb_per_block*2][nb_sync];       
     677#ifdef _ECC_LIB_H_
    649678        unsigned char ecc[((((nb_per_block*nb_sync*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     679#endif
    650680
    651681        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    661691        int4            code2;          /*      code2 du block                                  */
    662692        char            comment[1024];
     693#ifdef _ECC_LIB_H_
    663694        unsigned char ecc[((((1024+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     695#endif
    664696        int4            fin;            /*      code de reconnaissance de fin de block          */
    665697        }
     
    678710        int4            data_bolo[nb_max_bolo][nb_per_block*2];
    679711                                        /*      data D.S.       (en mots de 32 bits)            */
     712#ifdef _ECC_LIB_H_
    680713        unsigned char ecc[((((sizeof(int4)*nb_max_bolo*nb_per_block*2+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     714#endif
    681715        int4            fin;            /*      code de reconnaissance de fin de block          */
    682716        }
    683717        block_type_bolo;                       
    684718
    685 /*  ---------------------   structures N° 9 :   données des gyroscopes et du magnétometre       */
     719/*  ---------------------   structures N° 9 :   données des gyroscopes */
    686720/*  -----------------------------------------------------------------------------------------   */
    687721typedef struct                           
     
    692726                                        /* chaque gyro: un vecteur tde 72 valeurs               */
    693727        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
    696731        int4            fin;            /*      code de reconnaissance de fin de block          */
    697732        }
     
    707742        int4            sst[nb_per_block*2][18];
    708743                                        /* chaque mesure: un paquet de 18 mots de 32 bits       */
     744#ifdef _ECC_LIB_H_
    709745        unsigned char ecc[((((sizeof(int4)*nb_per_block*2*18+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     746#endif
    710747        int4            fin;            /*      code de reconnaissance de fin de block          */
    711748        }
     
    719756        int4            code1;          /*      code1 du block                                  */
    720757        int4            code2;          /*      code2 du block                                  */
     758#ifdef _ECC_LIB_H_
    721759        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     760#endif
    722761        int4            fin;            /*      code de reconnaissance de fin de block          */
    723762        }
     
    734773                                        /*      pour chaque bolo, un vecteur  19 mots           */
    735774        unsigned int4   data_bolo[nb_bolo_util][ (nb_per_block/2) +1 ];
     775#ifdef _ECC_LIB_H_
    736776        unsigned char ecc[((((sizeof(int4)*nb_bolo_util*((nb_per_block/2) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     777#endif
    737778
    738779        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    749790                                        /*      nombre de mots = nb valeurs/4 +1                */
    750791        unsigned int4   gyro[3][ (nb_per_block/2) +1 ];
     792#ifdef _ECC_LIB_H_
    751793        unsigned char ecc[((((sizeof(int4)*3*((nb_per_block/2) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     794#endif
    752795        int4            fin;            /*      code de reconnaissance de fin de block          */
    753796        }
     
    763806                                        /*      pour chaque diode, un vecteur  11 mots          */
    764807        unsigned int4   sst[nb_photo_diodes] [(nb_per_block*2/7) +1 ];
     808#ifdef _ECC_LIB_H_
    765809        unsigned char ecc[((((sizeof(int4)*nb_photo_diodes*((nb_per_block*2/7) +1)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     810#endif
    766811        int4            fin;            /*      code de reconnaissance de fin de block          */
    767812        }
     
    801846  int4 erreur ;   /* Si la commande a induit une erreur */
    802847  status_flash status ; /* etat de l'enregistreur */
     848#ifdef _ECC_LIB_H_
    803849  unsigned char ecc[((((sizeof(int4)*2 + sizeof(status_flash)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     850#endif
    804851 
    805852  unsigned int4 fin ; /* code de reconnaissance de fin de block */
     
    814861
    815862  int4  commande; /* type de commande a l'enregistreur flash */
     863#ifdef _ECC_LIB_H_
    816864  unsigned char ecc[((((sizeof(int4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     865#endif
    817866
    818867  int4  fin;      /* code de reconnaissance de fin de block */
     
    848897#ifdef  transmet_data_brute
    849898        char            data[nb_per_block*nb_max_mes_per*nb_byte_mot];
     899#ifdef _ECC_LIB_H_
    850900        unsigned char ecc[((((nb_per_block*nb_max_mes_per*nb_byte_mot+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     901#endif
    851902#else
     903#ifdef _ECC_LIB_H_
    852904        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     905#endif
    853906#endif
    854907        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    863916        int4            code1;          /*      code1 du block                                  */
    864917        int4            code2;          /*      code2 du block                                  */
     918#ifdef _ECC_LIB_H_
    865919        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     920#endif
    866921        int4            fin;            /*      code de reconnaissance de fin de block          */
    867922        }
     
    875930        int4            code1;          /*      code1 du block                                  */
    876931        int4            code2;          /*      code2 du block                                  */
     932#ifdef _ECC_LIB_H_
    877933        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     934#endif
    878935        int4            fin;            /*      code de reconnaissance de fin de block          */
    879936        }
     
    891948        int4            code2;          /*      code2 du block                                  */
    892949        int4            mot[(taille_maxi_block_archeops)/4];
     950#ifdef _ECC_LIB_H_
    893951        unsigned char ecc[((((sizeof(int4)*(taille_maxi_block_archeops/4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
     952#endif
    894953        int4            fin;            /* code de reconnaissance de fin de block               */
    895954        }
Note: See TracChangeset for help on using the changeset viewer.