Example #1
0
        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");
 }
Example #3
0
        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);
        }
Example #4
0
 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++;
     }
 }
Example #5
0
        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);
        }
Example #6
0
        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();
        }
Example #7
0
        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;
        }
Example #8
0
 public static bool CancelWork(ref TestingWorkerSender sender)
 {
     return(MeasurementInterface.CancelWork(ref sender));
 }
Example #9
0
        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;
                    }
                }
            }
        }
Example #10
0
 private void WindowTesting_Outstata(TestingWorkerSender stata)
 {
     //throw new NotImplementedException();
 }
Example #11
0
        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();
        }
Example #12
0
 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);
             }
         }
     });
 }