<%@ LANGUAGE="VBScript" %> <% start_time = Time %> <% Set Connection = Server.CreateObject("ADODB.Connection") Connection.Mode = adModeRead Connection.Open phdb_rd rowid_query = "select rowid from sitester.sensor_log where batch='"+Request("batch")+"' and sensor="+Request("sensor")+" and measurement_type='IV_guard_bias_gnd' order by logdate" Set rowid_list = Connection.Execute(rowid_query) %> Batch <%= Request("batch") %>, Sensor <%= Request("sensor") %> IV Curve Selection

Batch <%=Request("batch")%>, sensor <%=Request("sensor")%> IV Distribution

<% Dim Color(8) Color(0) = vbRed Color(1) = vbBlue Color(2) = vbYellow Color(3) = vbGreen Color(4)= vbMagenta Color(5)= vbCyan Color(6)= vbWhite Color(7)= vbBlack seed=-(second(now())+60*minute(now())+3600*hour(now())+3600*24*day(now())) Dim ivb_voltage_array() Dim ivb_current_array() Dim ivg_voltage_array() Dim ivg_current_array() iteration = 0 Do While Not rowid_list.EOF iteration = iteration + 1 %> <% Log1_Query = "select Rowid,Batch,Sensor,to_char(Logdate,'MM/DD/YYYY HH24:MI:SS') ddate,Action,Measurement_Type,Operator,Comments " Log1_Query = Log1_Query & "from sitester.sensor_log sl where sl.rowid='" Log1_Query = Log1_Query & rowid_list("rowid") & "'" Set Slog1 = Connection.Execute(Log1_Query) batch1=Slog1("Batch") sensor1=Slog1("Sensor") logdate1=Slog1("ddate") action1=Slog1("Action") measurement1=Slog1("Measurement_Type") rowid1=Slog1("Rowid") operator1=Slog1("Operator") comm1=Slog1("Comments") %> <% ' ' Find the best candidate for the same-pair measurement (guard vs bias), check within +-10 minutes ' If Cstr(action1)="IV_test" Then If measurement1="IV_guard_bias_gnd" Then measurement2="IV_bias_guard_gnd" ElseIf measurement1="IV_bias_guard_gnd" Then measurement2="IV_guard_bias_gnd" Else response.write("Invalid measurement type !") End If Else response.write(" This is not an IV test !") End If ' Old query that Bolek used to find pair within +-10 minutes ' Log2_Query = "select rowid,batch,sensor,logdate,action,measurement_type,operator,comments " ' Log2_Query = Log2_Query & "from sitester.sensor_log sl where sl.measurement_type='" & Cstr(measurement2) & "'" ' Log2_Query = Log2_Query & " and sl.batch='" & CStr(batch1) & "' and sl.sensor=" & CStr(sensor1) ' Log2_Query = Log2_Query & " and 24*60*abs(sl.logdate-" & "TO_DATE('" & CStr(logdate1) & "','MM/DD/YYYY HH24:MI:SS'))<10" ' New query made by Kris on 8/16/98 to use min time difference as the selection to find the best pair Log2_Query = "select rowid,batch,sensor,to_char(logdate,'MM/DD/YYYY HH24:MI:SS') ddate,action,measurement_type,operator,comments " Log2_Query = Log2_Query & "from sitester.sensor_log where (batch,sensor,abs(logdate-TO_DATE('" & CStr(logdate1) & "','MM/DD/YYYY HH24:MI:SS')))=" Log2_Query = Log2_Query & "(select batch,sensor,min(abs(logdate-TO_DATE('" & CStr(logdate1) & "','MM/DD/YYYY HH24:MI:SS')))" Log2_Query = Log2_Query & "from sitester.sensor_log where measurement_type='" & Cstr(measurement2) & "'" Log2_Query = Log2_Query & " and batch='" & CStr(batch1) & "' and sensor=" & CStr(sensor1) Log2_Query = Log2_Query & " group by batch,sensor)" Set Slog2 = Connection.Execute(Log2_Query) If Not Slog2.EOF Then rowid2=Slog2("Rowid") logdate2=Slog2("ddate") operator2=Slog2("Operator") comm2=Slog2("Comments") Else rowid2="Not found" logdate2="Not found" operator2="-" comm2="-" measurement2="-" End If If measurement2="IV_bias_guard_gnd" Then 'swap the pointers rowid_t=rowid1 rowid1=rowid2 rowid2=rowid_t comm_t=comm1 comm1=comm2 comm2=comm_t logdate_t=logdate1 logdate1=logdate2 logdate2=logdate_t operator_t=operator1 operator1=operator2 operator1=operator_t measurement_t=measurement1 measurement1=measurement2 measurement2=measurement_t End If %> <% IV1_Query = "select bias,leakage_current,temperature,humidity from sitester.sensor_iv si,sitester.sensor_log sl " IV1_Query = IV1_Query & "where sl.rowid='" & Cstr(rowid1) & "' " IV1_Query = IV1_Query & "and startdate=logdate order by bias" Set Siv1 = Connection.Execute(IV1_Query) If Cstr(rowid2)<>"Not found" Then IV2_Query = "select bias,leakage_current,temperature,humidity from sitester.sensor_iv,sitester.sensor_log sl " IV2_Query = IV2_Query & "where sl.rowid='" & Cstr(rowid2) & "' " IV2_Query = IV2_Query & "and startdate=logdate order by bias" Set Siv2 = Connection.Execute(IV2_Query) End If %> <% ' Prepare plot seed=seed+1 filename="iviv" & cstr(int(100000.*rnd(seed))) & ".jpg" filename_full=ph_image_directory & filename %> <% Dim Chart rem ********************************************************************** rem * Instantiate the Chart component rem ********************************************************************** Set Chart = Server.CreateObject ("ASPChart.Chart") rem ********************************************************************** rem * Create x Array rem ********************************************************************** Chart.AddSeries 5 Chart.SeriesTitle = "Active Area" Chart.LineWidth = 2 Chart.Stairs = false Chart.SeriesInLegend = true data_points = 0 Do While Not Siv1.Eof ReDim Preserve ivb_voltage_array(data_points) ReDim Preserve ivb_current_array(data_points) ivb_voltage_array(data_points)=CDbl(Siv1("bias")) ivb_current_array(data_points)=CDbl(Siv1("leakage_current"))/1000. Chart.AddXY CDbl(Siv1("bias")),CDbl(Siv1("leakage_current"))/1000., "",Color(1) data_points=data_points+1 Siv1.MoveNext Loop If Cstr(rowid2)<>"Not found" Then Chart.AddSeries 5 Chart.SeriesTitle = "Guard Ring" Chart.LineWidth = 2 Chart.Stairs = false Chart.SeriesInLegend = true data_points = 0 Do While Not Siv2.Eof ReDim Preserve ivg_voltage_array(data_points) ReDim Preserve ivg_current_array(data_points) ivg_voltage_array(data_points)=CDbl(Siv2("bias")) ivg_current_array(data_points)=CDbl(Siv2("leakage_current"))/1000. Chart.AddXY CDbl(Siv2("bias")),CDbl(Siv2("leakage_current"))/1000., "",Color(4) data_points=data_points+1 Siv2.MoveNext Loop End If rem ********************************************************************** rem * Add and format the title rem ********************************************************************** Chart.ChartTitleAdd ("") Chart.ChartTitleFont.Size = 18 Chart.ChartTitleFont.Name = "Times New Roman" Chart.ChartTitleFont.Italic = true Chart.ChartTitleFont.Bold = true Chart.View3D = false Chart.LegendVisible = true Chart.LegendStyle = cSeries Chart.AxisGridLines = true Chart.Frame = false Chart.BottomAxisIncrement = 10 rem ********************************************************************** rem * Remove the OuterBevel, add a gradient fill to chart panel rem ********************************************************************** Chart.BevelOuter = 0 rem Chart.GradientVisible = true rem Chart.GradientStartColor = vbWhite rem Chart.GradientEndColor = vbYellow Chart.PanelColor = Color(6) rem ********************************************************************** rem * Set the Width and Height of the image rem ********************************************************************** Chart.Height = 400 Chart.Width = 600 Chart.HorizAxisMax = 150. Chart.HorizAxisMin = 0. Chart.VertAxisMax = 20.0 Chart.VertAxisMin = 0. Chart.AddAxisLabel 1 , "Current [microA]" Chart.AddAxisLabel 2 , "Voltage [V]" rem ********************************************************************** rem * Set the filename, save the image and write the image tag rem ********************************************************************** Chart.FileName = filename_full Chart.SaveChart line="
" Response.Write (line) rem ********************************************************************** rem * Destroy the object rem ********************************************************************** Set Chart = nothing If Not Siv1.BOF Then Siv1.MoveFirst End If If Not Siv2.BOF Then Siv2.MoveFirst End If %>
Measurement Date Measurement Type Operator Operator's Comments Temperature Humidity
<%=logdate1%> <%=measurement1%> <%=operator1%> <%=comm1%> <%If Not (Siv1.EOF or Siv1.BOF) Then Response.Write CStr(Siv1("temperature")) & "°C" Else Response.Write "°C" End If%> <%If Not (Siv1.EOF or Siv1.BOF) Then Response.Write CStr(Siv1("humidity")) & "%" Else Response.Write "%" End If%>
<%=logdate2%> <%=measurement2%> <%=operator2%> <%=comm2%> <%If Not (Siv2.EOF or Siv2.BOF) Then Response.Write CStr(Siv2("temperature")) & "°C" Else Response.Write "°C" End If%> <%If Not (Siv2.EOF or Siv2.BOF) Then Response.Write CStr(Siv2("humidity")) & "%" Else Response.Write "%" End If%>
">">">">

.ivb_voltage.value = this.form.ivb_voltage.value;self.opener.document.iv_array_receive<%= Request("sensor") %>.ivb_current.value = this.form.ivb_current.value;self.opener.document.iv_array_receive<%= Request("sensor") %>.ivg_voltage.value = this.form.ivg_voltage.value;self.opener.document.iv_array_receive<%= Request("sensor") %>.ivg_current.value = this.form.ivg_current.value;self.opener.document.iv_array_receive<%= Request("sensor") %>.reset();self.close()">

 

<% rowid_list.MoveNext Loop %> <% ' Database is not needed anymore ! Connection.Close %>