Changeset 643 in Sophya for trunk


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

archediab 26

Location:
trunk/Poubelle/archediab.old
Files:
3 added
1 deleted
25 edited

Legend:

Unmodified
Added
Removed
  • trunk/Poubelle/archediab.old/archediab.sources/c/acqui_util.c

    r639 r643  
    88#include "auto.h"
    99#include "config_transputer.h"
     10#include "bit_block.h"
    1011
    1112
     
    3536                {
    3637//              parametr.bolo[j].bolo_code_util=0;
    37 //              strcpy(parametr.bolo[j].bolo_nom,"");
     38//              strcpy(parametr.nom_coef[parametr.bolo[j].numero_nom_coef].bolo_nom,"");
    3839//              parametr.bolo[j].bolo_bebo=0;
    3940//              parametr.bolo[j].bolo_num=0;
     
    130131                        case    900+err_sauve_block     : printf(" err_sauve_block");break;
    131132                        case    900+err_pile_pleine     : printf(" err_pile_pleine");son(133);break;
     133                       
     134                        case    920+erreur_bit_erreur   : printf(" bit_erreur");break;
     135                        case    920+erreur_bit_vide     : printf(" bit_vide");break;
     136                        case    920+erreur_type         : printf(" bit_type_erreur");break;
     137                        case    920+erreur_longueur     : printf(" bit_erreur_longueur");break;
     138                        case    920+erreur_somme        : printf(" bit_erreur_somme");break;
     139                        case    920+erreur_fin          : printf(" bit_erreur_fin");break;
     140                        case    920+cherche_debut       : printf(" bit_cherche_debut");break;
     141                       
     142                       
    132143                       
    133144                        case    8       : printf(" +");break;
  • trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_archeops.c

    r639 r643  
    5050if(verifie_block_printf(blk_tm))        return;
    5151
    52 //{def_nom_block  printf("lit un block %s   N°%d   \n",nom_block[type_block(blk_tm)],numero_block(blk_tm));     }                               
     52        {
     53        def_nom_block
     54        static int mon_num_block;
     55        if(mon_num_block!=numero_block(blk_tm))
     56                {
     57                mon_num_block=numero_block(blk_tm);
     58                printf("\n%d ->",mon_num_block);
     59                }
     60        printf(" %s  ",nom_block[type_block(blk_tm)]); 
     61        }                               
    5362
    5463switch(type_block(blk_tm))
     
    6675        case block_une_periode :        traite_block_une_periode((block_type_une_periode*)blk_tm);      break;
    6776       
    68         case block_bolo_comprime :      traite_block_bolo_comprime((block_type_bolo_comprime*)blk_tm);  break;
    69        
    7077        case block_bolo :               traite_block_bolo((block_type_bolo*)blk_tm);                    break;
     78        case block_bolo_comprime :      traite_block_bolo_comprime((block_type_bolo_comprime*)blk_tm);  break; 
    7179       
    7280        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;
     82
     83        case block_gyro :               traite_block_gyro((block_type_gyro*)blk_tm);                    break;
     84        case block_gyro_comprime  :     traite_block_gyro_comprime((block_type_gyro_comprime*)blk_tm);  break;
    7385       
    7486        case block_synchro_sol :        traite_block_synchro_sol((block_type_synchro_sol*)blk_tm);      break;
     87       
     88        case block_status_flash :       printf("******************status flash recut  ********************* \n");son(133);                      break;
    7589       
    7690#ifdef  transmet_data_brute
     
    201215void    traite_block_bolo_comprime(block_type_bolo_comprime*    blk)
    202216{               
    203 int j;
     217int j,jc;
    204218#define blk2  ((block_type_bolo*)(&bktm))       // pointeur sur la memoire locale
    205219// maintenant, decomprime  blk  pour le reecrire dans blk2
     
    210224        ( (blk->data_bolo[1][0] & 0x0000ffff)<<5 )  & 0x001fffe0);
    211225*/
     226/*
    212227for(j=0;j<nb_bolo_util;j++)     
    213228                {
    214229                decompress_7_2((long *)blk->data_bolo[j],blk2->data_bolo[j],nb_per_block*2);
    215230                }
    216 
     231*/
     232jc=0;for(j=0;j<nb_max_bolo;j++)  // jc = bolo_comprime  //   j=bolo normal
     233                {
     234                if( (parametr.bolo[j].bolo_code_util==bolo_normal_transmis) &&  (jc<nb_bolo_util)  )
     235                        {
     236                        decompress_7_2((long *)blk->data_bolo[jc],blk2->data_bolo[j],nb_per_block*2);
     237                        jc++;
     238                        }
     239                }
    217240/*printf("ds1= %x  , %x  ds2= %x  , %x   \n",
    218241                                        blk2->data_bolo[0][0],
  • trunk/Poubelle/archediab.old/archediab.sources/c/acquisition_general.c

    r639 r643  
    151151                                               
    152152       
    153         case e_transmission :   {
     153        case e_flash : 
     154        case e_telemesure :     {
    154155                                long ll=(long)(&(gg->reglage.dilu.transmission))-(long)(&(gg->reglage.dilu));
    155                                 int a=(int) valeur;     
     156                                int a=(int) (litD(fenetre_acquisition,e_flash,0)-1);
     157                                a=a<<4;
     158                                a=a + (int) (litD(fenetre_acquisition,e_telemesure,0)-1);
    156159                                emission_tc_reduite(tc2_auto_dilu,ll,a);
    157160                                }
  • trunk/Poubelle/archediab.old/archediab.sources/c/auto.c

    r637 r643  
    312312        ll=(long)(&(gg->reglage.autom[i].gain))-(long)(&(gg->reglage.autom[0]));
    313313        a=litD(fenetre_automatismes,atm_gain+i,0L)-1+20;
    314         if( (a!=gg->reglage.autom[i].gain) ou ( clavier(touche_alt) et (item==atm_gain+i) ) )   
     314        if( (a!=gg->reglage.autom[i].gain) ou ( /*clavier(touche_alt) et*/ (item==atm_gain+i) ) )   
    315315                emission_tc_reduite(tc2_auto_bolo,ll,a);
    316316
    317317        ll=(long)(&(gg->reglage.autom[i].courant))-(long)(&(gg->reglage.autom[0]));
    318318        a=litD(fenetre_automatismes,atm_courant+i,0L)-1;
    319         if( (a!=gg->reglage.autom[i].courant) ou ( clavier(touche_alt) et (item==atm_courant+i) ) )   
     319        if( (a!=gg->reglage.autom[i].courant) ou ( /*clavier(touche_alt) et*/ (item==atm_courant+i) ) )   
    320320                emission_tc_reduite(tc2_auto_bolo,ll,a);
    321321
    322322        ll=(long)(&(gg->reglage.autom[i].delai))-(long)(&(gg->reglage.autom[0]));
    323323        a=litD(fenetre_automatismes,atm_delai+i,0L);
    324         if( (a!=gg->reglage.autom[i].delai) ou ( clavier(touche_alt) et (item==atm_delai+i) ) )   
     324        if( (a!=gg->reglage.autom[i].delai) ou ( /*clavier(touche_alt) et*/ (item==atm_delai+i) ) )   
    325325                emission_tc_reduite(tc2_auto_bolo,ll,a);
    326326        }
  • trunk/Poubelle/archediab.old/archediab.sources/c/bit_block.c

    r637 r643  
    150150                                {
    151151                                cpt_cherche_debut=0;
    152                                 ecrit_erreur_bit(cherche_debut);
     152//                              ecrit_erreur_bit(cherche_debut);
    153153                                }
    154154                        }
  • trunk/Poubelle/archediab.old/archediab.sources/c/bolo.c

    r639 r643  
    5050        case tache_de_fond  :   // appellé par le programme d'acquisition pour tracer   ----  la cadence est variable
    5151                                n=gg->reglage.horloge.nb_mesures;
     52//                              printf(" nb mesure = %d \n",n);
    5253                                        {
    5354                                        selectgra(fen);
  • trunk/Poubelle/archediab.old/archediab.sources/c/config_transputer.c

    r637 r643  
     1SUPPRIME DU PROGRAMME
     2
    13#include "diabolo.h"
    24#include "config_transputer.h"
  • trunk/Poubelle/archediab.old/archediab.sources/c/diabolo.c

    r639 r643  
    8080
    8181#ifdef _archeops
    82 nouveauD(fenetre_vitesse_block,config_transputer_id,"config_transputer",exec_config_transputer);
     82//nouveauD(fenetre_vitesse_block,config_transputer_id,"config_transputer",exec_config_transputer);
    8383
    8484printf(" acquisition  Archeops  \n\n");
     
    102102                        printf(" cherche a ouvrir bolo %d ",j+1);
    103103                        printf(" capa=%g ",capa(j+1));
    104                         printf(" boloutil = %d  bolonom = %s  \n",parametr.bolo[j].bolo_code_util,parametr.bolo[j].bolo_nom);
     104                        printf(" boloutil = %d  bolonom = %s  \n",parametr.bolo[j].bolo_code_util,parametr.nom_coef[parametr.bolo[j].numero_nom_coef].bolo_nom);
    105105                        if(parametr.bolo[j].bolo_code_util)
    106106                                {
    107                                 sprintf(ss,"%d: %s",j+1,parametr.bolo[j].bolo_nom);
     107                                sprintf(ss,"%d: %s",j+1,parametr.nom_coef[parametr.bolo[j].numero_nom_coef].bolo_nom);
    108108                                ouvreD(j+1,bolo_id,ss,exec_bolo);
    109109                                }
  • trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c

    r639 r643  
    1616
    1717
    18 #define  val_multiplex(i)       (0.0003052*(double)(blk->ADC_dil[i]-0x8000))   
    19 //#define  val_temperature(i)   (34.+ (300./4.4)*(4.4-val_multiplex(i)) )
    20 //#define  val_temperature(i)   ((1146.3/(val_multiplex(i)-0.1)) - 245.13)
    21 #define  val_temperature(i)     ((val_multiplex(i)<0.2)?-99:((1146.3/(val_multiplex(i)-0.1)) - 245.13))
    22 #define  cnt_temperature(i)     (20+(int)val_temperature(i))
     18#define  cnt_temperature(i)     (20+(int)val_temperature(blk->ADC_dil[i]))
    2319
    2420#define  ecrit_switch(val,ii,bit) {if(val) ii=ii | bit ;else ii=ii& (0xffffffff^bit) ;}
    2521#define  calib(j)               litD(fenetre_dilution_calibration,j,0L)
    2622
     23
     24void  ecrit_moteur_dilution(int valeur);        // valeur sur 10 bit: poid fort=on/off
     25
     26void  ecrit_moteur_dilution(int valeur)
     27{
     28int i;
     29char mot_tc[10];
     30
     31                i=litD(fenetre_dilution,dil_switch_1,0);
     32i=i<<8;         i+=litD(fenetre_dilution,dil_switch_2,0);
     33i=i<<8;         i+=litD(fenetre_dilution,dil_switch_3,0);
     34i=i<<8;         // les 3 octets en poid fort, rien dans le dernier octet
     35i=i& 0x003fffff;
     36i = i| ( (valeur & 0x3ff)<<22);
     37ecritD(fenetre_dilution,dil_switch_1,(i>>24)&0xff);
     38ecritD(fenetre_dilution,dil_switch_2,(i>>16)&0xff);
     39ecritD(fenetre_dilution,dil_switch_3,(i>>8 )&0xff);
     40
     41mot_tc[0]=tc_switch_dil;
     42mot_tc[1]=0;
     43mot_tc[2]=0;
     44mot_tc[3]=0;
     45mot_tc[4]=(i>>8 )&0xff;
     46mot_tc[5]=(i>>16)&0xff;
     47mot_tc[6]=(i>>24)&0xff;
     48mot_tc[7]=0;   
     49emission_telecommande(tc_dir_transputer,mot_tc);
     50}
    2751
    2852
     
    139163//    case dil_dac_1 :
    140164//   case dil_dac_2 :
    141     case dil_envoi_dac :        ecrit_dac_dilution();   break;
     165//   case dil_envoi_dac :       ecrit_dac_dilution();   break;
     166        case dil_envoi_dac :    ecrit_moteur_dilution((int)litD(fenetre_dilution,dil_dac_2,0)); // les 12 bits
     167                                break;
    142168
    143169    default  :   break;
     
    220246// les pressions et debits metres des injections de la dilution
    221247ecritD(fenetre_dilution,dil_p_d_3He,"3He: %4.1fb -> %5.2fµm/s -> %4.1fb"
    222         ,40.    *       val_multiplex(p_R3)  -1.6       //      200 bars pour 5V et 1.6 bar d'offset
    223         ,2.     *       val_multiplex(d_3He)            //  10 MICRO MOLES  pour  5V
    224         ,20.    *       val_multiplex(p_C3)             //      100 bars pour 5V
     248        ,40.    *       val_multiplex(blk->ADC_dil[ p_R3])  -1.6        //      200 bars pour 5V et 1.6 bar d'offset
     249        ,2.     *       val_multiplex(blk->ADC_dil[ d_3He])             //  10 MICRO MOLES  pour  5V
     250        ,20.    *       val_multiplex(blk->ADC_dil[ p_C3])              //      100 bars pour 5V
    225251        );
    226252ecritD(fenetre_dilution,dil_p_d_4He,"4He: %4.1fb -> %5.2fµm/s -> %4.1fb"
    227         ,40.    *       val_multiplex(p_R4)             //      200 bars pour 5V
    228         ,8.     *       val_multiplex(d_4He)            //  40 MICRO MOLES  pour  5V
    229 //      ,4.     *       val_multiplex(d_4He)            //  20 MICRO MOLES  pour  5V
    230         ,20.    *       val_multiplex(p_C4)             //      100 bars pour 5V
     253        ,40.    *       val_multiplex(blk->ADC_dil[ p_R4])              //      200 bars pour 5V
     254        ,8.     *       val_multiplex(blk->ADC_dil[ d_4He])             //  40 MICRO MOLES  pour  5V
     255//      ,4.     *       val_multiplex(blk->ADC_dil[ d_4He])             //  20 MICRO MOLES  pour  5V
     256        ,20.    *       val_multiplex(blk->ADC_dil[ p_C4])              //      100 bars pour 5V
    231257        );
    232258
    233259ecritD(fenetre_dilution,dil_p_air,"Van=%4.1fb  charb=%4.1fb  mmb=%4.3fb  haut=%4.3fb"
    234         ,20.*val_multiplex(p_air),20.*val_multiplex(p_charb)
    235         ,0.2*val_multiplex(p_memb),0.2*val_multiplex(p_haut)    );
     260        ,20.*val_multiplex(blk->ADC_dil[ p_air]),20.*val_multiplex(blk->ADC_dil[ p_charb])
     261        ,0.2*val_multiplex(blk->ADC_dil[ p_memb]),0.2*val_multiplex(blk->ADC_dil[ p_haut])      );
    236262                       
    237263ecritD(fenetre_dilution,dil_piles," Trp=%4.1fV   Dil=%4.1fV / %4.1fV  \rBebo=%4.1fV   /   %4.1fV / %4.1fV  Ch=%4.1fV"
    238         ,2.03*val_multiplex(p_10T),3.90*val_multiplex(p_p18D),3.90*val_multiplex(p_m18D)
    239         ,2.03*val_multiplex(p_10B),3.90*val_multiplex(p_p18B),3.90*val_multiplex(p_m18B)
    240         ,3.8*val_multiplex(p_Ch));
     264        ,2.03*val_multiplex(blk->ADC_dil[ p_10T]),3.90*val_multiplex(blk->ADC_dil[ p_p18D]),3.90*val_multiplex(blk->ADC_dil[ p_m18D])
     265        ,2.03*val_multiplex(blk->ADC_dil[ p_10B]),3.90*val_multiplex(blk->ADC_dil[ p_p18B]),3.90*val_multiplex(blk->ADC_dil[ p_m18B])
     266        ,3.8*val_multiplex(blk->ADC_dil[ p_Ch]));
    241267
    242268/* valeur seuil au mini (5.3 ou 15.3V) , *17 =  +5.9 V au maxi  */
    243269
    244270
    245 ecritD(fenetre_dilution,dil_p_10T,(int)(17*(2.03*val_multiplex(p_10T)-5.3)));
    246 ecritD(fenetre_dilution,dil_p_p18D,(int)(17*(3.90*val_multiplex(p_p18D)-15.3)));
    247 ecritD(fenetre_dilution,dil_p_m18D,(int)(17*(-3.90*val_multiplex(p_m18D)-15.3)));
    248 ecritD(fenetre_dilution,dil_p_10B,(int)(17*(2.03*val_multiplex(p_10B)-5.3)));
    249 ecritD(fenetre_dilution,dil_p_p18B,(int)(17*(3.93*val_multiplex(p_p18B)-15.3)));
    250 ecritD(fenetre_dilution,dil_p_m18B,(int)(17*(-3.93*val_multiplex(p_m18B)-15.3)));
    251 ecritD(fenetre_dilution,dil_p_Ch,(int)(10*(3.8*val_multiplex(p_Ch)-25)));       /* 25 a 35 V  */
     271ecritD(fenetre_dilution,dil_p_10T,(int)(17*(2.03*val_multiplex(blk->ADC_dil[ p_10T])-5.3)));
     272ecritD(fenetre_dilution,dil_p_p18D,(int)(17*(3.90*val_multiplex(blk->ADC_dil[ p_p18D])-15.3)));
     273ecritD(fenetre_dilution,dil_p_m18D,(int)(17*(-3.90*val_multiplex(blk->ADC_dil[ p_m18D])-15.3)));
     274ecritD(fenetre_dilution,dil_p_10B,(int)(17*(2.03*val_multiplex(blk->ADC_dil[ p_10B])-5.3)));
     275ecritD(fenetre_dilution,dil_p_p18B,(int)(17*(3.93*val_multiplex(blk->ADC_dil[ p_p18B])-15.3)));
     276ecritD(fenetre_dilution,dil_p_m18B,(int)(17*(-3.93*val_multiplex(blk->ADC_dil[ p_m18B])-15.3)));
     277ecritD(fenetre_dilution,dil_p_Ch,(int)(10*(3.8*val_multiplex(blk->ADC_dil[ p_Ch])-25)));        /* 25 a 35 V  */
    252278
    253279//  --  les voyants de switch de piles
     
    257283
    258284ecritD(fenetre_dilution,dil_temperatures,"temp-Haut =   %4.1f°   %4.1f°   %4.1f°   %4.1f° \rtemp-Bas  =   %4.1f°   %4.1f°   %4.1f°   %4.1f°  "
    259         ,val_temperature(t_h1),val_temperature(t_h2),val_temperature(t_h3),val_temperature(t_h4)
    260         ,val_temperature(t_b1),val_temperature(t_b2),val_temperature(t_b3),val_temperature(t_b4)       
     285        ,val_temperature(blk->ADC_dil[ t_h1]),val_temperature(blk->ADC_dil[ t_h2]),val_temperature(blk->ADC_dil[ t_h3]),val_temperature(blk->ADC_dil[ t_h4])
     286        ,val_temperature(blk->ADC_dil[ t_b1]),val_temperature(blk->ADC_dil[ t_b2]),val_temperature(blk->ADC_dil[ t_b3]),val_temperature(blk->ADC_dil[ t_b4])   
    261287        );
    262288
     
    277303//  les afficheurs analogiques de pression helium et pirani 
    278304
    279 ecritD(fenetre_dilution,dil_RP_He,(int)(2500*val_multiplex(RP_He)-7500));
     305ecritD(fenetre_dilution,dil_RP_He,(int)(2500*val_multiplex(blk->ADC_dil[ RP_He])-7500));
    280306//  je veux 10000 pour 0.8 bars  soit    alors que l'on a 5V pour 1 bar ou 1V = 0.2 bar
    281307//  soit multiplier par 2500
    282308// puis j'enleve 0.6 bars soit 7500
    283 ecritD(fenetre_dilution,dil_pirani,(int)(1000*val_multiplex(pirani)));
     309ecritD(fenetre_dilution,dil_pirani,(int)(1000*val_multiplex(blk->ADC_dil[ pirani])));
    284310
    285311
     
    295321        ecritT(fenetre_dilution_lecture_brute,fin_f,"dil_switch= %x  \n",blk->switch_dil);
    296322
    297         for(i=0;i<16;i++)       ecritT(fenetre_dilution_lecture_brute,fin_f,"%2d=%6.3f ",i<8?i+11:i+13,val_multiplex(i));
     323        for(i=0;i<16;i++)       ecritT(fenetre_dilution_lecture_brute,fin_f,"%2d=%6.3f ",i<8?i+11:i+13,val_multiplex(blk->ADC_dil[ i]));
    298324        ecritT(fenetre_dilution_lecture_brute,fin_f,"\n");
    299         for(i=16;i<32;i++)      ecritT(fenetre_dilution_lecture_brute,fin_f,"%2d=%6.3f ",i<24?i+15:i+17,val_multiplex(i));
     325        for(i=16;i<32;i++)      ecritT(fenetre_dilution_lecture_brute,fin_f,"%2d=%6.3f ",i<24?i+15:i+17,val_multiplex(blk->ADC_dil[ i]));
    300326        ecritT(fenetre_dilution_lecture_brute,fin_f,"\n");
    301         for(i=32;i<48;i++)      ecritT(fenetre_dilution_lecture_brute,fin_f,"%2d=%6.3f ",i<40?i+19:i+21,val_multiplex(i));
     327        for(i=32;i<48;i++)      ecritT(fenetre_dilution_lecture_brute,fin_f,"%2d=%6.3f ",i<40?i+19:i+21,val_multiplex(blk->ADC_dil[ i]));
    302328        ecritT(fenetre_dilution_lecture_brute,fin_f,"\n");
    303329        }
     
    311337//      printf("dilution :  numero de block = %d  \n",numero_block(blk));
    312338        changecontrole(fenetre_dilution,dil_niveau_helium,idem,idem,idem,idem,calrefcon(0,0,rouge,blanc,blanc),"");
    313         y[0]=val_multiplex(j_he1)-calib(dil_j_he1);
    314         y[1]=val_multiplex(j_he2)-calib(dil_j_he2);
    315         y[2]=val_multiplex(j_he3)-calib(dil_j_he3);
    316         y[3]=val_multiplex(j_he4)-calib(dil_j_he4);
    317         y[4]=val_multiplex(j_he5)-calib(dil_j_he5);
    318         y[5]=val_multiplex(j_he6)-calib(dil_j_he6);
    319         y[6]=val_multiplex(j_he7)-calib(dil_j_he7);
    320         y[7]=val_multiplex(j_he8)-calib(dil_j_he8);
     339        y[0]=val_multiplex(blk->ADC_dil[ j_he1])-calib(dil_j_he1);
     340        y[1]=val_multiplex(blk->ADC_dil[ j_he2])-calib(dil_j_he2);
     341        y[2]=val_multiplex(blk->ADC_dil[ j_he3])-calib(dil_j_he3);
     342        y[3]=val_multiplex(blk->ADC_dil[ j_he4])-calib(dil_j_he4);
     343        y[4]=val_multiplex(blk->ADC_dil[ j_he5])-calib(dil_j_he5);
     344        y[5]=val_multiplex(blk->ADC_dil[ j_he6])-calib(dil_j_he6);
     345        y[6]=val_multiplex(blk->ADC_dil[ j_he7])-calib(dil_j_he7);
     346        y[7]=val_multiplex(blk->ADC_dil[ j_he8])-calib(dil_j_he8);
    321347        if(blk->switch_dil & switch_helium)
    322348                {
  • trunk/Poubelle/archediab.old/archediab.sources/c/fourier_diabolo.c

    r637 r643  
    7070       
    7171        ss[0]=0;
    72         for(j=0;j<k;j++)        if( (j!=0) && (j!=3))
     72        for(j=0;j<k;j++)        //if( (j!=0) && (j!=3))
    7373                {
    7474                mm=0;m1=0;  for(i=10;i<n/8;i++) {mm=mm+fo(k,n,j,i);m1++;}
    7575                if(m1>1)        mm=1000.*qq*mm/m1;
    76                 printf("%s: %5.1f nV\n",parametr.bolo[j].bolo_nom,mm);
    77                 if(strlen(ss)<200)      sprintf(ss+strlen(ss),"%s: %5.1f nV\r",parametr.bolo[j].bolo_nom,mm);
     76                printf("%s: %5.1f nV\n",parametr.nom_coef[parametr.bolo[j].numero_nom_coef].bolo_nom,mm);
     77                if(strlen(ss)<200)      sprintf(ss+strlen(ss),"%s: %5.1f nV\r",parametr.nom_coef[parametr.bolo[j].numero_nom_coef].bolo_nom,mm);
    7878                if(strlen(ss) > 240)    erreur("dans fourier, string trop long ");
    7979                }       
  • trunk/Poubelle/archediab.old/archediab.sources/c/menu.c

    r639 r643  
    1818#include "dilution.h"
    1919#include "senseur_stellaire.h"
     20#include "gyroscope.h"
    2021
    2122
     
    7172        case    d_senseur_stellaire             :       if(fenetre(fenetre_senseur_stellaire)) select(fenetre_senseur_stellaire);
    7273                                                                else    ouvreD(fenetre_senseur_stellaire,senseur_stellaire_id,"senseur_stellaire",exec_senseur_stellaire);
     74                                                                if(fenetre(fenetre_gyroscope)) select(fenetre_gyroscope);
     75                                                                else    ouvreD(fenetre_gyroscope,0,"fenetre_gyroscope",exec_gyroscope);
    7376                                                                break;
    7477
  • trunk/Poubelle/archediab.old/archediab.sources/c/mesures_bolo.c

    r637 r643  
    1919//******************************************************************************************************//
    2020
    21 #define c(i)            (1e-4*(double)parametr.bolo[fen-1].coef[i])     
     21#define c(i)            (1e-4*(double)parametr.nom_coef[parametr.bolo[fen-1].numero_nom_coef].coef[i]) 
    2222
    2323
     
    8585
    8686
    87 ecritT(fenetre_mesures_bolo,fin_f,"%d %s :",fen,parametr.bolo[fen-1].bolo_nom);
     87ecritT(fenetre_mesures_bolo,fin_f,"%d %s :",fen,parametr.nom_coef[parametr.bolo[fen-1].numero_nom_coef].bolo_nom);
    8888
    8989//ecritT(fenetre_mesures_bolo,fin_f,"%s (b%d) :"/* bebo=%d  num=%d  gain_pa=%d   coef0=%g  coef1=%g  coef2=%g */,
  • trunk/Poubelle/archediab.old/archediab.sources/c/pointage.c

    r637 r643  
    152152                }
    153153
    154         printf(" bolo %d (%s) :",bolo,parametr.bolo[bolo-1].bolo_nom);
     154        printf(" bolo %d (%s) :",bolo,parametr.nom_coef[parametr.bolo[bolo-1].numero_nom_coef].bolo_nom);
    155155        if(k)   sprintf(ss,"elevation :");
    156156        else    sprintf(ss,"azimuth :");
  • trunk/Poubelle/archediab.old/archediab.sources/c/rafraichis_fenetre.c

    r637 r643  
    2020        ecritD(fenetre_acquisition,e_nb_mes,(int)gg->reglage.horloge.nb_mesures/2);
    2121        ecritD(fenetre_acquisition,e_temp_mort,(int)gg->reglage.horloge.temp_mort);
    22         ecritD(fenetre_acquisition,e_transmission,(int)gg->reglage.dilu.transmission);
     22        ecritD(fenetre_acquisition,e_telemesure,1+(0x0f & (int)gg->reglage.dilu.transmission));
     23        ecritD(fenetre_acquisition,e_flash,1+((0x30 & (int)gg->reglage.dilu.transmission)>>4));
    2324
    2425        // affichage de toutes les fréquences 
     
    5354//printf("\n");
    5455
    55 if(fenetre(fenetre_vitesse_block))
     56/*if(fenetre(fenetre_vitesse_block))
    5657        for(i=0;i<14;i++)
    5758                ecritD(fenetre_vitesse_block,ct_cadence+i,"%d",gg->reglage.vitesse[i]);
    58 
     59*/
    5960
    6061if(fenetre(fenetre_regulation))
  • trunk/Poubelle/archediab.old/archediab.sources/c/reglage.c

    r639 r643  
    145145
    146146/*  ecrit horloge    */
    147 ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d},\n",uc(gg->reglage.horloge.periode),uc(gg->reglage.horloge.nb_mesures)
     147ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d},{\n",uc(gg->reglage.horloge.periode),uc(gg->reglage.horloge.nb_mesures)
    148148                ,uc(gg->reglage.horloge.temp_mort),uc(gg->reglage.horloge.flag));
    149149
    150 /* ecrit vitesses  */
    151 for(i=0;i<nb_type_blocks;i++)
    152         {if(i>0) ecritT(fenetre_fichier_archeops_c,insert_f,",%d\n",uc(gg->reglage.vitesse[i])); else  ecritT(fenetre_fichier_archeops_c,insert_f,"{%d\n",uc(gg->reglage.vitesse[i])); }
    153 
    154 ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n");
    155150
    156151/* ecrit        reglage_un_bolo  : 2 mots long */
     
    190185
    191186/*  ecrit horloge    */
    192 ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d},\n",uc(gg->reglage.horloge.flag),uc(gg->reglage.horloge.temp_mort)
     187ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d},{\n",uc(gg->reglage.horloge.flag),uc(gg->reglage.horloge.temp_mort)
    193188                ,uc(gg->reglage.horloge.nb_mesures),uc(gg->reglage.horloge.periode));
    194189
    195 /* ecrit vitesses  */
    196 for(i=0;i<nb_type_blocks;i++)
    197         {if(i>0) ecritT(fenetre_fichier_archeops_c,insert_f,",%d\n",uc(gg->reglage.vitesse[i^3])); else  ecritT(fenetre_fichier_archeops_c,insert_f,"{%d\n",uc(gg->reglage.vitesse[i^3])); }
    198 
    199 ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n");
    200190
    201191/* ecrit        reglage_un_bolo  : 2 mots long */
  • trunk/Poubelle/archediab.old/archediab.sources/c/senseur_stellaire.c

    r639 r643  
    22#include "senseur_stellaire.h"
    33
    4 int diodes[12]={1,2,3,4,5,6,7,8,9,10,11,12};
    54
    65
     
    5150#define place_paquet(i,j)        (i/8) * 24  + j*8 + (i%8)
    5251
     52void    traite_block_sst_comprime       (block_type_sst_comprime*       blk){}
     53
    5354
    5455void    traite_block_sst(block_type_sst*        blk)
     
    9899for(k=0;k<72;k++)
    99100        {
    100          for(i=0;i<12;i++)              //  seulement les 8 premieres diodes
     101         for(i=0;i<12;i++)              //  seulement 12 diodes
    101102                {
    102103                int q;
    103                 q=i+4;
    104                 if(i>3 ) q=i+8;
    105                 if(i>7 ) q=i+12;
    106                 q=diodes[i];
    107104                q=i+prem_d-1;
    108                
     105                               
    109106                a=place_paquet(q,0);
    110107                b0= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
  • trunk/Poubelle/archediab.old/archediab.sources/c/tache_archeops_bit2.c

    r639 r643  
    4747
    4848
    49 
     49//              un bit pour 8 bit en parallele dans la fifo             
     50/*
    5051char    un_bit(void)
    5152{
     
    6061if( (RR>>i) & 1 )       return(bit_un);
    6162        else            return(bit_zero);
     63}
     64
     65*/
     66
     67//              un bit pour  fifo avec un seul bit (bit0) et la valeur de la periode en bit 1..6  (37 ou 38)           
     68
     69
     70
     71char    un_bit(void)
     72{
     73static int i;
     74static unsigned long RR;
     75lit_carte;      if(rien_a_lire)         return(bit_vide);       //  fifo vide  ->  retour  ->  sort du while
     76//if( RR & 1 )          return(bit_un);
     77//else          return(bit_zero);
     78if( RR & 1 )    return(bit_zero);
     79else            return(bit_un);
    6280}
    6381
  • trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c

    r637 r643  
    1818void    relit_telecommandes_reduites(unsigned char* tc)
    1919{
    20 int bolo,a,i;
     20int bolo,a;
    2121if(tc[0]!=tc_reduite)   return;
    2222printf("relit une telecommande reduite :  ");
     
    8181                                                break;         
    8282                                default :       
    83                                         i=tc[2]-tc3_vitesse;
    84                                         if( (i>=0) && (i<nb_type_blocks) )
    85                                                 gg->reglage.vitesse[i]=tc[3];
    86                                         printf(" nouvelle valeur block%d vitesse %d \n",i,tc[3]);
     83//                                      i=tc[2]-tc3_vitesse;
     84//                                      if( (i>=0) && (i<nb_type_blocks) )
     85//                                              gg->reglage.vitesse[i]=tc[3];
     86//                                      printf(" nouvelle valeur block%d vitesse %d \n",i,tc[3]);
    8787                                        break;
    8888                                }
  • trunk/Poubelle/archediab.old/archediab.sources/choix_acquisition.h

    r639 r643  
    2929#define Adresse_base_PCI        0x83000000      // G3 Archeops optique
    3030//#define Adresse_base_PCI      0x84000000      // G3 Archeops optique avec carte video
     31//#define Adresse_base_PCI      0x82000000      // G3 Archeops_2 optique avec carte video
    3132#endif
    3233
  • trunk/Poubelle/archediab.old/archediab.sources/h/acqui.h

    r639 r643  
    3030void exec_acquisition(int fen,int item,double valeur,...);   //  prototype de la fonction
    3131
    32 // liste des items de la fenetre (46) items
     32// liste des items de la fenetre (47) items
    3333
    3434#define  e_nb_mes                2     //   controle
     
    4646#define  e_flag2                 17     //   controle
    4747#define  e_tc_reduite            18     //   controle
    48 #define  e_transmission          29     //   controle
     48#define  e_flash                 29     //   controle
    4949#define  e_bolo                  30     //   controle
    5050#define  e_montre                31     //   controle
     
    6464#define  e_chauf                 45     //   controle
    6565#define  e_cmd                   46     //   controle
     66#define  e_telemesure            47     //   controle
    6667
    6768//fin_id
  • trunk/Poubelle/archediab.old/archediab.sources/h/diabolo.h

    r639 r643  
    196196void    traite_block_bolo               (block_type_bolo*               blk);
    197197void    traite_block_sst                (block_type_sst*                blk);
     198void    traite_block_sst_comprime       (block_type_sst_comprime*       blk);
     199void    traite_block_gyro               (block_type_gyro*               blk);
     200void    traite_block_gyro_comprime      (block_type_gyro_comprime*      blk);
    198201void    traite_block_synchro_sol        (block_type_synchro_sol*        blk);
    199202
  • trunk/Poubelle/archediab.old/archediab.sources/h/fenetres_diabolo.h

    r639 r643  
    4747#define fenetre_regulation                              138
    4848
    49 #define fenetre_vitesse_block                           139
    5049
    5150#define fenetre_senseur_stellaire                       140
     
    5554#define fenetre_fichier_archeops_c                      143
    5655#define fenetre_temperature_dil                         144
     56
     57#define fenetre_gyroscope                               145
     58#define fenetre_gyroscope_lecture_brute                 146
    5759
    5860
  • trunk/Poubelle/archediab.old/archeops.c

    r639 r643  
    4444/*----------------------------------  fenetre :  -----------------------------------*/
    4545
    46 param_bolo  parametr={25,24,36,88,18,
     46param_bolo  parametr={26,24,36,88,18,
    4747
    4848{
    49 { "v1-bedif1"  , 1,10,1 ,  200, 22000   ,  200,  { 5000  , 123100 , 334200,0,0,0,0} },         
    50 { "v1-bedif2"  , 1,10,2 ,  200, 22000   ,  200,  {  500  , 136180 ,   9010,0,0,0,0} },
    51 { "v1-bedif3"  , 1,10,3 ,  200, 22000   ,  200,  {  500  , 136180 ,   9010,0,0,0,0} },
    52 { "v1-bedif4"  , 1,10,4 ,  200, 22000   ,  200,  { 5000  , 123100 , 334200,0,0,0,0} },
    53 { "v1-bedif5"  , 1,10,5 , 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    54 { "v1-bedif6"  , 1,10,6 , 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    55 
    56 { "v1-bedif7"  , 1,10,9 , 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    57 { "v1-bedif8"  , 1,10,10, 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    58 { "v1-bedif9"  , 1,10,11, 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    59 { "v1-bedif10" , 1,10,12, 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    60 { "v1-bedif11" , 1,10,13, 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    61 { "v1-bedif12" , 1,10,14, 1000, 4700    , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    62 
    63 { "v1-bedif13"  , 1,10,17, 1000, 100000 , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    64 { "v1-bedif14"  , 1,10,18, 1000, 470000 , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    65 { "bedif15"     , 1,10,19, 1000, 470000 , 1000,  {  500  ,  58800 ,  12500,0,0,0,0} },
    66 { "bedif16"     , 1,10,20, 1000,2200000 , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    67 { "bedif17"     , 1,10,21, 1000, 4700   , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    68 { "bedif18"     , 1,10,22, 1000, 4700   , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    69 
    70 { "v1-bedif19"  , 2,10,25, 1000, 4700   , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    71 { "v1-bedif20"  , 2,10,26, 1000, 4700   , 1000,  { 5000  , 123100 , 334200,0,0,0,0} },
    72 { "germanium"   , 3,10,27, 1000, 22000  ,    0,  { 3500  ,  17100 , 646500,0,0,0,0} },
    73 { "therm_4k"    , 3,10,28, 1000, 1000   ,    0,  {12000  ,1804000 ,  72800,0,0,0,0} },
    74 { "therm_1.6k"  , 3,10,29, 1000, 1000   ,    0,  {12000  ,1804000 ,  72800,0,0,0,0} },
    75 { "therm_10k"   , 3,10,30, 1000, 1000   ,    0,  {12000  ,1804000 ,  72800,0,0,0,0} },
     49{ 1  , 0,10,1 ,  200, 22000     ,  200 },               
     50{ 2  , 1,10,2 ,  200, 22000     ,  200 },
     51{ 3  , 1,10,3 ,  200, 22000     ,  200 },
     52{ 4  , 0,10,4 ,  200, 22000     ,  200 },
     53
     54{ 5  , 1,10,5 , 1000, 4700      , 1000 },
     55{ 6  , 0,10,6 , 1000, 4700      , 1000 },
     56{ 7  , 1,10,9 , 1000, 4700      , 1000 },
     57{ 8  , 0,10,10, 1000, 4700      , 1000 },
     58
     59{ 9  , 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 },
     73
     74{ 21    , 3,10,27, 1000, 22000  ,    0 },
     75{ 22    , 3,10,28, 1000, 1000   ,    0 },
     76{ 23    , 3,10,29, 1000, 1000   ,    0 },
     77{ 0     , 3,10,30, 1000, 1000   ,    0 },
     78
     79},
     80{
     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} },
    76110
    77111}
     112
    78113};
    79114/*fin_param*/
     
    110145
    111146*/
     147
     148
     149int mode_transmission_telemesure[nb_modes_telemesure][nb_type_blocks]= {
     150
     151/* enregisteur de bord flash :  plafond standard nominal        */
     152/* 0*/  { 0,10,15,50, 10,50, 0, 0, 0, 0, 0, 0, 1, 1, 1,2500, 0, 0, 0, 0},
     153
     154/* 1*/  { 0,10,10, 1, 10, 3, 0, 0, 0, 0, 0, 0, 1, 1, 4,2500, 0, 0, 0, 0},
     155
     156/* 2*/  { 0,10,05,01, 10,06, 0, 0, 0, 0, 0, 0, 1, 1, 2,2500, 0, 0, 0, 0},
     157
     158/* 3*/  { 0,10, 1,25, 10, 2, 0, 0, 0, 0, 0, 0, 1, 0, 0,2500, 0, 0, 0, 0},
     159
     160/* 4*/  { 0,10,15,50, 10,25, 0, 0, 1, 0, 0, 0, 0, 0, 0,2500, 0, 0, 0, 0},
     161
     162/* 5*/  { 0,10,15,50, 10,25, 0, 0, 0, 0, 1, 0, 0, 0, 0,2500, 0, 0, 0, 0},
     163
     164/* 6*/  { 0,10,15,50, 10,50, 0, 0, 0, 1, 0, 0, 1, 0, 2,2500, 0, 0, 0, 0},
     165
     166/* 7*/  { 0,10,15,50,100,50,1, 1, 0, 0, 0, 0, 1, 1, 1,2500, 0, 0, 0, 0},
     167
     168/* 8*/  { 0,10,15,50,100,50,1, 1, 1, 0, 0, 0, 0, 0, 0,2500, 0, 0, 0, 0},
     169
     170/* 9*/  { 0,10, 1, 1,100, 1,0, 0, 0, 0, 0, 0, 1, 0, 0,2500, 0, 0, 0, 0}
     171
     172 };
     173
     174
     175
     176int mode_transmission_flash[nb_modes_flash][nb_type_blocks]= {
     177
     178
     179/* enregisteur de bord flash : nominal  */
     180/* 0*/  { 0,50,15,25, 10,25, 0, 0, 0, 1, 0, 0, 1, 0, 1,2500, 0, 0, 0, 0} ,
     181
     182/* enregisteur de bord flash : minimum  */
     183/* 1*/  { 0,50,50,50,50,100, 0, 0, 0, 0, 0, 0, 0, 0, 0,2500, 0, 0, 0, 0} ,
     184
     185/* enregisteur de bord flash :  rien    */
     186/* 2*/  { 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0} };
     187
     188
     189
     190
     191
     192
     193
     194
     195
     196
     197
     198
     199
     200
    112201
    113202
     
    182271/*debut reglage 0 */
    183272#ifdef programme
    184 {30,76,9,1},
    185 {0
    186 ,10
    187 ,1
    188 ,1
    189 ,10
    190 ,1
    191 ,1
    192 ,0
    193 ,0
    194 ,0
    195 ,0
    196 ,0
    197 ,1
    198 ,0
    199 ,0
    200 ,0
    201 ,0
    202 ,0
    203 ,0
    204 ,0
    205 },{
     273{30,76,9,1},{
    206274{20,0}
    207275,{-1148225771,229380}
     
    242310},{1,3,129,108,3,126,104,88}
    243311#else
    244 {1,9,76,30},
    245 {1
    246 ,1
    247 ,10
    248 ,0
    249 ,0
    250 ,1
    251 ,1
    252 ,10
    253 ,0
    254 ,0
    255 ,0
    256 ,0
    257 ,0
    258 ,0
    259 ,0
    260 ,1
    261 ,0
    262 ,0
    263 ,0
    264 ,0
    265 },{
     312{1,9,76,30},{
    266313{20,0}
    267314,{-1148225771,229380}
     
    308355/*debut reglage 1 */
    309356#ifdef programme
    310 {31,76,9,1},
    311 {0
    312 ,10
    313 ,1
    314 ,1
    315 ,10
    316 ,1
    317 ,0
    318 ,0
    319 ,1
    320 ,0
    321 ,0
    322 ,0
    323 ,0
    324 ,0
    325 ,0
    326 ,0
    327 ,0
    328 ,0
    329 ,0
    330 ,0
    331 },{
     357{31,76,9,1},{
    332358{20,0}
    333359,{-1148225771,229380}
     
    368394},{129,3,129,108,3,126,104,88}
    369395#else
    370 {1,9,76,31},
    371 {1
    372 ,1
    373 ,10
    374 ,0
    375 ,0
    376 ,0
    377 ,1
    378 ,10
    379 ,0
    380 ,0
    381 ,0
    382 ,1
    383 ,0
    384 ,0
    385 ,0
    386 ,0
    387 ,0
    388 ,0
    389 ,0
    390 ,0
    391 },{
     396{1,9,76,31},{
    392397{20,0}
    393398,{-1148225771,229380}
     
    434439/*debut reglage 2 */
    435440#ifdef programme
    436 {197,191,175,185},
    437 {0
    438 ,255
    439 ,254
    440 ,0
    441 ,0
    442 ,0
    443 ,0
    444 ,0
    445 ,0
    446 ,0
    447 ,0
    448 ,0
    449 ,83
    450 ,92
    451 ,94
    452 ,98
    453 ,65
    454 ,53
    455 ,53
    456 ,36
    457 },{
     441{197,191,175,185},{
    458442{0,0}
    459443,{0,0}
     
    494478},{88,82,94,108,111,126,104,88}
    495479#else
    496 {185,175,191,197},
    497 {0
    498 ,254
    499 ,255
    500 ,0
    501 ,0
    502 ,0
    503 ,0
    504 ,0
    505 ,0
    506 ,0
    507 ,0
    508 ,0
    509 ,98
    510 ,94
    511 ,92
    512 ,83
    513 ,36
    514 ,53
    515 ,53
    516 ,65
    517 },{
     480{185,175,191,197},{
    518481{0,0}
    519482,{0,0}
     
    560523/*debut reglage 3 */
    561524#ifdef programme
    562 {30,76,9,1},
    563 {0
    564 ,10
    565 ,1
    566 ,1
    567 ,10
    568 ,1
    569 ,0
    570 ,0
    571 ,0
    572 ,0
    573 ,0
    574 ,0
    575 ,1
    576 ,0
    577 ,0
    578 ,0
    579 ,0
    580 ,0
    581 ,0
    582 ,0
    583 },{
     525{30,76,9,1},{
    584526{20,0}
    585527,{-1149239274,229380}
     
    620562},{1,3,129,108,3,126,104,88}
    621563#else
    622 {1,9,76,30},
    623 {1
    624 ,1
    625 ,10
    626 ,0
    627 ,0
    628 ,0
    629 ,1
    630 ,10
    631 ,0
    632 ,0
    633 ,0
    634 ,0
    635 ,0
    636 ,0
    637 ,0
    638 ,1
    639 ,0
    640 ,0
    641 ,0
    642 ,0
    643 },{
     564{1,9,76,30},{
    644565{20,0}
    645566,{-1149239274,229380}
     
    686607/*debut reglage 4 */
    687608#ifdef programme
    688 {30,76,9,1},
    689 {0
    690 ,10
    691 ,1
    692 ,1
    693 ,10
    694 ,1
    695 ,1
    696 ,0
    697 ,0
    698 ,0
    699 ,0
    700 ,0
    701 ,1
    702 ,0
    703 ,0
    704 ,0
    705 ,0
    706 ,0
    707 ,0
    708 ,0
    709 },{
     609{30,76,9,1},{
    710610{20,0}
    711611,{-1148225771,229380}
     
    746646},{1,3,129,108,3,126,104,88}
    747647#else
    748 {1,9,76,30},
    749 {1
    750 ,1
    751 ,10
    752 ,0
    753 ,0
    754 ,1
    755 ,1
    756 ,10
    757 ,0
    758 ,0
    759 ,0
    760 ,0
    761 ,0
    762 ,0
    763 ,0
    764 ,1
    765 ,0
    766 ,0
    767 ,0
    768 ,0
    769 },{
     648{1,9,76,30},{
    770649{20,0}
    771650,{-1148225771,229380}
     
    812691/*debut reglage 5 */
    813692#ifdef programme
    814 {197,191,175,185},
    815 {0
    816 ,255
    817 ,254
    818 ,0
    819 ,0
    820 ,0
    821 ,0
    822 ,0
    823 ,0
    824 ,0
    825 ,0
    826 ,0
    827 ,83
    828 ,92
    829 ,94
    830 ,98
    831 ,65
    832 ,53
    833 ,53
    834 ,36
    835 },{
     693{197,191,175,185},{
    836694{0,0}
    837695,{0,0}
     
    872730},{88,82,94,108,111,126,104,88}
    873731#else
    874 {185,175,191,197},
    875 {0
    876 ,254
    877 ,255
    878 ,0
    879 ,0
    880 ,0
    881 ,0
    882 ,0
    883 ,0
    884 ,0
    885 ,0
    886 ,0
    887 ,98
    888 ,94
    889 ,92
    890 ,83
    891 ,36
    892 ,53
    893 ,53
    894 ,65
    895 },{
     732{185,175,191,197},{
    896733{0,0}
    897734,{0,0}
     
    938775/*debut reglage 6 */
    939776#ifdef programme
    940 {197,191,175,185},
    941 {0
    942 ,255
    943 ,254
    944 ,0
    945 ,0
    946 ,0
    947 ,0
    948 ,0
    949 ,0
    950 ,0
    951 ,0
    952 ,0
    953 ,83
    954 ,92
    955 ,94
    956 ,98
    957 ,65
    958 ,53
    959 ,53
    960 ,36
    961 },{
     777{197,191,175,185},{
    962778{0,0}
    963779,{0,0}
     
    998814},{88,82,94,108,111,126,104,88}
    999815#else
    1000 {185,175,191,197},
    1001 {0
    1002 ,254
    1003 ,255
    1004 ,0
    1005 ,0
    1006 ,0
    1007 ,0
    1008 ,0
    1009 ,0
    1010 ,0
    1011 ,0
    1012 ,0
    1013 ,98
    1014 ,94
    1015 ,92
    1016 ,83
    1017 ,36
    1018 ,53
    1019 ,53
    1020 ,65
    1021 },{
     816{185,175,191,197},{
    1022817{0,0}
    1023818,{0,0}
     
    1064859/*debut reglage 7 */
    1065860#ifdef programme
    1066 {197,191,175,185},
    1067 {0
    1068 ,255
    1069 ,254
    1070 ,0
    1071 ,0
    1072 ,0
    1073 ,0
    1074 ,0
    1075 ,0
    1076 ,0
    1077 ,0
    1078 ,0
    1079 ,83
    1080 ,92
    1081 ,94
    1082 ,98
    1083 ,65
    1084 ,53
    1085 ,53
    1086 ,36
    1087 },{
     861{197,191,175,185},{
    1088862{0,0}
    1089863,{0,0}
     
    1124898},{88,82,94,108,111,126,104,88}
    1125899#else
    1126 {185,175,191,197},
    1127 {0
    1128 ,254
    1129 ,255
    1130 ,0
    1131 ,0
    1132 ,0
    1133 ,0
    1134 ,0
    1135 ,0
    1136 ,0
    1137 ,0
    1138 ,0
    1139 ,98
    1140 ,94
    1141 ,92
    1142 ,83
    1143 ,36
    1144 ,53
    1145 ,53
    1146 ,65
    1147 },{
     900{185,175,191,197},{
    1148901{0,0}
    1149902,{0,0}
     
    12511004
    12521005
    1253 /* Quand on est sur une machine swappee, on ne cherche pas a verifier */
    1254 /* le checksum, puisqu'on a modifie les blocs, sans swapper par exemple */
    1255 /* les chars des noms de bolometres et des chaines GPS... */
    1256 #ifdef __alpha
    1257 #define SWAP
    1258 #endif
    1259 #if defined(Linux)  || defined(linux)
    1260 #define SWAP
    1261 #endif
    12621006
    12631007
     
    12701014lg=longueur_block(blk);         if( lg != long_block[type] )            return(block_longueur_erreur); 
    12711015if( blk->mot[(lg/4)-4]  !=      fin_block_mesure)                       return(block_fin_erreur);       
    1272 #ifndef SWAP
    12731016som=calcul_somme_block(blk,lg); if( som!= somme_block(blk))             return(block_somme_erreur);
    1274 #endif
    12751017return(block_correct);
    12761018}
  • trunk/Poubelle/archediab.old/archeops.h

    r639 r643  
    77
    88#define         _archeops
    9 #define         version_num             25
     9#define         version_num             26
    1010
    1111
     
    2828/*      - change la structure dil : contient les temperatures           */
    2929/*                                                                      */
     30/*  VERSION 26:                                                         */
     31/*                                                                      */
     32/*      - int4 pour compatibilité toutes machines                       */
    3033/*                                                                      */
    3134/*======================================================================*/
     
    3538/*  ---------------  parametres generaux de definition   -------------  */
    3639/*======================================================================*/
    37 
    3840#ifndef int4
    3941#ifdef __alpha
     
    4850#undef programme
    4951#endif
     52
    5053
    5154#ifdef  _planck
     
    126129#endif
    127130
     131#define nb_max_nom_bolo         24      /*  nombre maxi de noms et coef bolo dans la table      */
     132
    128133#define nb_sync                 4       /*  nombre de signaux de synchro                        */
    129134                                        /*  6 pour diabolo                                      */
     
    141146#define         nombre_de_voies         6
    142147#define         nb_type_blocks          20      /*  nombre de type de blocks (multiple de 4)    */
    143 
     148#define         nb_modes_telemesure     10
     149#define         nb_modes_flash           3
    144150
    145151/*======================================================================*/
     
    219225/*   -------   codes de reconnaissance des paquets de télémesure        */   
    220226
    221 #define         debut_block_mesure              ((int4)0x45627491)
    222 #define         fin_block_mesure                ((int4)0x83260432)
     227#define         debut_block_mesure              0x45627491     
     228#define         fin_block_mesure                0x83260432     
    223229
    224230
     
    249255typedef struct 
    250256        {
    251         char            bolo_nom[32];           /*  le nom de chaque bolometre                  */
     257        int4            numero_nom_coef;        /*  le numero pour retrouver le nom et les coef */
    252258        int4            bolo_code_util;         /*  le code d'utilisation du bolo               */
    253         int4            bolo_bebo;              /*  le type d'acquisition:  0 pour MLPA 10 pour BEBODIFF */
     259        int4            bolo_bebo;              /*  l'acquisition:  0 pour MLPA 10 pour BEBODIFF*/
    254260        int4            bolo_num;               /*  l'adresse hard du bolo                      */
    255261        int4            bolo_gain;              /*  le gain du preampli                         */
    256262        int4            bolo_capa;              /*  la valeur capa du modulateur                */
    257263        int4            bolo_diviseur;          /*  le diviseur de la compensation              */
     264        }
     265        param_un_bolo;
     266       
     267       
     268typedef struct 
     269        {
     270        char            bolo_nom[32];           /*  le nom de chaque bolometre                  */
    258271        int4            coef[7];                /*  les coef pour le calcul de la température   */
    259272        }
    260         param_un_bolo;
     273        nom_et_coef_bolo;
     274       
     275       
     276       
    261277/* code_util des bolos  */
    262278enum{bolo_hors_service,bolo_normal_transmis,bolo_normal_non_transmis,bolo_thermo_simplifie};
     
    273289        int4            nb_bolo;                        /*  nombre de bolometres effectivement lut      */
    274290        param_un_bolo   bolo[nb_max_bolo];
     291        nom_et_coef_bolo nom_coef[nb_max_nom_bolo];     /*  nombre de nom et coef bolo                  */
    275292        }
    276293        param_bolo;
     
    280297       
    281298/*     
    282         long            bolo_code_util[nb_max_bolo];   
     299        int4            bolo_code_util[nb_max_bolo];   
    283300        char            bolo_nom[nb_max_bolo][32];     
    284301
    285         long            bolo_bebo[nb_max_bolo];         
    286         long            bolo_num[nb_max_bolo];         
    287         long            bolo_gain[nb_max_bolo];         
    288 
    289         long            bolo_capa[nb_max_bolo];         
    290         long            bolo_diviseur[nb_max_bolo];     
    291        
    292         long            coef[nb_max_bolo][7];           
    293 
    294         long            presence_bebo;                 
     302        int4            bolo_bebo[nb_max_bolo];         
     303        int4            bolo_num[nb_max_bolo];         
     304        int4            bolo_gain[nb_max_bolo];         
     305
     306        int4            bolo_capa[nb_max_bolo];         
     307        int4            bolo_diviseur[nb_max_bolo];     
     308       
     309        int4            coef[nb_max_bolo][7];           
     310
     311        int4            presence_bebo;                 
    295312        }
    296313        param_bolo;
     
    403420        short   chauffage;              /*      valeur effective du chauffage           */     
    404421        }
    405         regul_bolo;                     /*  longueur 2 entiers long                     */
     422        regul_bolo;                     /*  longueur 2 entiers int4                     */
    406423
    407424typedef struct
     
    412429        char    delai;
    413430        }
    414         auto_bolo;                      /*  longueur 1 entiers long                     */
     431        auto_bolo;                      /*  longueur 1 entiers int4                     */
    415432
    416433typedef struct
     
    425442        char    xx8;
    426443        }
    427         auto_dilu;                      /*  longueur 1 entiers long             */
     444        auto_dilu;                      /*  longueur 1 entiers int4             */
    428445
    429446
     
    451468        char    integ;
    452469        }
    453         regul_bolo;                     /*  longueur 2 entiers long             */
     470        regul_bolo;                     /*  longueur 2 entiers int4             */
    454471
    455472
     
    461478        char    mode;
    462479        }
    463         auto_bolo;                      /*  longueur 1 entiers long             */
     480        auto_bolo;                      /*  longueur 1 entiers int4             */
    464481
    465482typedef struct
     
    474491        char    transmission;
    475492        }
    476         auto_dilu;                      /*  longueur 1 entiers long             */
     493        auto_dilu;                      /*  longueur 1 entiers int4             */
    477494
    478495
     
    485502#define bit_piles_auto  4
    486503
    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};
     504enum{vanne_zero,vanne_rien,vanne_ferme,vanne_ouvre,vanne_auto_pression,vanne_auto_P_T};
     505/*enum{trans_zero,trans_rien,trans_normal,trans_rapide,trans_lent};*/
    489506enum{helium_zero,helium_continu,helium_40s,helium_400s};
    490507
    491508
    492 typedef struct                                                  /*  long en mot de 32 bit       */
     509typedef struct                                                  /*  int4 en mot de 32 bit       */
    493510        {
    494511        horloge                 horloge;                        /*                      1       */
    495         char                    vitesse[nb_type_blocks];        /*                      5       */
    496512        reglage_un_bolo         bolo[nb_max_bolo];              /*      18 * 2  =       36      */
    497513        auto_bolo               autom[nombre_de_voies];         /*      6  * 1          6       */                                                             
     
    566582/* reste libres :  mul   12 - 21 - 22 - 25 -  31 - 44 - 57 - 58 - 64    */
    567583
     584#define  val_multiplex(qq)      (0.0003052*(double)((qq)-0x8000))       
     585#define  val_temperature(qq)    ((val_multiplex(qq)<0.2)?-99:((1146.3/(val_multiplex(qq)-0.1)) - 245.13))
    568586
    569587
     
    648666        int4            code2;          /*      code2 du block                                  */
    649667                                        /* chaque gyro: un vecteur tde 72 valeurs               */
    650         int4            gyros[3][nb_per_block*2];
     668        int4            gyro[3][nb_per_block*2];
    651669        int4            magneto[3];     /*      1 bit par echantillonage soit 3*32bit>72        */
    652670        int4            fin;            /*      code de reconnaissance de fin de block          */
     
    720738
    721739
    722 
    723 /*  ---------------------   structures N° 15 : catalog_flash      -------       */
    724 /*  ------------------------------------------------------------------------------------------- */
    725 
    726 typedef struct                          /*      etat de l'enregistreur                          */
    727         {
    728         int4            nb_total_catalog;
    729         int4            memoire_libre;
    730         int4            nb_block_erreur;
    731         }status_flash;
    732 
    733 typedef struct   
    734         {
    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        */
    740         status_flash    status;         /*      etat de l'enregistreur                          */
    741         int4            nombre;         /*                                                      */
    742         int4            code[nb_element_catalog];       /* code type et numero                  */
    743         int4            fin;            /*      code de reconnaissance de fin de block          */
    744         }
    745         block_type_catalog_flash;                       
    746 
    747 
    748 /*  ---------------------   structures N° 16 :    cmd_flash                 -----------         */
    749 /*  -----------------------------------------------------------------------------------------   */
    750 typedef struct                           
    751         {
    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          */
    757         }
    758         block_type_cmd_flash;                   
    759 
    760 enum    {flash_catalog_auto,flash_catalog_debut,flash_catalog_fin,flash_catalog_precedent,flash_catalog_suivant
    761                 ,flash_efface_tout1,flash_efface_tout2,flash_efface_tout3
    762                 ,flash_efface_util1,flash_efface_util2,flash_efface_util3};
     740/*  ---------------------   structures N° 15 : block_type_status_flash -------*/
     741/*  ----------------------------------------------------------------    */
     742
     743/*
     744** Quelque soit la commande, l'enregistreur renvoie toujours le meme type
     745de bloc comprenant la commande, un mot d'erreur eventuel et le status.
     746
     747** L'enregistreur ne prend jamais l'initiative d'envoyer un bloc de status
     748(sauf dans le cas ci-dessous).
     749
     750** Au reset, le controleur est un peu lent a demarrer (quelques secondes).
     751Pour que tu puisse savoir quand il est pret, je propose de t'envoyer un
     752bloc de type "block_type_status_flash" des que je suis pret (comme si tu
     753avais envoye un bloc "block_type_cmd_flash" avec la commande
     754"FLASH_STATUS_REQUEST"
     755
     756*/
     757
     758typedef struct {/* etat de l'enregistreur */
     759  int4 nb_total_blocks ;
     760  int4 memoire_libre ;
     761  int4 nb_block_erreur ;
     762} status_flash;
     763
     764typedef struct {
     765  unsigned int4 debut ;
     766  unsigned int4 code1 ;
     767  unsigned int4 code2 ;
     768
     769  int4  commande; /* la commande a laquelle ce bloc repond      */
     770  int4 erreur ;   /* Si la commande a induit une erreur */
     771  status_flash status ; /* etat de l'enregistreur */
     772  unsigned int4 fin ; /* code de reconnaissance de fin de block */
     773} block_type_status_flash ;
     774
     775/*  ---------------------   structures N° 16 :    block_type_cmd_flash    ---------*/
     776/*  ------------------------------------------------------------------  */
     777typedef struct {
     778  unsigned int4 debut ;
     779  unsigned int4 code1 ;
     780  unsigned int4 code2 ;
     781
     782  int4  commande; /* type de commande a l'enregistreur flash */
     783
     784  int4  fin;      /* code de reconnaissance de fin de block */
     785} block_type_cmd_flash;                 
     786
     787/* Commands from Transputer to Recorder */
     788enum {
     789  FLASH_STATUS_REQUEST,
     790  FLASH_EFFACE_TOUT1, FLASH_EFFACE_TOUT2, FLASH_EFFACE_TOUT3,
     791  FLASH_EFFACE_UTIL1, FLASH_EFFACE_UTIL2, FLASH_EFFACE_UTIL3
     792} ;
     793
     794/* Errors from Recorder to Transputer.
     795   Pending question: what to do in case of FLASH_ERASE_END_ERROR ?
     796*/
     797
     798enum {
     799  FLASH_STATUS_OK,      /* Pas d'erreur */
     800  FLASH_BAD_SEQUENCE,   /* Mauvaise sequence d'effacement */
     801  FLASH_ERASE_START,    /* Debut d'effacement */
     802  FLASH_ERASE_END_OK,   /* Fin d'effacement OK */
     803  FLASH_ERASE_END_ERROR /* Erreur pendant l'effacement */
     804} ;
    763805
    764806
     
    829871        block_gps,block_une_periode,block_synchro_sol,block_pointage_sol,
    830872        block_bolo,block_gyro,block_sst,block_11,
    831         block_bolo_comprime,block_gyro_comprime,block_sst_comprime,block_catalog_flash,
     873        block_bolo_comprime,block_gyro_comprime,block_sst_comprime,block_status_flash,
    832874        block_cmd_flash,block_data_brute,block_18,block_19};
    833875
     
    836878                                        "block_gps","block_une_periode","block_synchro_sol","block_pointage_sol",\
    837879                                        "block_bolo","block_gyro","block_sst","block_11",\
    838                                         "block_bolo_comprime","block_gyro_comprime","block_sst_comprime","block_catalog_flash",\
     880                                        "block_bolo_comprime","block_gyro_comprime","block_sst_comprime","block_status_flash",\
    839881                                        "block_cmd_flash","block_data_brute","",""};
    840882
     
    843885                                        sizeof(block_type_gps),sizeof(block_type_une_periode),sizeof(block_type_synchro_sol),sizeof(block_type_pointage_sol),\
    844886                                        sizeof(block_type_bolo),sizeof(block_type_gyro),sizeof(block_type_sst),sizeof(block_type11),\
    845                                         sizeof(block_type_bolo_comprime),sizeof(block_type_gyro_comprime),sizeof(block_type_sst_comprime),sizeof(block_type_catalog_flash),\
     887                                        sizeof(block_type_bolo_comprime),sizeof(block_type_gyro_comprime),sizeof(block_type_sst_comprime),sizeof(block_type_status_flash),\
    846888                                        sizeof(block_type_cmd_flash),sizeof(block_type_data_brute),sizeof(block_type_18),sizeof(block_type_19)};
    847889
     
    915957double  val_double(char x);
    916958
    917 /*      cette fonction transforme un char (sur 8 bit) en entier long (echelle logarythmique)    */
     959/*      cette fonction transforme un char (sur 8 bit) en entier int4 (echelle logarythmique)    */
    918960/*      elle est en particulier utilisée pour fixer le courant sur les bolometres               */
    919961
    920 unsigned long   val_long(char x);
     962unsigned int4   val_long(char x);
    921963
    922964int     new_val_dac(int a,char  code);
Note: See TracChangeset for help on using the changeset viewer.