source: Sophya/trunk/Poubelle/archediab.old/archediab.sources/c/diabolo.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.2 KB
RevLine 
[637]1#include "diabolo.h"
2#include "bolo.h"
3#include "acqui.h"
4#define main_nubus
5#include "carte_acqui.h"
6#include "trace.h"
7#include "synchro.h"
8#include "fichier.h"
9#include "Serial.h"
10#include "auto.h"
11#include "menu.h"
12#include "regul.h"
13#include "alarme.h"
14#include "controle.h"
15
16#include "comment.h"
17#include "corel.h"
18#include "version.h"
19#include "config_transputer.h"
20#include "dilution.h"
21
22
23stglob* gg; // pointeur global sur la structure
24
25
26
27
28main()
29{
30int j,flag;
31char ss[255];
32
33sprintf(ss,"%s:archediab_%d.rsrc",chemin_ressource,version_num);
34if(!ouvrirR(ss))
35 {
36 if(alerte(2,"ne trouve pas le fichier ressource Diabolo voulez vous en ouvrir un autre ?")==1)
37 ouvrirR("");
38 else return(option_quit);
39 }
40#ifdef _diabolo
41flag=alerte(3," DIABOLO \r\r acquisition avec carte PCI ??"); // vaut 1 pour acquisition PCI
42#else
43//flag=alerte(3," Archeops ou Planck \r\r acquisition avec carte PCI ??"); // vaut 1 pour acquisition PCI
44//flag=2; // en mode simulation
45if(!clavier(touche_alt) ) flag=2; else flag=1; // en mode acquisition
46#endif
47
48//return(1);
49
50init_struct(flag);
51
52//printf(" long_entete = %ld \n", sizeof(F_entete));
53//printf(" long_entete_part = %ld \n", sizeof(F_entete_part));
54//printf(" long_donne = %ld \n\n", sizeof(F_donne));
55//return(0);
56
57
58nouveauD(fenetre_alarme,alarme_id,"alarme",exec_alarme);
59nouveauD(fenetre_controle,controle_id,"controle",exec_controle);
60
61nouveautypefichier('DIA2',exec_DIA2);
62nouveautypefichier('ARCH',exec_ARCH);
63
64//nouveautypefichier('TEXT',exec_DIA2);
65
66nouveauM(0,diabolo_id,exec_menu_diabolo);
67
68ouvreD(fenetre_acquisition,acquisition_id,"acquisition",exec_acquisition);
69
70ouvreD(fenetre_synchro,synchro_id,"synchro",exec_synchro);
71ouvreD(fenetre_fichier,fichier_id,"fichier",exec_fichier);
72//ouvreD(fenetre_auto,auto_id,"auto",exec_auto);
73
74
75ouvre('WIND',fenetre_liste_bolos,liste_bolos_id,"liste_des_bolos",exec_cache,0L);
76#ifndef _archeops
77ouvreD(fenetre_choix_corel,choix_corel_id,"choix_corel",exec_choix_corel);
78ouvreD(fenetre_regul,regul_id,"regul",exec_regul);
79#endif
80
81#ifdef _archeops
82nouveauD(fenetre_vitesse_block,config_transputer_id,"config_transputer",exec_config_transputer);
83
84printf(" acquisition Archeops \n\n");
85#endif
86
87
88#ifdef lire_les_donnees_POM2
89initRS(port_A,baud19200+data8+stop20+noParity,Xon_Xoff);
90printf(" avec lecture des données POM2 sur la RS232 \n");
91#endif
92
93#ifdef lire_les_noms_sources_IRAM
94printf(" avec recherche lecture des noms de source IRAM \n");
95#ifdef lire_les_data_telescope_IRAM
96printf("et lecture de tous les fichiers th tp de l'IRAM \n");
97#endif
98#endif
99
100for(j=0;j<nb_max_bolo;j++)
101 {
102 printf(" cherche a ouvrir bolo %d ",j+1);
103 printf(" capa=%g ",capa(j+1));
104 printf(" boloutil = %d bolonom = %s \n",parametr.bolo[j].bolo_code_util,parametr.bolo[j].bolo_nom);
105 if(parametr.bolo[j].bolo_code_util)
106 {
107 sprintf(ss,"%d: %s",j+1,parametr.bolo[j].bolo_nom);
108 ouvreD(j+1,bolo_id,ss,exec_bolo);
109 }
110 }
111ouvreA(tache_acqui,10,"acquisition",acqui); // ouvre la tache de fond
112
113/*
114ouvreA(tache_acqui,-1,"acquisition",acqui); // ouvre la tache de fond sans la mettre en marche
115relit_liste(); // c'est relit_liste qui demarre la tache de fond d'acquisition
116*/
117
118if(flag==1) // mets en route les interruptions
119 {
120 ecritD(fenetre_acquisition,e_tache_inter,1);
121 exec_acquisition(fenetre_acquisition,e_tache_inter,1);
122 }
123
124select(fenetre_controle);
125select(fenetre_acquisition);
126
127return(option_texte+option_unclick);
128}
129
130
131
132
133
134
135//------ fonction exec de traitement des alarmes ------------
136
137
138void exec_alarme(int fen,int item,double valeur,...)
139{
140if(item==caseferme) {cache(fen);stop_exec(fen);}
141if(item==ouverture) {tachedefond(fen,1800);cache(fen);} // 30 sec
142if(item==tache_de_fond)
143 {
144 if( (litD(fenetre_alarme,a_fin_scan,0) ) && (!gg->scan_en_cours) )
145 {son(5);son(6);son(7);son(8);son(133);son(135);son(133);}
146 }
147
148}
149
150//------ fonction exec qui interdit la fermeture de la fenetre ------------
151
152
153void exec_controle(int fen,int item,double valeur,...)
154{
155if(item==caseferme) {stop_exec(fen);}
156}
157
158
159//------ fonction exec qui cache la fenetre quand on la ferme ------------
160
161void exec_cache(int fen,int item,double valeur,...)
162{
163if(item==ouverture) cache(fen);
164if(item==caseferme) {cache(fen);stop_exec(fen);}
165}
166
167
Note: See TracBrowser for help on using the repository browser.