source: Sophya/trunk/Poubelle/archediab.old/archediab.sources/c/senseur_stellaire.c@ 637

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

archediab version 24 initial import

File size: 4.3 KB
Line 
1#include "diabolo.h"
2#include "senseur_stellaire.h"
3
4
5
6//-------------------- fonction exec de la fenetre : senseur_stellaire -------------------------------
7
8
9void exec_senseur_stellaire(int fen,int item,double valeur,...)
10{
11if(item>1000) item-=1000; // pour appeler le case pour tous les cara d'un edit texte
12
13switch(item)
14 {
15 case ouverture :
16
17 break;
18 case fermeture :
19 break;
20 case sst_azer :
21 break;
22 case sst_sortie_brute :
23 break;
24 default : break;
25 }
26}
27
28//#define bit_sst(i,j,k) (((blk->sst[i][i*3+k/4])>>(j+8*k%4))&1)
29
30
31// i est le numero du point dans le block de 72
32// j est le numero de la diode de 0 a 47
33// j%8 est la place du bit dans le mot de 8 bit
34// j/8 (de 0 a 5 ) est la serie de mesure
35// k est le numero du bit dans le mot de 12 bits
36// les k se suivent dans les données
37
38// k est le numero du point dans le block de 72
39// i est le numero de la diode de 0 a 47
40// j est le paquet de 4 bits de 0 a 2
41
42
43// on prend des paquets de 4 bits
44// chaque diode est formee de 3 paquets
45// dans l'ordre : les paquets de 8 diodes (8 paquets)
46// recommencer 3 fois (24 paquets)
47// enfin, faire 6 fois cette operation (144 paquets)
48
49// soit q la place du paquet i,j,k
50#define place_paquet(i,j) (i/8) * 24 + j*8 + (i%8)
51
52
53void traite_block_sst(block_type_sst* blk)
54{
55int i,j,k;
56double y[15];
57double x;
58
59int temps_cntl;
60double secondes;
61int a,b,b0,b1,b2;
62
63if(!fenetre(fenetre_senseur_stellaire)) return;
64// ecriture des valeurs brutes du senseur stellaire
65// les numero 0 et 4 sont dediés aux thermometres
66// pour l'instant machent bien 1 2 3 8 9 10 11
67if(litD(fenetre_senseur_stellaire,sst_sortie_brute,0))
68 {
69 if(!fenetre(fenetre_senseur_stellaire_lecture_brute)) nouveauT(fenetre_senseur_stellaire_lecture_brute,0,"lecture senseur stellaire");
70
71 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\nsenseur stellaire \n");
72
73
74// k=0;
75 for(k=0;k<4;k++)
76 {
77 for(i=0;i<16;i++) // 16 senseurs
78 {
79 for(j=0;j<3;j++) // 3 paquets
80 {
81 a=place_paquet(i,j);
82 b= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
83 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%x",b);
84 }
85 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f," ");
86 }
87 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
88 }
89
90 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
91
92 }
93
94
95//k=0;
96for(k=0;k<72;k++)
97 {
98 for(i=0;i<12;i++) // seulement les 8 premieres diodes
99 {
100 int q;
101 q=i+4;
102 if(i>3 ) q=i+8;
103 if(i>7 ) q=i+12;
104
105 a=place_paquet(q,0);
106 b0= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
107 a=place_paquet(q,1);
108 b1= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
109 a=place_paquet(q,2);
110 b2= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
111
112
113 x=(double)( (b0<<8) | (b1<<4) | b2 ) ;
114 if(x>2047) x-=4096;
115 y[i]=x;
116 }
117// printf(" y = %g %g %g %g %g \n",y[0],y[1],y[2],y[3],y[4]);
118 temps_cntl =numero_block(blk)*nb_per_block*2+k;
119 secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
120 tracen(fenetre_senseur_stellaire,12,secondes,y);
121 }
122}
123
124
125
126// les 46 valeurs en hexa
127// i=0; // juste le premier point du block
128// for(i=0;i<72;i++)
129/*
130for(i=0;i<72;i++)
131 {
132
133 for(j=0;j<12;j++) // seulement les 12 premieres diodes
134 {
135 x=0;
136 for(k=0;k<12;k++) x=(x<<1) | bit_sst(i,j,k);
137 y[j]=(double)x;
138 }
139 temps_cntl =numero_block(blk)*nb_per_block*2+i;
140 secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
141 tracen(fenetre_senseur_stellaire,12,secondes,y);
142 }
143
144*/
145/* i=1; // juste le premier point du block
146// for(i=0;i<72;i++)
147 {
148 for(k=0;k<12;k++) // 12 bits
149 {
150 for(j=0;j<35;j++) // 46 senseurs
151 {
152 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%d ",bit_sst(i,j,k));
153 }
154 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
155 }
156 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
157 }
158
159// les 46 valeurs en hexa
160// i=0; // juste le premier point du block
161// for(i=0;i<72;i++)
162 for(i=0;i<10;i++)
163 {
164 for(j=0;j<35;j++) // 46 senseurs
165 {
166 x=0;
167 for(k=0;k<12;k++) x=(x<<1) | bit_sst(i,j,k);
168 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%3x ",x);
169 }
170 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
171 }
172
173
174 }
175
176
177*/
Note: See TracBrowser for help on using the repository browser.