#include "ecfg_dcm.h" #include "mem_dcm.h" #include "windmisc.h" #include "sweep_prt.h" #include "string.h" FILE *eesa_xcfg_fp; FILE *excfg_par_fp; FILE *eesa_cfg_fp; FILE *ecfg_par_fp; FILE *eesa_sweep_par_fp; FILE *elswp_fp; FILE *ehswp_fp; FILE *eesa_cscb_fp; extern FILE *hkp_log_fp; /***** Function Prototypes ****/ int print_econfig_log(FILE *fp,Econfig *vp); int print_eesa_sweep_values(FILE *fp,Econfig *vartemp); int print_excfg_param(FILE *fp,packet *pk); int print_ecfg_changes(FILE *fp,packet *pk,uchar *last_data); int print_excfg_changes(FILE *fp,packet *pk,uchar *last_data); /* STANDARD print routines... */ int print_eesa_cscb_packet(packet *pk) { if(eesa_cscb_fp==0) return(0); fprintf(eesa_cscb_fp,"%s\n",time_to_YMDHMS(pk->time)); print_data_changes(eesa_cscb_fp,pk->data,pk->data,0xb6); return(0); } /* This routine is called whenever an eesa normal configuration packet is encountered. */ int print_econfig_packet(packet *pk) { Econfig ec; static uchar last_data[ECONFIG_SIZE]; char chgstr[50]; static int first = 1; int different= 0; int i; if((check_econfig_pk_validity(pk)) && (hkp_log_fp || ecfg_par_fp || eesa_cfg_fp || eesa_sweep_par_fp)){ if(first) memcpy(last_data,default_ecfg_data,ECONFIG_SIZE); decom_econfig(pk,&ec); different = memcmp(pk->data,last_data,ECONFIG_SIZE); /* print_econfig_log(hkp_log_fp,&ec); */ if(different || first){ print_ecfg_changes(eesa_cfg_fp,pk,last_data); print_eesa_sweep_values(eesa_sweep_par_fp,&ec); print_ecfg_param(ecfg_par_fp,pk); } if(different && !first && hkp_log_fp){ sprintf(chgstr,"! %s 12 EESA change: ",time_to_YMDHMS(pk->time)); init_parameters(eesa_cfg_par); print_param_changes(hkp_log_fp,eesa_cfg_par, 0x0000, pk->data, last_data, pk->dsize, chgstr); } memcpy(last_data,pk->data,ECONFIG_SIZE); first = 0; } #if 1 if(elswp_fp){ static int lvalid; ECFG *ecfg; ecfg = get_ECFG(pk->time); if(lvalid != ecfg->valid) print_sweep_el(elswp_fp,ecfg); lvalid = ecfg->valid; } if(ehswp_fp){ static int lvalid; ECFG *ecfg; ecfg = get_ECFG(pk->time); if(lvalid != ecfg->valid) print_sweep_eh(ehswp_fp,ecfg); lvalid = ecfg->valid; } #endif return(different); } /* This routine is called whenever an eesa extended configuration packet is encountered. */ int print_exconfig_packet(packet *pk) { EXconfig ec; static uchar last_data[EXCONFIG_SIZE]; static int first = 1; char chgstr[50]; int different= 0; int i; if(excfg_par_fp || eesa_xcfg_fp || hkp_log_fp){ if(first) memcpy(last_data,default_excfg_data,EXCONFIG_SIZE); decom_exconfig(pk,&ec); different = memcmp(pk->data,last_data,0xed); if(different || first) print_excfg_changes(eesa_xcfg_fp,pk,last_data); if(different || first) print_excfg_param(excfg_par_fp,pk); if (different && !first){ sprintf(chgstr,"! %s 12 EESAX change: ",time_to_YMDHMS(pk->time)); init_parameters(eesa_mem_par); print_param_changes(hkp_log_fp,eesa_mem_par, 0x017c, pk->data, last_data, pk->dsize, chgstr); } memcpy(last_data,pk->data,EXCONFIG_SIZE); first = 0; } return(different); } /**** Misc. print routines ******/ int print_econfig_log(FILE *fp,Econfig *vp) { static Econfig lastecfg; static int init; int i; if(! init){ init = 1; lastecfg = *vp; return(0); } if(fp==0) return(0); i = 0; /* EESA Low parameters: */ if(lastecfg.mcpl != vp->mcpl){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 MCPL %d KP!\n",vp->mcpl); i |= 1; } if(lastecfg.el_sweep.start_E != vp->el_sweep.start_E){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EL_START_E %d KP!\n",vp->el_sweep.start_E); i |= 1; } if(lastecfg.el_sweep.k_sw != vp->el_sweep.k_sw){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EL_K_SW %d KP!\n",vp->el_sweep.k_sw); i |= 1; } if(lastecfg.el_sweep.s1 != vp->el_sweep.s1){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EL_S1 %d KP!\n",vp->el_sweep.s1); i |= 1; } if(lastecfg.el_sweep.s2 != vp->el_sweep.s2){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EL_S2 %d KP!\n",vp->el_sweep.s2); i |= 1; } if(lastecfg.el_sweep.m2 != vp->el_sweep.m2){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EL_M2 %d KP!\n",vp->el_sweep.m2); i |= 1; } if(lastecfg.el_sweep.gs2 != vp->el_sweep.gs2){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EL_GS2 %d KP!\n",vp->el_sweep.gs2); i |= 1; } /* EESA High parameters: */ if(lastecfg.mcph != vp->mcph){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 MCPH %d KP!\n",vp->mcph); i |= 1; } if(lastecfg.eh_sweep.start_E != vp->eh_sweep.start_E){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EH_START_E %d KP!\n",vp->eh_sweep.start_E); i |= 1; } if(lastecfg.eh_sweep.k_sw != vp->eh_sweep.k_sw){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EH_K_SW %d KP!\n",vp->eh_sweep.k_sw); i |= 1; } if(lastecfg.eh_sweep.s1 != vp->eh_sweep.s1){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EH_S1 %d KP!\n",vp->eh_sweep.s1); i |= 1; } if(lastecfg.eh_sweep.s2 != vp->eh_sweep.s2){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EH_S2 %d KP!\n",vp->eh_sweep.s2); i |= 1; } if(lastecfg.eh_sweep.m2 != vp->eh_sweep.m2){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EH_M2 %d KP!\n",vp->eh_sweep.m2); i |= 1; } if(lastecfg.eh_sweep.gs2 != vp->eh_sweep.gs2){ fprintf(fp,"! %s ",time_to_YMDHMS(vp->time1)); fprintf(fp," 10 EH_GS2 %d KP!\n",vp->eh_sweep.gs2); i |= 1; } if(i){ fprintf(fp,"\n"); lastecfg = *vp; } } int print_ecfg_changes(FILE *fp,packet *pk,uchar *last_data) { if(fp==0) return(0); fprintf(fp,"%s\n",time_to_YMDHMS(pk->time)); /* if(different) /* fprintf(fp,"Warning! EESA config has changed!!!\n"); */ print_data_changes(fp,pk->data,last_data, pk->dsize); return(1); } int print_eesa_sweep_values(FILE *fp,Econfig *vp) { if(fp==0) return(0); fprintf(fp,"Time: %s\n",time_to_YMDHMS(vp->time1)); fprintf(fp,"EESAL:"); fprintf(fp," %s %04X","start_E",vp->el_sweep.start_E); fprintf(fp," %s %04X","k_sw",vp->el_sweep.k_sw); fprintf(fp," %s %04X","s1",vp->el_sweep.s1); fprintf(fp," %s %04X","s2",vp->el_sweep.s2); fprintf(fp," %s %04X","m2",vp->el_sweep.m2); fprintf(fp," %s %04X\n","gs2",vp->el_sweep.gs2); fprintf(fp,"EESAH:"); fprintf(fp," %s %04X","start_E",vp->eh_sweep.start_E); fprintf(fp," %s %04X","k_sw",vp->eh_sweep.k_sw); fprintf(fp," %s %04X","s1",vp->eh_sweep.s1); fprintf(fp," %s %04X","s2",vp->eh_sweep.s2); fprintf(fp," %s %04X","m2",vp->eh_sweep.m2); fprintf(fp," %s %04X\n","gs2",vp->eh_sweep.gs2); fprintf(fp,"\n"); return(1); } int print_excfg_changes(FILE *fp,packet *pk,uchar *last_data) { static int initialized; if(fp==0) return(0); fprintf(fp,"%s\n",time_to_YMDHMS(pk->time)); /* if(different) fprintf(fp,"Warning! EESA extended config has changed!!!\n"); */ print_data_changes(fp,pk->data,last_data, pk->dsize); return(1); } int print_ecfg_param(FILE *fp,packet *pk) { if(fp==0) return(0); init_parameters(eesa_cfg_par); fprintf(fp,"%s\n",time_to_YMDHMS(pk->time)); print_params(fp,eesa_cfg_par, 0x0000, pk->data, pk->dsize); fprintf(fp,"\n"); return(1); } int print_excfg_param(FILE *fp,packet *pk) { if(fp==0) return(0); init_parameters(eesa_mem_par); fprintf(fp,"%s\n",time_to_YMDHMS(pk->time)); print_params(fp,eesa_mem_par, 0x017c, pk->data, pk->dsize); fprintf(fp,"\n"); return(1); }