source: Sophya/trunk/Poubelle/archediab.old/archediab.sources/c/reglage.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: 6.4 KB
Line 
1#include "diabolo.h"
2#include "reglage.h"
3
4
5void param_reglage(void)
6{
7nouveauD(fenetre_param_reglage,reglage_id,"param_reglage",exec_reglage);
8}
9
10//-------------------- fonction exec de la fenetre : param_reglage -------------------------------
11
12
13void exec_reglage(int fen,int item,double valeur,...)
14{
15int a,i,num;
16char ss[256];
17switch(item)
18 {
19 case ouverture :
20 a=ouvrirT(fenetre_fichier_archeops_c,256,"archeops.c");
21 if(!a) a=ouvrirT(fenetre_fichier_archeops_c,256,0L);
22 if(!a) printf(" n'arrive pas a ouvrir le fichier archeops.c \n");
23 if(!a) a=nouveauT(fenetre_fichier_archeops_c,256,"archeops.c");
24// cherche les noms de reglages
25 litT(fenetre_fichier_archeops_c,cherchedebut_f,"/*debut_nom_reglage*/");
26 for(i=0;i<8;i++)
27 {
28 litT(fenetre_fichier_archeops_c,curseur_f,ss);
29 if(strlen(ss)>9)
30 {
31 ss[strlen(ss)-2]=0;
32 ecritD(fen,pr_nom_reglage+i,ss+6);
33 }
34 else ecritD(fen,pr_nom_reglage+i,"reglage %d",i);
35 }
36 select(fen);
37 break;
38 case fermeture : ferme(fenetre_fichier_archeops_c);break;
39// case pr_relit_param : relit_param();sauve_param();break;
40
41 case pr_sauve_reglage : num=litD(fen,pr_num_reglage,0L)-1;
42 if(num<0) alerte(1,"attention, vous n'avez rien sauvé !!");
43 else sauve_reglage(num);
44 break;
45
46 default : break;
47 }
48}
49
50
51
52//----------------------------------------------------------------------------------------------
53//--- ----
54//--- ----
55//-------------------- sauves les reglages dans archeops.c ---------------------------------
56//--- ----
57//--- ----
58//----------------------------------------------------------------------------------------------
59
60
61void sauve_reglage(int num)
62{
63char s1[1024];
64int p,i;
65
66if( (num<0) ou (num>7) ) erreur(" ecrit reglage avec num non valide ");
67
68
69// --------------------------- cherche debut_id= pour detruire les ancien define pour ce dialogue -----------------
70p=litT(fenetre_fichier_archeops_c,cherchedebut_f,"/*debut_nom_reglage*/");
71printf("trouvé debut_nom_reglage pour p=%d \n",p);
72
73
74if (p>=0)
75 {
76 position(fenetre_fichier_archeops_c,p);
77 do {
78 p=litT(fenetre_fichier_archeops_c,curseur_f,s1);
79 if (p>=0) {position(fenetre_fichier_archeops_c,p);
80 ecritT(fenetre_fichier_archeops_c,detruit_f,"");
81 }
82// printf("detruit:-->> %s \n",s1);
83 }
84 while ( (p>=0) && (strcmp(s1,"/*fin_nom_reglage*/")!=0) );
85 }
86else {
87 ecritT(fenetre_fichier_archeops_c,insert_f,"\n");
88 ecritT(fenetre_fichier_archeops_c,insert_f,"\n");
89 ecritT(fenetre_fichier_archeops_c,insert_f,"\n");
90 }
91
92ecritT(fenetre_fichier_archeops_c,insert_f,"/*debut_nom_reglage*/\n");
93for(i=0;i<8;i++)
94 {
95 litD(fenetre_param_reglage,pr_nom_reglage+i,s1);
96 ecritT(fenetre_fichier_archeops_c,insert_f,"/* %d->%s*/\n",i,s1);
97 }
98ecritT(fenetre_fichier_archeops_c,insert_f,"/*fin_nom_reglage*/\n\n");
99
100
101
102
103// --------------------------- cherche debut_id= pour detruire les ancien define pour ce dialogue -----------------
104sprintf(s1,"/*debut reglage %d */",num);
105p=litT(fenetre_fichier_archeops_c,cherchedebut_f,s1);
106printf("trouvé debut_reglage %d pour p=%d \n",num,p);
107
108
109if (p>=0)
110 {
111 position(fenetre_fichier_archeops_c,p);
112 do {
113 p=litT(fenetre_fichier_archeops_c,curseur_f,s1);
114 if (p>=0) {position(fenetre_fichier_archeops_c,p);
115 ecritT(fenetre_fichier_archeops_c,detruit_f,"");
116 }
117// printf("detruit:-->> %s \n",s1);
118 }
119 while ( (p>=0) && (strcmp(s1,"/*fin_reglage*/")!=0) );
120 }
121else {
122 ecritT(fenetre_fichier_archeops_c,insert_f,"\n");
123 ecritT(fenetre_fichier_archeops_c,insert_f,"\n");
124 ecritT(fenetre_fichier_archeops_c,insert_f,"\n");
125 }
126// ---------------------------------- ecriture des nouveaux defines ----------------------------------
127/*typedef struct long en mot de 32 bit
128 {
129 horloge horloge; 1
130 char vitesse[nb_type_blocks]; /* 5
131 reglage_un_bolo bolo[nb_max_bolo]; 18 * 2 = 36
132 auto_bolo autom[nombre_de_voies]; 6 * 1 6
133 regul_bolo regul[nombre_de_regul]; 4 * 2 = 8
134 auto_dilu dilu; 2
135 }
136 reglage_bolo; total 58
137*/
138
139ecritT(fenetre_fichier_archeops_c,insert_f,"/*debut reglage %d */\n",num);
140ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d},\n",gg->reglage.horloge.periode,gg->reglage.horloge.nb_mesures
141 ,gg->reglage.horloge.temp_mort,gg->reglage.horloge.flag);
142
143for(i=0;i<nb_type_blocks;i++)
144 {if(i>0) ecritT(fenetre_fichier_archeops_c,insert_f,",%d\n",gg->reglage.vitesse[i]); else ecritT(fenetre_fichier_archeops_c,insert_f,"{%d\n",gg->reglage.vitesse[i]); }
145
146ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n");
147
148for(i=0;i<nb_max_bolo;i++)
149 {if(i>0) ecritT(fenetre_fichier_archeops_c,insert_f,",{%d,%d}\n",gg->reglage.bolo[i].mot1,gg->reglage.bolo[i].mot2);
150 else ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d}\n",gg->reglage.bolo[i].mot1,gg->reglage.bolo[i].mot2);
151 }
152
153ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n");
154
155for(i=0;i<nombre_de_voies;i++)
156 {if(i>0) ecritT(fenetre_fichier_archeops_c,insert_f,",{%d,%d,%d,%d}\n",gg->reglage.autom[i].mode,gg->reglage.autom[i].gain,gg->reglage.autom[i].courant,gg->reglage.autom[i].delai);
157 else ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d}\n",gg->reglage.autom[i].mode,gg->reglage.autom[i].gain,gg->reglage.autom[i].courant,gg->reglage.autom[i].delai);
158 }
159
160ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n");
161
162for(i=0;i<nombre_de_regul;i++)
163 {if(i>0) ecritT(fenetre_fichier_archeops_c,insert_f,",{%d,%d,%d,%d,%d,%d,%d}\n"
164 ,gg->reglage.regul[i].mode,gg->reglage.regul[i].num_bolo,gg->reglage.regul[i].voie_chauf,gg->reglage.regul[i].prop
165 ,gg->reglage.regul[i].integ,gg->reglage.regul[i].deriv,gg->reglage.regul[i].chauffage);
166 else ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d,%d,%d,%d}\n"
167 ,gg->reglage.regul[i].mode,gg->reglage.regul[i].num_bolo,gg->reglage.regul[i].voie_chauf,gg->reglage.regul[i].prop
168 ,gg->reglage.regul[i].integ,gg->reglage.regul[i].deriv,gg->reglage.regul[i].chauffage);
169 }
170
171ecritT(fenetre_fichier_archeops_c,insert_f,"},{%d,%d,%d,%d,%d,%d,%d,%d} \n"
172 ,gg->reglage.dilu.vanne,gg->reglage.dilu.helium,gg->reglage.dilu.chauffage,gg->reglage.dilu.piles
173 ,gg->reglage.dilu.transmission,gg->reglage.dilu.temps_max_vanne,gg->reglage.dilu.xx7,gg->reglage.dilu.xx8);
174
175
176ecritT(fenetre_fichier_archeops_c,insert_f,"/*fin_reglage*/\n");
177
178
179if(enregistrer(fenetre_fichier_archeops_c)) alerte(1,"atention : erreur dans engeristrer");
180}
181
182
Note: See TracBrowser for help on using the repository browser.