source: Sophya/trunk/Poubelle/archediab.old/archediab.sources/c/trace_tout.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 "bolo.h"
3#include "acqui.h"
4#include "carte_acqui.h"
5#include "trace_tout.h"
6#include "synchro.h"
7
8
9
10
11//---------------------------------- fenetre : lit_fifo -----------------------------------
12
13void montracen_tout(int fen,int n,double x,util_trace_tout *SS);
14
15
16
17void exec_trace_tout(int fen,int item,double valeur,...)
18{
19int i,j;
20double x,c1,c2;
21util_trace_tout *SS;
22SS=infos(fen)->util;
23switch(item)
24 {
25 case fermeture : for(j=0;j<8;j++) if(gg->trace_tout[j]==fen) {gg->trace_tout[j]=0;}
26 free(SS);
27 break;
28 case ouverture :
29 for(j=0;j<8;j++) if(gg->trace_tout[j]==0) {gg->trace_tout[j]=fen;break;}
30 SS=malloc(sizeof(util_trace_tout));
31 infos(fen)->util=SS;
32
33 graph->ymin=-120;
34 graph->ymax=120;
35 graph->ypas=20;
36 graph->xmax=500;
37 graph->xpas=50;
38 graph->taille_graduations=8;
39 for(j=0;j<nb_max_bolo;j++) SS->f1[j]=0;
40 for(j=0;j<nb_max_bolo;j++) SS->f2[j]=0;
41 for(j=0;j<nb_max_bolo;j++) SS->y[j]=0;
42
43
44 case t_moyenne :
45 case t_moyenne+1000 :
46 case t_fmini :
47 case t_fmini+1000 :
48 case t_fmaxi :
49 case t_fmaxi+1000 : SS->moyenne=litD(fen,t_moyenne,0L);if(SS->moyenne<1) SS->moyenne=1;
50 SS->ipas=0;
51 SS->fmini=litD(fen,t_fmini,0L);
52 SS->fmaxi=litD(fen,t_fmaxi,0L);
53 for(j=0;j<nb_max_bolo;j++) SS->f1[j]=0;
54
55 c1=2*3.14*SS->fmini*gg->periode_echantillonage; c1=c1/(1+c1);
56 c2=2*3.14*SS->fmaxi*gg->periode_echantillonage; c2=c2/(1+c2);
57
58 printf("c1=%g c2=%g \n",c1,c2);
59
60
61
62
63 case t_bolo_couleur :
64 case t_bolo_couleur+1 :
65 case t_bolo_couleur+2 :
66 case t_bolo_couleur+3 :
67 case t_bolo_couleur+4 :
68 case t_bolo_couleur+5 :
69 case t_bolo_couleur+6 :
70 case t_bolo_couleur+7 :
71 case t_bolo_couleur+8 :
72 case t_bolo_couleur+9 :
73
74 for(i=0;i<max_couleur;i++)
75 {
76 SS->bolo_couleur[i]=litD(fen,t_bolo_couleur+i,0L)-1;
77 if( (SS->bolo_couleur[i]<1) ou (SS->bolo_couleur[i]>nb_max_bolo) ) SS->bolo_couleur[i]=0;
78 printf(" i=%d bolo=%d ",i,SS->bolo_couleur[i]);
79 }
80 printf("\n");
81 break;
82
83
84 break;
85
86
87 case t_raz : gg->temps_origine=gg->periode_echantillonage*(double)gg->temps_cntl; //break;
88 case t_efface : efface(fen);
89 break;
90
91
92 case tache_de_fond : selectgra(fen);
93
94 c1=2*3.14*SS->fmini*gg->periode_echantillonage; c1=c1/(1+c1);
95 c2=2*3.14*SS->fmaxi*gg->periode_echantillonage; c2=c2/(1+c2);
96
97 for(j=0;j<nb_max_bolo;j++)
98 {
99 SS->f1[j]= (1-c1) * SS->f1[j] + c1 * xbol(j);
100 SS->f2[j]= (1-c2) * SS->f2[j] + c2 * xbol(j);
101 SS->y[j]+=SS->f2[j]-SS->f1[j];
102 }
103 SS->ipas--;
104 if(SS->ipas<=0)
105 {
106 SS->ipas=SS->moyenne;
107 for(j=0;j<nb_max_bolo;j++) SS->y[j]=SS->y[j]/(double)SS->moyenne;
108 printf("trace_tout un point \n");
109
110// SS->[nb_max_bolo]=(0.95*graph->ymin+0.05*graph->ymax) +
111// + ( (gg->don.sync[sync_subscan]!=0) et (gg->don.sync[sync_scan]!=0) )
112// * 0.9 * (graph->ymax-graph->ymin);
113
114 x=gg->periode_echantillonage*(double)gg->temps_cntl-gg->temps_origine;
115// printf("x=%g x0=%g \n",x,x0);
116 //if(x<0) {x0=gg->periode_echantillonage*(double)gg->temps_cntl;x=0;}
117
118
119 montracen_tout(fen,nb_max_bolo,x,SS); // SANS LA SYNCHRO
120// montracen(fen,nb_max_bolo+1,x,SS->y); // avec la synchro
121
122
123 if(!(graph->scroll_courbe) && litD(fen,t_retour,0L) &&
124 ( (x<graph->xmin) ou (x>graph->xmax) ))
125 {
126 graph->xmax-=graph->xmin;graph->xmin=0;
127 gg->temps_origine=gg->periode_echantillonage*(double)gg->temps_cntl;
128 x=0;
129 }
130
131 for(j=0;j<nb_max_bolo;j++) SS->y[j]=0;
132 }
133
134 default : break;
135 }
136
137}
138
139
140void montracen_tout(int fen,int n,double x,util_trace_tout *SS)
141{
142int i;
143double yy[max_couleur];
144for(i=0;i<max_couleur;i++)
145 {
146 if(SS->bolo_couleur[i]) yy[i]=SS->y[SS->bolo_couleur[i]-1];
147 else yy[i]=0;
148 }
149tracen(fen,max_couleur,x,yy);
150// printf("0=%g 1=%g 2=%g \n",yy[0],yy[1],yy[2]);
151}
Note: See TracBrowser for help on using the repository browser.