#include "diabolo.h" #include "bolo.h" #include "acqui.h" #define main_nubus #include "carte_acqui.h" #include "trace.h" #include "synchro.h" #include "fichier.h" #include "Serial.h" #include "auto.h" #include "menu.h" #include "regul.h" #include "alarme.h" #include "controle.h" #include "comment.h" #include "corel.h" #include "version.h" #include "config_transputer.h" #include "dilution.h" #include "recons_sst.h" #include "tm.h" void InitSimulMission(void); stglob* gg; // pointeur global sur la structure main() { int j,flag; char ss[255]; sprintf(ss,"%s:archediab_%d.rsrc",chemin_ressource,version_num); if(!ouvrirR(ss)) { if(alerte(2,"ne trouve pas le fichier ressource Diabolo voulez vous en ouvrir un autre ?")==1) ouvrirR(""); else return(option_quit); } #ifdef _diabolo flag=alerte(3," DIABOLO \r\r acquisition avec carte PCI ??"); // vaut 1 pour acquisition PCI #else //flag=alerte(3," Archeops ou Planck \r\r acquisition avec carte PCI ??"); // vaut 1 pour acquisition PCI //flag=2; // en mode simulation flag=2; if(clavier(touche_alt) ) flag=1; // en mode acquisition if(clavier(touche_controle) ) flag=4; // avec emission des telecommandes au demarrage if(clavier(touche_alt) && clavier(touche_controle) ) { flag=3; // en mode simulateur de donnees mission InitSimulMission(); } #endif //alerte(1,"on a flag=%d ",flag); init_struct(flag); init_recons_sst(); //printf(" long_entete = %ld \n", sizeof(F_entete)); //printf(" long_entete_part = %ld \n", sizeof(F_entete_part)); //printf(" long_donne = %ld \n\n", sizeof(F_donne)); //return(0); nouveauD(fenetre_alarme,alarme_id,"alarme",exec_alarme); nouveauD(fenetre_controle,controle_id,"controle",exec_controle); nouveautypefichier('DIA2',exec_DIA2); nouveautypefichier('ARCH',exec_ARCH); nouveautypefichier('TEXT',exec_ARCH); //nouveautypefichier('TEXT',exec_DIA2); nouveauM(0,diabolo_id,exec_menu_diabolo); nouveauSM(0,menu_trace_tout_id,exec_menu_trace_tout); ouvreD(fenetre_acquisition,acquisition_id,"acquisition",exec_acquisition); ouvreD(fenetre_synchro,synchro_id,"synchro",exec_synchro); ouvreD(fenetre_fichier,fichier_id,"fichier",exec_fichier); //ouvreD(fenetre_auto,auto_id,"auto",exec_auto); ouvre('WIND',fenetre_liste_bolos,liste_bolos_id,"liste_des_bolos",exec_cache,0L); #ifndef _archeops ouvreD(fenetre_choix_corel,choix_corel_id,"choix_corel",exec_choix_corel); ouvreD(fenetre_regul,regul_id,"regul",exec_regul); #endif #ifdef _archeops //nouveauD(fenetre_vitesse_block,config_transputer_id,"config_transputer",exec_config_transputer); printf(" acquisition Archeops \n\n"); #endif initRS(port_A,baud1200+data8+stop10+noParity,0); #ifdef lire_les_donnees_POM2 initRS(port_A,baud19200+data8+stop20+noParity,Xon_Xoff); printf(" avec lecture des données POM2 sur la RS232 \n"); #endif #ifdef lire_les_noms_sources_IRAM printf(" avec recherche lecture des noms de source IRAM \n"); #ifdef lire_les_data_telescope_IRAM printf("et lecture de tous les fichiers th tp de l'IRAM \n"); #endif #endif for(j=0;jPCI_actif=4; if (flag==3) tt->PCI_actif=3; return(option_texte+option_unclick); } //------ fonction exec de traitement des alarmes ------------ void exec_alarme(int fen,int item,double valeur,...) { if(item==caseferme) {cache(fen);stop_exec(fen);} if(item==ouverture) {tachedefond(fen,1800);cache(fen);} // 30 sec if(item==tache_de_fond) { if( (litD(fenetre_alarme,a_fin_scan,0) ) && (!gg->scan_en_cours) ) {son(5);son(6);son(7);son(8);son(133);son(135);son(133);} } } //------ fonction exec qui interdit la fermeture de la fenetre ------------ void exec_controle(int fen,int item,double valeur,...) { switch(item) { case caseferme : stop_exec(fen);break; case con_reset_epld : reset_epld(); break; case con_reset_trp : reset_trp(); break; default : break; } } //------ fonction exec qui cache la fenetre quand on la ferme ------------ void exec_cache(int fen,int item,double valeur,...) { if(item==ouverture) cache(fen); if(item==caseferme) {cache(fen);stop_exec(fen);} }