#include "diabolo.h" #include "reglage.h" void param_reglage(void) { nouveauD(fenetre_param_reglage,reglage_id,"param_reglage",exec_reglage); } //-------------------- fonction exec de la fenetre : param_reglage ------------------------------- void exec_reglage(int fen,int item,double valeur,...) { int a,i,num; char ss[256]; switch(item) { case ouverture : a=ouvrirT(fenetre_fichier_archeops_c,256,"archeops.c"); if(!a) a=ouvrirT(fenetre_fichier_archeops_c,256,0L); if(!a) printf(" n'arrive pas a ouvrir le fichier archeops.c \n"); if(!a) a=nouveauT(fenetre_fichier_archeops_c,256,"archeops.c"); // cherche les noms de reglages litT(fenetre_fichier_archeops_c,cherchedebut_f,"/*debut_nom_reglage*/"); for(i=0;i<8;i++) { litT(fenetre_fichier_archeops_c,curseur_f,ss); if(strlen(ss)>9) { ss[strlen(ss)-2]=0; ecritD(fen,pr_nom_reglage+i,ss+6); } else ecritD(fen,pr_nom_reglage+i,"reglage %d",i); } select(fen); break; case fermeture : ferme(fenetre_fichier_archeops_c);break; // case pr_relit_param : relit_param();sauve_param();break; case pr_sauve_reglage : num=litD(fen,pr_num_reglage,0L)-1; if(num<0) alerte(1,"attention, vous n'avez rien sauvé !!"); else sauve_reglage(num); break; default : break; } } //---------------------------------------------------------------------------------------------- //--- ---- //--- ---- //-------------------- sauves les reglages dans archeops.c --------------------------------- //--- ---- //--- ---- //---------------------------------------------------------------------------------------------- void sauve_reglage(int num) { char s1[1024]; int p,i; if( (num<0) ou (num>7) ) erreur(" ecrit reglage avec num non valide "); // --------------------------- cherche debut_id= pour detruire les ancien define pour ce dialogue ----------------- p=litT(fenetre_fichier_archeops_c,cherchedebut_f,"/*debut_nom_reglage*/"); printf("trouvé debut_nom_reglage pour p=%d \n",p); if (p>=0) { position(fenetre_fichier_archeops_c,p); do { p=litT(fenetre_fichier_archeops_c,curseur_f,s1); if (p>=0) {position(fenetre_fichier_archeops_c,p); ecritT(fenetre_fichier_archeops_c,detruit_f,""); } // printf("detruit:-->> %s \n",s1); } while ( (p>=0) && (strcmp(s1,"/*fin_nom_reglage*/")!=0) ); } else { ecritT(fenetre_fichier_archeops_c,insert_f,"\n"); ecritT(fenetre_fichier_archeops_c,insert_f,"\n"); ecritT(fenetre_fichier_archeops_c,insert_f,"\n"); } ecritT(fenetre_fichier_archeops_c,insert_f,"/*debut_nom_reglage*/\n"); for(i=0;i<8;i++) { litD(fenetre_param_reglage,pr_nom_reglage+i,s1); ecritT(fenetre_fichier_archeops_c,insert_f,"/* %d->%s*/\n",i,s1); } ecritT(fenetre_fichier_archeops_c,insert_f,"/*fin_nom_reglage*/\n\n"); // --------------------------- cherche debut_id= pour detruire les ancien define pour ce dialogue ----------------- sprintf(s1,"/*debut reglage %d */",num); p=litT(fenetre_fichier_archeops_c,cherchedebut_f,s1); printf("trouvé debut_reglage %d pour p=%d \n",num,p); if (p>=0) { position(fenetre_fichier_archeops_c,p); do { p=litT(fenetre_fichier_archeops_c,curseur_f,s1); if (p>=0) {position(fenetre_fichier_archeops_c,p); ecritT(fenetre_fichier_archeops_c,detruit_f,""); } // printf("detruit:-->> %s \n",s1); } while ( (p>=0) && (strcmp(s1,"/*fin_reglage*/")!=0) ); } else { ecritT(fenetre_fichier_archeops_c,insert_f,"\n"); ecritT(fenetre_fichier_archeops_c,insert_f,"\n"); ecritT(fenetre_fichier_archeops_c,insert_f,"\n"); } // ---------------------------------- ecriture des nouveaux defines ---------------------------------- /*typedef struct long en mot de 32 bit { horloge horloge; 1 char vitesse[nb_type_blocks]; /* 5 reglage_un_bolo bolo[nb_max_bolo]; 18 * 2 = 36 auto_bolo autom[nombre_de_voies]; 6 * 1 6 regul_bolo regul[nombre_de_regul]; 4 * 2 = 8 auto_dilu dilu; 2 } reglage_bolo; total 58 */ ecritT(fenetre_fichier_archeops_c,insert_f,"/*debut reglage %d */\n",num); ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d},\n",gg->reglage.horloge.periode,gg->reglage.horloge.nb_mesures ,gg->reglage.horloge.temp_mort,gg->reglage.horloge.flag); for(i=0;i0) 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]); } ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n"); for(i=0;i0) ecritT(fenetre_fichier_archeops_c,insert_f,",{%d,%d}\n",gg->reglage.bolo[i].mot1,gg->reglage.bolo[i].mot2); else ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d}\n",gg->reglage.bolo[i].mot1,gg->reglage.bolo[i].mot2); } ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n"); for(i=0;i0) 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); 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); } ecritT(fenetre_fichier_archeops_c,insert_f,"},{\n"); for(i=0;i0) ecritT(fenetre_fichier_archeops_c,insert_f,",{%d,%d,%d,%d,%d,%d,%d}\n" ,gg->reglage.regul[i].mode,gg->reglage.regul[i].num_bolo,gg->reglage.regul[i].voie_chauf,gg->reglage.regul[i].prop ,gg->reglage.regul[i].integ,gg->reglage.regul[i].deriv,gg->reglage.regul[i].chauffage); else ecritT(fenetre_fichier_archeops_c,insert_f,"{%d,%d,%d,%d,%d,%d,%d}\n" ,gg->reglage.regul[i].mode,gg->reglage.regul[i].num_bolo,gg->reglage.regul[i].voie_chauf,gg->reglage.regul[i].prop ,gg->reglage.regul[i].integ,gg->reglage.regul[i].deriv,gg->reglage.regul[i].chauffage); } ecritT(fenetre_fichier_archeops_c,insert_f,"},{%d,%d,%d,%d,%d,%d,%d,%d} \n" ,gg->reglage.dilu.vanne,gg->reglage.dilu.helium,gg->reglage.dilu.chauffage,gg->reglage.dilu.piles ,gg->reglage.dilu.transmission,gg->reglage.dilu.temps_max_vanne,gg->reglage.dilu.xx7,gg->reglage.dilu.xx8); ecritT(fenetre_fichier_archeops_c,insert_f,"/*fin_reglage*/\n"); if(enregistrer(fenetre_fichier_archeops_c)) alerte(1,"atention : erreur dans engeristrer"); }