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

archediab 27

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.