/*********************************************** * lv_status.c * ************************************************/ #include #include #include #include #include #include "lv.h" LV_MBOX *mod; int evid; char *caller; main(argc, argv) int argc; char **argv; { int evid; int cpu_nr, tcp_ip_nr; char *hv_config[3]; int sonda, cycle; int hra[6]; float vstar[3][N_LV], istar[3][N_LV], vsgs[2][N_LV], isgs[2][N_LV]; int i, j; int nread, nerr; int giorno, mese, anno, ora, minuti, secondi; caller = argv[0]; evid = sem_link_cr("lv_mbox", argv[0]); /* create module for sy127 informations */ if((mod = (LV_MBOX *)modlink("lv_mod", 0)) == (LV_MBOX *)-1){ printf(" cannot open data module \n"); sem_unl_del(evid, "lv_mbox", argv[0]); exit(0); } sem_wait(evid, argv[0]); nread = mod->nread_lv; nerr = mod->nerr_lv; for(i = 0; i < 6; i++){ hra[i] = mod->lv_tim[i]; /* printf(" %d", hra[i]); */ } printf(" \n"); /* for( i = 0; i < N_CHAMBERS; i++) { printf(" name %d : %s \n", i, mod->name[i]); strncpy(ch_name[i], mod->name[i], 5); printf(" ch_name[%d] = %s\n", i, ch_name[i]); } */ for ( i = 0; i < N_LV; i++) { for ( j = 0; j < 3; j++){ vstar[j][i] = mod->vstar[j][i]; istar[j][i] = mod->istar[j][i]; } for ( j = 0; j < 2; j++){ vsgs[j][i] = mod->vsgs[j][i]; isgs[j][i] = mod->isgs[j][i]; } } 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\n", nread, nerr); printf("\n S T A R"); printf(" S G S\n\n"); printf(" -6V +6V +5V"); printf(" -5V +7V\n"); printf(" V I V I V I"); printf(" V I V I\n"); for ( i = 0; i < N_LV; i++) { printf(" %s ", ch_name[ lv_t[i] ]); for ( j = 0; j < 3; j++) printf("%4.1f %4.1f ", vstar[j][i], istar[j][i]); printf(" "); for ( j = 0; j < 2; j++) printf("%4.1f %4.1f ", vsgs[j][i], isgs[j][i]); printf("\n"); } sem_unl_del(evid, "lv_mbox", argv[0]); munlink(mod); }