Sensor IV plot
<% start_time = Time %>
<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Mode = adModeRead
Connection.Open phdb_rd
Log1_Query = "select Rowid,Batch,Sensor,to_char(Logdate,'mm/dd/yyyy hh:mi:ss AM') logdate,Action,Measurement_Type,Operator,Comments "
Log1_Query = Log1_Query & "from sitester.sensor_log sl where sl.rowid='"
Log1_Query = Log1_Query & Request("rowid_x") & "'"
'response.write(Log1_Query)
Set Slog1 = Connection.Execute(Log1_Query)
batch1=Slog1("Batch")
sensor1=Slog1("Sensor")
logdate1=Slog1("Logdate")
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 hh:mi:ss AM'))<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,logdate,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 hh:mi:ss AM')))="
Log2_Query = Log2_Query & "(select batch,sensor,min(abs(logdate-TO_DATE('" & CStr(logdate1) & "','mm/dd/yyyy hh:mi:ss AM')))"
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)"
Log2_Query = Log2_Query & " and 24*60*abs(logdate-TO_DATE('" & CStr(logdate1) & "','mm/dd/yyyy hh:mi:ss AM'))<30"
Set Slog2 = Connection.Execute(Log2_Query)
If Not Slog2.EOF Then
rowid2=Slog2("Rowid")
logdate2=Slog2("logdate")
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=-(second(now())+60*minute(now())+3600*hour(now())+3600*24*day(now()))
filename="iviv" & cstr(int(100000.*rnd(seed))) & ".jpg"
filename_full=ph_image_directory & filename
%>
Batch <%=Slog1("batch")%>, sensor <%=Cstr(Slog1("sensor"))%> IV Distribution
Measurement Date
<%=logdate1%>
<%=logdate2%>
Measurement Type
<%=measurement1%>
<%=measurement2%>
Operator
<%=operator1%>
<%=operator2%>
Operator's Comments
<%=comm1%>
<%=comm2%>
Temperature
<%If Not (Siv1.EOF or Siv1.BOF) Then
Response.Write CStr(Siv1("temperature")) & "°C"
Else
Response.Write "°C"
End If%>
<%If Cstr(rowid2)<>"Not found" Then
If Not (Siv2.EOF or Siv2.BOF) Then
Response.Write CStr(Siv2("temperature")) & "°C"
Else
Response.Write "°C"
End If
End If%>
Humidity
<%If Not (Siv1.EOF or Siv1.BOF) Then
Response.Write CStr(Siv1("humidity")) & "%"
Else
Response.Write "%"
End If%>
<%If Cstr(rowid2)<>"Not found" Then
If Not (Siv2.EOF or Siv2.BOF) Then
Response.Write CStr(Siv2("humidity")) & "%"
Else
Response.Write "%"
End If
End If%>
<%
Dim Chart
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
' gsfs added lines to read xmin, xmax, ymin, ymax 12/7/00
If Not IsEmpty(Request("xmin")) Then
xmin = CDbl(Request("xmin"))
End If
If Not IsEmpty(Request("xmax")) Then
xmax = CDbl(Request("xmax"))
End If
If Not IsEmpty(Request("ymin")) Then
ymin = CDbl(Request("ymin"))
End If
If Not IsEmpty(Request("ymax")) Then
ymax = CDbl(Request("ymax"))
End If
If Not IsEmpty(Request("xtic")) Then
xtic = CDbl(Request("xtic"))
End If
If Not IsEmpty(Request("ytic")) Then
ytic = CDbl(Request("ytic"))
End If
' End of gsfs addition
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
Do While Not Siv1.Eof
volt1=CDbl(Siv1("bias"))
curr1=CDbl(Siv1("leakage_current"))
Chart.AddXY CDbl(Siv1("bias")),CDbl(Siv1("leakage_current"))/1000., "",Color(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
Do While Not Siv2.Eof
Chart.AddXY CDbl(Siv2("bias")),CDbl(Siv2("leakage_current"))/1000., "",Color(4)
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]"
' Following lines added by gsfs 12/7/00
If IsEmpty(xmin) Then
Chart.HorizAxisMin = 0
Else
Chart.HorizAxisMin = xmin
End If
If IsEmpty(xmax) Then
Chart.HorizAxisMax = 150
Else
Chart.HorizAxisMax = xmax
End If
If IsEmpty(ymin) Then
Chart.VertAxisMin = 0
Else
Chart.VertAxisMin = ymin
End If
If IsEmpty(ymax) Then
Chart.VertAxisMax = 20
Else
Chart.VertAxisMax = ymax
End If
' End of gsfs addition
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
' Database is not needed anymore !
Connection.Close
%>