%@LANGUAGE="VBScript"%> <% Set Connection = Server.CreateObject("ADODB.Connection") Connection.Mode = adModeRead Connection.Open phdb_rd SQLStmt = "select keynumber,logdate,to_char(logdate,'MM/DD/YYYY HH24:MI:SS') ddate,bias,mean_current,sigma_current,comments from sitester.testkey_polysi,sitester.sensor_log where startdate=logdate and sensor_log.batch='"+Request("batch")+"' and sensor_log.sensor="+Request("sensor")+" order by keynumber,logdate,bias" Set RS = Connection.Execute(SQLStmt) %> <% Dim voltage() seed=-(second(now())+60*minute(now())+3600*hour(now())+3600*24*day(now())) %>
| <%
'--- Create new filename ---
seed = seed + 1
filename="fff" & 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 6
Chart.SeriesTitle = "Real Data"
Chart.LineWidth = 2
ReDim voltage(0)
found = 0
keynumber = CInt(RS("keynumber"))
logdate = RS("logdate")
ddate=CStr(RS("ddate"))
If IsNull(RS("comments")) Then
comments=""
Else
comments = RS("comments")
End If
num_points = 0
vi_sigma2 = 0.0
one_sigma2 = 0.0
v_sigma2 = 0.0
i_sigma2 = 0.0
v2_sigma2 = 0.0
i2_sigma2 = 0.0
Do While (found = 0)
If Not RS.EOF then
Select Case Sgn(CInt(RS("keynumber"))-keynumber)
case 1
found = 1
case 0
Select Case Sgn(RS("logdate")-logdate)
case 1
found = 1
case 0
ReDim Preserve voltage(num_points)
voltage(num_points)=CDbl(RS("bias"))
Chart.AddXY CDbl(RS("Bias")), CDbl(RS("Mean_Current")), "",Color(1)
num_points = num_points + 1
vi_sigma2=vi_sigma2+CDbl(RS("Bias"))*CDbl(RS("Mean_Current"))/(CDbl(RS("Sigma_Current"))^2)
one_sigma2=one_sigma2+1.0/(CDbl(RS("Sigma_Current"))^2)
v_sigma2=v_sigma2+CDbl(RS("Bias"))/(CDbl(RS("Sigma_Current"))^2)
i_sigma2=i_sigma2+CDbl(RS("Mean_Current"))/(CDbl(RS("Sigma_Current"))^2)
v2_sigma2=v2_sigma2+(CDbl(RS("Bias"))^2)/(CDbl(RS("Sigma_Current"))^2)
i2_sigma2=i2_sigma2+(CDbl(RS("Mean_Current"))^2)/(CDbl(RS("Sigma_Current"))^2)
RS.MoveNext
case -1
found = 1
End Select
case -1
Response.Write "Error"
End Select
Else
found = 1
End If
Loop
i_over_v=(vi_sigma2*one_sigma2-v_sigma2*i_sigma2)/(v2_sigma2*one_sigma2-v_sigma2*v_sigma2)
i_zero=(v2_sigma2*i_sigma2-v_sigma2*vi_sigma2)/(v2_sigma2*one_sigma2-v_sigma2*v_sigma2)
resistance_mohms=1000/i_over_v
numerator=one_sigma2*i2_sigma2*v2_sigma2-i2_sigma2*v_sigma2*v_sigma2-i_sigma2*i_sigma2*v2_sigma2-one_sigma2*vi_sigma2*vi_sigma2+2*vi_sigma2*i_sigma2*v_sigma2
denomenator=(v2_sigma2*one_sigma2-v_sigma2*v_sigma2)*(v2_sigma2*one_sigma2-v_sigma2*v_sigma2)
i_over_v_error=Sqr(one_sigma2*numerator/(denomenator*(num_points-2)))
resistance_mohms_error=1000*i_over_v_error/(i_over_v*i_over_v)
Chart.AddSeries 5
Chart.SeriesTitle = "Fit Line"
Chart.LineWidth = 2
For current_point = 0 To (num_points-1)
Chart.AddXY voltage(current_point), (voltage(current_point)*i_over_v + i_zero), "",Color(3)
Next
Chart.AddSeries 5
Chart.SeriesTitle = "5 1 2 Mohm Limits"
volt=0
do while volt<=100
Chart.AddXY volt, 1000*volt/7., "",Color(0)
volt=volt+10
loop
Chart.AddSeries 5
Chart.SeriesInLegend = False
volt=0
do while volt<=100
Chart.AddXY volt, 1000*volt/3., "",Color(0)
volt=volt+10
loop
Chart.AddSeries 5
Chart.SeriesTitle = "1 Mohm Limit"
volt=0
do while volt<=100
Chart.AddXY volt, 1000*volt/1., "",Color(4)
volt=volt+10
loop
Chart.AddSeries 5
Chart.SeriesTitle = "0.55 Mohm Limit"
volt=0
do while volt<=100
Chart.AddXY volt, 1000*volt/0.55, "",Color(5)
volt=volt+10
loop
rem **********************************************************************
rem * Add and format the title
rem **********************************************************************
Chart.ChartTitleAdd ("Batch " & CStr(Request("batch")) & ", Sensor " & CStr(Request("sensor")) & ", Keynumber " & CStr(keynumber))
Chart.ChartTitleFont.Size = 18
Chart.ChartTitleFont.Name = "Times New Roman"
Chart.ChartTitleFont.Italic = true
Chart.ChartTitleFont.Bold = true
Chart.View3D = false
rem Chart.LegendVisible = True
Chart.LegendStyle = cSeries
Chart.AxisGridLines = false
Chart.Frame = false
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 = 300
Chart.Width = 600
Chart.HorizAxisMax = 100.
Chart.HorizAxisMin = 0.
Chart.VertAxisMax = 20000.
Chart.VertAxisMin = 0.
Chart.AddAxisLabel 1 , "Mean Current [nA]"
Chart.AddAxisLabel 2 , "Voltage [Volts]"
rem **********************************************************************
rem * Set the filename, save the image and write the image tag
rem **********************************************************************
Chart.FileName = filename_full
Chart.SaveChart
line="
|