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

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

archediab version 24 initial import

File size: 3.5 KB
Line 
1#include "diabolo.h"
2#include "bolo.h"
3#include "acqui.h"
4#include "carte_acqui.h"
5#include "trace.h"
6#include "synchro.h"
7
8//#define scroll_courbe 0
9
10
11
12
13//---------------------------------- fenetre : lit_fifo -----------------------------------
14
15
16
17
18void exec_trace_tout(int fen,int item,double valeur,...)
19{
20static double y[nb_max_bolo+1];
21static double f1[nb_max_bolo+1];
22static double f2[nb_max_bolo+1];
23static double fmin,fmax;
24
25static int moyenne,ipas;
26static double fmini,fmaxi;
27
28
29int j;
30double x,c1,c2;
31
32switch(item)
33 {
34 case ouverture : gg->trace_ouvert=gg->trace_ouvert | 1 ;
35 graph->ymin=-120;
36 graph->ymax=120;
37 graph->ypas=20;
38 graph->xmax=500;
39 graph->xpas=50;
40 graph->taille_graduations=8;
41// graph->sans_image=1;
42// graph->flag_tracen=0;
43// for(j=0;j<parametr.nb_bolo+1;j++) graph->flag_tracen+=(1<<j);
44// moyenne=10;ipas=1;
45// ecritD(fen,t_moyenne,"%d",moyenne);
46
47// fmini=0;ecritD(fen,t_fmini,"%g",fmini);
48// fmaxi=10;ecritD(fen,t_fmaxi,"%g",fmaxi);
49 for(j=0;j<parametr.nb_bolo;j++) f1[j]=0;
50 for(j=0;j<parametr.nb_bolo;j++) f2[j]=0;
51 for(j=0;j<parametr.nb_bolo;j++) y[j]=0;
52
53
54 case t_moyenne :
55 case t_moyenne+1000 :
56 case t_fmini :
57 case t_fmini+1000 :
58 case t_fmaxi :
59 case t_fmaxi+1000 : moyenne=litD(fen,t_moyenne,0L);if(moyenne<1) moyenne=1;
60 fmini=litD(fen,t_fmini,0L);
61 fmaxi=litD(fen,t_fmaxi,0L);
62 for(j=0;j<parametr.nb_bolo;j++) f1[j]=0;
63
64 c1=2*3.14*fmini*gg->periode_echantillonage; c1=c1/(1+c1);
65 c2=2*3.14*fmaxi*gg->periode_echantillonage; c2=c2/(1+c2);
66
67 printf("c1=%g c2=%g \n",c1,c2);
68 break;
69
70 case fermeture : gg->trace_ouvert=gg->trace_ouvert & (255-1); // enleve le 1
71 break;
72
73
74 case t_raz : gg->temps_origine=gg->periode_echantillonage*(double)gg->temps_cntl; //break;
75 case t_efface : efface(fen);
76 break;
77
78
79 case tache_de_fond : selectgra(fen);
80
81 c1=2*3.14*fmini*gg->periode_echantillonage; c1=c1/(1+c1);
82 c2=2*3.14*fmaxi*gg->periode_echantillonage; c2=c2/(1+c2);
83
84 for(j=0;j<parametr.nb_bolo;j++)
85 {
86 f1[j]= (1-c1) * f1[j] + c1 * xbol(j);
87 f2[j]= (1-c2) * f2[j] + c2 * xbol(j);
88 y[j]+=f2[j]-f1[j];
89 }
90 ipas--;
91 if(ipas<=0)
92 {
93 ipas=moyenne;
94 for(j=0;j<parametr.nb_bolo;j++) y[j]=y[j]/(double)moyenne;
95
96// y[parametr.nb_bolo]=(0.95*graph->ymin+0.05*graph->ymax) +
97// + ( (gg->don.sync[sync_subscan]!=0) et (gg->don.sync[sync_scan]!=0) )
98// * 0.9 * (graph->ymax-graph->ymin);
99
100 x=gg->periode_echantillonage*(double)gg->temps_cntl-gg->temps_origine;
101// printf("x=%g x0=%g \n",x,x0);
102 //if(x<0) {x0=gg->periode_echantillonage*(double)gg->temps_cntl;x=0;}
103
104 montracen(fen,parametr.nb_bolo,x,y); // SANS LA SYNCHRO
105// montracen(fen,parametr.nb_bolo+1,x,y); // avec la synchro
106
107 if(!(graph->scroll_courbe) && litD(fen,t_retour,0L) &&
108 ( (x<graph->xmin) ou (x>graph->xmax) ))
109 {
110 graph->xmax-=graph->xmin;graph->xmin=0;
111 gg->temps_origine=gg->periode_echantillonage*(double)gg->temps_cntl;
112 x=0;
113 }
114
115 for(j=0;j<parametr.nb_bolo;j++) y[j]=0;
116 }
117
118 default : break;
119 }
120
121}
122
123
Note: See TracBrowser for help on using the repository browser.