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 return new Double(ivDataPointSet.point(index).coordinate(1).value());
00027 }
00028 public Double getVoltage(int index) {
00029 return new Double(ivDataPointSet.point(index).coordinate(0).value());
00030 }
00031 public IDataPointSet getDataPointSet() {
00032 return ivDataPointSet;
00033 }
00034 public String getSummaryTable() {
00035 StringBuffer buf = new StringBuffer("<h3>IV Scan Data</h3>\n");
00036 if(ivDataPointSet.size()==0) {
00037 buf.append("No data available.");
00038 return buf.toString();
00039 }
00040 buf.append("<table border=1>\n");
00041 buf.append("<tr><td><b>Volts (V)</b></td><td><b>Current (uA)</b></td></tr>\n");
00042 for(int i=0;i<ivDataPointSet.size();i++) buf.append("<tr><td>"+getVoltage(i).toString()+"</td><td>"+getCurrent(i).toString()+"</td></tr>");
00043 buf.append("</table>");
00044 return buf.toString();
00045 }
00046 }