/// <summary> /// 计算关开关成绩 /// </summary> /// <param name="weldingType"></param> /// <param name="state"></param> /// <returns></returns> public static decimal CalcSwitchOffResult(WeldingType weldingType, DeviceState state) { var score = DeviceStateConfig.CalcSwitchOffResult(WeldingSteps, weldingType, state); WeldingPart.TitleScore += score; return(score); }
/// <summary> /// 计算穿戴成绩 /// </summary> /// <param name="dressReport"></param> /// <param name="weldingType"></param> /// <param name="selectedUtensilList"></param> /// <returns></returns> public static decimal CalcDressResult( WeldingType weldingType, IEnumerable <Utensil> selectedUtensilList) { var userDress = selectedUtensilList == null ? new Utensil[0] : (selectedUtensilList as Utensil[] ?? selectedUtensilList.ToArray()); return(DeviceStateConfig.CalcDressResult(DressPart, weldingType, userDress)); }
/// <summary> /// 计算检查隐患成绩 /// </summary> /// <param name="weldingType"></param> /// <param name="state"></param> /// <returns></returns> public static decimal CalcCheckTroubleResult(WeldingType weldingType, DeviceState state) { var steps = new Steps(); CheckTroublePart.StepList.Add(steps); var score = DeviceStateConfig.CalcCheckTroubleResult(steps, weldingType, state); CheckTroublePart.TitleScore += score; return(score); }
/// <summary> /// 计算虚拟焊接成绩 /// </summary> /// <param name="weldingType"></param> /// <param name="iniPath"></param> /// <returns></returns> public static decimal CalcVirtualWeldingResult(WeldingType weldingType, string iniPath) { var percent = DeviceStateConfig.GetVirtualWeldingScorePercent(weldingType); var score = weldingType == WeldingType.ArgonArcWelding ? ArgonArcWeldingScoreParser.CalcScore(WeldingSteps, iniPath, percent) : WeldingScoreParser.CalcScore(WeldingSteps, iniPath, percent); WeldingPart.TitleScore += score; return(score); }
/// <summary> /// 计算穿戴成绩 /// </summary> /// <returns></returns> //public static decimal CalcDressResult( // Dictionary<WeldingType, IEnumerable<Utensil>> utensilDictionary, // WeldingType currentWeldingType, // IEnumerable<Utensil> selectedUtensilList, decimal weight) //{ // var answer = utensilDictionary[currentWeldingType]; // var answerArray = answer as Utensil[] ?? answer.ToArray(); // var userAnswerArray = selectedUtensilList == null ? new Utensil[0]: // (selectedUtensilList as Utensil[] ?? selectedUtensilList.ToArray()); // //求正确答案和用户答案的交集:得分项 // var intersect = answerArray.Intersect(userAnswerArray); // //求用户答案和正确答案的差集:扣分项 // var except = userAnswerArray.Except(answerArray); // var intersectArray = intersect as Utensil[] ?? intersect.ToArray(); // var exceptArray = except as Utensil[] ?? except.ToArray(); // DressPart.TitleScore = Math.Max(0, intersectArray.Length - exceptArray.Length)*weight; // //记录分步信息 // Steps steps = new Steps(); // DressPart.StepList.Add(steps); // foreach (var utensil in intersectArray) // { // steps.StepList.Add(new Step // { // StepName = EnumHelper.GetEnumDescription(utensil), // StepScore = weight // }); // } // foreach (var utensil in exceptArray) // { // steps.StepList.Add(new Step // { // StepName = EnumHelper.GetEnumDescription(utensil), // StepScore = -weight // }); // } // return DressPart.TitleScore; //} /// <summary> /// 计算焊前检查结果 /// </summary> /// <returns></returns> public static decimal CalcInspectionBeforeWeldingResult(WeldingType weldingType, DeviceState state) { WeldingSteps = new Steps(); WeldingPart.StepList.Add(WeldingSteps); var score = DeviceStateConfig.CalcInspectionBeforeWeldingResult(WeldingSteps, weldingType, state); WeldingPart.TitleScore += score; return(score); }
public MainWindow() { InitializeComponent(); InitPages(); InitSerialPort(); Content = LoginPage; ResetIdCardReader(); SetMaxWindow(); ExamEnv = new ExamEnv(); WindowInteropHelper = new WindowInteropHelper(this); DeviceStateConfig.LoadConfig(); this.Loaded += MainWindowLoaded; Closed += MainWindowClosed; }