source: Sophya/trunk/Poubelle/archediab.old/archediab.sources/h/structure_diabolo.h@ 637

Last change on this file since 637 was 637, checked in by ansari, 26 years ago

archediab version 24 initial import

File size: 3.9 KB
Line 
1//#define mode taillesymbole
2/*
3Le fichier de données diabolo est un fichier mac de type 'DIA2' qui contient
4 une suite d'enregistrements.
5
6Il commence par une entete correspondant à la structure de type F_entete
7 - cette entete contient
8
9On a ensuite une suite d'enregistrements comportant chacun:
10 - une entete partielle avec les parametres de mesure, y compris les parametres DAC
11 structure de type F_entete_part
12 - une suite de valeur correspondant à chaque point mesuré et contenant:
13 Le temps calculé
14 Les 6 signaux de synchro
15 Les voies 1 à 7 : 5 bolometre + 1 temperature + 1 chauffage regul
16
17*/
18
19
20enum {bol,bolxx,chauf,pipo}; // types de bolometres
21
22
23#define max_nb_donne 1000L // nombre maxi de donne dans un bloc du fichier
24#define temps_max_fichier 300 // durée maxi d'un fichier (5 minutes)
25
26
27
28#define max_nb_mesures 256 // maxi dans une periode de modulation electrique
29
30#define nb_ds_table 3 // 4 DS : - signal
31 // - chauffage
32 // - transitoire
33 // pas de mesure de linéarité
34
35#define nb_max_bolo 9 // 5 bolo, 1 chauff 1 non util. (MONTER À 11 maxi)
36#define nb_sync 6 // 1 synchro diode + 5 synchro externes
37
38
39/*
40 long_entete = 272
41 long_entete_part = 2128
42 long_donne = 14
43
44*/
45
46
47typedef struct // etat de l'ensemble de la manip , aussi pour entete partielle
48 {
49
50 long duree; // durée d'une periode (en µsec)
51 short nb_mesures; // nombre de mesures dans une periode
52 short temp_mort; // temps mort pour la detection synchrone numerique
53
54 short diode_etat; // etat des diodes
55 short diode_dure; // duree de periode des diodes
56
57 short gainbrut[nb_max_bolo]; // valeur du gain codé : (0,1,2,...,15)
58 short gain[nb_max_bolo]; // valeur du gain en vraies valeurs(1,2,4,8,10,...,8000)
59 short dac[4][nb_max_bolo]; // les valeurs des DAC 4 voies en entier (0 à 4095)
60 short phase[nb_max_bolo]; // valeur du dephasage individuel : valeur 0 à 4
61
62 }
63 etat_bolo;
64
65
66
67typedef struct {
68 short version; // 1 pour cette version du programme
69
70 short long_entete; // longueur de l'entete
71 short long_entete_part; // longueur de l'entete partielle
72 short long_donne; // longueur d'une ligne de données
73
74 unsigned long tempsdebut; // temps de debut de fichier
75 unsigned long tempsfin; // temps de fin de fichier
76 char commentaires[256]; // commentaires à la main
77 } F_entete;
78
79
80typedef struct
81 {
82 short n_ligne_don; // Nombre de lignes de donné dans cet enregistrement
83 // ou nombre d'octets du commentaire
84 short n_blok; // numero du blok dans le fichier
85 short change; // valeur 0 = bloc identique au precedent
86 // valeur 1 = bloc modifié
87 // valeur 2 = debut de prise de donnees
88 // valeur 10 = le block ne contient qu'un commentaire
89
90 short bololut; // bit 0 à bit 3 ==1 si les courbes bolo ont ete lues
91 } F_block_desc;
92
93
94typedef struct
95 {
96
97 unsigned long temps_controleur_debut; // en micro/secondes :temps du premier point dans le bloc
98 unsigned long temps_controleur_fin; // en micro/secondes :temps du dernier point dans le bloc
99
100 etat_bolo eb;
101
102 short bolo[nb_max_bolo][max_nb_mesures]; // courbe echantillon d'une mesure
103
104 } F_block_param;
105
106
107typedef struct {
108 short bolo[nb_max_bolo];
109 char sync[nb_sync]; // les synchro en cara (6 signaux)
110 } F_donne;
111
112
113//__________________________ calcul des valeurs vraies en micro/volt ou % de chauffage
114
115#define xbol(j) ((1e5*(double)gg->don.bolo[j])/(65536.*((double)(gg->eb.gain[j])))) // en µV
116#define xsat(j) ((100.*(double)gg->sat[j])/32768.) // 0 à 100%
117#define xchauf(j) ((100.*(double)gg->don.bolo[j])/32768.) // 0 à 100%
118#define xtrans(j) ((1e5*(double)gg->trans[j])/(65536.*((double)(gg->eb.gain[j])))) // 0 à 100%
119
120
121
Note: See TracBrowser for help on using the repository browser.