示例#1
0
 private void Keyb_OutCnData(string cn)
 {
     if (ISHAVEDY)
     {
         if (!ISHAVEVOLATE)
         {
             string[] a = mv.ListboxItemsources.ToArray();
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             mv.ListboxItemsources.Add("待测电压  :" + need);
             mv.ListboxItemsources.Add(a[a.Length - 1]);
         }
         else
         {
             string[] a = mv.ListboxItemsources.ToArray();
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             mv.ListboxItemsources.Add("待测电压  :" + need);
             mv.ListboxItemsources.Add(a[a.Length - 2]);
             mv.ListboxItemsources.Add(a[a.Length - 1]);
         }
     }
     else
     {
         PhysicalVariable need = NumericsConverter.Text2Value(cn);
         mv.ListboxItemsources.Add("待测电压  :" + need);
     }
 }
示例#2
0
 // private bool ISHAVEVOLATE = false;
 private void Keyb_OutDYData(string cn)
 {
     if (!ISHAVEDY)
     {
         PhysicalVariable need = NumericsConverter.Text2Value(cn);
         mv.ListboxItemsources.Add("待测电晕  :" + need);
         ISHAVEDY = true;
     }
     else
     {
         if (ISHAVEVOLATE)
         {
             string[] b = mv.ListboxItemsources.ToArray();
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             mv.ListboxItemsources.Add("待测电晕  :" + need);
             mv.ListboxItemsources.Add(b[b.Length - 1]);
         }
         else
         {
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             mv.ListboxItemsources.Add("待测电晕  :" + need);
         }
     }
 }
示例#3
0
 private void Keyb_OutVolateData(string cn)
 {
     if (ISHAVEDY)
     {
         if (!ISHAVEVOLATE)
         {
             if (time.Text == "")
             {
                 time.Text = "60";
             }
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             mv.ListboxItemsources.Add("持续时间  :" + time.Text + ":" + "  耐    压:" + need);
             ISHAVEVOLATE = true;
         }
         else
         {
             if (time.Text == "")
             {
                 time.Text = "60";
             }
             mv.ListboxItemsources.RemoveAt(mv.ListboxItemsources.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             mv.ListboxItemsources.Add("持续时间  :" + time.Text + ":" + "耐   压 :" + need);
         }
     }
 }
示例#4
0
        private void Keyb_OutCnTanData(string cntan)
        {
            CnTanButton.Content = cntan;
            PhysicalVariable need = NumericsConverter.Text2Value(cntan);

            Models.AutoStateStatic.SState.AGn = need;
        }
示例#5
0
        private static Models.SysAutoTestResult GetSys(ObservableCollection <string> ListboxItemsources)
        {
            //  Models.AutoStateStatic.SState.Clear();
            Models.SysAutoTestResult sys = new Models.SysAutoTestResult();
            var tpd = ListboxItemsources.ToArray();

            for (int i = 0; i < tpd.Length - 2; i++)
            {
                string[] Usedata = tpd[i].Split(':');
                if (Usedata.Length == 2)
                {
                    //  Usedata[i] = Usedata[i].Trim();
                    sys.NeedTestList.Add((float)NumericsConverter.Text2Value(StaticClass.DeleteSpace(Usedata[1])).value);
                }
            }
            string[] Usedata1 = tpd[tpd.Length - 2].Split(':');
            sys.IsEleY   = true;
            sys.IsVolate = true;
            sys.EleY     = (float)NumericsConverter.Text2Value(StaticClass.DeleteSpace(Usedata1[1])).value;
            string[] p = tpd[tpd.Length - 1].Split(':');
            sys.EleVolate = (float)NumericsConverter.Text2Value(StaticClass.DeleteSpace(p[3])).value;
            try
            {
                sys.HideTime = Convert.ToInt32(StaticClass.DeleteSpace(p[1]));
            }
            catch
            {
                sys.HideTime = 60;
                // ShowHide("键入的耐压保持时间格式错误" + "\t\n" + "以设置为默认60S");
            }

            return(sys);
        }
 private void Keyb_OutCnData(string cn)
 {
     if (ISHAVEDY)
     {
         if (!ISHAVEVOLATE)
         {
             string[] a = (this.DataContext as MainWindowModel).ProjectVolate.ToArray();
             (this.DataContext as MainWindowModel).ProjectVolate.RemoveAt((this.DataContext as MainWindowModel).ProjectVolate.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             (this.DataContext as MainWindowModel).ProjectVolate.Add("待测电压  :" + need);
             (this.DataContext as MainWindowModel).ProjectVolate.Add(a[a.Length - 1]);
         }
         else
         {
             string[] a = (this.DataContext as MainWindowModel).ProjectVolate.ToArray();
             (this.DataContext as MainWindowModel).ProjectVolate.RemoveAt((this.DataContext as MainWindowModel).ProjectVolate.Count - 1);
             (this.DataContext as MainWindowModel).ProjectVolate.RemoveAt((this.DataContext as MainWindowModel).ProjectVolate.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             (this.DataContext as MainWindowModel).ProjectVolate.Add("待测电压  :" + need);
             (this.DataContext as MainWindowModel).ProjectVolate.Add(a[a.Length - 2]);
             (this.DataContext as MainWindowModel).ProjectVolate.Add(a[a.Length - 1]);
         }
     }
     else
     {
         PhysicalVariable need = NumericsConverter.Text2Value(cn);
         (this.DataContext as MainWindowModel).ProjectVolate.Add("待测电压  :" + need);
     }
 }
示例#7
0
 private void pF_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         int a = System.Text.RegularExpressions.Regex.Matches(ResultTextBox.Text, @"V").Count;
         if (a == 0)
         {
             ResultTextBox.Text += "V";
         }
         PhysicalVariable tpd = NumericsConverter.Text2Value(ResultTextBox.Text);
         if (Flag == 1)
         {
             OutCnData(NumericsConverter.Value2Text((double)tpd.value, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Voltage));
         }
         if (Flag == 2)
         {
             OutVolateData(NumericsConverter.Value2Text((double)tpd.value, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Voltage));
         }
         if (Flag == 3)
         {
             OutDYData(NumericsConverter.Value2Text((double)tpd.value, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Voltage));
         }
         if (Flag == 4)
         {
             OutProjectVolate(NumericsConverter.Value2Text((double)tpd.value, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Voltage));
         }
         this.Close();
     }
     catch
     {
         ShowHide("输出数据格式出错");
     }
 }
示例#8
0
        private void Confire_click(object sender, RoutedEventArgs e)
        {
            PhysicalVariable tpd = NumericsConverter.Text2Value(ResultTextBox.Text);

            //  NumericsConverter.Value2Text(tpd,4,percentage:true);
            OutCnTanData(NumericsConverter.Value2Text(tpd, percentage: true));
            this.Close();
        }
示例#9
0
        public static void BushingDCInsulation(ref MeasurementItemStruct mi, Transformer transformer, JobList Job)
        {
            Parameter.JYDZstation position;
            if (mi.Winding == WindingType.HV)
            {
                position = Parameter.JYDZstation.高压套管A + (((int)mi.Terimal[0] + 3) % 4);
            }
            else
            {
                position = Parameter.JYDZstation.中压套管A + (((int)mi.Terimal[0] + 3) % 4);
            }
            switch (mi.state)
            {
            case 0:
                byte[] TestKindData = TZ3310.SetPraJydz(position, GetParameter.GetPraBushingDCInsulationVoltage(Job), 50, GetParameter.GetPraDCInsulationResistance(Job), GetParameter.GetPraDCInsulationAbsorptionRatio(Job), 0);
                Thread.Sleep(100);
                TZ3310.StartTest(TestKindData);
                mi.stateText = "正在测试" + position.ToString() + "末屏中...";
                mi.state++;
                Thread.Sleep(4000);
                break;

            case 1:
                string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.绝缘电阻);
                Thread.Sleep(150);

                if (Recbuffer != null)
                {
                    PhysicalVariable[] Volate = new PhysicalVariable[1];

                    if (Recbuffer[Recbuffer.Length - 1] == "0")
                    {
                        mi.Result = MeasurementResult.NewBushingDCInsulationResult(mi, NumericsConverter.Text2Value(Recbuffer[0]), NumericsConverter.Text2Value(Recbuffer[1]),
                                                                                   NumericsConverter.Text2Value(Recbuffer[2]), null, false);
                    }
                    else if (Recbuffer[Recbuffer.Length - 1] == "1")
                    {
                        mi.Result = MeasurementResult.NewBushingDCInsulationResult(mi, Volate[0], NumericsConverter.Text2Value(Recbuffer[0]),
                                                                                   NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[2]), true);
                        mi.state++;
                        mi.completed = true;
                        mi.stateText = position.ToString() + "末屏测试完成";
                    }
                    else
                    {
                        mi.failed    = true;
                        mi.completed = true;
                        mi.stateText = mi.Winding + "错误类型:" + Recbuffer[0];
                    }
                }
                break;
            }
        }
示例#10
0
        public static void Capacitance(ref MeasurementItemStruct mi, Transformer transformer, JobList Job)
        {
            switch (mi.state)
            {
            case 0:
                byte[] TestKindData;
                if (!transformer.Coupling || mi.Winding == WindingType.LV)
                {
                    TestKindData = TZ3310.SetPraJs(mi.Winding.ToJSstation(), Parameter.JSstyle.内接反接,
                                                   GetParameter.GetPraCapacitanceVoltage(Job), Parameter.JSFrequency._45To_55HZ, 0);
                }
                else
                {
                    TestKindData = TZ3310.SetPraJs(Parameter.JSstation.高中绕组, Parameter.JSstyle.内接反接,
                                                   GetParameter.GetPraCapacitanceVoltage(Job), Parameter.JSFrequency._45To_55HZ, 0);
                }
                Thread.Sleep(100);
                TZ3310.StartTest(TestKindData);
                mi.stateText = "正在测试" + mi.Winding + "介损绕组中...";
                mi.state++;
                Thread.Sleep(4000);
                break;

            case 1:
                string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.介质损耗);
                Thread.Sleep(150);
                if (Recbuffer != null)
                {
                    if (Recbuffer[Recbuffer.Length - 1] == "0")
                    {
                        mi.Result = MeasurementResult.NewCapacitanceResult(mi, NumericsConverter.Text2Value(Recbuffer[1]), null, null
                                                                           , NumericsConverter.Text2Value(Recbuffer[2]), NumericsConverter.Text2Value(Recbuffer[3]), false);
                    }
                    else if (Recbuffer[Recbuffer.Length - 1] == "1")
                    {
                        mi.Result = MeasurementResult.NewCapacitanceResult(mi, NumericsConverter.Text2Value(Recbuffer[0]),
                                                                           NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[2])
                                                                           , NumericsConverter.Text2Value(GetParameter.GetFreQuency(Parameter.JSFrequency._45To_55HZ)), NumericsConverter.Text2Value(Recbuffer[3]), true);
                        mi.completed = true;
                        mi.stateText = "读取" + mi.Winding + "绕组介损测试成功";
                    }
                    else
                    {
                        mi.failed    = true;
                        mi.completed = true;
                        mi.stateText = mi.Winding + "错误类型为:" + Recbuffer[0].ToString();
                    }
                }
                break;
            }
        }
示例#11
0
        public static void DoDCInsulation(ref MeasurementItemStruct mi, Transformer transformer, JobList Job)
        {
            switch (mi.state)
            {
            case 0:
                byte[] TestKindData;
                if (!transformer.Coupling || mi.Winding == WindingType.LV)
                {
                    TestKindData = TZ3310.SetPraJydz(mi.Winding.ToJYDZstation(), GetParameter.GetPraDCInsulationVoltage(Job), 50, GetParameter.GetPraDCInsulationResistance(Job), GetParameter.GetPraDCInsulationAbsorptionRatio(Job), 0);
                }
                else
                {
                    TestKindData = TZ3310.SetPraJydz(Parameter.JYDZstation.高中绕组, GetParameter.GetPraDCInsulationVoltage(Job), 50, GetParameter.GetPraDCInsulationResistance(Job), GetParameter.GetPraDCInsulationAbsorptionRatio(Job), 0);
                }
                Thread.Sleep(100);
                TZ3310.StartTest(TestKindData);
                mi.stateText = "开始测量" + mi.Winding + "绝缘电阻中...";
                mi.state++;
                Thread.Sleep(4000);
                break;

            case 1:
                string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.绝缘电阻);
                if (Recbuffer != null)
                {
                    PhysicalVariable[] Volate = new PhysicalVariable[1];
                    if (Recbuffer[Recbuffer.Length - 1] == "0")
                    {
                        mi.Result = MeasurementResult.NewDCInsulationResult(mi, NumericsConverter.Text2Value(Recbuffer[0]), NumericsConverter.Text2Value(Recbuffer[1]),
                                                                            NumericsConverter.Text2Value(Recbuffer[2]), null, false);
                        Volate[0] = NumericsConverter.Text2Value(Recbuffer[0]);
                    }

                    else if (Recbuffer[Recbuffer.Length - 1] == "1")
                    {
                        mi.Result = MeasurementResult.NewDCInsulationResult(mi, Volate[0], NumericsConverter.Text2Value(Recbuffer[0]),
                                                                            NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[2]), true);
                        mi.completed = true;
                        mi.stateText = "读取" + mi.Winding + "绝缘电阻结果成功";
                    }
                    else
                    {
                        mi.failed    = true;
                        mi.completed = true;
                        mi.stateText = mi.Winding + "错误类型:" + Recbuffer[0];
                    }
                }
                break;
            }
        }
示例#12
0
        public static void BushingCapacitance(ref MeasurementItemStruct mi, Transformer transformer, JobList Job)
        {
            Parameter.JSstation Jsposition;
            if (mi.Winding == WindingType.HV)
            {
                Jsposition = Parameter.JSstation.高压套管A + (((int)mi.Terimal[0] + 3) % 4);
            }
            else
            {
                Jsposition = Parameter.JSstation.中压套管A + (((int)mi.Terimal[0] + 3) % 4);
            }
            switch (mi.state)
            {
            case 0:
                byte[] TestKindData = TZ3310.SetPraJs(Jsposition, Parameter.JSstyle.内接正接, GetParameter.GetPraCapacitanceVoltage(Job), Parameter.JSFrequency._45To_55HZ, 0);
                Thread.Sleep(100);
                TZ3310.StartTest(TestKindData);
                mi.stateText = "正在测试" + mi.Winding + "末屏中...";
                mi.state++;
                Thread.Sleep(4000);
                break;

            case 1:
                string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.介质损耗);
                if (Recbuffer != null)
                {
                    if (Recbuffer[Recbuffer.Length - 1] == "0")
                    {
                        mi.Result = MeasurementResult.NewBushingCapacitanceResult(mi, NumericsConverter.Text2Value(Recbuffer[1]), null, null
                                                                                  , NumericsConverter.Text2Value(Recbuffer[2]), NumericsConverter.Text2Value(Recbuffer[3]), false);
                    }
                    else if (Recbuffer[Recbuffer.Length - 1] == "1")
                    {
                        mi.Result = MeasurementResult.NewBushingCapacitanceResult(mi, NumericsConverter.Text2Value(Recbuffer[0]),
                                                                                  NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[2])
                                                                                  , NumericsConverter.Text2Value(GetParameter.GetFreQuency(Parameter.JSFrequency._45To_55HZ)), NumericsConverter.Text2Value(Recbuffer[3]), true);
                        mi.completed = true;
                        mi.stateText = "读取" + mi.Winding + "末屏测试完成";
                    }
                    else
                    {
                        // mi.failed = true;
                        mi.completed = true;
                        mi.stateText = mi.Winding + "错误类型:" + Recbuffer[0].ToString();
                    }
                }
                break;
            }
        }
示例#13
0
        private string calcDF(PhysicalVariable AGx)
        {
            double tan = Math.Tan(pnv(AGx.value) - pnv(AGn.value));

            if (Math.Abs(tan) < 0.0000005)
            {
                return("0.000%");
            }
            if ((tan < 1e24) && (tan > -1e24))
            {
                return(NumericsConverter.Value2Text(tan, 4, -5, "", SCEEC.Numerics.Quantities.QuantityName.None, percentage: true).Trim());
            }
            else
            {
                return("NaN");
            }
        }
 private void Keyb_OutVolateData(string cn)
 {
     if (ISHAVEDY)
     {
         if (!ISHAVEVOLATE)
         {
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             (this.DataContext as MainWindowModel).ProjectVolate.Add("持续时间:" + Timecombobox.SelectedIndex.ToString() + ":" + "  耐 压:" + need);
             ISHAVEVOLATE = true;
         }
         else
         {
             (this.DataContext as MainWindowModel).ProjectVolate.RemoveAt((this.DataContext as MainWindowModel).ProjectVolate.Count - 1);
             PhysicalVariable need = NumericsConverter.Text2Value(cn);
             (this.DataContext as MainWindowModel).ProjectVolate.Add("持续时间:" + Timecombobox.SelectedIndex.ToString() + ":" + "耐 压 :" + need);
         }
     }
 }
示例#15
0
 private void nF_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         int a = System.Text.RegularExpressions.Regex.Matches(ResultTextBox.Text, @"F").Count;
         if (a == 0)
         {
             ResultTextBox.Text += "nF";
         }
         PhysicalVariable tpd = NumericsConverter.Text2Value(ResultTextBox.Text);
         OutCnData(NumericsConverter.Value2Text((double)tpd.value, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Capacitance));
         this.Close();
     }
     catch
     {
         throw new Exception("结果值出错");
     }
 }
示例#16
0
        private PhysicalVariable calcCap(PhysicalVariable Ix, PhysicalVariable AGx)
        {
            double angle = pnv(AGx.value);
            double ratio = pnv(Ix.value) / pnv(In.value);
            double zn    = pnv(Cn.value) / Math.Cos(pnv(AGn.value));
            double z     = zn * ratio;
            double cp    = z * Math.Cos(angle);
            double rp    = z * Math.Sin(angle);
            double tan   = Math.Tan(pnv(AGx.value) - pnv(AGn.value));
            double cs    = cp * (1 + tan * tan);

            if ((cs < 1e24) && (cs > -1e24))
            {
                return(NumericsConverter.Value2Text(cs, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Capacitance));
            }
            else
            {
                return("NaN");
            }
        }
示例#17
0
        private string calcPower(PhysicalVariable Ix, PhysicalVariable AGx)
        {
            double angle = pnv(AGx.value);
            double ratio = pnv(Ix.value) / pnv(In.value);
            double zn    = pnv(Cn.value) / Math.Cos(pnv(AGn.value));
            double z     = zn * ratio;
            double cp    = z * Math.Cos(angle);
            double rp    = z * Math.Sin(angle);
            double tan   = Math.Tan(pnv(AGx.value) - pnv(AGn.value));
            double rs    = cp * (tan * tan) / (1 + tan * tan);
            double i     = pnv(Ix.value);
            double p     = i * i * rs;

            if ((p < 1e24) && (p > -1e24))
            {
                return(NumericsConverter.Value2Text(p, 4, -3, "", SCEEC.Numerics.Quantities.QuantityName.Power));
            }
            else
            {
                return("NaN");
            }
        }
示例#18
0
        private string calcVolt(PhysicalVariable Freq, PhysicalVariable C, PhysicalVariable I)
        {
            double freq = pnv(Freq.value);
            double c    = pnv(C.value);
            double i    = pnv(I.value);

            if (freq < 1.0)
            {
                return("0 V");
            }
            if (c < 1e-13)
            {
                return("NaN");
            }
            if (i < 1e-9)
            {
                return("0 V");
            }
            double v = i / (2 * Math.PI * freq * c);

            return(NumericsConverter.Value2Text(v, 4, -1, "", SCEEC.Numerics.Quantities.QuantityName.Voltage));
        }
示例#19
0
        private void WorkTest_OutTestResult(byte[] result)
        {
            OutTestResult(result);
            ViewSources vs = new ViewSources(result);

            this.TestFre  = vs.TestFre;
            this.In       = NumericsConverter.Value2Text(vs.TestIn, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Capacitance);
            this.Ix1      = NumericsConverter.Value2Text(vs.TestIx1, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
            this.AG1      = vs.TestPh1.ToString("F6"); //NumericsConverter.Value2Text(vs.TestPh1, 4, -6, "", SCEEC.Numerics.Quantities.QuantityName.None);
            this.Ix2      = NumericsConverter.Value2Text(vs.TestIx2, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
            this.AG2      = vs.TestPh2.ToString("F6"); //NumericsConverter.Value2Text(vs.TestPh2, 4, -6, "", SCEEC.Numerics.Quantities.QuantityName.None);
            this.Ix3      = NumericsConverter.Value2Text(vs.TestIx3, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
            this.AG3      = vs.TestPh3.ToString("F6"); //NumericsConverter.Value2Text(vs.TestPh3, 4, -6, "", SCEEC.Numerics.Quantities.QuantityName.None);
            this.Ix4      = NumericsConverter.Value2Text(vs.TestIx4, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
            this.AG4      = vs.TestPh4.ToString("F6"); //NumericsConverter.Value2Text(vs.TestPh4, 4, -6, "", SCEEC.Numerics.Quantities.QuantityName.None);
            this.OneStata = NumericsConverter.Value2Text(vs.OneVolate, 4, -13, "", SCEEC.Numerics.Quantities.QuantityName.Voltage);
            this.Alarm    = vs.AlarmStata.ToString();

            StandardCapacitance = Cn.ToString();
            StandardCapacitanceDissipationFactor = NumericsConverter.Value2Text(Math.Tan(pnv(AGn.value)), 4, -5, "", SCEEC.Numerics.Quantities.QuantityName.None, percentage: true).Trim();
            HVFrequency        = NumericsConverter.Value2Text(vs.TestFre, 4, -3, "", SCEEC.Numerics.Quantities.QuantityName.Frequency);
            HVVoltage          = calcVolt(HVFrequency, Cn, In);
            Capacitance1       = calcCap(Ix1, AG1).ToString();
            Capacitance2       = calcCap(Ix2, AG2).ToString();
            Capacitance3       = calcCap(Ix3, AG3).ToString();
            Capacitance4       = calcCap(Ix4, AG4).ToString();
            Current1           = Ix1.ToString();
            Current2           = Ix2.ToString();
            Current3           = Ix3.ToString();
            Current4           = Ix4.ToString();
            DissipationFactor1 = calcDF(AG1);
            DissipationFactor2 = calcDF(AG2);
            DissipationFactor3 = calcDF(AG3);
            DissipationFactor4 = calcDF(AG4);
            Power1             = calcPower(Ix1, AG1);
            Power2             = calcPower(Ix2, AG2);
            Power3             = calcPower(Ix3, AG3);
            Power4             = calcPower(Ix4, AG4);
        }
示例#20
0
 /// <summary>
 /// 填充TCP接受的数据信息到数据源
 /// </summary>
 /// <param name="ListboxItemsources">数据源</param>
 /// <param name="SysData">TCP接受的数据</param>
 public static ObservableCollection <string> FillListBoxTip(ObservableCollection <string> ListboxItemsources, byte[] SysData)
 {
     ThreadPool.QueueUserWorkItem(delegate
     {
         SynchronizationContext.SetSynchronizationContext(new
                                                          System.Windows.Threading.DispatcherSynchronizationContext(Application.Current.Dispatcher));
         SynchronizationContext.Current.Post(async pl =>
         {
             ListboxItemsources.Add("远程数据显示\t\n若需要手动测量\t\n请设置电晕和耐压");
             var a = StaticClass.GetDataForTcpAutoTest(SysData);
             foreach (var b in a.NeedTestList)
             {
                 PhysicalVariable tpd = NumericsConverter.Text2Value(b.ToString() + "V");
                 ListboxItemsources.Add("待测电压  :" + tpd);
             }
             PhysicalVariable eley      = NumericsConverter.Text2Value(a.EleY.ToString() + "V");
             PhysicalVariable elevolate = NumericsConverter.Text2Value(a.EleVolate.ToString() + "V");
             ListboxItemsources.Add("待测电晕  :" + eley);
             ListboxItemsources.Add("持续时间  :" + a.HideTime.ToString() + ":" + "  耐    压:" + elevolate);
         }, null);
     });
     return(ListboxItemsources);
 }
示例#21
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     t1.Text = NumericsConverter.Value2Text(1e-10, 2, -23, " ", "V", false, false);
 }
示例#22
0
 public static FourTestResult ReturntestTestData(FourTestResult AllTestResult, string Cn1, string Cn2, string Cn3, string Cn4,
                                                 string Ag1, string Ag2, string Ag3, string Ag4, bool ISVOLATEFALSE)
 {
     if (ISVOLATEFALSE)
     {
         if (AllTestResult.PanelEnable)
         {
             PanelResult p1 = new PanelResult
             {
                 Cn    = NumericsConverter.Text2Value(Cn1),
                 CnTan = NumericsConverter.Text2Value(Ag1)
             };
             AllTestResult.Panel1Result.Add(p1);
         }
         if (AllTestResult.Pane2Enable)
         {
             PanelResult p2 = new PanelResult
             {
                 Cn    = NumericsConverter.Text2Value(Cn2),
                 CnTan = NumericsConverter.Text2Value(Ag2)
             };
             AllTestResult.Panel2Result.Add(p2);
         }
         if (AllTestResult.Pane3Enable)
         {
             PanelResult p3 = new PanelResult
             {
                 Cn    = NumericsConverter.Text2Value(Cn3),
                 CnTan = NumericsConverter.Text2Value(Ag3)
             };
             AllTestResult.Panel3Result.Add(p3);
         }
         if (AllTestResult.Pane4Enable)
         {
             PanelResult p4 = new PanelResult
             {
                 Cn    = NumericsConverter.Text2Value(Cn4),
                 CnTan = NumericsConverter.Text2Value(Ag4)
             };
             AllTestResult.Panel4Result.Add(p4);
         }
         return(AllTestResult);
     }
     else
     {
         if (AllTestResult.PanelEnable)
         {
             PanelResult p1 = new PanelResult
             {
                 Cn    = NumericsConverter.Text2Value("0pF"),
                 CnTan = NumericsConverter.Text2Value("0")
             };
             AllTestResult.Panel1Result.Add(p1);
         }
         if (AllTestResult.Pane2Enable)
         {
             PanelResult p2 = new PanelResult
             {
                 Cn    = NumericsConverter.Text2Value("0pF"),
                 CnTan = NumericsConverter.Text2Value("0")
             };
             AllTestResult.Panel2Result.Add(p2);
         }
         if (AllTestResult.Pane3Enable)
         {
             PanelResult p3 = new PanelResult();
             p3.Cn = NumericsConverter.Text2Value("0pF"); p3.CnTan = NumericsConverter.Text2Value("0");
             AllTestResult.Panel3Result.Add(p3);
         }
         if (AllTestResult.Pane4Enable)
         {
             PanelResult p4 = new PanelResult();
             p4.Cn = NumericsConverter.Text2Value("0pF"); p4.CnTan = NumericsConverter.Text2Value("0");
             AllTestResult.Panel4Result.Add(p4);
         }
         return(AllTestResult);
     }
 }
示例#23
0
        public static void DCResistance(ref MeasurementItemStruct mi, Transformer transformer, JobList Job)
        {
            if (mi.Terimal != null)
            {
                Parameter.ZldzStation Dcposition;
                if (mi.Winding == WindingType.HV)
                {
                    Dcposition = (Parameter.ZldzStation)(Parameter.ZldzStation.高压全部 + (((int)mi.Terimal[0]) % 4));//1
                }
                else if (mi.Winding == WindingType.MV)
                {
                    Dcposition = (Parameter.ZldzStation)(Parameter.ZldzStation.中压全部 + (((int)mi.Terimal[0]) % 4));//5
                }
                else
                {
                    Dcposition = (Parameter.ZldzStation)(Parameter.ZldzStation.低压全部 + (((int)mi.Terimal[0]) % 4));//9
                }
                switch (mi.state)
                {
                case 0:

                    byte[] TestKindData = TZ3310.SetPraZldz((Parameter.ZldzWindingKind)mi.WindingConfig, Dcposition, GetParameter.GetPraDCResistanceCurrent(Job), 0);
                    Thread.Sleep(100);
                    TZ3310.StartTest(TestKindData);
                    WorkingSets.local.IsEnablestable = true;
                    mi.stateText = "正在测试" + mi.Winding + "直流电阻中...";
                    mi.state++;
                    Thread.Sleep(4000);
                    break;

                case 1:
                    string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer != null)
                    {
                        if (Recbuffer[Recbuffer.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { NumericsConverter.Text2Value(Recbuffer[0]), NumericsConverter.Text2Value(Recbuffer[3]), NumericsConverter.Text2Value(Recbuffer[6]) };
                            PhysicalVariable[] Current    = { NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[4]), NumericsConverter.Text2Value(Recbuffer[7]) };
                            PhysicalVariable[] Resistance = { NumericsConverter.Text2Value(Recbuffer[2]), NumericsConverter.Text2Value(Recbuffer[5]), NumericsConverter.Text2Value(Recbuffer[8]) };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);

                            mi.state++;                                      //测量结束数据需要确定
                            mi.stateText = "读取" + mi.Winding + "直流电阻数据中..."; //临时
                            Thread.Sleep(500);
                        }
                        else
                        {
                            //  mi.failed = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer[0].ToString();
                        }
                    }
                    break;

                case 2:
                    string[] Recbuffer1 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer1 != null)
                    {
                        if (Recbuffer1[Recbuffer1.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { NumericsConverter.Text2Value(Recbuffer1[0]), NumericsConverter.Text2Value(Recbuffer1[3]), NumericsConverter.Text2Value(Recbuffer1[6]) };
                            PhysicalVariable[] Current    = { NumericsConverter.Text2Value(Recbuffer1[1]), NumericsConverter.Text2Value(Recbuffer1[4]), NumericsConverter.Text2Value(Recbuffer1[7]) };
                            PhysicalVariable[] Resistance = { NumericsConverter.Text2Value(Recbuffer1[2]), NumericsConverter.Text2Value(Recbuffer1[5]), NumericsConverter.Text2Value(Recbuffer1[8]) };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            if (WorkingSets.local.IsStable == true)
                            {
                                mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, true);
                                TZ3310.InterRuptMe(Parameter.CommanTest.判断直流电阻稳定状态);
                                Thread.Sleep(500);
                                WorkingSets.local.IsStable = false;
                                mi.stateText = "确定" + mi.Winding + "直流电阻稳定成功";    //临时
                                Thread.Sleep(500);
                                mi.stateText = "读取" + mi.Winding + "直流电阻数据成功";    //临时
                                mi.state++;
                            }
                        }
                        else
                        {
                            // mi.failed = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer1[0].ToString();    //临时
                        }
                    }
                    break;

                case 3:
                    string[] Recbuffer2 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer2 != null)
                    {
                        if (Recbuffer2[Recbuffer2.Length - 1] == "1")
                        {
                            mi.stateText = mi.Winding + "直流电阻测试完成:";
                            mi.completed = true;
                        }
                        else
                        {
                            // mi.failed = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer2[0].ToString();    //临时
                        }
                    }
                    break;
                }
            }
            else
            {
                switch (mi.state)
                {
                case 0:
                    byte[] TestKindData = TZ3310.SetPraZldz((Parameter.ZldzWindingKind)mi.WindingConfig, mi.Winding.TozldzStation(), GetParameter.GetPraDCResistanceCurrent(Job), 0);
                    Thread.Sleep(100);
                    TZ3310.StartTest(TestKindData);
                    WorkingSets.local.IsEnablestable = true;
                    mi.stateText = "正在测试" + mi.Winding.TozldzStation() + "直流电阻中...";
                    mi.state++;
                    Thread.Sleep(4000);
                    break;

                case 1:
                    string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer != null)
                    {
                        if (Recbuffer[Recbuffer.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { NumericsConverter.Text2Value(Recbuffer[0]), NumericsConverter.Text2Value(Recbuffer[3]), NumericsConverter.Text2Value(Recbuffer[6]) };
                            PhysicalVariable[] Current    = { NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[4]), NumericsConverter.Text2Value(Recbuffer[7]) };
                            PhysicalVariable[] Resistance = { NumericsConverter.Text2Value(Recbuffer[2]), NumericsConverter.Text2Value(Recbuffer[5]), NumericsConverter.Text2Value(Recbuffer[8]) };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            mi.state++;
                            mi.stateText = "等待" + mi.Winding + "直流电阻稳定中...";
                        }
                        else
                        {
                            // mi.failed = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型" + Recbuffer[0].ToString();
                        }
                    }
                    break;

                case 2:
                    string[] Recbuffer1 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer1 != null)
                    {
                        if (Recbuffer1[Recbuffer1.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { NumericsConverter.Text2Value(Recbuffer1[0]), NumericsConverter.Text2Value(Recbuffer1[3]), NumericsConverter.Text2Value(Recbuffer1[6]) };
                            PhysicalVariable[] Current    = { NumericsConverter.Text2Value(Recbuffer1[1]), NumericsConverter.Text2Value(Recbuffer1[4]), NumericsConverter.Text2Value(Recbuffer1[7]) };
                            PhysicalVariable[] Resistance = { NumericsConverter.Text2Value(Recbuffer1[2]), NumericsConverter.Text2Value(Recbuffer1[5]), NumericsConverter.Text2Value(Recbuffer1[8]) };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            if (WorkingSets.local.IsStable == true)
                            {
                                mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, true);
                                TZ3310.InterRuptMe(Parameter.CommanTest.判断直流电阻稳定状态);
                                WorkingSets.local.IsStable = false;
                                mi.stateText = "确定" + mi.Winding + "直流电阻稳定成功";
                                Thread.Sleep(500);
                                mi.stateText = "读取" + mi.Winding + "直流电阻数据成功";
                                mi.completed = true;
                            }
                        }
                    }
                    break;
                }
            }
        }
示例#24
0
        public static void OLTCSwitchingCharacter(ref MeasurementItemStruct mi, Transformer transformer, JobList Job)
        {
            Parameter.YzfjStation yzfjStation;
            if (mi.Winding == WindingType.HV)
            {
                yzfjStation = Parameter.YzfjStation.高压侧;
            }
            else
            {
                yzfjStation = Parameter.YzfjStation.中压侧;
            }
            switch (mi.state)
            {
            case 0:
                byte[] TestKindData = TZ3310.SetPraYzfj((Parameter.YzfjWindingKind)mi.WindingConfig, yzfjStation, Parameter.yzfjTap._1To_2, Parameter.YzfjCurrent._1_A, 5, 5, 0);
                Thread.Sleep(100);
                TZ3310.StartTest(TestKindData);
                mi.stateText = "正在测试" + mi.Winding + "有载分接中...";
                mi.state++;
                Thread.Sleep(4000);
                break;

            case 1:
                string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.载分接);
                if (Recbuffer != null)
                {
                    bool ReadforT;
                    if (Recbuffer[0] == "1")
                    {
                        ReadforT = true;
                    }
                    else
                    {
                        ReadforT = false;
                    }
                    if (Recbuffer.Length == 7)
                    {
                        PhysicalVariable[] Voltage   = { NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[3]), NumericsConverter.Text2Value(Recbuffer[5]) };  //135
                        PhysicalVariable[] current   = { NumericsConverter.Text2Value(Recbuffer[2]), NumericsConverter.Text2Value(Recbuffer[4]), NumericsConverter.Text2Value(Recbuffer[6]) };  //246
                        PhysicalVariable[] Resistans = new PhysicalVariable[3];
                        Resistans[0] = NumericsConverter.Text2Value("0.005");
                        Resistans[1] = NumericsConverter.Text2Value("0.005");
                        Resistans[2] = NumericsConverter.Text2Value("0.005");
                        mi.Result    = MeasurementResult.NewOLTCSwitchingCharacterResult(mi, Voltage, current, Resistans, null, ReadforT, false);
                        mi.stateText = "读取" + mi.Winding + "有载分接充电中...";
                        if (ReadforT)    //可以触发
                        {
                            mi.stateText = mi.Winding + "有载分接等待触发。。。";
                            Thread.Sleep(500);
                            mi.state++;
                        }
                    }
                    else
                    {
                        //  mi.failed = true;
                        mi.completed = true;
                        mi.stateText = "充电时错误:" + Recbuffer[0].ToString();
                    }
                }
                break;

            case 2:
                string[] Recbuffer1 = TZ3310.ReadTestData(Parameter.TestKind.载分接);
                if (Recbuffer1 != null)
                {
                    bool ReadforR;
                    if (Recbuffer1[0] == "2")
                    {
                        ReadforR = true;
                    }
                    else
                    {
                        ReadforR = false;
                    }
                    if (Recbuffer1.Length == 7)
                    {
                        PhysicalVariable[] Voltage = { NumericsConverter.Text2Value(Recbuffer1[1]), NumericsConverter.Text2Value(Recbuffer1[3]), NumericsConverter.Text2Value(Recbuffer1[5]) }; //135
                        PhysicalVariable[] current = { NumericsConverter.Text2Value(Recbuffer1[2]), NumericsConverter.Text2Value(Recbuffer1[4]), NumericsConverter.Text2Value(Recbuffer1[6]) }; //246
                        if (ReadforR)                                                                                                                                                           //触发成功
                        {
                            mi.Result = MeasurementResult.NewOLTCSwitchingCharacterResult(mi, Voltage, current, new PhysicalVariable[3], null, ReadforR, true);

                            mi.stateText = "读取" + mi.Winding + "触发成功";
                            mi.state++;
                        }
                    }

                    else if (Recbuffer1.Length == 1)
                    {
                        // mi.failed = true;
                        mi.completed = true;
                        mi.stateText = mi.Winding + "错误类型:" + Recbuffer1[0].ToString();
                    }
                }
                break;

            case 3:

                mi.stateText = "正在读取波形中。。。";
                Thread.Sleep(8000);
                mi.state++;
                break;

            case 4:
                var Waveform = TZ3310.GetWaveFormData;    //5s
                if (Waveform != null)
                {
                    mi.Result = MeasurementResult.NewOLTCSwitchingCharacterResult(mi, new PhysicalVariable[3], new PhysicalVariable[3],
                                                                                  new PhysicalVariable[3], Waveform, false, true);
                    mi.state++;
                    WorkingSets.local.WaveFormSwicth = Waveform;
                    Thread.Sleep(50);
                    WorkingSets.local.ShowWaveForm = true;
                    mi.stateText = mi.Winding + "波形读取完成";
                }
                else
                {
                    // mi.state++;
                    //    mi.failed = true;
                    mi.completed = true;
                    mi.stateText = mi.Winding + "未读取到波形";
                }
                break;

            case 5:
                mi.completed = true;
                break;
            }
        }
示例#25
0
        public static void DCResistance(ref MeasurementItemStruct mi, Transformer transformer, JobList Job, TestingWorkerSender sender)
        {
            //string p = (1.1 + i / 10) + " kV";
            //string q = tempp.ToString("f1") + " A";
            //tempp += 0.1;

            //string w = (3.3 + i) + " Ω";
            //var p1 = new PhysicalVariable[] { p, q, w };
            //var p2 = new PhysicalVariable[] { p, q, w };
            //var p3 = new PhysicalVariable[] { p, q, w };
            //mi.Result = MeasurementResult.NewDCResistanceResult(mi, p1, p2, p3, false);
            //i++;
            //if (i > 100)
            //{
            //    mi.completed = true;
            //    mi.failed = true;
            //    mi.stateText = "测量人为中断";
            //    i = 0;
            //}
            //Thread.Sleep(200);

            if (mi.Terimal != null)
            {
                Parameter.ZldzStation Dcposition;
                if (mi.Winding == WindingType.HV)
                {
                    Dcposition = Parameter.ZldzStation.高压全部 + (((int)mi.Terimal[0]) % 4);//1

                    //   mi.WindingConfig = GetWindConfig(sender.MeasurementItems[sender.CurrentItemIndex + 1], transformer);
                }
                else if (mi.Winding == WindingType.MV)
                {
                    Dcposition = Parameter.ZldzStation.中压全部 + (((int)mi.Terimal[0]) % 4);//5
                }
                else
                {
                    if (!Job.DCResistance.ZcEnable)
                    {
                        Dcposition = Parameter.ZldzStation.低压全部 + (((int)mi.Terimal[0]) % 4);//9
                    }
                    else
                    {
                        Dcposition = Parameter.ZldzStation.注磁抵押 + (((int)mi.Terimal[0]) % 4);//9
                    }
                }
                switch (mi.state)
                {
                case 0:
                    if (mi.Winding == WindingType.HV)
                    {
                        mi.WindingConfig = transformer.WindingConfig.HV;
                    }
                    else if (mi.Winding == WindingType.MV)
                    {
                        mi.WindingConfig = transformer.WindingConfig.MV;
                    }
                    else
                    {
                        if (transformer.WindingNum == 2)
                        {
                            mi.WindingConfig = transformer.WindingConfig.MV;
                        }
                        else
                        {
                            mi.WindingConfig = transformer.WindingConfig.LV;
                        }
                    }
                    Thread.Sleep(2000);
                    byte[] TestKindData = TZ3310.SetPraZldz((Parameter.ZldzWindingKind)mi.WindingConfig, Dcposition, GetParameter.GetPraDCResistanceCurrentSpa(mi, Job), 0);
                    Thread.Sleep(100);
                    TZ3310.StartTest(TestKindData);
                    WorkingSets.local.TestDCI        = false;
                    WorkingSets.local.IsEnablestable = true;
                    mi.stateText = "正在开始" + mi.Winding + "直流电阻中...";
                    Thread.Sleep(4000);
                    mi.state++;
                    break;

                case 1:
                    string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    Thread.Sleep(150);
                    if (Recbuffer != null)
                    {
                        if (Recbuffer[Recbuffer.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { NumericsConverter.Text2Value(Recbuffer[0]), NumericsConverter.Text2Value(Recbuffer[3]), NumericsConverter.Text2Value(Recbuffer[6]) };
                            PhysicalVariable[] Current    = { NumericsConverter.Text2Value(Recbuffer[1]), NumericsConverter.Text2Value(Recbuffer[4]), NumericsConverter.Text2Value(Recbuffer[7]) };
                            PhysicalVariable[] Resistance = { NumericsConverter.Text2Value(Recbuffer[2]), NumericsConverter.Text2Value(Recbuffer[5]), NumericsConverter.Text2Value(Recbuffer[8]) };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            mi.state++;                                        //测量结束数据需要确定
                            mi.stateText = "等待确认" + mi.Winding + "直流电阻稳定中..."; //临时
                            WorkingSets.local.IsVisible  = true;
                            WorkingSets.local.IsVisible1 = true;
                        }
                        else if (Recbuffer[Recbuffer.Length - 1] == "1")
                        {
                            mi.state++;
                        }
                        else
                        {
                            mi.failed    = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer[0].ToString();
                        }
                    }
                    break;

                case 2:
                    string[] Recbuffer1 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    Thread.Sleep(150);
                    if (Recbuffer1 != null)
                    {
                        if (Recbuffer1[Recbuffer1.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { NumericsConverter.Text2Value(Recbuffer1[0]), NumericsConverter.Text2Value(Recbuffer1[3]), NumericsConverter.Text2Value(Recbuffer1[6]) };
                            PhysicalVariable[] Current    = { NumericsConverter.Text2Value(Recbuffer1[1]), NumericsConverter.Text2Value(Recbuffer1[4]), NumericsConverter.Text2Value(Recbuffer1[7]) };
                            PhysicalVariable[] Resistance = { NumericsConverter.Text2Value(Recbuffer1[2]), NumericsConverter.Text2Value(Recbuffer1[5]), NumericsConverter.Text2Value(Recbuffer1[8]) };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            if (WorkingSets.local.IsStable == true)
                            {
                                WorkingSets.local.IsStable = false;
                                mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, true);
                                TZ3310.InterRuptMe(Parameter.CommanTest.判断直流电阻稳定状态);
                                mi.stateText = "确定" + mi.Winding + "直流电阻稳定成功";
                                mi.state++;
                            }
                        }
                        else if (Recbuffer1[Recbuffer1.Length - 1] == "1")
                        {
                            mi.state++;
                        }
                        else
                        {
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer1[0].ToString();
                            mi.failed    = true;
                            mi.completed = true;
                        }
                    }
                    break;

                case 3:
                    string[] Recbuffer2 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer2 != null)
                    {
                        if (Recbuffer2[Recbuffer2.Length - 1] == "1")
                        {
                            if (sender.MeasurementItems.Length != (sender.CurrentItemIndex + 1))
                            {
                                var miNext = sender.MeasurementItems[sender.CurrentItemIndex + 1];
                                if (miNext.Terimal != null && mi.Function == miNext.Function &&
                                    mi.Terimal[0] == miNext.Terimal[0] &&
                                    mi.Terimal[1] == miNext.Terimal[1] &&
                                    mi.Winding == miNext.Winding &&
                                    mi.WindingConfig == GetWindConfig(miNext, transformer))
                                {
                                    //不需要放电
                                    mi.stateText = "直流电阻" + mi.Winding + ":" + mi.Terimal[0] + "-" + mi.Terimal[1] + "测试完成";
                                    mi.completed = true;
                                }
                                else
                                {
                                    //需要放电的
                                    TZ3310.ShutDownOutCurrent(0);

                                    mi.state++;
                                }
                            }
                            else
                            {
                                //为最后一项
                                mi.stateText = mi.Winding + "直流电阻正在放电...";
                                TZ3310.ShutDownOutCurrent(0);
                                mi.state++;
                            }
                        }
                        else
                        {
                            mi.failed    = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer2[0].ToString();    //临时
                        }
                    }
                    break;

                case 4:
                    string[] readdata = TZ3310.ReadTestData(Parameter.TestKind.读取放电数据);
                    if (readdata[0] == "2")
                    {
                        mi.stateText = mi.Winding + "直流电阻放电完成";
                        mi.completed = true;
                    }
                    break;
                }
            }
            else
            {
                switch (mi.state)
                {
                case 0:
                    if (mi.Winding == WindingType.HV)
                    {
                        mi.WindingConfig = transformer.WindingConfig.HV;
                    }
                    else if (mi.Winding == WindingType.MV)
                    {
                        mi.WindingConfig = transformer.WindingConfig.MV;
                    }
                    else
                    {
                        if (transformer.PhaseNum == 2)
                        {
                            mi.WindingConfig = transformer.WindingConfig.MV;
                        }
                        else
                        {
                            mi.WindingConfig = transformer.WindingConfig.LV;
                        }
                    }
                    WorkingSets.local.TestDCI        = false;
                    WorkingSets.local.IsEnablestable = true;
                    byte[] TestKindData = TZ3310.SetPraZldz((Parameter.ZldzWindingKind)mi.WindingConfig, mi.Winding.TozldzStation(Job), GetParameter.GetPraDCResistanceCurrentSpa(mi, Job), 0);
                    Thread.Sleep(100);

                    if (TZ3310.StartTest(TestKindData))
                    {
                        mi.stateText = "正在测试" + mi.Winding.TozldzStation(Job) + "直流电阻中...";
                        mi.state++;
                    }
                    Thread.Sleep(4000);
                    break;

                case 1:
                    string[] Recbuffer = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    Thread.Sleep(150);
                    if (Recbuffer != null)
                    {
                        if (Recbuffer[Recbuffer.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { Recbuffer[0], Recbuffer[3], Recbuffer[6] };
                            PhysicalVariable[] Current    = { Recbuffer[1], Recbuffer[4], Recbuffer[7] };
                            PhysicalVariable[] Resistance = { Recbuffer[2], Recbuffer[5], Recbuffer[8] };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            mi.state++;
                            mi.stateText = "等待确定" + mi.Winding + "直流电阻稳定中...";
                            WorkingSets.local.IsVisible  = true;
                            WorkingSets.local.IsVisible1 = true;
                        }
                        else if (Recbuffer[Recbuffer.Length - 1] == "1")
                        {
                            mi.state++;
                        }
                        else
                        {
                            mi.failed    = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer[0].ToString();
                        }
                    }
                    break;

                case 2:
                    string[] Recbuffer1 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer1 != null)
                    {
                        if (Recbuffer1[Recbuffer1.Length - 1] == "0")
                        {
                            PhysicalVariable[] Voltage    = { Recbuffer1[0], Recbuffer1[3], Recbuffer1[6] };
                            PhysicalVariable[] Current    = { Recbuffer1[1], Recbuffer1[4], Recbuffer1[7] };
                            PhysicalVariable[] Resistance = { Recbuffer1[2], Recbuffer1[5], Recbuffer1[8] };
                            mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, false);
                            if (WorkingSets.local.IsStable == true)
                            {
                                WorkingSets.local.IsStable = false;
                                mi.Result = MeasurementResult.NewDCResistanceResult(mi, Voltage, Current, Resistance, true);
                                TZ3310.InterRuptMe(Parameter.CommanTest.判断直流电阻稳定状态);
                                mi.stateText = "确定" + mi.Winding + "直流电阻稳定成功";
                                mi.state++;
                            }
                        }
                        else if (Recbuffer1[Recbuffer1.Length - 1] == "1")
                        {
                            mi.state++;
                        }
                        else
                        {
                            mi.failed    = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer1[0].ToString();
                        }
                    }
                    break;

                case 3:
                    string[] Recbuffer2 = TZ3310.ReadTestData(Parameter.TestKind.直流电阻);
                    if (Recbuffer2 != null)
                    {
                        if (Recbuffer2[Recbuffer2.Length - 1] == "1")
                        {
                            if (sender.MeasurementItems.Length != (sender.CurrentItemIndex + 1))
                            {
                                var miNext = sender.MeasurementItems[sender.CurrentItemIndex + 1];
                                if (mi.Function == miNext.Function &&
                                    mi.Winding == miNext.Winding &&
                                    mi.WindingConfig == GetWindConfig(miNext, transformer))
                                {
                                    //不需要放电
                                    mi.stateText = "直流电阻" + mi.Winding + "测试完成";
                                    mi.completed = true;
                                }
                                else
                                {
                                    //需要放电的
                                    TZ3310.ShutDownOutCurrent(0);
                                    mi.state++;
                                }
                            }
                            else
                            {
                                //为最后一项
                                mi.stateText = mi.Winding + "直流电阻测试完成";
                                TZ3310.ShutDownOutCurrent(0);
                                mi.state++;
                            }
                        }
                        else
                        {
                            mi.failed    = true;
                            mi.completed = true;
                            mi.stateText = mi.Winding + "错误类型:" + Recbuffer2[0].ToString();    //临时
                        }
                    }
                    Thread.Sleep(1000);
                    break;

                case 4:
                    string[] readdata = TZ3310.ReadTestData(Parameter.TestKind.读取放电数据);
                    if (readdata[0] == "2")
                    {
                        mi.stateText = mi.Winding + "直流电阻放电完成";
                        mi.completed = true;
                    }
                    break;
                }
            }
        }
示例#26
0
        //读取测量数据
        /// <summary>
        /// 读取测量数据和数据的处理
        /// </summary>
        /// <param name="testkind">测试类型</param>
        /// <returns>回复解析完成的数据</returns>
        public string[] ReadTestData(Parameter.TestKind testkind)
        {
            if (testkind == Parameter.TestKind.介质损耗)
            {
                //string[] RetData = new string[5];
                byte[] SendComman = { 0x12 };
                byte[] RecBuffer  = new byte[31];
                sc.SendCommand(SendComman, ref RecBuffer, 50);

                if (RecBuffer[0] == 0xfa)
                {
                    string[] RetData = new string[5];
                    RetData[0] = RecBuffer[1].ToString();
                    PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(7).ToArray()));
                    RetData[1] = pv.ToString();
                    PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(9).Take(7).ToArray()));
                    RetData[2] = pv1.ToString();
                    PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(16).Take(7).ToArray()));
                    RetData[3] = pv2.ToString();
                    RetData[4] = "0";
                    return(RetData);
                }
                if (RecBuffer[0] == 0xff)
                {
                    string[]         RetData = new string[5];
                    PhysicalVariable pv      = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(7).ToArray()));
                    RetData[0] = pv.ToString();
                    PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(9).Take(7).ToArray()));
                    RetData[1] = pv1.ToString();
                    PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(16).Take(7).ToArray()) + "%");
                    RetData[2] = pv2.ToString(percentage: true, positiveSign: true);
                    PhysicalVariable pv3 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(23).Take(7).ToArray()));
                    RetData[3] = pv3.ToString();
                    RetData[4] = "1";

                    return(RetData);
                }
                if (RecBuffer[0] == 0xee)
                {
                    string[] Rd = new string[1];
                    Rd[0] = TestErrDC(RecBuffer[1].ToString());
                    return(Rd);//错误类型
                }
            }
            if (testkind == Parameter.TestKind.直流电阻)
            {
                byte[] Sendbuffer = { 0x32 };
                byte[] RecBuffer  = new byte[75];
                try
                {
                    sc.SendCommand(Sendbuffer, ref RecBuffer, 10);
                    //if (CheckData(RecData) == RecData[74])
                    //{
                    if (RecBuffer[0] == 0xfa)
                    {
                        string[] RetData = new string[10];
                        RetData[0] = Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray());
                        PhysicalVariable pv = NumericsConverter.Text2Value(RetData[0]);
                        RetData[0] = pv.ToString();
                        RetData[1] = Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray());
                        PhysicalVariable pv1 = NumericsConverter.Text2Value(RetData[1]);
                        RetData[1] = pv1.ToString();
                        RetData[2] = Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray()).Replace("$", "Ω");
                        PhysicalVariable pv2 = NumericsConverter.Text2Value(RetData[2]);
                        RetData[2] = pv2.ToString();

                        RetData[3] = Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray());
                        PhysicalVariable pv3 = NumericsConverter.Text2Value(RetData[3]);
                        RetData[3] = pv3.ToString();

                        RetData[4] = Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray());
                        PhysicalVariable pv4 = NumericsConverter.Text2Value(RetData[4]);
                        RetData[4] = pv4.ToString();
                        RetData[5] = Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray()).Replace("$", "Ω");
                        PhysicalVariable pv5 = NumericsConverter.Text2Value(RetData[5]);
                        RetData[5] = pv5.ToString();

                        RetData[6] = Encoding.ASCII.GetString(RecBuffer.Skip(50).Take(8).ToArray());
                        PhysicalVariable pv6 = NumericsConverter.Text2Value(RetData[6]);
                        RetData[6] = pv6.ToString();

                        RetData[7] = Encoding.ASCII.GetString(RecBuffer.Skip(58).Take(8).ToArray());
                        PhysicalVariable pv7 = NumericsConverter.Text2Value(RetData[7]);
                        RetData[7] = pv7.ToString();
                        RetData[8] = Encoding.ASCII.GetString(RecBuffer.Skip(66).Take(8).ToArray()).Replace("$", "Ω");
                        PhysicalVariable pv8 = NumericsConverter.Text2Value(RetData[8]);
                        RetData[8] = pv8.ToString();

                        RetData[9] = "0";
                        return(RetData);
                    }
                    else if (RecBuffer[0] == 0xff)
                    {
                        string[] RetData = new string[10];
                        RetData[0] = Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray());
                        PhysicalVariable pv = NumericsConverter.Text2Value(RetData[0]);
                        RetData[0] = pv.ToString();
                        RetData[1] = Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray());
                        PhysicalVariable pv1 = NumericsConverter.Text2Value(RetData[1]);
                        RetData[1] = pv1.ToString();
                        RetData[2] = Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray()).Replace("$", "Ω");
                        PhysicalVariable pv2 = NumericsConverter.Text2Value(RetData[2]);
                        RetData[2] = pv2.ToString();
                        RetData[3] = Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray());
                        PhysicalVariable pv3 = NumericsConverter.Text2Value(RetData[3]);
                        RetData[3] = pv3.ToString();
                        RetData[4] = Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray());
                        PhysicalVariable pv4 = NumericsConverter.Text2Value(RetData[4]);
                        RetData[4] = pv4.ToString();
                        RetData[5] = Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray()).Replace("$", "Ω");
                        PhysicalVariable pv5 = NumericsConverter.Text2Value(RetData[5]);
                        RetData[5] = pv5.ToString();
                        RetData[6] = Encoding.ASCII.GetString(RecBuffer.Skip(50).Take(8).ToArray());
                        PhysicalVariable pv6 = NumericsConverter.Text2Value(RetData[6]);
                        RetData[6] = pv6.ToString();
                        RetData[7] = Encoding.ASCII.GetString(RecBuffer.Skip(58).Take(8).ToArray());
                        PhysicalVariable pv7 = NumericsConverter.Text2Value(RetData[7]);
                        RetData[7] = pv7.ToString();
                        RetData[8] = Encoding.ASCII.GetString(RecBuffer.Skip(66).Take(8).ToArray()).Replace("$", "Ω");
                        PhysicalVariable pv8 = NumericsConverter.Text2Value(RetData[8]);
                        RetData[8] = pv8.ToString();
                        RetData[9] = "1";

                        return(RetData);
                    }
                    else if (RecBuffer[0] == 0xee)
                    {
                        string[] Rd = new string[1];
                        Rd[0] = TestErr(RecBuffer[1].ToString());
                        return(Rd);//错误类型
                    }
                    //}
                }
                catch
                {
                }
            }
            if (testkind == Parameter.TestKind.绝缘电阻)
            {
                byte[] SendComman = { 0x22 };
                byte[] RecData    = new byte[18];
                //  float[] RetData = new float[4];

                sc.SendCommand(SendComman, ref RecData, 50);

                if (CheckData(RecData) == RecData[17])
                {
                    if (RecData[0] == 0xfa)
                    {
                        string[] RetData = new string[4];

                        PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(1).Take(5).ToArray()) + "V");
                        RetData[0] = pv.ToString();
                        string TempData = Encoding.ASCII.GetString(RecData.Skip(6).Take(7).ToArray()).Replace("$", "Ω");
                        if (TempData.IndexOf('Ω') < 0)
                        {
                            TempData += "Ω";
                        }
                        PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(6).Take(7).ToArray()).Replace("$", "Ω"));
                        RetData[1] = pv1.ToString();
                        PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(13).Take(4).ToArray()));
                        RetData[2] = pv2.ToString();
                        RetData[3] = "0";
                        return(RetData);
                    }
                    if (RecData[0] == 0xff)
                    {
                        string[] RetData  = new string[4];
                        string   TempData = Encoding.ASCII.GetString(RecData.Skip(1).Take(7).ToArray()).Replace("$", "Ω");
                        if (TempData.IndexOf('Ω') < 0)
                        {
                            TempData += "Ω";
                        }
                        PhysicalVariable pv = NumericsConverter.Text2Value(TempData);
                        RetData[0] = pv.ToString();

                        PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(8).Take(4).ToArray()));
                        RetData[1] = pv1.ToString();
                        PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(12).Take(4).ToArray()));
                        RetData[2] = pv2.ToString();
                        RetData[3] = "1";

                        return(RetData);
                    }
                    if (RecData[0] == 0xee)
                    {
                        string[] Rd = new string[1];
                        Rd[0] = TestErrDC(RecData[1].ToString());

                        return(Rd);//错误类型
                    }
                }

                else
                {
                }
            }
            if (testkind == Parameter.TestKind.载分接)
            {
                byte[] RecBuffer = new byte[51];
                // float[] RetData = new float[7];
                byte[] SendComman = { 0x42 };
                sc.SendCommand(SendComman, ref RecBuffer, 50);
                if (RecBuffer[0] == 0xfa)
                {
                    string[] RetData = new string[7];
                    RetData[0] = RecBuffer[1].ToString();
                    PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray()));
                    RetData[1] = pv.ToString();
                    PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray()));
                    RetData[2] = pv1.ToString();
                    PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray()));
                    RetData[3] = pv2.ToString();
                    PhysicalVariable pv3 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray()));
                    RetData[4] = pv3.ToString();
                    PhysicalVariable pv4 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray()));
                    RetData[5] = pv4.ToString();
                    PhysicalVariable pv5 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray()));
                    RetData[6] = pv5.ToString();
                    return(RetData);
                }
                else if (RecBuffer[0] == 0xff && RecBuffer[1] == 0xff)
                {
                    string[]         RetData = new string[6];
                    PhysicalVariable pv      = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(2).Take(8).ToArray()));
                    RetData[0] = pv.ToString();
                    PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(10).Take(8).ToArray()));
                    RetData[1] = pv1.ToString();
                    PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(18).Take(8).ToArray()));
                    RetData[2] = pv2.ToString();
                    PhysicalVariable pv3 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(26).Take(8).ToArray()));
                    RetData[3] = pv3.ToString();
                    PhysicalVariable pv4 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(34).Take(8).ToArray()));
                    RetData[4] = pv4.ToString();
                    PhysicalVariable pv5 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecBuffer.Skip(42).Take(8).ToArray()));
                    RetData[5] = pv5.ToString();
                    return(RetData);
                }
                else if (RecBuffer[0] == 0xee)
                {
                    string[] Rd = new string[1];

                    Rd[0] = TestErr(RecBuffer[1].ToString());
                    return(Rd);//错误类型
                }
                else
                {
                    return(null);
                }
            }
            if (testkind == Parameter.TestKind.读取放电数据)
            {
                byte[] RecData = new byte[26];
                // float[] RetData = new float[4];
                byte[] SendComman = { 0x3e };
                if (sc.SendCommand(SendComman, ref RecData, 50) >= 0)
                {
                    string[] RetData = new string[4];
                    bool     Success;
                    RetData[0] = RecData[0].ToString();
                    PhysicalVariable pv = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(1).Take(8).ToArray()), out Success);
                    if (Success)
                    {
                        RetData[1] = pv.ToString();
                    }
                    else
                    {
                        RetData[1] = Encoding.ASCII.GetString(RecData.Skip(1).Take(8).ToArray());
                    }
                    PhysicalVariable pv1 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(9).Take(8).ToArray()), out Success);
                    if (Success)
                    {
                        RetData[2] = pv1.ToString();
                    }
                    else
                    {
                        RetData[2] = Encoding.ASCII.GetString(RecData.Skip(9).Take(8).ToArray());
                    }
                    PhysicalVariable pv2 = NumericsConverter.Text2Value(Encoding.ASCII.GetString(RecData.Skip(17).Take(8).ToArray()), out Success);
                    if (Success)
                    {
                        RetData[3] = pv2.ToString();
                    }
                    else
                    {
                        RetData[3] = Encoding.ASCII.GetString(RecData.Skip(17).Take(8).ToArray());
                    }

                    return(RetData);
                }
            }
            return(null);
        }
示例#27
0
 private void TextBox1_TextChanged(object sender, EventArgs e)
 {
     label1.Text = NumericsConverter.Text2Value(textBox1.Text.ToString()).ToString();
 }
示例#28
0
        private void Recor_Click(object sender, RoutedEventArgs e)
        {
            #region 设置基础值
            double VolateD = 0;
            string Volate  = "0V";
            try
            {
                if (AutoStateStatic.SState.mv.HVVoltage.ToString() != "NaN")
                {
                    Volate = mv.HVVoltage.ToString();
                    PhysicalVariable a = NumericsConverter.Text2Value(Volate);
                    VolateD = (double)a.value;
                }
            }
            catch
            {
            }
            var Fre  = mv.HVFrequency.ToString();
            var Time = DateTime.Now.ToString();

            float Cn      = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Capacitance1).value;
            var   Current = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Current1).value;
            var   Tan     = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.DissipationFactor1).value;

            var Cn2      = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Capacitance2).value;
            var Current2 = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Current2).value;
            var Tan2     = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.DissipationFactor2).value;

            var Cn3      = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Capacitance3).value;
            var Current3 = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Current3).value;
            var Tan3     = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.DissipationFactor3).value;

            var Cn4      = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Capacitance4).value;
            var Current4 = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.Current4).value;
            var Tan4     = (float)NumericsConverter.Text2Value(AutoStateStatic.SState.mv.DissipationFactor4).value;
            if (Com1.SelectedIndex == 0)
            {
                XVolate.Add(Volate);

                if (Com2.SelectedIndex == 0)
                {
                    YVolateAndCn.Add(Cn);
                    YVolateAndCn2.Add(Cn2);
                    YVolateAndCn3.Add(Cn3);
                    YVolateAndCn4.Add(Cn4);

                    mv.SetChartObserver(YVolateAndCn.ToArray(), XVolate, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndCn2.ToArray(), XVolate, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndCn3.ToArray(), XVolate, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndCn4.ToArray(), XVolate, ChartPannel.Channel4);
                }
                else if (Com2.SelectedIndex == 1)
                {
                    YVolateAndCurrent.Add((double)Current);
                    YVolateAndCurrent2.Add((double)Current2);
                    YVolateAndCurrent3.Add((double)Current3);
                    YVolateAndCurrent4.Add((double)Current4);
                    mv.SetChartObserver(YVolateAndCurrent.ToArray(), XVolate, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndCurrent2.ToArray(), XVolate, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndCurrent3.ToArray(), XVolate, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndCurrent4.ToArray(), XVolate, ChartPannel.Channel4);
                }
                else if (Com2.SelectedIndex == 2)
                {
                    YVolateAndTan.Add((double)Tan);
                    YVolateAndTan2.Add((double)Tan2);
                    YVolateAndTan3.Add((double)Tan3);
                    YVolateAndTan4.Add((double)Tan4);
                    mv.SetChartObserver(YVolateAndTan.ToArray(), XVolate, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndTan2.ToArray(), XVolate, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndTan3.ToArray(), XVolate, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndTan4.ToArray(), XVolate, ChartPannel.Channel4);
                }
            }
            if (Com1.SelectedIndex == 1)
            {
                XFre.Add(Fre);
                if (Com2.SelectedIndex == 0)
                {
                    YVolateAndCn.Add((double)Cn);
                    YVolateAndCn2.Add((double)Cn2);
                    YVolateAndCn3.Add((double)Cn3);
                    YVolateAndCn4.Add((double)Cn4);
                    mv.SetChartObserver(YVolateAndCn.ToArray(), XFre, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndCn2.ToArray(), XFre, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndCn3.ToArray(), XFre, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndCn4.ToArray(), XFre, ChartPannel.Channel4);
                }
                else if (Com2.SelectedIndex == 1)
                {
                    YVolateAndCurrent.Add((double)Current);
                    YVolateAndCurrent2.Add((double)Current2);
                    YVolateAndCurrent3.Add((double)Current3);
                    YVolateAndCurrent4.Add((double)Current4);
                    mv.SetChartObserver(YVolateAndCurrent.ToArray(), XFre, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndCurrent2.ToArray(), XFre, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndCurrent3.ToArray(), XFre, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndCurrent4.ToArray(), XFre, ChartPannel.Channel4);
                }
                else
                {
                    YVolateAndTan.Add((double)Tan);
                    YVolateAndTan2.Add((double)Tan2);
                    YVolateAndTan3.Add((double)Tan3);
                    YVolateAndTan4.Add((double)Tan4);
                    mv.SetChartObserver(YVolateAndTan.ToArray(), XFre, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndTan2.ToArray(), XFre, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndTan3.ToArray(), XFre, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndTan4.ToArray(), XFre, ChartPannel.Channel4);
                }
            }
            if (Com1.SelectedIndex == 2)
            {
                XFre.Add(Time);
                if (Com2.SelectedIndex == 0)
                {
                    YVolateAndCn.Add((double)VolateD);
                    YVolateAndCn2.Add((double)VolateD);
                    YVolateAndCn3.Add((double)VolateD);
                    YVolateAndCn4.Add((double)VolateD);
                    mv.SetChartObserver(YVolateAndCn.ToArray(), XTime, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndCn2.ToArray(), XTime, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndCn3.ToArray(), XTime, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndCn4.ToArray(), XTime, ChartPannel.Channel4);
                }
                else if (Com2.SelectedIndex == 1)
                {
                    YVolateAndCurrent.Add((double)Current);
                    YVolateAndCurrent2.Add((double)Current2);
                    YVolateAndCurrent3.Add((double)Current3);
                    YVolateAndCurrent4.Add((double)Current4);
                    mv.SetChartObserver(YVolateAndCurrent.ToArray(), XTime, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndCurrent2.ToArray(), XTime, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndCurrent3.ToArray(), XTime, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndCurrent4.ToArray(), XTime, ChartPannel.Channel4);
                }
                else
                {
                    YVolateAndTan.Add((double)Tan);
                    YVolateAndTan2.Add((double)Tan2);
                    YVolateAndTan3.Add((double)Tan3);
                    YVolateAndTan4.Add((double)Tan4);
                    mv.SetChartObserver(YVolateAndTan.ToArray(), XTime, ChartPannel.Channel1);
                    mv.SetChartObserver(YVolateAndTan2.ToArray(), XTime, ChartPannel.Channel2);
                    mv.SetChartObserver(YVolateAndTan3.ToArray(), XTime, ChartPannel.Channel3);
                    mv.SetChartObserver(YVolateAndTan4.ToArray(), XTime, ChartPannel.Channel4);
                }
            }
            #endregion
        }
        private void MainWindow_OutTestResult(byte[] data)
        {
            ViewSources vs = new ViewSources(data);

            this.Dispatcher.BeginInvoke((Action) delegate()
            {
                if (Com1.SelectedIndex == 0)
                {
                    DL.Text     = NumericsConverter.Value2Text(vs.TestIn, 6, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
                    XW.Text     = vs.TestPh1.ToString("F6");
                    float[] tpd = GetTwoNum(Com1.SelectedIndex, Com2.SelectedIndex, (int)vs.TestRn);
                    if (tpd != null)
                    {
                        if ((((int)vs.TestRn).ToString() != LC.Text) && CurrentTextBox.Text.Length < 1)
                        {
                            CurrentTextBox.Text = tpd[0].ToString();
                            Tant.Text           = tpd[1].ToString();
                        }
                    }
                    LC.Text = vs.TestRn.ToString();
                }
                if (Com1.SelectedIndex == 3)
                {
                    DL.Text     = NumericsConverter.Value2Text(vs.TestIx1, 6, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
                    XW.Text     = vs.TestPh2.ToString("F6");
                    float[] tpd = GetTwoNum(Com1.SelectedIndex, Com2.SelectedIndex, (int)vs.TestRx1);
                    if (tpd != null)
                    {
                        if ((((int)vs.TestRx1).ToString() != LC.Text) && CurrentTextBox.Text.Length < 1)
                        {
                            CurrentTextBox.Text = tpd[0].ToString();
                            Tant.Text           = tpd[1].ToString();
                        }
                    }
                    LC.Text = vs.TestRx1.ToString();
                }
                if (Com1.SelectedIndex == 4)
                {
                    DL.Text     = NumericsConverter.Value2Text(vs.TestIx2, 6, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
                    XW.Text     = vs.TestPh3.ToString("F6");
                    float[] tpd = GetTwoNum(Com1.SelectedIndex, Com2.SelectedIndex, (int)vs.TestRx2);
                    if (tpd != null)
                    {
                        if ((((int)vs.TestRx2).ToString() != LC.Text) && CurrentTextBox.Text.Length < 1)
                        {
                            CurrentTextBox.Text = tpd[0].ToString();
                            Tant.Text           = tpd[1].ToString();
                        }
                    }
                    LC.Text = vs.TestRx2.ToString();
                }
                if (Com1.SelectedIndex == 5)
                {
                    DL.Text     = NumericsConverter.Value2Text(vs.TestIx3, 6, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
                    XW.Text     = vs.TestPh4.ToString("F6");
                    float[] tpd = GetTwoNum(Com1.SelectedIndex, Com2.SelectedIndex, (int)vs.TestRx3);
                    if (tpd != null)
                    {
                        if ((((int)vs.TestRx3).ToString() != LC.Text) && CurrentTextBox.Text.Length < 1)
                        {
                            CurrentTextBox.Text = tpd[0].ToString();
                            Tant.Text           = tpd[1].ToString();
                        }
                    }
                    LC.Text = vs.TestRx3.ToString();
                }
                if (Com1.SelectedIndex == 6)
                {
                    DL.Text     = NumericsConverter.Value2Text(vs.TestIx4, 6, -13, "", SCEEC.Numerics.Quantities.QuantityName.Current);
                    XW.Text     = vs.TestPh4.ToString("F6");
                    float[] tpd = GetTwoNum(Com1.SelectedIndex, Com2.SelectedIndex, (int)vs.TestRx4);
                    if (tpd != null)
                    {
                        if ((((int)vs.TestRx4).ToString() != LC.Text) && CurrentTextBox.Text.Length < 1)
                        {
                            CurrentTextBox.Text = tpd[0].ToString();
                            Tant.Text           = tpd[1].ToString();
                        }
                    }
                    LC.Text = vs.TestRx4.ToString();
                }
                if (Com1.SelectedIndex == 1 || Com1.SelectedIndex == 2 || Com1.SelectedIndex == 7)
                {
                    LC.Text             = "";
                    DL.Text             = "";
                    XW.Text             = "";
                    CurrentTextBox.Text = "";
                    Tant.Text           = "";
                }
            });
        }