00001 package SummaryReader;
00002
00003
00004
00005 import hep.aida.*;
00006
00007 public class IVData {
00008
00009 IDataPointSet ivDataPointSet;
00010
00011
00012 public IVData(String serialNo) {
00013 IDataPointSetFactory dpsf = DisplayGUI.plotters.IVScanPlotter.getInstance().getDataPointSetFactory();
00014
00015 ivDataPointSet = dpsf.create("ivDataPointSet",(serialNo==null) ? "IV Scan Data" : serialNo,2);
00016 }
00017 public void add(String V, String I) {
00018 try {
00019 int index = ivDataPointSet.size();
00020 ivDataPointSet.addPoint();
00021 ivDataPointSet.point(index).coordinate(0).setValue( Double.parseDouble(V) );
00022 ivDataPointSet.point(index).coordinate(1).setValue( Double.parseDouble(I) );
00023 }catch(Exception e){System.err.println("SummaryReader::IVData - Exception parsing V,I as Doubles - "+e.toString());}
00024 }
00025 public Double getCurrent(int index) {
00026 if(index>ivDataPointSet.size()-1) return null;
00027 return new Double(ivDataPointSet.point(index).coordinate(1).value());
00028 }
00029 public Double getVoltage(int index) {
00030 return new Double(ivDataPointSet.point(index).coordinate(0).value());
00031 }
00032 public IDataPointSet getDataPointSet() {
00033 return ivDataPointSet;
00034 }
00035 public String getSummaryTable() {
00036 StringBuffer buf = new StringBuffer("<h3>IV Scan Data</h3>\n");
00037 if(ivDataPointSet.size()==0) {
00038 buf.append("No data available.");
00039 return buf.toString();
00040 }
00041 buf.append("<table border=1>\n");
00042 buf.append("<tr><td><b>Volts (V)</b></td><td><b>Current (uA)</b></td></tr>\n");
00043 for(int i=0;i<ivDataPointSet.size();i++) buf.append("<tr><td>"+getVoltage(i).toString()+"</td><td>"+getCurrent(i).toString()+"</td></tr>");
00044 buf.append("</table>");
00045 return buf.toString();
00046 }
00047 }