SCTDBTestDownloader.java

00001 package DisplayGUI;
00002 
00003 import java.io.*;
00004 import java.util.*;
00005 import is.*;
00006 import Sct.Serializable;
00007 import Sct.IS.*;
00008 //import SctControl.*;
00009 import java.sql.*;
00010 import ProdDatabase.SCTDBInterface;
00011 import ProdDatabase.SCTDBInfo;
00012 import Sct_CalibrationController.TestData;
00013 
00014 /*
00015  * SCTDBTestDownloader.java
00016  *
00017  */
00018 
00023 public class SCTDBTestDownloader extends Thread implements SCTDBInfo, DisplayGUI.TestDataInfo {
00024     Vector listOfModules;
00025     int testIndex;
00026     String location;
00027     boolean isWarm;
00028     boolean refresh;
00029     boolean download;
00030 
00031     String runString=null;
00032     boolean isSCTDAQData;
00033     
00034     Vector runStrings=null;
00035     
00036     java.text.DecimalFormat nf = new java.text.DecimalFormat("#.##");
00037     
00038     java.util.regex.Pattern runP = java.util.regex.Pattern.compile("(\\d+)[-]?(\\d+)?");
00039     
00040     int RUNNO=1;
00041     int SCANNO=2;
00042 
00043     public static final double NODATA = -9999.;
00044 
00045     public SCTDBTestDownloader(Vector listOfModules, int testIndex, String location, boolean isWarm, boolean refresh) {
00046          super("SCTDB_DOWNLOAD");
00047          this.listOfModules=listOfModules;
00048          this.testIndex=testIndex;
00049          this.location=location;
00050          this.isWarm=isWarm;
00051          this.refresh=refresh;
00052 
00053          download=true;
00054          isSCTDAQData=true;
00055 
00056          for(int i=listOfModules.size()-1;i>=0;i--) {
00057             String module = (String)listOfModules.elementAt(i);
00058             String objectName = "SCTDBData."+testNames[testIndex]+"."+location+"."+(String)listOfModules.elementAt(i);
00059             // if ANY sctdb test object exists, and not requested a 'refresh' then don't download anything
00060             if(SctNames.getISRepository().contains(objectName) && !refresh) {
00061                 download=false;
00062                 break;
00063                 }
00064             }
00065 
00066          if(testIndex==TEST_NMASK) download=false; // no such sctdaq test
00067 
00068          setPriority(Thread.MIN_PRIORITY);
00069 
00070          }
00071 
00072 //    public SCTDBTestDownloader(String runString, int testIndex, String location) {
00073 // download SctRodDaq data
00074 //         super("SCTDB_DOWNLOAD");
00075 //         this.runString=runString;
00076 //         this.testIndex=testIndex;
00077 //         this.location=location;
00078 //         refresh=true;
00079 
00080 //         download=true;
00081 //         isSCTDAQData=false;
00082 
00083 //         setPriority(Thread.MIN_PRIORITY);
00084 
00085 //         }
00086 
00087     public SCTDBTestDownloader(Vector runStrings, int testIndex, String location) {
00088 // download SctRodDaq data
00089          super("SCTDB_DOWNLOAD");
00090          this.runStrings=runStrings;
00091          this.testIndex=testIndex;
00092          this.location=location;
00093          refresh=true;
00094 
00095          download=true;
00096          isSCTDAQData=false;
00097 
00098          setPriority(Thread.MIN_PRIORITY);
00099          
00100          for(int i=0;i<runStrings.size();i++) System.out.println("Requested download for run-scan "+(String)runStrings.elementAt(i));
00101 
00102          }
00103 
00104 
00105     public boolean downloadsRequired() {
00106          return download;
00107          }
00108     public boolean isOkToStart() {
00109          Thread[] allThreads = new Thread[Thread.activeCount()];
00110          Thread.enumerate(allThreads);
00111          for(int i=0;i<allThreads.length;i++) {
00112             if(allThreads[i]!=null && allThreads[i].getName().equals("SCTDB_DOWNLOAD") && allThreads[i].isAlive()) {
00113                   javax.swing.JOptionPane.showMessageDialog(null,"A download from the SCT database is already in progress.\nPlease wait for this to complete before requesting another download.");
00114                   return false;
00115                   }
00116             }
00117          return true;
00118          }
00119 
00120     public void run() {
00121             
00122          Map snHash = new HashMap();
00123          Map testnoHash = new HashMap();
00124          Map dcsHash = new HashMap();
00125 
00126          Statement statement;
00127          ResultSet resultSet;
00128 
00129          StringBuffer moduleList = new StringBuffer();
00130          if(isSCTDAQData) {
00131           for(int i=0;i<listOfModules.size();i++) {
00132               if(i>0) moduleList.append(",");
00133               String module = (String)listOfModules.elementAt(i);
00134               moduleList.append(module);
00135               }
00136            System.out.println("SctGUI::SCTDBTestDownloader - Downloading "+listOfModules.size()+" module "+testNames[testIndex]+" tests.");
00137            }
00138          else System.out.println("SctGUI::SCTDBTestDownloader - Downloading SctRodDaq "+testNames[testIndex]+" data for "+Integer.toString(runStrings.size())+" tests");
00139 
00140          StringBuffer sqlStat = new StringBuffer();
00141 // if this is SctRodDaq data, then first we must publish the control object
00142          if(!isSCTDAQData) {
00143              if(!publishControlObject(runStrings,location,testIndex)) return;
00144              }
00145 
00146 
00147           sqlStat = new StringBuffer("SELECT tests.ser_no,tests.pass,tests.problem,tests.TEST_no,tests.locn_name,tests.TEST_date,tests.run_no");
00148           sqlStat.append(",SCT_TSTDAQINFO.host,SCT_TSTDAQINFO.version,SCT_TSTDAQINFO.test_time");
00149           switch(testIndex) {
00150                     case SCTDB_TEST_RESET:
00151                     case SCTDB_TEST_REDUNDANCY:
00152                     case SCTDB_TEST_LONGTERM:
00153                     case SCTDB_TEST_IV:
00154                         break;
00155                     default:
00156                         for(int y=0;y<chipDBnames.length;y++) {
00157                            for(int paramIndex=0;paramIndex<DBChipParameterNames[testIndex].length;paramIndex++) {
00158                                   sqlStat.append(","+chipDBnames[y]+DBChipParameterNames[testIndex][paramIndex]);
00159                                   }
00160                           }
00161 
00162                      }
00163          sqlStat.append(" FROM "+sctdaqDBTableNames[testIndex]+",tests,SCT_TSTDAQINFO");
00164          if(isSCTDAQData) sqlStat.append(",sct_tstdcsinfo");
00165 
00166          sqlStat.append(" WHERE tests.TEST_name = '"+sctdaqDBTestNames[testIndex]+"'");
00167          if(isSCTDAQData) sqlStat.append(" AND tests.ser_no IN ("+moduleList.toString()+")");
00168          if(!location.equals("Any")) sqlStat.append(" AND tests.locn_name LIKE '"+location+"'");
00169          sqlStat.append(" AND tests.TEST_no = "+sctdaqDBTableNames[testIndex]+".TEST_no");
00170          sqlStat.append(" AND tests.test_no = SCT_TSTDAQINFO.test_no");
00171          if(isSCTDAQData) {
00172               sqlStat.append(" AND SCT_TSTDAQINFO.version NOT LIKE 'SctRodDaq%'");  // SCTDAQ data only
00173               if(isWarm) sqlStat.append(" AND sct_tstdcsinfo.t0>10 AND sct_tstdcsinfo.TEST_no=tests.TEST_no"); 
00174               else  sqlStat.append(" AND sct_tstdcsinfo.t0<=10 AND sct_tstdcsinfo.TEST_no=tests.TEST_no"); 
00175                }
00176          else {
00177                StringBuffer s = new StringBuffer();
00178                for(int i=0;i<runStrings.size();i++) {
00179                    if(i>0) s.append(",");
00180                    s.append("'"+(String)runStrings.elementAt(i)+"'");
00181                    }
00182                sqlStat.append(" AND tests.run_no IN ("+s.toString()+") AND SCT_TSTDAQINFO.version LIKE 'SctRodDaq%'");
00183             }
00184          sqlStat.append(" ORDER BY tests.TEST_date DESC,tests.TEST_no DESC");
00185 
00186          try {
00187 
00188          statement = SCTDBInterface.getInstance().connection.createStatement();
00189  //        System.out.println(sqlStat.toString());
00190          resultSet = statement.executeQuery(sqlStat.toString());
00191          for(boolean n = resultSet.next() ; n==true ; n=resultSet.next() ){
00192             int rc=1;
00193 
00194             String sn = resultSet.getString(rc++);
00195             if(snHash.containsKey(sn)) continue;
00196             String passString = resultSet.getString(rc++);
00197             String problemString = resultSet.getString(rc++);
00198 
00199             int status = (passString.equals("YES")) ? 0 : 2;
00200             if(status==0 && problemString.equals("YES")) status = 1;
00201 
00202             SCTDB_Data sctdbData = new SCTDB_Data(); 
00203             sctdbData.status=status; // 0: pass, 1: problem, 2: fail
00204 
00205             sctdbData.testIndex=testIndex;
00206             sctdbData.testNumber = resultSet.getString(rc++);
00207 
00208             String location = resultSet.getString(rc++);;
00209             sctdbData.testLocation = location;
00210             location = location.replaceAll("\\s+","_");
00211             String date = guiUtilities.DaveUtils.extractDate(resultSet.getString(rc++));
00212             sctdbData.testDate=date;
00213             String runScan = resultSet.getString(rc++);
00214 
00215 
00216             sctdbData.daqInfo = new String[6];
00217             for(int i=0;i<3;i++) {
00218                  String value = resultSet.getString(rc++);
00219                  sctdbData.daqInfo[i] = (value==null) ? "Unknown" : value;
00220                  }
00221             sctdbData.daqInfo[3]=date;
00222             sctdbData.daqInfo[4]=location;
00223             sctdbData.daqInfo[5]=runScan;
00224 
00225             System.out.println("SctGUI::SCTDBTestDownloader - Downloading "+testNames[testIndex]+" for "+sn+" taken by "+sctdbData.testLocation+" on "+sctdbData.testDate);
00226 
00227                     System.out.println("**3");
00228             sctdbData.data_m0 = new double[DBChipParameterNames[testIndex].length];
00229             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_m0[r]=getData(resultSet.getString(rc++));
00230             sctdbData.data_s1 = new double[DBChipParameterNames[testIndex].length];
00231             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s1[r]=getData(resultSet.getString(rc++));
00232             sctdbData.data_s2 = new double[DBChipParameterNames[testIndex].length];
00233             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s2[r]=getData(resultSet.getString(rc++));
00234             sctdbData.data_s3 = new double[DBChipParameterNames[testIndex].length];
00235             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s3[r]=getData(resultSet.getString(rc++));
00236             sctdbData.data_s4 = new double[DBChipParameterNames[testIndex].length];
00237             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s4[r]=getData(resultSet.getString(rc++));
00238             sctdbData.data_e5 = new double[DBChipParameterNames[testIndex].length];
00239             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_e5[r]=getData(resultSet.getString(rc++));
00240             sctdbData.data_m8 = new double[DBChipParameterNames[testIndex].length];
00241             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_m8[r]=getData(resultSet.getString(rc++));
00242             sctdbData.data_s9 = new double[DBChipParameterNames[testIndex].length];
00243             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s9[r]=getData(resultSet.getString(rc++));
00244             sctdbData.data_s10 = new double[DBChipParameterNames[testIndex].length];
00245             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s10[r]=getData(resultSet.getString(rc++));
00246             sctdbData.data_s11 = new double[DBChipParameterNames[testIndex].length];
00247             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s11[r]=getData(resultSet.getString(rc++));
00248             sctdbData.data_s12 = new double[DBChipParameterNames[testIndex].length];
00249             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_s12[r]=getData(resultSet.getString(rc++));
00250             sctdbData.data_e13 = new double[DBChipParameterNames[testIndex].length];
00251             for(int r=0;r<DBChipParameterNames[testIndex].length;r++) sctdbData.data_e13[r]=getData(resultSet.getString(rc++));
00252 
00253 // painful conversion from number of good channels to number of bad channels
00254             int index=0;
00255             switch(testIndex) {
00256                case SCTDB_TEST_PIPELINE:
00257                  convertData(sctdbData,0);
00258                  break;
00259                case SCTDB_TEST_TRIM:
00260                  convertData(sctdbData,2);
00261                  break;
00262                default:
00263                }
00264 
00265 
00266             snHash.put(sn,sctdbData);
00267             testnoHash.put(sctdbData.testNumber,new ArrayList()); // to be filled with the no of defects in next query
00268 //            dcsHash.put(sctdbData.testNumber,new HashMap()); // to be filled with the no of defects in next query
00269             }
00270         statement.close();
00271 
00272         if(snHash.size()==0) {
00273             System.out.println("SctGUI::SCTDBTestDownloader - No Data available from SCTDB");
00274             return;
00275             }
00276         StringBuffer temp = new StringBuffer();
00277         int count=0;
00278         for (java.util.Iterator i = testnoHash.keySet().iterator(); i.hasNext(); ) {
00279             if(count>0) temp.append(",");
00280             count++;
00281             temp.append((String)i.next());
00282             }
00283         sqlStat = new StringBuffer();
00284         sqlStat.append("SELECT defects.TEST_no,defects.chan_1st,defects.chan_last,defects.defect_name");
00285         sqlStat.append(" FROM defects");
00286         sqlStat.append(" WHERE defects.TEST_no IN ("+temp.toString()+")");
00287 
00288 
00289         statement = SCTDBInterface.getInstance().connection.createStatement();
00290 //         System.out.println(sqlStat.toString());
00291         resultSet = statement.executeQuery(sqlStat.toString());
00292 
00293         for(boolean n = resultSet.next() ; n==true ; n=resultSet.next() ){ 
00294             String thisTestNo = resultSet.getString(1);
00295             List tempHash = (List)testnoHash.get(thisTestNo);
00296             String channels = resultSet.getString(2)+"-"+resultSet.getString(3);
00297             String defect = resultSet.getString(4);
00298 //            System.out.println("defects: "+channels+" : "+defect);
00299             tempHash.add(channels+" : "+defect);
00300             }
00301         statement.close();
00302 // now dcs data
00303         sqlStat = new StringBuffer();
00304         sqlStat.append("SELECT vdet,idet,t0,t1,vcc,icc,vdd,idd,test_no");
00305         sqlStat.append(" FROM SCT_TSTDCSINFO");
00306         sqlStat.append(" WHERE TEST_no IN ("+temp.toString()+")");
00307 
00308 
00309         statement = SCTDBInterface.getInstance().connection.createStatement();
00310  //        System.out.println(sqlStat.toString());
00311         resultSet = statement.executeQuery(sqlStat.toString());
00312 
00313         for(boolean n = resultSet.next() ; n==true ; n=resultSet.next() ){
00314             SummaryReader.DCSInfo dcs = new SummaryReader.DCSInfo();
00315             try {
00316               String data = resultSet.getString(1);
00317 //            System.out.println("data="+data);
00318               if(data==null) data="-1";
00319               dcs.put(SummaryReader.DCSInfo.VDET,Double.parseDouble(data));
00320               data = resultSet.getString(2);
00321 //            System.out.println("data="+data);
00322                       if(data==null) data="-1";
00323               dcs.put(SummaryReader.DCSInfo.IDET,Double.parseDouble(data));
00324               data = resultSet.getString(3);
00325 //            System.out.println("data="+data);
00326                       if(data==null) data="-1";
00327               dcs.put(SummaryReader.DCSInfo.T0,Double.parseDouble(data));
00328               data = resultSet.getString(4);
00329 //            System.out.println("data="+data);
00330                       if(data==null) data="-1";
00331               dcs.put(SummaryReader.DCSInfo.T1,Double.parseDouble(data));
00332               data = resultSet.getString(5);
00333 //            System.out.println("data="+data);
00334                       if(data==null) data="-1";
00335               dcs.put(SummaryReader.DCSInfo.VCC,Double.parseDouble(data));
00336               data = resultSet.getString(6);
00337 //            System.out.println("data="+data);
00338                       if(data==null) data="-1";
00339               dcs.put(SummaryReader.DCSInfo.ICC,Double.parseDouble(data));
00340               data = resultSet.getString(7);
00341 //            System.out.println("data="+data);
00342                       if(data==null) data="-1";
00343               dcs.put(SummaryReader.DCSInfo.VDD,Double.parseDouble(data));
00344               data = resultSet.getString(8);
00345 //            System.out.println("data="+data);
00346                       if(data==null) data="-1";
00347               dcs.put(SummaryReader.DCSInfo.IDD,Double.parseDouble(data));
00348               String testno=resultSet.getString(9);
00349 //            System.out.println("testno="+testno);
00350               dcsHash.put(testno,dcs);
00351               }catch(Exception dcsException){System.err.println("sctGUI - exception downloading dcs data - "+dcsException.toString());}
00352             }
00353         statement.close();
00354 
00355         for (java.util.Iterator i = snHash.keySet().iterator(); i.hasNext(); ) {
00356             String sn = (String)i.next();
00357             SCTDB_Data sctdbData = (SCTDB_Data)snHash.get(sn);
00358             List defectlist = (List)testnoHash.get(sctdbData.testNumber);
00359 // defects
00360             sctdbData.noDefectChannels = defectlist.size();   
00361             sctdbData.defectList = new String[defectlist.size()];
00362             for(int y=0;y<defectlist.size();y++) sctdbData.defectList[y]=(String)defectlist.get(y);
00363 // dcs
00364             sctdbData.dcsinfo = new double[8];
00365             if(dcsHash.containsKey(sctdbData.testNumber)) {
00366               SummaryReader.DCSInfo dcs = (SummaryReader.DCSInfo)dcsHash.get(sctdbData.testNumber);
00367               if(dcs==null) for(int j=0;j<8;j++) sctdbData.dcsinfo[j]=NODATA;
00368               else {
00369                 for(int j=0;j<8;j++) {
00370                   Double dcsValue = (Double)dcs.get(j);
00371                   if(dcsValue!=null) sctdbData.dcsinfo[j]=dcsValue.doubleValue();
00372                   else {
00373                    System.err.println("SctGUI::SCTDBTestDownloader - Null dcs data for parameter "+j);
00374                    sctdbData.dcsinfo[j]=NODATA;
00375                    }
00376                   }
00377                 }
00378             }
00379             else {
00380                for(int j=0;j<8;j++) sctdbData.dcsinfo[j]=NODATA;
00381                }
00382             String runString = sctdbData.daqInfo[5];
00383             java.util.regex.Matcher matcher = runP.matcher(runString);
00384             if(matcher.matches()) {
00385                String thisRun = runString.substring(matcher.start(RUNNO),matcher.end(RUNNO));
00386                String thisScan = runString.substring(matcher.start(SCANNO),matcher.end(SCANNO));
00387         
00388            
00389                String objectName = isSCTDAQData ? "SCTDBData."+testNames[testIndex]+"."+location+"."+sn : "SCTDBData."+location+".Summary."+thisRun+"."+thisScan+"."+sn;
00390             
00391                if(SctNames.getISRepository().contains(objectName)) {
00392                 if(!refresh) continue;
00393                 SctNames.getISRepository().remove(objectName);
00394                 }
00395               SctNames.getISRepository().insert(objectName, sctdbData);
00396               System.out.println("SctGUI::SCTDBTestDownloader - SCTDB Object published as "+objectName);  
00397               }
00398             else System.out.println("Invalid run/scan for "+sn+" : "+runString);
00399             }
00400 
00401 
00402         if(isSCTDAQData) {
00403           int notDownloaded = listOfModules.size()-snHash.size();
00404           if(notDownloaded>0) {
00405            for(int i=0;i<listOfModules.size();i++) {
00406               String module = (String)listOfModules.elementAt(i);
00407               if(!snHash.containsKey(module)) System.out.println("SctGUI::SCTDBTestDownloader - No "+testNames[testIndex]+" data available for "+(String)listOfModules.elementAt(i));
00408               }
00409            }
00410          }
00411 
00412         }catch(Exception e) {System.out.println("SctGUI::SCTDBTestDownloader - Failed to publish SCTDB Data: "+e.toString());}
00413 
00414 
00415    }
00416 
00417    private boolean publishControlObject(Vector runStrings, String location, int testIndex) {
00418          List mList = new ArrayList();
00419          StringBuffer sqlStat = new StringBuffer();
00420          String testno=null;
00421          String version = null;
00422 
00423          try {
00424          
00425          for(int r=0;r<runStrings.size();r++) {
00426            String runString = (String)runStrings.elementAt(r);
00427            java.util.regex.Matcher matcher = runP.matcher(runString);
00428            if(!matcher.matches()) {
00429               System.out.println("invalid runString "+runString);
00430               continue;
00431               }
00432            String run = runString.substring(matcher.start(RUNNO),matcher.end(RUNNO));
00433            String scan = runString.substring(matcher.start(SCANNO),matcher.end(SCANNO));
00434 
00435            String controlObjectName = "SCTDBData.ControlData.SctRodDaqRefData."+testNames[testIndex]+"."+location+"."+run+"."+scan;
00436            if(SctNames.getISRepository().contains(controlObjectName)) return true; // already there
00437 
00438            sqlStat = new StringBuffer("SELECT tests.test_no,tests.ser_no,SCT_TSTDAQINFO.version FROM tests,SCT_TSTDAQINFO WHERE tests.run_no = '"+runString+"' AND SCT_TSTDAQINFO.version LIKE 'SctRodDaq%'");
00439            sqlStat.append(" AND tests.test_no = SCT_TSTDAQINFO.test_no AND tests.locn_name LIKE '"+location+"'");
00440            sqlStat.append(" AND tests.TEST_name = '"+sctdaqDBTestNames[testIndex]+"'");
00441            Statement statement = SCTDBInterface.getInstance().connection.createStatement();
00442 //         System.out.println("**publishControlobject:");
00443 //           System.out.println(sqlStat.toString());
00444            ResultSet resultSet = statement.executeQuery(sqlStat.toString());
00445            for(boolean n = resultSet.next() ; n==true ; n=resultSet.next() ){
00446               testno = resultSet.getString(1);
00447               mList.add(resultSet.getString(2));
00448               version = resultSet.getString(3);
00449               }
00450            statement.close();
00451 
00452          if(mList.size()==0) {
00453               System.err.println("SctGUI::SCTDBTestDownloader - no modules found for run-scan "+runString);
00454               return false;
00455               }
00456 
00457          int noPoints=-1;
00458          String[] pointValues = new String[16];
00459          if(testno!=null) {
00460              sqlStat = new StringBuffer("SELECT POINT_TYPE,N_POINTS");
00461              for(int i=0;i<16;i++) sqlStat.append(",POINT_"+i);
00462              sqlStat.append(" FROM SCT_TSTSCANINFO WHERE TEST_NO="+testno); 
00463              statement = SCTDBInterface.getInstance().connection.createStatement();
00464 //           System.out.println(sqlStat.toString());
00465              resultSet = statement.executeQuery(sqlStat.toString());
00466  
00467              for(boolean n = resultSet.next() ; n==true ; n=resultSet.next() ){
00468                String point_type = resultSet.getString(1);
00469                String nPoints = resultSet.getString(2);
00470                noPoints = Integer.parseInt(nPoints);
00471                for(int i=0;i<16;i++) pointValues[i]=resultSet.getString(i+3);
00472                }
00473               statement.close();
00474               }
00475             TestData testData = new TestData();
00476             testData.testName = testNames[testIndex];
00477             testData.runNumber = Integer.parseInt(run);
00478             testData.nScans = (noPoints!=-1) ? noPoints : 1;
00479             testData.startScanNumber = Integer.parseInt(scan);
00480             testData.testVariable = 0;
00481             if(noPoints!=-1) {
00482               testData.testPoints = new double[noPoints];
00483               for(int i=0;i<noPoints;i++) testData.testPoints[i] = Double.parseDouble(pointValues[i]);
00484               }
00485             else {
00486               testData.testPoints = new double[1];
00487               testData.testPoints[0]=0.;
00488               }
00489             testData.status=TestData.COMPLETED;
00490             testData.startTime = "";
00491             testData.endTime = "";
00492             testData.modules = new String[mList.size()];
00493             for(int i=0;i<mList.size();i++) testData.modules[i] = new String((String)mList.get(i));
00494             testData.version = 0;
00495 // publish the control object!
00496             SctNames.getISRepository().insert(controlObjectName, testData);  
00497             System.out.println("SctGUI::SCTDBTestDownloader - Published control object "+controlObjectName);
00498             } // end of runStrings loop
00499        }catch(Exception e) {
00500               System.err.println("SctGUI::SCTDBTestDownloader - Exception creating control object - "+e.toString());
00501               return false;
00502               }
00503     return true;
00504   }
00505 
00506 
00507 
00508    private void convertData(SCTDB_Data sctdbData, int index) {
00509                sctdbData.data_m0[index]=128.-sctdbData.data_m0[index];
00510                sctdbData.data_s1[index]=128.-sctdbData.data_s1[index];
00511                sctdbData.data_s2[index]=128.-sctdbData.data_s2[index];
00512                sctdbData.data_s3[index]=128.-sctdbData.data_s3[index];
00513                sctdbData.data_s4[index]=128.-sctdbData.data_s4[index];
00514                sctdbData.data_e5[index]=128.-sctdbData.data_e5[index];
00515                sctdbData.data_m8[index]=128.-sctdbData.data_m8[index];
00516                sctdbData.data_s9[index]=128.-sctdbData.data_s9[index];
00517                sctdbData.data_s10[index]=128.-sctdbData.data_s10[index];
00518                sctdbData.data_s11[index]=128.-sctdbData.data_s11[index];
00519                sctdbData.data_s12[index]=128.-sctdbData.data_s12[index];
00520                sctdbData.data_e13[index]=128.-sctdbData.data_e13[index];
00521                }
00522    private double getData(String dataString) {
00523         double data = -1.;
00524            try {
00525                data = Double.parseDouble(dataString);
00526            }catch(Exception e) {
00527                dataString = dataString.toLowerCase();
00528                if(dataString.equals("not tested")) data=0.;
00529                else if(dataString.equals("minimal tested")) data=1.;
00530                else System.err.println("Unrecognised data from SCT database: "+dataString);
00531                }
00532          return data;
00533          }
00534        
00535 
00536 
00537 }

Generated on Mon Feb 6 14:12:18 2006 for SCT DAQ/DCS Software - Java by  doxygen 1.4.6