source: Sophya/trunk/Poubelle/archediab.old/archediab.sources/c/diabolo.c@ 656

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

blabla

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