Changeset 645 in Sophya for trunk/Poubelle/archediab.old/archeops.h
- Timestamp:
- Nov 25, 1999, 2:35:30 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archeops.h
r643 r645 7 7 8 8 #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 12 17 /*======================================================================*/ 13 18 /* */ … … 31 36 /* */ 32 37 /* - 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 /* */ 34 50 /*======================================================================*/ 35 51 … … 321 337 322 338 param_bolo param; /* les parametres de mesure des bolometres */ 323 339 unsigned char ecc[((((sizeof( param_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 324 340 int4 fin; /* code de reconnaissance de fin de block */ 325 341 } … … 350 366 351 367 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)] ; 352 369 353 370 int4 fin; /* code de reconnaissance de fin de block */ … … 524 541 int4 code2; /* code2 du block */ 525 542 reglage_bolo reglage; 543 unsigned char ecc[((((sizeof(reglage_bolo)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 526 544 int4 fin; /* code de reconnaissance de fin de block */ 527 545 } … … 542 560 /* int4 gyro_dil[3][nb_per_block*2]; les gyros (block gyros) */ 543 561 /* int4 data_dil[50]; data brutes de la dilution */ 562 unsigned char ecc[((((sizeof(int4)*64+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 544 563 int4 fin; /* code de reconnaissance de fin de block */ 545 564 } … … 589 608 /* ------------------------------------------------------------------------------------------- */ 590 609 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 611 typedef 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)] ; 598 619 599 620 int4 fin; /* code de reconnaissance de fin de block */ … … 612 633 613 634 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)] ; 614 636 615 637 int4 fin; /* code de reconnaissance de fin de block */ … … 625 647 int4 code2; /* code2 du block */ 626 648 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)] ; 627 650 628 651 int4 fin; /* code de reconnaissance de fin de block */ … … 638 661 int4 code2; /* code2 du block */ 639 662 char comment[1024]; 663 unsigned char ecc[((((1024+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 640 664 int4 fin; /* code de reconnaissance de fin de block */ 641 665 } … … 654 678 int4 data_bolo[nb_max_bolo][nb_per_block*2]; 655 679 /* 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)] ; 656 681 int4 fin; /* code de reconnaissance de fin de block */ 657 682 } … … 668 693 int4 gyro[3][nb_per_block*2]; 669 694 int4 magneto[3]; /* 1 bit par echantillonage soit 3*32bit>72 */ 695 unsigned char ecc[((((sizeof(int4)*3*nb_per_block*2*3+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 670 696 int4 fin; /* code de reconnaissance de fin de block */ 671 697 } … … 681 707 int4 sst[nb_per_block*2][18]; 682 708 /* 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)] ; 683 710 int4 fin; /* code de reconnaissance de fin de block */ 684 711 } … … 692 719 int4 code1; /* code1 du block */ 693 720 int4 code2; /* code2 du block */ 721 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 694 722 int4 fin; /* code de reconnaissance de fin de block */ 695 723 } … … 706 734 /* pour chaque bolo, un vecteur 19 mots */ 707 735 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)] ; 708 737 709 738 int4 fin; /* code de reconnaissance de fin de block */ … … 720 749 /* nombre de mots = nb valeurs/4 +1 */ 721 750 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)] ; 722 752 int4 fin; /* code de reconnaissance de fin de block */ 723 753 } … … 733 763 /* pour chaque diode, un vecteur 11 mots */ 734 764 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)] ; 735 766 int4 fin; /* code de reconnaissance de fin de block */ 736 767 } … … 770 801 int4 erreur ; /* Si la commande a induit une erreur */ 771 802 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 772 805 unsigned int4 fin ; /* code de reconnaissance de fin de block */ 773 806 } block_type_status_flash ; … … 781 814 782 815 int4 commande; /* type de commande a l'enregistreur flash */ 816 unsigned char ecc[((((sizeof(int4)+SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 783 817 784 818 int4 fin; /* code de reconnaissance de fin de block */ … … 814 848 #ifdef transmet_data_brute 815 849 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)] ; 816 853 #endif 817 854 int4 fin; /* code de reconnaissance de fin de block */ … … 826 863 int4 code1; /* code1 du block */ 827 864 int4 code2; /* code2 du block */ 865 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 828 866 int4 fin; /* code de reconnaissance de fin de block */ 829 867 } … … 837 875 int4 code1; /* code1 du block */ 838 876 int4 code2; /* code2 du block */ 877 unsigned char ecc[((((SIZE_HEAD)/ECC_DATA)+1)*ECC_SIZE)] ; 839 878 int4 fin; /* code de reconnaissance de fin de block */ 840 879 } … … 852 891 int4 code2; /* code2 du block */ 853 892 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)] ; 854 894 int4 fin; /* code de reconnaissance de fin de block */ 855 895 }
Note:
See TracChangeset
for help on using the changeset viewer.