private void startButton_Click(object sender, RoutedEventArgs e) { var w = Window.GetWindow(this) as MainWindow; ROSADevice rosa = w.device as ROSADevice; ROSAOutput output = w.output as ROSAOutput; if (rosa.VPD_RSSI == "vpd") { Instruments.instance.OpenRelay(1); Instruments.instance.OpenRelay(2); Instruments.instance.OpenRelay(4); } else { Instruments.instance.CloseRelay(1); Instruments.instance.OpenRelay(2); Instruments.instance.OpenRelay(4); } Instruments.instance.SetArroyoLaserOff(); var power = Instruments.instance.GetThorlabsPower(); Debug.Print($"Fiber power: {power}"); output.Fiber_Power = 1000 * power / Instruments.instance.alignmentPowerCalibration; powerText.Text = $"Fiber power: {String.Format("{0:0.00}",(1000 * power / Instruments.instance.alignmentPowerCalibration))}mW"; successMessage.Visibility = Visibility.Visible; powerText.Visibility = Visibility.Visible; startButton.Visibility = Visibility.Collapsed; nextStepButton.Visibility = Visibility.Visible; }
private async void Wiggle() { ROSADevice device = d as ROSADevice; ROSAOutput output = o as ROSAOutput; bool wiggleTestResult = true; WiggleData wiggleData = await TestCalculations.ROSAWiggleTest(device.V_Test, (device.RSSI_VPD == "VPD"), (int)device.Wiggle_Time, wiggleProgress); wiggleMin.Text = wiggleData.min.ToString("F") + " mW"; wiggleMax.Text = wiggleData.max.ToString("F") + " mW"; wiggleAvg.Text = wiggleData.avg.ToString("F") + " mW"; double i_wiggle = 10 * Math.Log10(wiggleData.max / wiggleData.min); iWiggle.Text = i_wiggle.ToString("F") + " dB"; bool I_Wiggle_Pass = (i_wiggle <= device.PD_Wiggle_Max); output.Wiggle_Pass = I_Wiggle_Pass; if (!I_Wiggle_Pass) { iWiggle.Foreground = Brushes.OrangeRed; wiggleTestResult = false; } measurementPanel.Visibility = Visibility.Visible; var w = Window.GetWindow(this) as MainWindow; if (wiggleTestResult) { passed = true; testMessage.Text = "Test Passed"; testMessage.Foreground = Brushes.ForestGreen; StartTestButton.Content = "End job"; output.Result = true; MainWindow.Conn.SaveROSAOutput(output); d = device; o = output; w.device = d; w.output = o; } else { testMessage.Text = "Test Failed"; testMessage.Foreground = Brushes.OrangeRed; if (numTries >= 3) { StartTestButton.Content = "Go home"; output.Result = false; MainWindow.Conn.SaveROSAOutput(output); } else { StartTestButton.Content = "Retry test"; } } }
public ROSADevice GetROSADevice(int id) { if (!File.Exists(DbFile)) { return(null); } using (var cnn = DataFileConnection()) { cnn.Open(); ROSADevice result = cnn.Query <ROSADevice>( @"select * from ROSADevice where id = @id", new { id }).FirstOrDefault(); return(result); } }
public void SaveROSADevice(ROSADevice device) { using (var conn = SimpleDbConnection()) { conn.Open(); conn.Execute( @"INSERT INTO ROSADevice ( Part_Number, VPD_RSSI, Resp_Min ) values ( @part_number, @vpd_rssi, @resp_min )", new { part_number = device.Part_Number, vpd_rssi = device.VPD_RSSI, resp_Min = device.Resp_Min }); } }
public void SaveROSADevice(ROSADevice rosa) { if (!File.Exists(DbFile)) { return; } using (var cnn = DataFileConnection()) { cnn.Open(); cnn.Execute( @"insert into ROSADevice ( Part_Number, V_Test, RESP_Min, I_TIA_Max, PD_Wiggle_Max, Wiggle_Time, RSSI_VPD ) values ( @Part_Number, @V_Test, @RESP_Min, @I_TIA_Max, @PD_Wiggle_Max, @Wiggle_Time, @RSSI_VPD )", new { Part_Number = rosa.Part_Number, V_Test = rosa.V_Test, RESP_Min = rosa.RESP_Min, I_TIA_Max = rosa.I_TIA_Max, PD_Wiggle_Max = rosa.PD_Wiggle_Max, Wiggle_Time = rosa.Wiggle_Time, RSSI_VPD = rosa.RSSI_VPD } ); } }
public ROSADevice GetROSADevice(int id) { if (!File.Exists(DbFile)) { return(null); } using (var conn = SimpleDbConnection()) { conn.Open(); ROSADevice device = conn.Query <ROSADevice>( @"SELECT id, part_number, vpd_rssi, FROM ROSADevice where id = @id", new { id }).FirstOrDefault(); return(device); } }
private void DarkLight() { ROSADevice device = d as ROSADevice; ROSAOutput output = o as ROSAOutput; bool darkLightResult = true; DLData dl = TestCalculations.DarkLightTest(device.V_Test, (device.RSSI_VPD == "VPD")); foreach (TextBlock tb in Utils.FindVisualChildren <TextBlock>(measurementPanel)) { tb.Foreground = Brushes.White; } vTest.Text = device.V_Test.ToString("F") + " V"; output.V_Test = device.V_Test; iTIA.Text = dl.i_tia.ToString("F") + " mA"; bool I_TIA_Pass = (dl.i_tia <= device.I_TIA_Max); output.I_TIA = dl.i_tia; output.I_TIA_Pass = I_TIA_Pass; if (!I_TIA_Pass) { iTIA.Foreground = Brushes.OrangeRed; darkLightResult = false; } iDark.Text = dl.i_dark.ToString("F") + " mA"; output.I_Dark = dl.i_dark; iPD.Text = dl.i_pd.ToString("F") + " mA"; responsivity.Text = dl.responsivity.ToString("F"); bool Responsivity_Pass = (dl.responsivity >= device.RESP_Min); output.Responsivity = dl.responsivity; output.RESP_Pass = Responsivity_Pass; if (!Responsivity_Pass) { responsivity.Foreground = Brushes.OrangeRed; darkLightResult = false; } measurementPanel.Visibility = Visibility.Visible; var w = Window.GetWindow(this) as MainWindow; darkLightResult = true; if (darkLightResult) { passed = true; testMessage.Text = "Test Passed"; testMessage.Foreground = Brushes.ForestGreen; StartTestButton.Content = "Next step"; d = device; o = output; w.device = d; w.output = o; } else { testMessage.Text = "Test Failed"; testMessage.Foreground = Brushes.OrangeRed; if (numTries >= 3) { StartTestButton.Content = "Go home"; output.Result = false; MainWindow.Conn.SaveROSAOutput(output); } else { StartTestButton.Content = "Retry test"; } } }