private void _save_log(CalibNightVisionItemInfo calibItem) { //save log telnet new LogTelnet( globalParameter.LogStationName.CalibNight.ToString(), calibItem.macEthernet, calibItem.Result ) .saveDataToLogFile(stationVariable.myTesting.logTelnet); //save log system new LogSystem( globalParameter.LogStationName.CalibNight.ToString(), calibItem.macEthernet, calibItem.Result ) .saveDataToLogFile(stationVariable.myTesting.logSystem); //save log total new LogTotal( globalParameter.LogStationName.CalibNight.ToString() ) .saveDataToLogFile( "macEthernet", calibItem.macEthernet, "calibDarkResult", calibItem.calibDarkResult, "calibLightResult", calibItem.calibLightResult, "verifyResult", calibItem.verifyResult, "TotalResult", calibItem.Result ); }
private bool _calib_dark(CalibNightVisionItemInfo calibItem) { try { bool ret = false; int count = 0; stationVariable.myTesting.logSystem += string.Format("......camera {0}\n", calibItem.macEthernet); calibItem.calibDarkResult = "Waiting..."; //login telnet to camera count = 0; RE_LOGIN: count++; Common.Dut.IPCamera <TestingInformation> camera_indoor = new Common.Dut.IPCamera <TestingInformation>(stationVariable.myTesting, calibItem.ipAddress, stationVariable.mySetting.cameraTelnetUser, stationVariable.mySetting.cameraTelnetPassword); camera_indoor.Login(); ret = camera_indoor.IsConnected(); stationVariable.myTesting.logSystem += string.Format(".........login to {0} is {1}\n", calibItem.ipAddress, ret); if (!ret) { if (count < 3) { Thread.Sleep(500); goto RE_LOGIN; } else { camera_indoor.Close(); calibItem.calibDarkResult = "Failed"; return(false); } } //calib dark count = 0; RE_CALIB: count++; ret = camera_indoor.calibNightVisionModeDark(); stationVariable.myTesting.logSystem += string.Format(".........calib low threshold result {0}\n", ret); if (!ret) { if (count < 3) { Thread.Sleep(500); goto RE_CALIB; } else { camera_indoor.Close(); calibItem.calibDarkResult = "Failed"; return(false); } } camera_indoor.Close(); calibItem.calibDarkResult = "Passed"; return(true); } catch { calibItem.calibDarkResult = "Failed"; return(false); } }
private bool _calib_judgement(CalibNightVisionItemInfo calibItem) { try { if (!calibItem.calibDarkResult.Equals("Passed")) { calibItem.Result = "Failed"; return(false); } if (!calibItem.calibLightResult.Equals("Passed")) { calibItem.Result = "Failed"; return(false); } if (calibItem.verifyResult.Equals("null,null")) { calibItem.Result = "Failed"; return(false); } if (calibItem.verifyResult.Contains("low:") == false || calibItem.verifyResult.Contains("high:") == false) { calibItem.Result = "Failed"; return(false); } string[] buffer = calibItem.verifyResult.Split(','); int low_value = int.Parse(buffer[0].Replace("low:", "").Trim()); int high_value = int.Parse(buffer[1].Replace("high:", "").Trim()); int ll = stationVariable.mySetting.nightVisionDarkLower; int lu = stationVariable.mySetting.nightVisionDarkUpper; int hl = stationVariable.mySetting.nightVisionLightLower; int hu = stationVariable.mySetting.nightVisionLightUpper; if (low_value > high_value) { calibItem.Result = "Failed"; return(false); } if (low_value < ll || low_value > lu) { calibItem.Result = "Failed"; return(false); } if (high_value < hl || high_value > hu) { calibItem.Result = "Failed"; return(false); } calibItem.Result = "Passed"; return(true); } catch { calibItem.Result = "Failed"; return(false); } }
private void Button_Click(object sender, RoutedEventArgs e) { Button b = sender as Button; string b_tag = (string)b.Tag; switch (b_tag) { case "start_calib": { grid_main.Visibility = Visibility.Collapsed; grid_cameraquantity.Visibility = Visibility.Visible; cbb_cameraquantity.Focus(); stationVariable.myTesting.Ready(); break; } case "select_camera_quantity": { grid_cameraquantity.Visibility = Visibility.Collapsed; grid_main.Visibility = Visibility.Visible; stationVariable.myTesting.Checking(); stationVariable.myCalibNightVisionInfo.Clear(); stationVariable.myTesting.logSystem += string.Format("...{0}, chọn số lượng calib là: {1}\n", DateTime.Now, stationVariable.myTesting.cameraQuantity); //start thread count elapsed time Thread thrd_counttime = new Thread(new ThreadStart(() => { int count = 0; int delay_ms = 500; RE: count++; bool r = stationVariable.myTesting.TotalResult.Equals("Waiting..."); if (r) { Thread.Sleep(delay_ms); stationVariable.myTesting.totalTime = UtilityPack.Converter.myConverter.intToTimeSpan(count * delay_ms); goto RE; } })); thrd_counttime.IsBackground = true; thrd_counttime.Start(); //start thread change ip Thread thrd_changeip = new Thread(new ThreadStart(() => { int index = 0; bool r = false; stationVariable.myTesting.progressIndex = 1; RE: Application.Current.Dispatcher.Invoke(new Action(() => { index = stationVariable.myCalibNightVisionInfo.Count; })); if (index < int.Parse(stationVariable.myTesting.cameraQuantity)) { stationVariable.myTesting.logSystem += string.Format("...{0}, đọc số lượng camera đã đổi ip: {1}/{2}\n", DateTime.Now, index, stationVariable.myTesting.cameraQuantity); r = _change_ip_camera(index); Thread.Sleep(1000); goto RE; } //call user control calib light ... Application.Current.Dispatcher.Invoke(new Action(() => { grid_main.Visibility = Visibility.Collapsed; grid_waitlight.Visibility = Visibility.Visible; })); })); thrd_changeip.IsBackground = true; thrd_changeip.Start(); break; } case "calib_light": { grid_main.Visibility = Visibility.Visible; grid_waitlight.Visibility = Visibility.Collapsed; //thread calib light Thread thrd_caliblight = new Thread(new ThreadStart(() => { stationVariable.myTesting.progressIndex = 2; stationVariable.myTesting.logSystem += string.Format("...{0}, calib nightvision high threshold\n", DateTime.Now); int index = 0; RE: CalibNightVisionItemInfo calibItem = null; Application.Current.Dispatcher.Invoke(new Action(() => { calibItem = stationVariable.myCalibNightVisionInfo[index]; index++; })); _calib_light(calibItem); if (index < int.Parse(stationVariable.myTesting.cameraQuantity)) { goto RE; } //call user control calib dark ... Application.Current.Dispatcher.Invoke(new Action(() => { grid_main.Visibility = Visibility.Collapsed; grid_waitdark.Visibility = Visibility.Visible; })); })); thrd_caliblight.IsBackground = true; thrd_caliblight.Start(); break; } case "calib_dark": { grid_main.Visibility = Visibility.Visible; grid_waitdark.Visibility = Visibility.Collapsed; //thread calib dark Thread thrd_calibdark = new Thread(new ThreadStart(() => { stationVariable.myTesting.progressIndex = 3; stationVariable.myTesting.logSystem += string.Format("...{0}, calib nightvision low threshold\n", DateTime.Now); int index = 0; RE_CALIB_DARK: CalibNightVisionItemInfo calibItem = null; Application.Current.Dispatcher.Invoke(new Action(() => { calibItem = stationVariable.myCalibNightVisionInfo[index]; index++; })); _calib_dark(calibItem); if (index < int.Parse(stationVariable.myTesting.cameraQuantity)) { goto RE_CALIB_DARK; } //read calib value stationVariable.myTesting.progressIndex = 4; stationVariable.myTesting.logSystem += string.Format("...{0}, read calib value\n", DateTime.Now); index = 0; RE_READ_CALIB: calibItem = null; Application.Current.Dispatcher.Invoke(new Action(() => { calibItem = stationVariable.myCalibNightVisionInfo[index]; index++; })); _get_calib_value(calibItem); if (index < int.Parse(stationVariable.myTesting.cameraQuantity)) { goto RE_READ_CALIB; } //judgement stationVariable.myTesting.logSystem += string.Format("...{0}, judge calib value\n", DateTime.Now); index = 0; RE_JUDGEMENT: calibItem = null; Application.Current.Dispatcher.Invoke(new Action(() => { calibItem = stationVariable.myCalibNightVisionInfo[index]; index++; })); _calib_judgement(calibItem); if (index < int.Parse(stationVariable.myTesting.cameraQuantity)) { goto RE_JUDGEMENT; } //total judgement Application.Current.Dispatcher.Invoke(new Action(() => { bool ret = true; foreach (var item in stationVariable.myCalibNightVisionInfo) { if (item.Result.Equals("Passed") == false) { ret = false; break; } } if (ret) { stationVariable.myTesting.Pass(); } else { stationVariable.myTesting.Fail(); } })); //save log Application.Current.Dispatcher.Invoke(new Action(() => { foreach (var item in stationVariable.myCalibNightVisionInfo) { _save_log(item); } })); })); thrd_calibdark.IsBackground = true; thrd_calibdark.Start(); break; } } }
private bool _get_calib_value(CalibNightVisionItemInfo calibItem) { try { bool ret = false; int count = 0; stationVariable.myTesting.logSystem += string.Format("......camera {0}\n", calibItem.macEthernet); calibItem.verifyResult = "..."; //login telnet to camera count = 0; RE_LOGIN: count++; Common.Dut.IPCamera <TestingInformation> camera_indoor = new Common.Dut.IPCamera <TestingInformation>(stationVariable.myTesting, calibItem.ipAddress, stationVariable.mySetting.cameraTelnetUser, stationVariable.mySetting.cameraTelnetPassword); camera_indoor.Login(); ret = camera_indoor.IsConnected(); stationVariable.myTesting.logSystem += string.Format(".........login to {0} is {1}\n", calibItem.ipAddress, ret); if (!ret) { if (count < 3) { Thread.Sleep(500); goto RE_LOGIN; } else { camera_indoor.Close(); calibItem.verifyResult = "null,null"; return(false); } } //verify after calib count = 0; RE_CALIB: count++; string data = camera_indoor.getCalibNightVisionValue(); ret = data.Contains("lowthreshold") && data.Contains("highthreshold"); stationVariable.myTesting.logSystem += string.Format(".........calib value {0}, result {1}\n", data, ret); if (!ret) { if (count < 3) { Thread.Sleep(500); goto RE_CALIB; } else { camera_indoor.Close(); calibItem.verifyResult = "null,null"; return(false); } } camera_indoor.Close(); string sssssssssssssss = data.Replace("\r", "") .Replace("\n", "") .Replace("cat /usr/conf/nightvision.cfg", "") .Replace("~ #", "") .Trim(); string[] buffer = sssssssssssssss.Split(','); calibItem.verifyResult = buffer[1].Replace("\"", "").Replace("threshold", "").Trim() + "," + buffer[2].Replace("\"", "").Replace("threshold", "").Trim(); return(true); } catch { calibItem.verifyResult = "null,null"; return(false); } }