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

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

archediab 26

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