Exemple #1
0
    private float GridOut(ResultUnit ru, float y)
    {
        ResultUnitEx resultUnitEx = ru as ResultUnitEx;

        if (resultUnitEx == null)
        {
            return(y);
        }
        int          rank = -1;
        int          mark = -1;
        BrickManDesc desc = BrickManManager.Instance.GetDesc(ru.seq);

        if (desc != null)
        {
            mark = desc.ClanMark;
            rank = desc.Rank;
        }
        else if (ru.seq == MyInfoManager.Instance.Seq)
        {
            mark = MyInfoManager.Instance.ClanMark;
            rank = MyInfoManager.Instance.Rank;
        }
        if (MyInfoManager.Instance.Seq == ru.seq)
        {
            GUI.Box(new Rect(myRowX, y - myRowSize.y / 2f, myRowSize.x, myRowSize.y), string.Empty, "BoxMyInfo");
        }
        DrawClanMark(new Rect(markX - crdClanMarkSize.x / 2f, y - crdClanMarkSize.y / 2f, crdClanMarkSize.x, crdClanMarkSize.y), mark);
        int       level = XpManager.Instance.GetLevel(ru.nextXp);
        Texture2D badge = XpManager.Instance.GetBadge(level, rank);

        if (null != badge)
        {
            TextureUtil.DrawTexture(new Rect(badgeX - crdBadgeSize.x / 2f, y - crdBadgeSize.y / 2f - 1f, crdBadgeSize.x, crdBadgeSize.y), badge);
        }
        LabelUtil.TextOut(new Vector2(nickX, y), ru.nickname, "Label", Color.white, GlobalVars.txtEmptyColor, TextAnchor.MiddleCenter);
        LabelUtil.TextOut(new Vector2(scoreX, y), ru.score.ToString(), "Label", new Color(0.83f, 0.49f, 0.29f), GlobalVars.txtEmptyColor, TextAnchor.MiddleCenter);
        LabelUtil.TextOut(new Vector2(killX, y), resultUnitEx.param.ToString(), "Label", Color.white, GlobalVars.txtEmptyColor, TextAnchor.MiddleCenter);
        LabelUtil.TextOut(new Vector2(deathX, y), ru.death.ToString(), "Label", Color.white, GlobalVars.txtEmptyColor, TextAnchor.MiddleCenter);
        LabelUtil.TextOut(new Vector2(xpX, y), ru.xp.ToString(), "Label", Color.white, GlobalVars.txtEmptyColor, TextAnchor.MiddleCenter);
        LabelUtil.TextOut(new Vector2(pointX, y), ru.point.ToString(), "Label", Color.white, GlobalVars.txtEmptyColor, TextAnchor.MiddleCenter);
        Vector2 vector = new Vector2(buffX, y);

        BuffDesc[] array = BuffManager.Instance.ToWhyArray(ru.buff);
        for (int i = 0; i < array.Length; i++)
        {
            GUI.Button(new Rect(vector.x, vector.y - crdBuffSize.y / 2f, crdBuffSize.x, crdBuffSize.y), new GUIContent(array[i].icon, StringMgr.Instance.Get(array[i].tooltip)), "InvisibleButton");
            vector.x += crdBuffSize.x + 2f;
        }
        if (dicLeveler.ContainsKey(ru.seq))
        {
            TextureUtil.DrawTexture(new Rect(vector.x, vector.y - crdLevelupSize.y / 2f, crdLevelupSize.x, crdLevelupSize.y), levelUpIcon, ScaleMode.StretchToFill);
        }
        return(y + offset);
    }
 public int Compare(ResultUnit ru)
 {
     if (score == ru.score)
     {
         if (kill == ru.kill)
         {
             return(death.CompareTo(ru.death));
         }
         return(-kill.CompareTo(ru.kill));
     }
     return(-score.CompareTo(ru.score));
 }
Exemple #3
0
        public bool RunSampleVerification(long traceNr, EngineData.AI[] analogDetections = null, ResultUnit unit = ResultUnit.V, EngineData.DI[] digitalDetections = null, bool[] wantedDigitalResult = null)
        {
            var analogResult  = new Dictionary <EngineData.AI, int>();
            var digitalResult = new Dictionary <EngineData.DI, int>();

            if (analogDetections != null)
            {
                TestWithAnalogInput(analogDetections, out analogResult, unit);
            }
            else
            {
                var ais = (EngineData.AI[])Enum.GetValues(typeof(EngineData.AI));
                TestWithAnalogInput(ais, out analogResult, unit);
            }

            if (digitalDetections != null)
            {
                if (wantedDigitalResult != null)
                {
                    TestWithDigitalInput(digitalDetections, wantedDigitalResult, out digitalResult);
                }
                else
                {
                    wantedDigitalResult = new bool[digitalDetections.Length];
                    for (int i = 0; i < wantedDigitalResult.Length; i++)
                    {
                        wantedDigitalResult[i] = true;
                    }

                    TestWithDigitalInput(digitalDetections, wantedDigitalResult, out digitalResult);
                }
            }

            if (DBResource != null)
            {
                return(DBResource.Samples_ValidateSampleTesting(traceNr));
            }
            else
            {
                return(true);
            }
        }
Exemple #4
0
        public bool TestWithAnalogInput(EngineData.AI[] detections, out Dictionary <EngineData.AI, int> testResult, ResultUnit unit)
        {
            var validation = true;

            testResult = new Dictionary <EngineData.AI, int>();
            var builder = new StringBuilder();
            var error   = "";

            var index = 0;

            var adjustments = DBResource?.Calibration_GetLastAdjustments(WSID, 1);

            //Check Analog Inputs
            foreach (var AI in detections)
            {
                var adjustment = adjustments?.Find(a => a.Name == Enum.GetName(typeof(EngineData.AI), AI));

                if (adjustment == null)
                {
                    adjustment = new CalibrationAdjustment
                    {
                        OffSet = 0
                    };
                }

                var realTimeValue = Math.Round(ReadAI(AI) - adjustment.OffSet, 2);

                var measure = DBResource?.MeasureLimits.Find(m => m.MeasureName == Enum.GetName(typeof(EngineData.AI), AI));

                if (measure != null)
                {
                    if (realTimeValue > measure.MinValue && realTimeValue < measure.MaxValue)
                    {
                        testResult.Add(AI, 0);
                        DBResource?.Result_SaveResult(DBResource.JobID, realTimeValue, measure.MinValue, measure.MaxValue, "", "", ResultSubCategory.Mechanical_DimensionControl, unit, "");
                    }
                    else
                    {
                        testResult.Add(AI, 1);
                        validation = false;
                        builder.Append(Enum.GetName(typeof(EngineData.AI), detections[index]) + " -> " + " [" + measure.MinValue + " < " + realTimeValue + " < " + measure.MaxValue + "]" + Environment.NewLine);

                        DBResource?.Result_SaveResult(DBResource.JobID, realTimeValue, measure.MinValue, measure.MaxValue, "", "", ResultSubCategory.Mechanical_DimensionControl, ResultUnit.V, "");
                    }
                }
                index++;
            }

            error = builder.ToString();
            NewInternalErrorText?.Invoke(CycleId, error);
            return(validation);
        }
Exemple #5
0
        protected void gridLabUnits_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "AddItem")
                {
                    GridViewRow  row            = gridLabUnits.FooterRow;
                    DropDownList ddlNewUnitName = (DropDownList)row.FindControl("ddlNewUnitName");
                    if (!validateDropDown(ddlNewUnitName))
                    {
                        ddlNewUnitName.BorderColor = System.Drawing.Color.Red;
                        IQCareMsgBox.NotifyAction("Please select the unit", "Error: Missing Fields", true, this, "");
                        return;
                    }
                    ResultUnit unit = new ResultUnit()
                    {
                        Id = int.Parse(ddlNewUnitName.SelectedValue), Text = ddlNewUnitName.SelectedItem.Text
                    };

                    TextBox texMinBoundary = row.FindControl("txtNewMinBoundaryValue") as TextBox;

                    TextBox txtNewMaxBoundaryValue = row.FindControl("txtNewMaxBoundaryValue") as TextBox;

                    TextBox txtNewMinNormalRange = row.FindControl("txtNewMinNormalRange") as TextBox;

                    TextBox txtNewMaxNormalRange = row.FindControl("txtNewMaxNormalRange") as TextBox;

                    TextBox txtNewDetectionLimit = row.FindControl("txtNewDetectionLimit") as TextBox;

                    bool     defaultunit   = false;
                    CheckBox ckbNewDefault = row.FindControl("ckbNewDefault") as CheckBox;
                    defaultunit = ckbNewDefault.Checked;
                    List <ParameterResultConfig> _configs = this.UnitConfig;
                    if (defaultunit)
                    {
                        if (_configs.Count > 0)
                        {
                            _configs.ForEach(u =>
                            {
                                u.IsDefault = false;
                            });
                        }
                    }

                    ParameterResultConfig config = null;
                    if (_configs.Count > 0)
                    {
                        config = _configs.DefaultIfEmpty(null).FirstOrDefault(u => u.UnitId == unit.Id);
                    }
                    if (config != null)
                    {
                        config.DeleteFlag     = false;
                        config.IsDefault      = defaultunit;
                        config.DetectionLimit = txtNewDetectionLimit.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewDetectionLimit.Text);
                        config.MaxBoundary    = txtNewMaxBoundaryValue.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewMaxBoundaryValue.Text);
                        config.MinBoundary    = texMinBoundary.Text == "" ? nullDecimal : Convert.ToDecimal(texMinBoundary.Text);
                        config.MaxNormalRange = txtNewMaxNormalRange.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewMaxNormalRange.Text);
                        config.MinNormalRange = txtNewMinNormalRange.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewMinNormalRange.Text);
                    }
                    else
                    {
                        config = new ParameterResultConfig()
                        {
                            ParameterId    = this.ParameterId,
                            Id             = -1,
                            DeleteFlag     = false,
                            IsDefault      = defaultunit,
                            DetectionLimit = txtNewDetectionLimit.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewDetectionLimit.Text),
                            MinBoundary    = texMinBoundary.Text == "" ? nullDecimal : Convert.ToDecimal(texMinBoundary.Text),
                            MaxBoundary    = txtNewMaxBoundaryValue.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewMaxBoundaryValue.Text),
                            MinNormalRange = txtNewMinNormalRange.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewMinNormalRange.Text),
                            MaxNormalRange = txtNewMaxNormalRange.Text == "" ? nullDecimal : Convert.ToDecimal(txtNewMaxNormalRange.Text),
                            ResultUnit     = unit
                        };
                        _configs.Add(config);
                    };
                    this.UnitConfig = _configs;
                    this.BindParameterConfig();
                }
            }
            catch (Exception ex)
            {
                this.ShowErrorMessage(ref ex);
            }
        }
Exemple #6
0
        public override void Single()
        {
            foreach (PIMTestTrace tr in ItemList)
            {
                (tr.TestResult as XYTraceResult).ResultData.Clear();
            }

            if (GeneTestSetup.Instance.IsSimulated)
            {
                switch (CalType)
                {
                case PIMCalType.Point:
                    foreach (PIMTestTrace tr in ItemList)
                    {
                        (tr.TestResult as XYTraceResult).ResultData.Clear();
                        if (tr.TypeName == PIMTestTraceType.PIMTrace1)
                        {
                            (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                X = 0, Y = GeneFun.GetRand(-140, -100)
                            });
                        }
                        if (tr.TypeName == PIMTestTraceType.PIMTrace2)
                        {
                            (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                X = 0, Y = GeneFun.GetRand(-140, -100)
                            });
                        }
                    }

                    PIMPower1 = GeneFun.GetRand(42, 44);
                    PIMPower2 = GeneFun.GetRand(42, 44);
                    break;

                case PIMCalType.Sweep:
                    foreach (PIMTestTrace tr in ItemList)
                    {
                        (tr.TestResult as XYTraceResult).ResultData.Clear();
                        if (tr.SweepSource == PIMSweepSourceEnum.F1)
                        {
                            double[] freqList = GeneFun.GenerateIndexedArray(StartFreq1, StopFreq1, points1);
                            foreach (var freq in freqList)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                    X = freq, Y = GeneFun.GetRand(-140, -100)
                                });
                            }
                        }
                        if (tr.SweepSource == PIMSweepSourceEnum.F2)
                        {
                            double[] freqList = GeneFun.GenerateIndexedArray(StartFreq2, StopFreq2, points2);
                            foreach (var freq in freqList)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                    X = freq, Y = GeneFun.GetRand(-140, -100)
                                });
                            }
                        }
                    }

                    PIMPower1 = GeneFun.GetRand(42, 44);
                    PIMPower2 = GeneFun.GetRand(42, 44);
                    break;

                case PIMCalType.TimeDomain:
                    int    num    = PIMOrder / 2;
                    double dblIMF = (((num + 1) * CWFreq1) - (num * CWFreq2));

                    foreach (PIMTestTrace tr in ItemList)
                    {
                        (tr.TestResult as XYTraceResult).ResultData.Clear();
                        if (tr.SweepSource == PIMSweepSourceEnum.F1)
                        {
                            for (int i = 0; i < 50; i++)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                    X = i, Y = GeneFun.GetRand(-140, -100)
                                });
                            }
                        }
                        if (tr.SweepSource == PIMSweepSourceEnum.F2)
                        {
                            for (int i = 0; i < 50; i++)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                    X = i, Y = GeneFun.GetRand(-140, -100)
                                });
                            }
                        }
                    }

                    PIMPower1 = GeneFun.GetRand(42, 44);
                    PIMPower2 = GeneFun.GetRand(42, 44);
                    break;

                default:
                    break;
                }
            }
            else
            {
                //setting to instru
                MeasInfo.InstruInfoList[0].InstruDriver.Reset();

                PIMTester.setFreq(CWFreq1, CWFreq2);

                PIMTester.setPow(CWPOW1, CWPOW2);

                PIMTester.setMeasMode(MeasMode.ToString());

                PIMTester.setUnit(ResultUnit.ToString());

                PIMTester.setIMOrder(PIMOrder);

                PIMTester.setPort(PortName.ToString());

                if (CalType == PIMCalType.Point)
                {
                    int    num    = PIMOrder / 2;
                    double dblIMF = ((num + 1) * CWFreq1) - (num * CWFreq2);

                    PIMTester.setModeStandard(dblIMF);

                    PIMTester.setPowOn(true, true);

                    List <XYData> lstRes = new List <XYData>();

                    double[] strRes = new double[3];
                    if (ResultUnit == ResultUnit.dBm)
                    {
                        strRes = PIMTester.getPointIMPow(0);
                    }
                    else
                    {
                        strRes = PIMTester.getPointIMPow(CWPOW1);
                    }

                    PIMPower1 = strRes[0];
                    PIMPower2 = strRes[1];

                    //XYData xyData = new XYData();
                    ////赋值
                    //xyData.X = dblIMF;
                    //xyData.Y = strRes[2];

                    //lstRes.Add(xyData);

                    //PIMTestResult1 = (XYDataArr)lstRes;

                    foreach (PIMTestTrace tr in ItemList)
                    {
                        if (tr.TypeName == PIMTestTraceType.PIMTrace1)
                        {
                            (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                X = dblIMF, Y = strRes[2]
                            });
                        }
                        if (tr.TypeName == PIMTestTraceType.PIMTrace2)
                        {
                            (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                X = dblIMF, Y = strRes[2]
                            });
                        }
                    }
                }
                else if (CalType == PIMCalType.Sweep)
                {
                    SweepFlag = PIMTester.getSweepFlag();

                    //int number = (PIMOrder / 2);
                    //double dblTestStep1 = TestStepper * (number + 1f);
                    //double dblTestStep2 = TestStepper * number;

                    int intTotalCount1 = (SweepFlag == "F1UP" ? (int)((StopFreq1 - StartFreq1) / TestStepper) : (int)((StopFreq2 - StartFreq2) / TestStepper));
                    int intTotalCount2 = (SweepFlag == "F1UP" ? (int)((StopFreq2 - StartFreq2) / TestStepper) : (int)((StopFreq1 - StartFreq1) / TestStepper));

                    PIMTester.setModeSweepTx(TestStepper, CWFreq1, CWFreq2);
                    PIMTester.setPowOn(true, true);

                    double newData1 = -200;
                    double newData2 = -200;
                    double dblIMF1  = 0;
                    double dblIMF2  = 0;

                    for (int i = 0; i < (intTotalCount1 + intTotalCount2 + 2); i++)
                    {
                        bool bRunState = GetRunState();
                        if (!bRunState)
                        {
                            PIMTester.setPowOn(false, false);

                            foreach (PIMTestTrace tr in ItemList)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Clear();
                            }

                            return;
                        }

                        double dblNowFreq1 = 0;
                        double dblNowFreq2 = 0;

                        int j = 0;
                        if (i <= intTotalCount1)
                        {
                            j = i;

                            dblNowFreq1 = (SweepFlag == "F1UP" ? (StartFreq1 + i * TestStepper) : StartFreq1);
                            dblNowFreq2 = (SweepFlag == "F1UP" ? StopFreq2 : (StopFreq2 - j * TestStepper));
                        }
                        else
                        {
                            j = (i - intTotalCount1 - 1);

                            dblNowFreq1 = (SweepFlag == "F1UP" ? StartFreq1 : (StartFreq1 + i * TestStepper));
                            dblNowFreq2 = (SweepFlag == "F1UP" ? (StopFreq2 - j * TestStepper) : StopFreq2);
                        }

                        PIMTester.setPowATT("CARR1", CWPOW1);
                        PIMTester.setPowATT("CARR2", CWPOW2);

                        double[] strRes = new double[4];
                        if (ResultUnit == ResultUnit.dBm)
                        {
                            strRes = PIMTester.getSweepIMPow(PIMOrder, dblNowFreq1, dblNowFreq2, 0);
                        }
                        else
                        {
                            strRes = PIMTester.getSweepIMPow(PIMOrder, dblNowFreq1, dblNowFreq2, CWPOW1);
                        }

                        PIMPower1 = strRes[0];
                        PIMPower2 = strRes[1];

                        if (i <= intTotalCount1)
                        {
                            if (SweepFlag == "F1UP")
                            {
                                foreach (PIMTestTrace tr in ItemList)
                                {
                                    if (tr.TypeName == PIMTestTraceType.PIMTrace1)
                                    {
                                        (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                            X = strRes[2], Y = strRes[3]
                                        });
                                    }
                                }
                                if (newData1 < strRes[3])
                                {
                                    dblIMF1  = strRes[2];
                                    newData1 = strRes[3];
                                }
                            }
                            else
                            {
                                foreach (PIMTestTrace tr in ItemList)
                                {
                                    if (tr.TypeName == PIMTestTraceType.PIMTrace2)
                                    {
                                        (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                            X = strRes[2], Y = strRes[3]
                                        });
                                    }
                                }
                                if (newData2 < strRes[3])
                                {
                                    dblIMF2  = strRes[2];
                                    newData2 = strRes[3];
                                }
                            }
                        }
                        else
                        {
                            if (SweepFlag == "F1UP")
                            {
                                foreach (PIMTestTrace tr in ItemList)
                                {
                                    if (tr.TypeName == PIMTestTraceType.PIMTrace2)
                                    {
                                        (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                            X = strRes[2], Y = strRes[3]
                                        });
                                    }
                                }
                                if (newData2 < strRes[3])
                                {
                                    dblIMF2  = strRes[2];
                                    newData2 = strRes[3];
                                }
                            }
                            else
                            {
                                foreach (PIMTestTrace tr in ItemList)
                                {
                                    if (tr.TypeName == PIMTestTraceType.PIMTrace1)
                                    {
                                        (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                            X = strRes[2], Y = strRes[3]
                                        });
                                    }
                                }
                                if (newData1 < strRes[3])
                                {
                                    dblIMF1  = strRes[2];
                                    newData1 = strRes[3];
                                }
                            }
                        }
                    }
                }
                else
                {
                    int    num    = PIMOrder / 2;
                    double dblIMF = (((num + 1) * CWFreq1) - (num * CWFreq2));

                    PIMTester.setModeStandard(dblIMF);

                    PIMTester.setPowOn(true, true);

                    List <XYData> lstRes = new List <XYData>();

                    DateTime TimeOld = System.DateTime.Now;

                    int i = 0;
                    while (System.DateTime.Now.Subtract(TimeOld).TotalSeconds < TestTime)
                    {
                        bool bRunState = GetRunState();
                        if (!bRunState)
                        {
                            PIMTester.setPowOn(false, false);
                            return;
                        }

                        PIMTester.setPowATT("CARR1", CWPOW1);
                        PIMTester.setPowATT("CARR2", CWPOW2);

                        double[] strRes = new double[3];
                        if (ResultUnit == ResultUnit.dBm)
                        {
                            strRes = PIMTester.getPointIMPow(0);
                        }
                        else
                        {
                            strRes = PIMTester.getPointIMPow(CWPOW1);
                        }


                        PIMPower1 = strRes[0];
                        PIMPower2 = strRes[1];

                        foreach (PIMTestTrace tr in ItemList)
                        {
                            if (tr.TypeName == PIMTestTraceType.PIMTrace1)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                    X = i, Y = strRes[2]
                                });
                            }
                            if (tr.TypeName == PIMTestTraceType.PIMTrace2)
                            {
                                (tr.TestResult as XYTraceResult).ResultData.Add(new XYData {
                                    X = i, Y = strRes[2]
                                });
                            }
                        }
                        i++;
                    }
                }

                PIMTester.setPowOn(false, false);
            }

            SingleDBTime = DataUtils.StaticInfo.DBTime;
        }