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)); }
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); } }
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); }
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); } }
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; }