/****************************************************************************** * * Title : RWPixelConfig.c * Version: * * Description: * Related files: * Documentation: * * Author: * ******************************************************************************/ #ifdef PIXEL_ROD /****************************************************************************** * Header files * ******************************************************************************/ #include #include #include #include "RWPixelConfig.h" /****************************************************************************** * Global Functions * ******************************************************************************/ /*============================================================================= * ReadConfigFile() *=============================================================================*/ int ReadConfigFile(PixelModule *module, char filename[]){ static int ichip; FILE * infile; int ii; int tempval; char dummy_string[260]; char* return_buffer; float test; int dummy; FLOAT32 dummy_float; PixelFEConfig *FEConfig; infile = fopen(filename,"r"); if (infile == NULL){return -1;} return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"\n"); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); for (ichip = 0; ichip < N_PIXEL_FE_CHIPS; ichip++) { FEConfig = &module->FEConfig[ichip]; fscanf(infile,"\n"); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"\n"); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FECommand.address=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); module->maskEnableFEConfig |= (tempval << ichip); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); module->maskEnableFEScan |= (tempval << ichip); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); module->maskEnableFEDacs |= (tempval << ichip); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacIVDD2=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacID=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacIP2=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacIP=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacITRIMTH=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacIF=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacITRIMIF=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacITH1=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacITH2=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacIL=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.dacIL2=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.enableCP0 = ((tempval & 0x001)>>0); FEConfig->FEGlobal.enableCP1 = ((tempval & 0x002)>>1); FEConfig->FEGlobal.enableCP2 = ((tempval & 0x004)>>2); FEConfig->FEGlobal.enableCP3 = ((tempval & 0x008)>>3); FEConfig->FEGlobal.enableCP4 = ((tempval & 0x010)>>4); FEConfig->FEGlobal.enableCP5 = ((tempval & 0x020)>>5); FEConfig->FEGlobal.enableCP6 = ((tempval & 0x040)>>6); FEConfig->FEGlobal.enableCP7 = ((tempval & 0x080)>>7); FEConfig->FEGlobal.enableCP8 = ((tempval & 0x100)>>8); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.enableTimestamp=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&tempval); FEConfig->FEGlobal.enableCapTest=tempval; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* r/o mask choice */ return_buffer = fgets (dummy_string, 260, infile); return_buffer = fgets (dummy_string, 260, infile); /* r/o mask */ return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* strobe choice */ return_buffer = fgets (dummy_string, 260, infile); return_buffer = fgets (dummy_string, 260, infile); /* str mask */ return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* preamp mask choice */ return_buffer = fgets (dummy_string, 260, infile); return_buffer = fgets (dummy_string, 260, infile); /* preamp mask */ return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* hitbus choice */ return_buffer = fgets (dummy_string, 260, infile); return_buffer = fgets (dummy_string, 260, infile); /* hitbus file */ return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* tdac choice */ return_buffer = fgets (dummy_string, 260, infile); return_buffer = fgets (dummy_string, 260, infile); /* tdac file */ return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* fdac choice */ return_buffer = fgets (dummy_string, 260, infile); return_buffer = fgets (dummy_string, 260, infile); /* fdac file */ } fscanf(infile,"\n"); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"\n"); for (ichip = 0; ichip < N_PIXEL_FE_CHIPS; ichip++) { FEConfig = &module->FEConfig[ichip]; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%f ",&FEConfig->FECalib.cinjLo); } for (ichip = 0; ichip < N_PIXEL_FE_CHIPS; ichip++) { FEConfig = &module->FEConfig[ichip]; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%f ",&FEConfig->FECalib.cinjHi); } for (ichip = 0; ichip < N_PIXEL_FE_CHIPS; ichip++) { FEConfig = &module->FEConfig[ichip]; return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%f ",&FEConfig->FECalib.vcalGradient); } for (ichip = 0; ichip < N_PIXEL_FE_CHIPS; ichip++) { return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%f ",&dummy_float); /* cal offset */ } fscanf(infile,"\n"); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%d ",&dummy); /* was pll phase */ fscanf(infile,"\n"); return_buffer = fgets (dummy_string, 260, infile); fscanf(infile,"%f ",&test); if (test > 0.001) { /* module_general.strobe_delay_cal[0] = test; */ for (ii=1; ii