00001 package SummaryReader;
00002
00003 public class DCSInfo {
00004 Double[] parameters;
00005 String sn,status,location,temperature,testDate;
00006 public static final int VDET=0;
00007 public static final int IDET=1;
00008 public static final int T0=2;
00009 public static final int T1=3;
00010 public static final int VCC=4;
00011 public static final int ICC=5;
00012 public static final int VDD=6;
00013 public static final int IDD=7;
00014 public static final int IPIN=8;
00015
00016 java.text.DecimalFormat nf = new java.text.DecimalFormat("#.##");
00017
00018 public DCSInfo() {
00019 parameters = new Double[9];
00020 for(int i=0;i<parameters.length;i++) parameters[i]=null;
00021 }
00022 public void put(int index, double value) {
00023 parameters[index]=new Double(value);
00024 }
00025 public void put(int index, String value) {
00026 parameters[index]=Double.valueOf(value);
00027 }
00028 public Double get(int index) {
00029
00030 if(index<0) return null;
00031 switch(index) {
00032 case 8:
00033 if(parameters[T0]==null || parameters[T1]==null) return null;
00034 if(parameters[T1].doubleValue()<-100.) return null;
00035 double diff = Math.abs(parameters[T0].doubleValue() - parameters[T1].doubleValue());
00036 return Double.valueOf(nf.format(diff));
00037 case 9:
00038 for(int i=0;i<8;i++) {
00039 if(i==T0 || i==T1) continue;
00040 if(parameters[i]==null) return null;
00041 }
00042 double powerTotal = Math.abs(parameters[VDET].doubleValue() * parameters[IDET].doubleValue() *1e-6);
00043 powerTotal += Math.abs(parameters[VCC].doubleValue()*parameters[ICC].doubleValue() *1e-3);
00044 powerTotal += Math.abs(parameters[VDD].doubleValue()*parameters[IDD].doubleValue() *1e-3);
00045 return Double.valueOf(nf.format(powerTotal));
00046 case 10:
00047 return parameters[IPIN];
00048 default:
00049 return parameters[index];
00050 }
00051 }
00052 public String getSummaryTable() {
00053 StringBuffer table = new StringBuffer("<h3>DCS Info</h3>\n");
00054 for(int i=0;i<8;i++) {
00055 if(parameters[i]==null) return "None available...";
00056 }
00057 if(parameters[IPIN]==null) parameters[IPIN]=new Double(-1.0);
00058 table.append("<table border=1>\n");
00059 table.append("<tr><td>VDet</td><td>IDet</td><td>T0</td><td>T1</td><td>Vdd</td><td>Idd</td><td>Vcc</td><td>Icc</td><td>IPIN</td></tr>\n");
00060 table.append("<tr><td>"+parameters[VDET].toString()+"</td><td>"+parameters[IDET].toString()+"</td><td>"+parameters[T0].toString()+"</td><td>"+parameters[T1].toString()+"</td><td>"+parameters[VDD].toString()+"</td><td>"+parameters[IDD].toString()+"</td><td>"+parameters[VCC].toString()+"</td><td>"+parameters[ICC].toString()+"</td><td>"+parameters[IPIN].toString()+"</td></tr>\n");
00061 table.append("</table>\n");
00062 return table.toString();
00063 }
00064 }