<%@ LANGUAGE="VBScript" %> 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 %>