/*********************************************** * * ************************************************/ #include #include #include #include #include #include "gas.h" main(argc, argv) int argc; char **argv; { GAS_MBOX *mod; int evid; int i; int hra[6]; int giorno, mese, anno, ora, minuti, secondi; float percent[3], full_scale[3], flow[3], flow_percent[3]; float flow_percent1[3]; float iso_monitor, total_flow, t_mon, t_mon1; float p_mon; int nerr, nread; evid = sem_link_cr("gas_mbox", argv[0]); /* create module for sy127 informations */ if((mod = (GAS_MBOX *)modlink("gas_mod", 0)) == (GAS_MBOX *)-1){ printf(" cannot open data module \n"); sem_unl_del(evid, "gas_mbox", argv[0]); exit(0); } sem_wait(evid, argv[0]); nread = mod->nread_mix; nerr = mod->nerr_mix; for(i = 0; i < 6; i++) hra[i] = mod->mix_tim[i]; total_flow = 0.; for ( i = 0; i < 3; i++) { percent[i] = mod->perc[i]; flow[i] = mod->flow[i]; total_flow += flow[i]; flow_percent[i] = mod->flow_perc[i]; if (i > 0) flow_percent1[i] = mod->flow_perc1[i]; iso_monitor = mod->ugo; t_mon = mod->temp; t_mon1 = mod->temp_out; p_mon = mod->press; } sem_free(evid, argv[0]); data_ora( &anno, &mese, &giorno, &ora, &minuti, &secondi); printf("Present time: %2d-%2d-%4d %2d:%2d:%2d\n", giorno, mese, anno, ora, minuti, secondi); printf("last update %2d-%2d-%4d %2d:%2d:%2d", hra[2], hra[1], hra[0], hra[3], hra[4], hra[5]); printf(" ( nread %6d, err %4d )\n\n", nread, nerr); printf(" B/RMUON MASS FLOWMETERS \n\n"); printf(" gas full scale %% flow ( liter/h ) "); printf(" %% rel. %%\n\n"); for ( i = 0; i < 3; i++) if ( i == 0) printf(" %6s %4.1f %5.0f %13.1f \n", gas_name[i], percent[i], flow[i], flow_percent[i]); else printf(" %6s %4.1f %5.0f %13.1f %5.0f \n", gas_name[i], percent[i], flow[i], flow_percent[i], flow_percent1[i]); printf("\n %6s %5.0f \n", "total", total_flow); printf("\n\n Isobutane monitor: %4.2f V ( Alarm Thr. +%4.2f V )\n", iso_monitor, alarm_thr); printf("\n\n Gas room temperature : %.0f C\n", t_mon); printf("\n Iso Hut Temperature : %.0f C\n", t_mon1); printf("\n Atmospheric pressure : %.1f C\n", p_mon); sem_unl_del(evid, "gas_mbox", argv[0]); munlink(mod); }