private void TestingWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { var status = e.UserState as TestingWorkerSender; worker = status; StatusRefresh(status); }
public TestingInfoWindow(TestingWorkerSender sender) { InitializeComponent(); IsUsb = false; MeasurementItemsListBox.ItemsSource = sender.GetList(); testingTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); }
public WindowTesting(string transformerSerialNo, string jobName, JobInformation job, int testID = -1, bool istcp = false) { InitializeComponent(); Started = false; this.DataContext = this; currentJob = WorkingSets.local.getJob(transformerSerialNo, jobName); TestingWorker = new BackgroundWorker(); TestingWorker.WorkerReportsProgress = true; TestingWorker.WorkerSupportsCancellation = true; TestingWorker.DoWork += TestingWorker_DoWork; TestingWorker.ProgressChanged += TestingWorker_ProgressChanged; TestingWorker.RunWorkerCompleted += TestingWorker_RunWorkerCompleted; if (testID < 0) { worker = new TestingWorkerSender() { Transformer = currentJob.Transformer, job = currentJob, MeasurementItems = Translator.JobList2MeasurementItems(currentJob).ToArray(), CurrentItemIndex = 0, ProgressPercent = 0 } } ; else { worker = TestingWorkerSender.FromDatabaseRows(testID); } StatusRefresh(worker); if (istcp) { currentJob.Information = job; } else { TestingInfoWindow testingInfoWindow = new TestingInfoWindow(worker); if (testingInfoWindow.ShowDialog() != true) { // currentJob.Information = testingInfoWindow.Information; inited = false; } else { currentJob.Information = testingInfoWindow.Information; var a = currentJob.Information.GetHashCode(); worker.job = currentJob; inited = true; } } SetgroupboxVisible(Whichgroupbox.READY); }
public static void DoWork(ref TestingWorkerSender sender) { MeasurementInterface.DoWork(ref sender); if ((sender.MeasurementItems[sender.CurrentItemIndex].completed) && (!sender.MeasurementItems[sender.CurrentItemIndex].failed)) { //WorkingSets.local.refreshTestResults(); int ft = (int)sender.MeasurementItems[sender.CurrentItemIndex].Function; if ((ft > 0) && (ft < 10)) { WorkingSets.local.TestResults.Rows.Add(sender.MeasurementItems[sender.CurrentItemIndex].ToDataRow(sender.job)); } WorkingSets.local.saveTestResults(); sender.CurrentItemIndex++; } }
private bool reDoMark(TestingWorkerSender status) { bool?ret = null; Application.Current.Dispatcher.Invoke(() => { ret = UMessageBox.Show("提示", "试验已经结束,\t\n是否重做标记的试验", "结束试验,不重做", firstButtonVisible: true, firstButtonMessage: "立即重做标记试验"); }); if (ret != null && !(bool)ret) { status.CurrentItemIndex = 0; return(true); } return(false); }
private void StatusRefresh(TestingWorkerSender status) { WorkingStatusLabel.Text = status.StatusText; int itemIndex = TestItemListBox.SelectedIndex; TestItemListBox.ItemsSource = status.GetList(); ResultListBox.ItemsSource = TestingWorkerUtility.getFinalResultsText(status); if (itemIndex < TestItemListBox.Items.Count) { TestItemListBox.SelectedIndex = itemIndex; } progressBar.Value = status.ProgressPercent; RemainingTestNumLabel.Text = status.RemainingItemsCount.ToString(); WorkingSets.local.status = status; GC.Collect(); }
public WindowTesting(string transformerSerialNo, string jobName, int testID = -1) { InitializeComponent(); currentJob = WorkingSets.local.getJob(transformerSerialNo, jobName); TestingWorker = new BackgroundWorker(); TestingWorker.WorkerReportsProgress = true; TestingWorker.WorkerSupportsCancellation = true; TestingWorker.DoWork += TestingWorker_DoWork; TestingWorker.ProgressChanged += TestingWorker_ProgressChanged; TestingWorker.RunWorkerCompleted += TestingWorker_RunWorkerCompleted; if (testID < 0) { worker = new TestingWorkerSender() { Transformer = currentJob.Transformer, job = currentJob, MeasurementItems = Translator.JobList2MeasurementItems(currentJob).ToArray(), CurrentItemIndex = 0, ProgressPercent = 0 } } ; else { worker = TestingWorkerSender.FromDatabaseRows(testID); } StatusRefresh(worker); TestingInfoWindow testingInfoWindow = new TestingInfoWindow(worker); if (testingInfoWindow.ShowDialog() != true) { inited = false; } currentJob.Information = testingInfoWindow.Information; worker.job = currentJob; inited = true; }
public static bool CancelWork(ref TestingWorkerSender sender) { return(MeasurementInterface.CancelWork(ref sender)); }
public static void DoWork(ref TestingWorkerSender sender) { MeasurementInterface.DoWork(ref sender); //只有完成才会进去下一相 if ((sender.MeasurementItems[sender.CurrentItemIndex].completed) && (!sender.MeasurementItems[sender.CurrentItemIndex].failed) && !sender.MeasurementItems[sender.CurrentItemIndex].redo) { //WorkingSets.local.refreshTestResults(); int ft = (int)sender.MeasurementItems[sender.CurrentItemIndex].Function; if ((ft > 0) && (ft < 10)) { WorkingSets.local.TestResults.Rows.Add(sender.MeasurementItems[sender.CurrentItemIndex].ToDataRowAddIndex(sender)); } WorkingSets.local.saveTestResults(); if (sender.MeasurementItems.Length != (sender.CurrentItemIndex + 1) && string.IsNullOrEmpty(sender.MeasurementItems[sender.CurrentItemIndex].needSwitchTapNum)) { sender.CurrentItemIndex++; } } if ((sender.MeasurementItems[sender.CurrentItemIndex].completed) && (sender.MeasurementItems[sender.CurrentItemIndex].failed) && !sender.MeasurementItems[sender.CurrentItemIndex].redo) { int ft = (int)sender.MeasurementItems[sender.CurrentItemIndex].Function; if ((ft > 0) && (ft < 10)) { WorkingSets.local.TestResults.Rows.Add(sender.MeasurementItems[sender.CurrentItemIndex].ToDataRowAddIndex(sender)); } WorkingSets.local.saveTestResults(); } if ((sender.MeasurementItems[sender.CurrentItemIndex].completed) && sender.MeasurementItems[sender.CurrentItemIndex].redo) { List <DataRow> thisJobRows = new List <DataRow>(); foreach (DataRow row in WorkingSets.local.TestResults.Rows) { if (sender.job.Information.GetHashCode() == (int)row["testid"] && (int)sender.MeasurementItems[sender.CurrentItemIndex].Function == (int)row["function"]) { if (sender.CurrentItemIndex == (int)row["testjobindex"]) { thisJobRows.Add(row); } } } foreach (var item in thisJobRows) { WorkingSets.local.TestResults.Rows.Remove(item); } WorkingSets.local.TestResults.Rows.Add(sender.MeasurementItems[sender.CurrentItemIndex].ToDataRowAddIndex(sender)); sender.MeasurementItems[sender.CurrentItemIndex].redo = false; WorkingSets.local.refreshTestResults(); WorkingSets.local.saveTestResults(); } int id = sender.Transformer.ID; int jobid = sender.job.id; int code = sender.job.Information.GetHashCode(); string tname = sender.job.Information.testingName; WSCoreInsu wsc = null; WSLeakCur wsl = null; WSShortImp wss = null; if (sender.MeasurementItems[sender.CurrentItemIndex].Function == MeasurementFunction.Coreinsulation) { Application.Current.Dispatcher.Invoke(() => { wsc = new WSCoreInsu(id, jobid, code, tname); wsc.ShowDialog(); }); if (wsc != null) { if (wsc.Confire) { sender.MeasurementItems[sender.CurrentItemIndex].completed = true; sender.MeasurementItems[sender.CurrentItemIndex].failed = false; } else { sender.MeasurementItems[sender.CurrentItemIndex].completed = true; sender.MeasurementItems[sender.CurrentItemIndex].failed = true; } } } if (sender.MeasurementItems[sender.CurrentItemIndex].Function == MeasurementFunction.Leakagecurrent) { Application.Current.Dispatcher.Invoke(() => { wsl = new WSLeakCur(id, jobid, code, tname); wsl.ShowDialog(); }); if (wsl != null) { if (wsl.Confire) { sender.MeasurementItems[sender.CurrentItemIndex].completed = true; sender.MeasurementItems[sender.CurrentItemIndex].failed = false; } else { sender.MeasurementItems[sender.CurrentItemIndex].completed = true; sender.MeasurementItems[sender.CurrentItemIndex].failed = true; } } } if (sender.MeasurementItems[sender.CurrentItemIndex].Function == MeasurementFunction.Shortcircuitimpedance) { Application.Current.Dispatcher.Invoke(() => { wss = new WSShortImp(id, jobid, code, tname); wss.ShowDialog(); }); if (wss != null) { if (wss.Confire) { sender.MeasurementItems[sender.CurrentItemIndex].completed = true; sender.MeasurementItems[sender.CurrentItemIndex].failed = false; } else { sender.MeasurementItems[sender.CurrentItemIndex].completed = true; sender.MeasurementItems[sender.CurrentItemIndex].failed = true; } } } }
private void WindowTesting_Outstata(TestingWorkerSender stata) { //throw new NotImplementedException(); }
private void StatusRefresh(TestingWorkerSender status) { if (WorkingSets.local.IsVisible == true && WorkingSets.local.IsVisible1 == true) { Application.Current.Dispatcher.Invoke(() => { ConfireIsOk.Visibility = Visibility; }); } WorkingStatusLabel.Text = status.StatusText; int itemIndex = TestItemListBox.SelectedIndex; TestItemListBox.ItemsSource = status.GetList(); ResultListBox.ItemsSource = TestingWorkerUtility.getFinalResultsText(status); if (itemIndex < TestItemListBox.Items.Count) { TestItemListBox.SelectedIndex = itemIndex; } if (status.MeasurementItems[status.CurrentItemIndex].Result != null && status.MeasurementItems[status.CurrentItemIndex].Result.values != null) { if (status.MeasurementItems[status.CurrentItemIndex].Function == MeasurementFunction.DCResistance) { SetgroupboxVisible(Whichgroupbox.DCR); WindingTerimal[] terminal = status.MeasurementItems[status.CurrentItemIndex].Terimal; var testResult = status.MeasurementItems[status.CurrentItemIndex].Result.values; if (terminal == null) { if (threeDcr.Visibility != Visibility.Visible) { threeDcr.Visibility = Visibility.Visible; signalDcr.Visibility = Visibility.Hidden; } else { threeDcr.Visibility = Visibility.Visible; signalDcr.Visibility = Visibility.Hidden; } if (testResult != null) { threeDcr.ThreeResistanceValue = testResult; } } else { if (signalDcr.Visibility != Visibility.Visible) { threeDcr.Visibility = Visibility.Hidden; signalDcr.Visibility = Visibility.Visible; } if (terminal[0] == WindingTerimal.A) { signalDcr.location = new Tuple <string, string>("A相电流", "A相电阻"); signalDcr.SignalValue = new PhysicalVariable[] { testResult[1], testResult[2] }; } else if (terminal[0] == WindingTerimal.B) { signalDcr.location = new Tuple <string, string>("B相电流", "B相电阻"); signalDcr.SignalValue = new PhysicalVariable[] { testResult[4], testResult[5] }; } else { signalDcr.location = new Tuple <string, string>("C相电流", "C相电阻"); signalDcr.SignalValue = new PhysicalVariable[] { testResult[7], testResult[8] }; } } } if (status.MeasurementItems[status.CurrentItemIndex].Function == MeasurementFunction.DCInsulation || status.MeasurementItems[status.CurrentItemIndex].Function == MeasurementFunction.BushingDCInsulation) { SetgroupboxVisible(Whichgroupbox.DCI); var testResult = status.MeasurementItems[status.CurrentItemIndex].Result.values; if (testResult != null) { DciRe.SignalValue = new PhysicalVariable[] { testResult[0], testResult[1] }; } } if (status.MeasurementItems[status.CurrentItemIndex].Function == MeasurementFunction.Capacitance || status.MeasurementItems[status.CurrentItemIndex].Function == MeasurementFunction.BushingCapacitance) { SetgroupboxVisible(Whichgroupbox.CAP); var testResult = status.MeasurementItems[status.CurrentItemIndex].Result.values; if (testResult != null && testResult[1] != null && testResult[1].value != null) { Capui.tuple = new Tuple <string, string>("电压(kV)", testResult[1].OriginText); Capui.NextValue = (double)(testResult[1].value / 1000); } } if (status.MeasurementItems[status.CurrentItemIndex].Function == MeasurementFunction.OLTCSwitchingCharacter) { var testResult = status.MeasurementItems[status.CurrentItemIndex].Result.values; if (!WorkingSets.local.TestDCI) { SetgroupboxVisible(Whichgroupbox.OLTC); WorkingSets.local.TestDCI = true; } if (testResult != null) { Oltcui.ThreeResistanceValue = testResult; } if (status.MeasurementItems[status.CurrentItemIndex].Result.waves != null) { if (!WorkingSets.local.Testwave) { SetgroupboxVisible(Whichgroupbox.NONE); threechart.shortWave = status.MeasurementItems[status.CurrentItemIndex].Result.waves; WorkingSets.local.Testwave = true; } } } } progressBar.Value = status.ProgressPercent; RemainingTestNumLabel.Text = status.RemainingItemsCount.ToString(); WorkingSets.local.status = status; GC.Collect(); }
private void showMassege(TestingWorkerSender status) { Application.Current.Dispatcher.Invoke(() => { MeasurementItemStruct preFunction = null; if (status.CurrentItemIndex >= 1) { preFunction = status.MeasurementItems[status.CurrentItemIndex - 1]; } var temp = status.MeasurementItems[status.CurrentItemIndex]; if (temp.Function == MeasurementFunction.Description && !string.IsNullOrEmpty(temp.needSwitchTapNum)) { var ret = UMessageBox.Show("提示", "该步骤需要人工完成\t\n" + "请将有载分接开关切换到(分接" + temp.needSwitchTapNum + ")位置", "确定", false); if ((bool)ret) { var confireRet = UMessageBox.Show("提示", "确认已经切换至" + temp.needSwitchTapNum + "位置。\t\n立即进入试验?", "确定", false); if ((bool)confireRet) { status.CurrentItemIndex++; } } } //if (temp.Function == MeasurementFunction.DCResistance && temp.TapLabel != null && !status.MeasurementItems[status.CurrentItemIndex].completed == true) //{ // if (preFunction != null && preFunction.Function == MeasurementFunction.Description && !string.IsNullOrEmpty(preFunction.needSwitchTapNum)) // { // //如果前一个是已经弹出提示的 就不需要在此弹出提示 // } // else // { // var ret = UMessageBox.Show("提示", "该步骤需要人工完成\t\n" + "请将有载分接开关切换到(分接" + temp.needSwitchTapNum + ")位置", "确定", false); // if ((bool)ret) // { // UMessageBox.Show("提示", "确认已经切换至" + temp.needSwitchTapNum + "位置。\t\n立即进入试验?", "确定", false); // } // } //} if (status.MeasurementItems[status.CurrentItemIndex].failed && status.MeasurementItems[status.CurrentItemIndex].completed == true) { var ret = UMessageBox.Show("警告", "试验出错\t\n" + status.StatusText, "跳过"); if (!(bool)ret) { //重做 status.MeasurementItems[status.CurrentItemIndex].failed = false; status.MeasurementItems[status.CurrentItemIndex].completed = false; status.MeasurementItems[status.CurrentItemIndex].state = 0; status.MeasurementItems[status.CurrentItemIndex].redo = true; if (status.CurrentItemIndex > 0) { status.CurrentItemIndex--; } TestFunction.TZ3310.CommunicationQuery(0x00); } else { status.MeasurementItems[status.CurrentItemIndex].failed = true; status.MeasurementItems[status.CurrentItemIndex].completed = true; if (status.MeasurementItems.Length != status.CurrentItemIndex + 1) { status.CurrentItemIndex++; } TestFunction.TZ3310.CommunicationQuery(0x00); } } }); }