// private void _RunAll() { myGlobal.myTesting.StartButtonContent = "STOP"; timer_scrollsystemlog.Start(); Stopwatch st = new Stopwatch(); st.Start(); bool r = false; int idretry = myGlobal.mySetting.GetIDRetry; int comretry = myGlobal.mySetting.CommonRetry; //release device under test if (ProjectTestItem.DUT != null) { ProjectTestItem.DUT = null; } //init control myGlobal.myTesting.initValidating(); //1 - Validate connection vs usb dongle if (myGlobal.myTesting.IsCheckConnection) { myGlobal.myTesting.ValidateConnection = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateConnection = "Failed"; goto END; } } //check connection between DUT (module zigbee) vs usb dongle string id = ""; r = ProjectTestItem.Is_Module_ZigBee_Join_To_Network_D <TestingInformation>(myGlobal.myTesting, comretry, idretry, myGlobal.mySetting.DelayRetry, out id); myGlobal.myTesting.ValidateConnection = r == true ? "Passed" : "Failed"; myGlobal.myTesting.ID = id; if (!r) { goto END; } } //2 - Validate data transmission vs usb dongle if (myGlobal.myTesting.IsCheckTransmission) { myGlobal.myTesting.ValidateTransmission = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateTransmission = "Failed"; goto END; } } //check data transmission between DUT (module zigbee) vs usb dongle string cmd = string.Format("CHECK,{0},SMH_ZIGBEE,RF!", myGlobal.myTesting.ID); r = ProjectTestItem.Is_DUT_Transmitted_To_Node_RF_D <TestingInformation>(myGlobal.myTesting, comretry, myGlobal.mySetting.DelayRetry, cmd); myGlobal.myTesting.ValidateTransmission = r == true ? "Passed" : "Failed"; if (!r) { goto END; } } //3 - Validate temperature sensor if (myGlobal.myTesting.IsCheckTemperature) { myGlobal.myTesting.ValidateTemperature = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateTemperature = "Failed"; goto END; } } //check temperature sensor r = ProjectTestItem.Is_Sensor_Valid_D <TestingInformation>(myGlobal.myTesting, myGlobal.myTesting.ID, DeviceType.SMH_SMOKE, SensorType.Temperature, myGlobal.mySetting.TemperatureValue, myGlobal.mySetting.TemperatureAccuracy, comretry, myGlobal.mySetting.DelayRetry); myGlobal.myTesting.ValidateTemperature = r == true ? "Passed" : "Failed"; if (!r) { goto END; } } //4 - Validate humidity sensor if (myGlobal.myTesting.IsCheckHumidity) { myGlobal.myTesting.ValidateHumidity = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateHumidity = "Failed"; goto END; } } //check humidity sensor r = ProjectTestItem.Is_Sensor_Valid_D <TestingInformation>(myGlobal.myTesting, myGlobal.myTesting.ID, DeviceType.SMH_SMOKE, SensorType.Humidity, myGlobal.mySetting.HumidityValue, myGlobal.mySetting.HumidityAccuracy, comretry, myGlobal.mySetting.DelayRetry); myGlobal.myTesting.ValidateHumidity = r == true ? "Passed" : "Failed"; if (!r) { goto END; } } //5 - Validate smoke sensor if (myGlobal.myTesting.IsCheckSmokeSensor) { myGlobal.myTesting.ValidateSmokeSensor = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateSmokeSensor = "Failed"; goto END; } } //check smoke sensor r = ProjectTestItem.Is_Sensor_Valid_D <TestingInformation>(myGlobal.myTesting, myGlobal.myTesting.ID, DeviceType.SMH_SMOKE, SensorType.Smoke, myGlobal.mySetting.SmokeValue, myGlobal.mySetting.SmokeAccuracy, comretry, myGlobal.mySetting.DelayRetry); myGlobal.myTesting.ValidateSmokeSensor = r == true ? "Passed" : "Failed"; if (!r) { goto END; } } //6 - Validate LED if (myGlobal.myTesting.IsCheckLED) { myGlobal.myTesting.ValidateLED = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateLED = "Failed"; goto END; } } //check led Dispatcher.Invoke(new Action(() => { this.Opacity = 0.5; myGlobal.myTesting.LogSystem += string.Format("\r\n+++ KIỂM TRA LED +++\r\n"); SingleLED window = new SingleLED(myGlobal.myTesting.ID, DeviceType.SMH_SMOKE); window.ShowDialog(); r = window.LedResult == "1"; myGlobal.myTesting.ValidateLED = window.LedResult == "1" ? "Passed" : "Failed"; myGlobal.myTesting.LogSystem += window.LedResult == "1" ? ".........Kết quả: Passed\r\n" : ".........Kết quả: Failed\r\n"; switch (window.LedResult) { case "": { myGlobal.myTesting.LogSystem += ".........Thông tin lỗi: Người thao tác chưa click chọn phán định trạng thái LED.\r\n"; break; } case "1": { break; } case "2": { myGlobal.myTesting.LogSystem += ".........Thông tin lỗi: LED xanh không sáng.\r\n"; break; } case "3": { myGlobal.myTesting.LogSystem += ".........Thông tin lỗi: LED đỏ không sáng.\r\n"; break; } case "4": { myGlobal.myTesting.LogSystem += ".........Thông tin lỗi: Cả 2 LED đều không sáng.\r\n"; break; } } this.Opacity = 1; })); if (!r) { goto END; } } //7 - Validate speaker if (myGlobal.myTesting.IsCheckSpeaker) { myGlobal.myTesting.ValidateSpeaker = "Waiting..."; Thread.Sleep(3000); // //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.ValidateSpeaker = "Failed"; goto END; } } //check speaker Dispatcher.Invoke(new Action(() => { this.Opacity = 0.5; myGlobal.myTesting.LogSystem += string.Format("\r\n+++ KIỂM TRA CÒI BÁO ĐỘNG +++\r\n"); SingleSpeaker window = new SingleSpeaker(myGlobal.myTesting.ID, DeviceType.SMH_SMOKE); window.ShowDialog(); r = window.SpeakerResult == "1"; myGlobal.myTesting.ValidateSpeaker = window.SpeakerResult == "1" ? "Passed" : "Failed"; myGlobal.myTesting.LogSystem += window.SpeakerResult == "1" ? ".........Kết quả: Passed\r\n" : ".........Kết quả: Failed\r\n"; switch (window.SpeakerResult) { case "": { myGlobal.myTesting.LogSystem += ".........Thông tin lỗi: người thao tác chưa click chọn phán định trạng thái còi báo động.\r\n"; break; } case "1": { break; } case "2": { myGlobal.myTesting.LogSystem += ".........Thông tin lỗi: còi báo động không kêu.\r\n"; break; } } this.Opacity = 1; })); if (!r) { goto END; } } //9 - Print the product id label if (myGlobal.myTesting.IsPrintLabel) { myGlobal.myTesting.PrintLabel = "Waiting..."; //check id valid or not r = !string.IsNullOrEmpty(myGlobal.myTesting.ID); if (!r) { myGlobal.myTesting.PrintLabel = "Failed"; goto END; } //print label string id_table_name = "tb_ProductID"; string log_table_name = "tb_DataLog"; string report_name = "ProductID"; TableProductID id_info = new TableProductID() { ProductID = myGlobal.myTesting.ID }; TableDataLog ms_log_info = new TableDataLog() { DateTimeCreated = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), ErrorMessage = "", Factory = "", JigNumber = "", LineCode = "", ProductCode = "", ProductColor = "", ProductID = id_info.ProductID, ProductName = "SMOKE DETECTOR", ProductNumber = "", Station = "PCBA-FUNCTION", Worker = "", WorkOrder = "" }; r = ProjectTestItem.Print_DUT_ID_Labels <TestingInformation, TableProductID, TableDataLog> ( myGlobal.myTesting, myGlobal.myTesting.ID, string.Format("{0}access_db\\{1}", AppDomain.CurrentDomain.BaseDirectory, myGlobal.mySetting.MSAccessFile), id_table_name, id_info, log_table_name, ms_log_info, report_name ); myGlobal.myTesting.PrintLabel = r == true ? "Passed" : "Failed"; if (!r) { goto END; } } //10. Switch firmware to user mode if (myGlobal.myTesting.IsSwitchFirmwareMode) { myGlobal.myTesting.SwitchFirmwareMode = "Waiting..."; //check connection between DUT (module zigbee) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Is_DUT_Connected_To_Client_PC <TestingInformation, SettingInformation>(myGlobal.myTesting, myGlobal.mySetting, comretry); if (!r) { myGlobal.myTesting.SwitchFirmwareMode = "Failed"; goto END; } } //switch firmware to user mode r = ProjectTestItem.Switch_Firmware_To_User_Mode <TestingInformation>(myGlobal.myTesting, myGlobal.myTesting.ID, DeviceType.SMH_SMOKE, "111", 3); myGlobal.myTesting.SwitchFirmwareMode = r == true ? "Passed" : "Failed"; if (!r) { goto END; } } END: st.Stop(); timer_scrollsystemlog.Stop(); myGlobal.myTesting.LogSystem += "\r\n+++ KẾT THÚC KIỂM TRA SẢN PHẨM +++\r\n"; myGlobal.myTesting.LogSystem += string.Format(">>> Tổng thời gian kiểm tra: {0} ms\r\n", String.Format("{0:n0}", st.ElapsedMilliseconds)); myGlobal.myTesting.LogSystem += string.Format(">>> Phán định sản phẩm: {0}\r\n", r == true ? "Passed" : "Failed"); bool ___ = r == true?myGlobal.myTesting.initPassed() : myGlobal.myTesting.initFailed(); myGlobal.myTesting.StartButtonContent = "START"; //close device under test if (ProjectTestItem.DUT != null && ProjectTestItem.DUT.IsConnected == true) { ProjectTestItem.DUT.Close(); } //save log string logdir = string.Format("{0}log", AppDomain.CurrentDomain.BaseDirectory); if (!Directory.Exists(logdir)) { Directory.CreateDirectory(logdir); Thread.Sleep(100); } string pddir = string.Format("{0}\\smokedetector", logdir); if (!Directory.Exists(pddir)) { Directory.CreateDirectory(pddir); Thread.Sleep(100); } string stdir = string.Format("{0}\\pcba", pddir); if (!Directory.Exists(stdir)) { Directory.CreateDirectory(stdir); Thread.Sleep(100); } string lgsingle = string.Format("{0}\\logsingle", stdir); if (!Directory.Exists(lgsingle)) { Directory.CreateDirectory(lgsingle); Thread.Sleep(100); } string lgtotal = string.Format("{0}\\logtotal", stdir); if (!Directory.Exists(lgtotal)) { Directory.CreateDirectory(lgtotal); Thread.Sleep(100); } //log single string dedir = string.Format("{0}\\{1}", lgsingle, DateTime.Now.ToString("yyyyMMdd")); if (!Directory.Exists(dedir)) { Directory.CreateDirectory(dedir); Thread.Sleep(100); } string file = string.Format("{0}\\{1}_{2}_{3}_{4}.txt", dedir, DateTime.Now.ToString("yyyyMMdd"), DateTime.Now.ToString("HHmmss"), string.IsNullOrEmpty(myGlobal.myTesting.ID) ? "NULL" : myGlobal.myTesting.ID, myGlobal.myTesting.TotalResult); StreamWriter sw = new StreamWriter(file, true, Encoding.Unicode); sw.WriteLine(myGlobal.myTesting.LogSystem); sw.Close(); //log total string _title = "DateTimeCreate,ID,ConRF,TransRF,Temperature,Humidity,Smoke,LED,Speaker,PrintLabel,SwitchFW,Total"; string _content = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), myGlobal.myTesting.ID, myGlobal.myTesting.ValidateConnection, myGlobal.myTesting.ValidateTransmission, myGlobal.myTesting.ValidateTemperature, myGlobal.myTesting.ValidateHumidity, myGlobal.myTesting.ValidateSmokeSensor, myGlobal.myTesting.ValidateLED, myGlobal.myTesting.ValidateSpeaker, myGlobal.myTesting.PrintLabel, myGlobal.myTesting.SwitchFirmwareMode, myGlobal.myTesting.TotalResult); string ft = string.Format("{0}\\{1}.csv", lgtotal, DateTime.Now.ToString("yyyyMMdd")); if (!File.Exists(ft)) { sw = new StreamWriter(ft, true, Encoding.Unicode); sw.WriteLine(_title); } else { sw = new StreamWriter(ft, true, Encoding.Unicode); } sw.WriteLine(_content); sw.Close(); }
private void Button_Click(object sender, RoutedEventArgs e) { Button b = sender as Button; string _tag = b.Tag.ToString(); bool r = false; switch (_tag) { case "test_temperature": { myTesting.ValidateTemperature = "Waiting..."; //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidateTemperature = "Failed"; return; } } //check temperature sensor double sensor_value = 0; r = ProjectTestItem.Is_Sensor_Valid_D <TestingInformation>(myTesting, myTesting.FID, myTesting.FdeviceType, SensorType.Temperature, myTesting.TemperatureValue, myTesting.TemperatureAccuracy, commonRetry, delayRetry, out sensor_value); myTesting.TemperatureActual = sensor_value.ToString(); myTesting.ValidateTemperature = r == true ? "Passed" : "Failed"; break; } case "test_humidity": { myTesting.ValidateHumidity = "Waiting..."; //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidateHumidity = "Failed"; return; } } //check humidity sensor double sensor_value = 0; r = ProjectTestItem.Is_Sensor_Valid_D <TestingInformation>(myTesting, myTesting.FID, myTesting.FdeviceType, SensorType.Humidity, myTesting.HumidityValue, myTesting.HumidityAccuracy, commonRetry, delayRetry, out sensor_value); myTesting.HumidityActual = sensor_value.ToString(); myTesting.ValidateHumidity = r == true ? "Passed" : "Failed"; break; } case "test_ppm": { myTesting.ValidatePPM = "Waiting..."; //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidatePPM = "Failed"; return; } } //check ppm sensor SensorType sensor = SensorType.CO; switch (myTesting.FdeviceType) { case DeviceType.SMH_CO: { sensor = SensorType.CO; break; } case DeviceType.SMH_GAS: { sensor = SensorType.GAS; break; } case DeviceType.SMH_SMOKE: { sensor = SensorType.Smoke; break; } } r = ProjectTestItem.Is_Sensor_Valid_D <TestingInformation>(myTesting, myTesting.FID, myTesting.FdeviceType, sensor, myTesting.PPMValue, myTesting.PPMAccuracy, commonRetry, delayRetry); myTesting.ValidatePPM = r == true ? "Passed" : "Failed"; break; } case "test_usermode": { myTesting.SwitchFirmwareMode = "Waiting..."; //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.SwitchFirmwareMode = "Failed"; return; } } //switch firmware to user mode r = ProjectTestItem.Switch_Firmware_To_User_Mode <TestingInformation>(myTesting, myTesting.FID, myTesting.FdeviceType, myTesting.FirmwareModeValue, commonRetry); myTesting.SwitchFirmwareMode = r == true ? "Passed" : "Failed"; break; } case "led_on": { //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidateLED = "Failed"; return; } } //set led on try { string cmd = string.Format("CHECK,{0},{1},Led_Green_On!", myTesting.FID, myTesting.FdeviceType.ToString().ToUpper()); ProjectTestItem.DUT.WriteLine(cmd); Thread.Sleep(500); this.cbb_LED.IsEnabled = true; } catch { } break; } case "led_off": { //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidateLED = "Failed"; return; } } //set led off try { string cmd = string.Format("CHECK,{0},{1},Led_Red_On!", myTesting.FID, myTesting.FdeviceType.ToString().ToUpper()); ProjectTestItem.DUT.WriteLine(cmd); Thread.Sleep(500); } catch { } break; } case "speaker_on": { //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidateSpeaker = "Failed"; return; } } //set speaker on try { string cmd = string.Format("CHECK,{0},{1},Test_Buzzer_On!", myTesting.FID, myTesting.FdeviceType.ToString().ToUpper()); ProjectTestItem.DUT.WriteLine(cmd); Thread.Sleep(500); this.cbb_Speaker.IsEnabled = true; } catch { } break; } case "speaker_off": { //check connection between DUT (usb dongle) vs PC if (ProjectTestItem.DUT == null || ProjectTestItem.DUT.IsConnected == false) { r = ProjectTestItem.Open_Device_USB_Dongle(myTesting, settinginfo, commonRetry); if (!r) { myTesting.ValidateSpeaker = "Failed"; return; } } //set speaker off try { string cmd = string.Format("CHECK,{0},{1},Test_Buzzer_Off!", myTesting.FID, myTesting.FdeviceType.ToString().ToUpper()); ProjectTestItem.DUT.WriteLine(cmd); Thread.Sleep(500); } catch { } break; } default: break; } }