Changeset 645 in Sophya


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

archediab 27

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  
    99#include "archeops.h"
    1010#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 
    1119
    12 
    13 
     20#define cadence_taux    16
     21#define mode_acquisition        0x00    //0xff en mode inverse, 0x00 en mode normal
    1422unsigned long   buffer;
    1523int     llgg,somme,type_du_block,numero;
    1624int     deb;    /*deb vaut zero si aucun debut n'a encore ete trouve*/
    1725int     compteur;
    18 int cpt_cherche_debut;
     26int     cpt_cherche_debut;
     27unsigned long   taux;
     28unsigned long   Nvide, Nplein;
    1929def_long_block
    2030
     
    2535{
    2636        int     i,m,bit;
     37       
    2738//      unsigned char   bit;    /*c'est le bit lu*/
    2839       
    29         bit=un_bit();
     40        bit=un_bit()^mode_acquisition;
    3041        switch(bit)
    3142                {
     
    3849                }
    3950       
     51       
    4052        compteur++;
    4153        i=compteur%32;
    4254
    43                
     55       
     56       
    4457       
    4558        switch(deb)
     
    108121                                                if(pbk->mot[m] == fin_block_mesure)
    109122                                                {
     123                                                        /*
    110124                                                        if(calcul_somme_block(pbk,llgg)!=somme)
    111125                                                        {
    112126                                                                ecrit_erreur_bit(erreur_somme);
    113127                                                               
    114                                                                 /*on continue quand meme*/
     128                                                               
    115129                                                        }
     130                                                        */
     131                                                       
    116132//                                                      else    ecrit_erreur_bit(bloc_correct);
    117133                                                               
    118134                                                        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);
    120140                                                        return(lit_bit_un_block);
    121141                                                                               
     
    129149                                                }
    130150                                               
     151                                       
     152                                               
     153                                               
    131154                                               
    132155                                        }
    133                                 }               
     156                                       
     157                                }
     158                               
     159                                               
    134160                        }
    135161                        break;
     
    138164                default :
    139165               
    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                        }       
    141173                        if(buffer==debut_block_mesure)
    142174                        {
    143175                                deb=1;
     176                                Nvide=compteur-32;
    144177                                compteur=31;
    145178                                pbk->debut=buffer;
  • trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c

    r643 r645  
    208208
    209209
     210#define c(j,i)          (1e-4*(double)parametr.nom_coef[parametr.bolo[j].numero_nom_coef].coef[i])     
    210211
    211212// les temperatures sur les cartes modifiées
    212213{
    213 double I,V,R[4];
     214double I,V,R[8],llR;
    214215int j,k;
    215216def_gains;
    216217k=0;
     218
    217219for(j=0;(j<nb_max_bolo) && (k<4);j++)
    218220        {
     
    222224                V=0.001*bol_micro_volt(blk->temperature[k],(double)parametr.bolo[j].bolo_gain*gain_ampli(gg->reglage.bolo[j]));
    223225                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++;           
    225234                }
    226235        }
    227236
    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
     238if(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]);
     241else    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
    230246if(litD(fenetre_dilution,dil_trace_tempe,0))// trace les sondes de niveau helium
    231247        {
     
    240256                        strcpy(graph->xtitre,"minutes");
    241257                        }
    242         tracen(fenetre_temperature_dil,4,minutes,R);
     258        tracen(fenetre_temperature_dil,8,minutes,R);
    243259        }
    244260}
  • trunk/Poubelle/archediab.old/archediab.sources/c/tache_archeops_bit2.c

    r643 r645  
    2323//
    2424//
    25 //   lit directement les blocks recut sur la fifo et les envoie au programme principal
     25//   lit directement les blocks recus sur la fifo et les envoie au programme principal
    2626//
    2727
     
    3434
    3535//*****************************************************************************************
     36unsigned long   N_total_bits,M;
     37unsigned short  Max,Min;
    3638
    3739void init_tache(void)
     
    6971
    7072
    71 char    un_bit(void)
     73char    un_bit()
    7274{
    7375static int i;
    7476static unsigned long RR;
     77unsigned short  Val;
     78
    7579lit_carte;      if(rien_a_lire)         return(bit_vide);       //  fifo vide  ->  retour  ->  sort du while
     80
     81N_total_bits++;
     82Val=((RR>>1) & 0x3f);   //permet de lire les bits de temps dans RR
     83
     84//Calcul de la nouvelle moyenne glissee du temps
     85M=M-(M>>16)+(Val<<8);
     86
     87       
     88//Calcul du Max
     89if(N_total_bits==0) Max=Val;    //initialisation au premier passage
     90if(Val>Max) Max=Val;    //changement de maximum
     91if((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
     98if(N_total_bits==0) Min=Val;    //initialisation au premier passage
     99if(Val<Min) Min=Val;    //changement de minimum
     100if((N_total_bits%60000)==0) Min=Min+1;  //Augmentation tous les 60000 bits
     101//tt->nb_lec_fofo_ext=M;
     102
     103
     104       
    76105//if( RR & 1 )          return(bit_un);
    77106//else          return(bit_zero);
    78107if( RR & 1 )    return(bit_zero);
    79108else            return(bit_un);
     109
    80110}
    81111
     
    135165        }
    136166if(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;}
    138168
    139169}
  • trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c

    r643 r645  
    217217        case    tc_dir_reset_epld       :       //printf("tc_reset_epld:\n");
    218218               
    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
    220221                        tc_char(1);tc_char(1);
    221222                        tc_char(0x00);tc_char(0x00);    //  synchro
  • trunk/Poubelle/archediab.old/archeops.c

    r643 r645  
    1818/*      Pciel   =       coef5   - Pelec         coef5= I * Ai (tables xavier)         */
    1919/*      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/*                                                                                    */
    2128/**************************************************************************************/
    2229
     
    3340
    3441
    35 /*  nom  ,  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 */
    3643/*       ,  0 ou 1  ,  2..8 = BEBO    ,  hard   ,           ,  4700     ,  333     ,            */
    3744/*                     10 = Bediff    ,         ,           ,                                   */
     
    4451/*----------------------------------  fenetre :  -----------------------------------*/
    4552
    46 param_bolo  parametr={26,24,36,88,18,
     53param_bolo  parametr={27,24,36,88,18,
    4754
    4855{
    49 { 1  , 0,10,1 ,  200, 22000     ,  200 },              
    50 { , 1,10,2 ,  200, 22000     ,  200 },
    51 { , 1,10,3 ,  200, 22000     ,  200 },
    52 { 4  , 0,10,4 ,  200, 22000     ,  200 },
    53 
    54 { , 1,10,5 , 1000, 4700      , 1000 },
    55 { 6  , 0,10,6 , 1000, 4700      , 1000 },
    56 { , 1,10,9 , 1000, 4700      , 1000 },
    57 { 8  , 0,10,10, 1000, 4700      , 1000 },
    58 
    59 { , 1,10,11, 1000, 4700      , 1000 },
    60 { 10 , 1,10,12, 1000, 4700      , 1000 },
    61 { 11 , 1,10,13, 1000, 4700      , 1000 },
    62 { 12 , 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 { 17    , 1,10,21, 500, 22000   ,  500 },
    70 { 18    , 1,10,22, 500, 22000   ,  500 },
    71 { 19    , 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 },
    7380
    7481{ 21    , 3,10,27, 1000, 22000  ,    0 },
    7582{ 22    , 3,10,28, 1000, 1000   ,    0 },
    7683{ 23    , 3,10,29, 1000, 1000   ,    0 },
    77 { 0     , 3,10,30, 1000, 1000   ,    0 },
     84{ 19    , 3,10,30, 1000, 1000   ,    0 },
    7885
    7986},
    8087{
    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} },
    110117
    111118}
     
    114121/*fin_param*/
    115122
    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}*/
    117154
    118155/* bolos campagne 1998-1999     */
  • trunk/Poubelle/archediab.old/archeops.h

    r643 r645  
    77
    88#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
    1217/*======================================================================*/
    1318/*                                                                      */
     
    3136/*                                                                      */
    3237/*      - 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/*                                                                      */
    3450/*======================================================================*/
    3551
     
    321337
    322338        param_bolo      param;          /*      les parametres de mesure des bolometres         */
    323 
     339        unsigned char ecc[((((sizeof( param_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    324340        int4            fin;            /*      code de reconnaissance de fin de block          */
    325341        }
     
    350366
    351367        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)] ;
    352369
    353370        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    524541        int4            code2;          /*      code2 du block                                  */
    525542        reglage_bolo    reglage;                                                                                       
     543        unsigned char ecc[((((sizeof(reglage_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    526544        int4            fin;            /*      code de reconnaissance de fin de block          */
    527545        }
     
    542560/*      int4            gyro_dil[3][nb_per_block*2];    les gyros  (block gyros)                */
    543561/*      int4            data_dil[50];    data brutes de la dilution                             */
     562        unsigned char ecc[((((sizeof(int4)*64+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    544563        int4            fin;            /*      code de reconnaissance de fin de block          */
    545564        }
     
    589608/*  ------------------------------------------------------------------------------------------- */
    590609
    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
     611typedef 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)] ;
    598619
    599620        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    612633       
    613634        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)] ;
    614636
    615637        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    625647        int4            code2;          /*      code2 du block                                  */
    626648        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)] ;
    627650
    628651        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    638661        int4            code2;          /*      code2 du block                                  */
    639662        char            comment[1024];
     663        unsigned char ecc[((((1024+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    640664        int4            fin;            /*      code de reconnaissance de fin de block          */
    641665        }
     
    654678        int4            data_bolo[nb_max_bolo][nb_per_block*2];
    655679                                        /*      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)] ;
    656681        int4            fin;            /*      code de reconnaissance de fin de block          */
    657682        }
     
    668693        int4            gyro[3][nb_per_block*2];
    669694        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)] ;
    670696        int4            fin;            /*      code de reconnaissance de fin de block          */
    671697        }
     
    681707        int4            sst[nb_per_block*2][18];
    682708                                        /* 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)] ;
    683710        int4            fin;            /*      code de reconnaissance de fin de block          */
    684711        }
     
    692719        int4            code1;          /*      code1 du block                                  */
    693720        int4            code2;          /*      code2 du block                                  */
     721        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    694722        int4            fin;            /*      code de reconnaissance de fin de block          */
    695723        }
     
    706734                                        /*      pour chaque bolo, un vecteur  19 mots           */
    707735        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)] ;
    708737
    709738        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    720749                                        /*      nombre de mots = nb valeurs/4 +1                */
    721750        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)] ;
    722752        int4            fin;            /*      code de reconnaissance de fin de block          */
    723753        }
     
    733763                                        /*      pour chaque diode, un vecteur  11 mots          */
    734764        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)] ;
    735766        int4            fin;            /*      code de reconnaissance de fin de block          */
    736767        }
     
    770801  int4 erreur ;   /* Si la commande a induit une erreur */
    771802  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 
    772805  unsigned int4 fin ; /* code de reconnaissance de fin de block */
    773806} block_type_status_flash ;
     
    781814
    782815  int4  commande; /* type de commande a l'enregistreur flash */
     816  unsigned char ecc[((((sizeof(int4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    783817
    784818  int4  fin;      /* code de reconnaissance de fin de block */
     
    814848#ifdef  transmet_data_brute
    815849        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)] ;
    816853#endif
    817854        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    826863        int4            code1;          /*      code1 du block                                  */
    827864        int4            code2;          /*      code2 du block                                  */
     865        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    828866        int4            fin;            /*      code de reconnaissance de fin de block          */
    829867        }
     
    837875        int4            code1;          /*      code1 du block                                  */
    838876        int4            code2;          /*      code2 du block                                  */
     877        unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ;
    839878        int4            fin;            /*      code de reconnaissance de fin de block          */
    840879        }
     
    852891        int4            code2;          /*      code2 du block                                  */
    853892        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)] ;
    854894        int4            fin;            /* code de reconnaissance de fin de block               */
    855895        }
Note: See TracChangeset for help on using the changeset viewer.