#include "trigConf.h" // global variable declarations Tcl_Interp* interp; int flags[N_FLAGS]; int trig_enable[13]; int trig_prescale[13]; int sync_enable, sync_period ,busytimer, busytimerenable,busyfrontendenable; int scaler_assignments[19]; // only 13-18 are used int roc_lock[6]; int mlu_in[13]; int mlu_out[32]; char *filename; char *initialization_filename=""; unsigned long TS_MLU[4096]; extern char trigConf_mlu_tcl_proc[]; extern char trigConf_roc_tcl_proc[]; extern char trigConf_tcl_proc[]; // function declarations void Initialize_Tcl_Tk(void); void ParseCommandLineArgs(int narg,char *argv[]); int main(int narg,char* argv[]) { int i; //-------------- Print version info etc ------- printf("\n----------- GlueX BCAL Test Trigger Configurator ----------- \n"); printf("Version 2.1.0 (Sep. 2004): \ncompiled: "); ansi_red(); printf("%s %s on ",__DATE__,__TIME__); ansi_normal(); ansi_blue(); printf("%s\n",COMPILE_HOST); ansi_normal(); printf("Tcl/Tk versions %s/%s\n",TCL_VERSION,TK_VERSION); for(i=1;i"); Tcl_LinkVar(interp,"filename",(char*)&filename,TCL_LINK_STRING); // Execute Tcl code (compiled as static strings in C code) Tcl_Eval(interp, trigConf_mlu_tcl_proc); Tcl_Eval(interp, trigConf_roc_tcl_proc); Tcl_Eval(interp, trigConf_tcl_proc); // Check if the file /usr/local/halld/config/coda/coda_config.txt // exists. If so, use it to determine which file to open. char fname[1024]="/usr/local/halld/config/DEFAULT.trig"; FILE *f = fopen("/usr/local/halld/config/coda/coda_config.txt","r"); if(f){ bzero(fname,1024); sprintf(fname,"/usr/local/halld/config/"); fread(&fname[strlen(fname)], 1, 512, f); fclose(f); strcat(fname,".trig"); } // If a filename was passed on the command line, open it if(strlen(initialization_filename))strcpy(fname,initialization_filename); char cmd[1024]; sprintf(cmd,"after idle ReadFromFile %s",fname); Tcl_Evaluate(cmd); } //===================================== // Parse any command line arguments //===================================== void ParseCommandLineArgs(int narg,char *argv[]) { int i; char *argptr; char cmd[256]; for(i=1;iresult<<"\n"; cerr<<"\nCommand is:\n\n"<result<<"\n"; exit(-1); } return; } //============================================== // Evaluate a tcl file and check for errors //============================================== void Tcl_EvaluateFile(char* file) { if(Tcl_EvalFile(interp,file)==TCL_ERROR){ cerr<<"Error in Tcl file:\n"; cerr<result<<"\n"; cerr<<"\nFile is:\n"<