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

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

archediab 26

File size: 4.4 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
52void traite_block_sst_comprime (block_type_sst_comprime* blk){}
53
54
55void traite_block_sst(block_type_sst* blk)
56{
57int i,j,k;
58double y[15];
59double x;
60
61int temps_cntl;
62double secondes;
63int a,b,b0,b1,b2;
64int prem_d;
65
66if(!fenetre(fenetre_senseur_stellaire)) return;
67// ecriture des valeurs brutes du senseur stellaire
68// les numero 0 et 4 sont dediés aux thermometres
69// pour l'instant machent bien 1 2 3 8 9 10 11
70if(litD(fenetre_senseur_stellaire,sst_sortie_brute,0))
71 {
72 if(!fenetre(fenetre_senseur_stellaire_lecture_brute)) nouveauT(fenetre_senseur_stellaire_lecture_brute,0,"lecture senseur stellaire");
73
74 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\nsenseur stellaire \n");
75
76
77// k=0;
78 for(k=0;k<4;k++)
79 {
80 for(i=0;i<16;i++) // 16 senseurs
81 {
82 for(j=0;j<3;j++) // 3 paquets
83 {
84 a=place_paquet(i,j);
85 b= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
86 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%x",b);
87 }
88 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f," ");
89 }
90 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
91 }
92
93 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
94
95 }
96
97//k=0;
98prem_d=litD(fenetre_senseur_stellaire,sst_prem_diode,0L);
99for(k=0;k<72;k++)
100 {
101 for(i=0;i<12;i++) // seulement 12 diodes
102 {
103 int q;
104 q=i+prem_d-1;
105
106 a=place_paquet(q,0);
107 b0= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
108 a=place_paquet(q,1);
109 b1= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
110 a=place_paquet(q,2);
111 b2= ( blk->sst[k][a/8] >>( (a%8)*4) ) & 0xf;
112
113
114 x=(double)( (b0<<8) | (b1<<4) | b2 ) ;
115 if(x>2047) x-=4096;
116 y[i]=x;
117 }
118// printf(" y = %g %g %g %g %g \n",y[0],y[1],y[2],y[3],y[4]);
119 temps_cntl =numero_block(blk)*nb_per_block*2+k;
120 secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
121 tracen(fenetre_senseur_stellaire,12,secondes,y);
122 }
123}
124
125
126
127// les 46 valeurs en hexa
128// i=0; // juste le premier point du block
129// for(i=0;i<72;i++)
130/*
131for(i=0;i<72;i++)
132 {
133
134 for(j=0;j<12;j++) // seulement les 12 premieres diodes
135 {
136 x=0;
137 for(k=0;k<12;k++) x=(x<<1) | bit_sst(i,j,k);
138 y[j]=(double)x;
139 }
140 temps_cntl =numero_block(blk)*nb_per_block*2+i;
141 secondes=gg->periode_echantillonage*(double)temps_cntl-gg->temps_origine;
142 tracen(fenetre_senseur_stellaire,12,secondes,y);
143 }
144
145*/
146/* i=1; // juste le premier point du block
147// for(i=0;i<72;i++)
148 {
149 for(k=0;k<12;k++) // 12 bits
150 {
151 for(j=0;j<35;j++) // 46 senseurs
152 {
153 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%d ",bit_sst(i,j,k));
154 }
155 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
156 }
157 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
158 }
159
160// les 46 valeurs en hexa
161// i=0; // juste le premier point du block
162// for(i=0;i<72;i++)
163 for(i=0;i<10;i++)
164 {
165 for(j=0;j<35;j++) // 46 senseurs
166 {
167 x=0;
168 for(k=0;k<12;k++) x=(x<<1) | bit_sst(i,j,k);
169 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"%3x ",x);
170 }
171 ecritT(fenetre_senseur_stellaire_lecture_brute,fin_f,"\n");
172 }
173
174
175 }
176
177
178*/
Note: See TracBrowser for help on using the repository browser.