Пример #1
0
        private void Test_Click(object Sender, RoutedEventArgs E)
        {
            if (tabControl.SelectedIndex != 1)
            {
                return;
            }

            var paramGate = new Types.Gate.TestParameters {
                IsEnabled = false
            };
            var paramBvt = new Types.BVT.TestParameters {
                IsEnabled = false
            };
            var paramVtm = new Types.VTM.TestParameters {
                IsEnabled = false
            };
            var paramATU = new Types.ATU.TestParameters {
                IsEnabled = false
            };
            var paramQrrTq = new Types.QrrTq.TestParameters {
                IsEnabled = false
            };
            var paramIH = new Types.IH.TestParameters {
                IsEnabled = false
            };
            var paramRCC = new Types.RCC.TestParameters {
                IsEnabled = false
            };
            var paramTOU = new Types.TOU.TestParameters {
                IsEnabled = false
            };

            switch (tabControl.SelectedIndex)
            {
            case 1:
                paramVtm.IsEnabled  = true;
                paramVtm.IsSelfTest = true;
                break;
            }

            var started = Cache.Net.Start(paramGate, paramVtm, paramBvt, paramATU, paramQrrTq, paramIH, paramRCC,
                                          new Types.Commutation.TestParameters
            {
                BlockIndex      = Types.Commutation.HWBlockIndex.Block1,
                CommutationType = Types.Commutation.HWModuleCommutationType.Direct,
                Position        = Types.Commutation.HWModulePosition.Position1
            }, new Types.Clamping.TestParameters {
                SkipClamping = true
            }, paramTOU, true);

            var stopped = Cache.Net.IsStopButtonPressed;

            if (stopped || !started)
            {
                return;
            }

            IsRunning = true;
        }
Пример #2
0
        private void BtnStart_OnClick(object sender, RoutedEventArgs e)
        {
            if (VM.IsRunning)
            {
                return;
            }

            VM.IsRunning = true;

            var paramGate = new Types.Gate.TestParameters {
                IsEnabled = false
            };
            var paramVtm = new Types.VTM.TestParameters {
                IsEnabled = false
            };
            var paramBvt = new Types.BVT.TestParameters {
                IsEnabled = false
            };
            var paramATU = new Types.ATU.TestParameters {
                IsEnabled = false
            };
            var paramQrrTq = new Types.QrrTq.TestParameters {
                IsEnabled = false
            };
            var paramIH = new Types.IH.TestParameters {
                IsEnabled = false
            };
            var paramRCC = new Types.RCC.TestParameters {
                IsEnabled = false
            };

            //если пресс был зажат вручную - не стоит пробовать зажимать его ещё раз
            VM.Clamping.SkipClamping = Cache.Clamp.ManualClamping;

            Types.Commutation.TestParameters commutation = new Types.Commutation.TestParameters()
            {
                BlockIndex      = (!Cache.Clamp.UseTmax) ? Types.Commutation.HWBlockIndex.Block1 : Types.Commutation.HWBlockIndex.Block2,
                CommutationType = ConverterUtil.MapCommutationType(VM.CommutationType),
                Position        = ConverterUtil.MapModulePosition(VM.Position)
            };



            if (!Cache.Net.Start(paramGate, paramVtm, paramBvt, paramATU, paramQrrTq, paramIH, paramRCC, commutation, VM.Clamping, VM.TOU))
            {
                return;
            }

            ClearStatus();
        }
Пример #3
0
        internal void Start()
        {
            if (IsRunning)
            {
                return;
            }

            var paramGate = new Types.Gate.TestParameters {
                IsEnabled = false
            };
            var paramVtm = new Types.VTM.TestParameters {
                IsEnabled = false
            };
            var paramATU = new Types.ATU.TestParameters {
                IsEnabled = false
            };
            var paramQrrTq = new Types.QrrTq.TestParameters {
                IsEnabled = false
            };
            var paramIH = new Types.IH.TestParameters {
                IsEnabled = false
            };
            var paramRCC = new Types.RCC.TestParameters {
                IsEnabled = false
            };
            var paramTOU = new Types.TOU.TestParameters {
                IsEnabled = false
            };

            ClampParameters.SkipClamping = Cache.Clamp.ManualClamping;

            Parameters.VoltageFrequency = (ushort)Settings.Default.BVTVoltageFrequency;
            Parameters.MeasurementMode  = Types.BVT.BVTMeasurementMode.ModeV;

            if (!Cache.Net.Start(paramGate, paramVtm, Parameters, paramATU, paramQrrTq, paramIH, paramRCC,
                                 new Types.Commutation.TestParameters
            {
                BlockIndex = (!Cache.Clamp.clampPage.UseTmax) ? Types.Commutation.HWBlockIndex.Block1 : Types.Commutation.HWBlockIndex.Block2,
                CommutationType = ConverterUtil.MapCommutationType(CommType),
                Position = ConverterUtil.MapModulePosition(ModPosition)
            }, ClampParameters, paramTOU))
            {
                return;
            }

            ClearStatus();
            IsRunning = true;
        }
Пример #4
0
        internal void Start()
        {
            if (IsRunning)
            {
                return;
            }

            var paramGate = new Types.Gate.TestParameters {
                IsEnabled = false
            };
            var paramVtm = new Types.VTM.TestParameters {
                IsEnabled = false
            };
            var paramBvt = new Types.BVT.TestParameters {
                IsEnabled = false
            };
            var paramATU = new Types.ATU.TestParameters {
                IsEnabled = false
            };
            var paramIH = new Types.IH.TestParameters {
                IsEnabled = false
            };
            var paramRCC = new Types.RCC.TestParameters {
                IsEnabled = false
            };
            var paramTOU = new Types.TOU.TestParameters {
                IsEnabled = false
            };

            //если пресс был зажат вручную - не стоит пробовать зажимать его ещё раз
            ClampParameters.SkipClamping = Cache.Clamp.ManualClamping;

            if (!Cache.Net.Start(paramGate, paramVtm, paramBvt, paramATU, Parameters, paramIH, paramRCC,
                                 new Types.Commutation.TestParameters
            {
                BlockIndex = (!Cache.Clamp.clampPage.UseTmax) ? Types.Commutation.HWBlockIndex.Block1 : Types.Commutation.HWBlockIndex.Block2,
                CommutationType = ConverterUtil.MapCommutationType(CommType),
                Position = ConverterUtil.MapModulePosition(ModPosition)
            }, ClampParameters, paramTOU))
            {
                return;
            }

            ClearStatus();
            IsRunning = true;
        }
Пример #5
0
        internal void Start()
        {
            if (IsRunning)
            {
                return;
            }

            var paramVtm = new Types.VTM.TestParameters {
                IsEnabled = false
            };
            var paramBvt = new Types.BVT.TestParameters {
                IsEnabled = false
            };
            var paramATU = new Types.ATU.TestParameters {
                IsEnabled = false
            };
            var paramQrrTq = new Types.QrrTq.TestParameters {
                IsEnabled = false
            };
            var paramIH = new Types.IH.TestParameters {
                IsEnabled = false
            };
            var paramRCC = new Types.RCC.TestParameters {
                IsEnabled = false
            };
            var paramTOU = new Types.TOU.TestParameters {
                IsEnabled = false
            };

            ClampParameters.SkipClamping = Cache.Clamp.ManualClamping;

            if (!Cache.Net.Start(Parameters, paramVtm, paramBvt, paramATU, paramQrrTq, paramIH, paramRCC,
                                 new Types.Commutation.TestParameters
            {
                BlockIndex = (!Cache.Clamp.clampPage.UseTmax) ? Types.Commutation.HWBlockIndex.Block1 : Types.Commutation.HWBlockIndex.Block2,
                CommutationType = ConverterUtil.MapCommutationType(CommType),
                Position = ConverterUtil.MapModulePosition(ModPosition)
            }, ClampParameters, paramTOU))
            {
                return;
            }

            ClearStatus();
            IsRunning = true;
        }
Пример #6
0
        private void FillSlParameters(Types.VTM.TestParameters parameters, long testTypeId)
        {
            var results = new List <Tuple <string, float?, float?> >();

            FillParametersResults(testTypeId, results);

            foreach (var result in results)
            {
                switch (result.Item1)
                {
                case "VTM":
                    if (result.Item3.HasValue)
                    {
                        parameters.VTM = result.Item3.Value;
                    }
                    break;
                }
            }
        }
Пример #7
0
        internal DeviceState Start(Types.VTM.TestParameters parameters, Types.Commutation.TestParameters commParameters)
        {
            m_Parameter = parameters;

            if (m_State == DeviceState.InProcess)
            {
                throw new Exception("VTM test is already started");
            }

            m_Result = new Types.VTM.TestResults {
                TestTypeId = parameters.TestTypeId
            };
            m_Stop = false;

            ClearWarning();

            if (!m_IsSLEmulation)
            {
                var devState = (Types.VTM.HWDeviceState)ReadRegister(REG_DEVICE_STATE);
                if (devState == Types.VTM.HWDeviceState.Fault)
                {
                    var faultReason = (Types.VTM.HWFaultReason)ReadRegister(REG_FAULT_REASON);
                    FireNotificationEvent(Types.VTM.HWProblemReason.None, Types.VTM.HWWarningReason.None, faultReason,
                                          Types.VTM.HWDisableReason.None);

                    throw new Exception(string.Format("VTM is in fault state, reason: {0}", faultReason));
                }

                if (devState == Types.VTM.HWDeviceState.Disabled)
                {
                    var disableReason = (Types.VTM.HWDisableReason)ReadRegister(REG_DISABLE_REASON);
                    FireNotificationEvent(Types.VTM.HWProblemReason.None, Types.VTM.HWWarningReason.None,
                                          Types.VTM.HWFaultReason.None, disableReason);

                    throw new Exception(string.Format("VTM is in disabled state, reason: {0}", disableReason));
                }
            }

            MeasurementLogicRoutine(commParameters);

            return(m_State);
        }
Пример #8
0
        internal SLPage()
        {
            Parameters = new Types.VTM.TestParameters {
                IsEnabled = true, UseLsqMethod = Settings.Default.UseVTMPostProcessing
            };
            ClampParameters = new Types.Clamping.TestParameters
            {
                StandardForce          = Types.Clamping.ClampingForceInternal.Custom,
                CustomForce            = 5,
                IsHeightMeasureEnabled = false
            };
            CommType    = Settings.Default.SinglePositionModuleMode ? Types.Commutation.ModuleCommutationType.Direct : Types.Commutation.ModuleCommutationType.MT3;
            Temperature = RoomTemp;
            InitializeComponent();

            m_XGreen  = (SolidColorBrush)FindResource("xGreen1");
            m_XOrange = (SolidColorBrush)FindResource("xOrange1");

            ClearStatus();
        }
Пример #9
0
 bool IExternalControl.Start(Types.Gate.TestParameters ParametersGate, Types.VTM.TestParameters ParametersSL,
                             Types.BVT.TestParameters ParametersBvt, Types.ATU.TestParameters ParametersAtu, Types.QrrTq.TestParameters ParametersQrrTq, Types.IH.TestParameters ParametersIH, Types.RCC.TestParameters ParametersRCC,
                             Types.Commutation.TestParameters ParametersComm, Types.Clamping.TestParameters ParametersClamp, Types.TOU.TestParameters ParametersTOU)
 {
     return(_IoMain.Start(ParametersGate, ParametersSL, ParametersBvt, ParametersAtu, ParametersQrrTq, ParametersIH, ParametersRCC, ParametersComm, ParametersClamp, ParametersTOU));
 }
Пример #10
0
        private Types.VTM.TestParameters FillSlConditions(long testTypeId)
        {
            var results    = new Dictionary <string, object>(9);
            var testParams = new Types.VTM.TestParameters()
            {
                IsEnabled = true, TestTypeId = testTypeId
            };

            FillOrder(testTypeId, testParams);

            FillConditionsResults(testTypeId, results);

            #region switchSL

            foreach (var result in results)
            {
                switch (result.Key)
                {
                case "SL_En":
                    testParams.IsEnabled = Convert.ToBoolean(result.Value);
                    break;

                case "SL_Type":
                    testParams.TestType = (Types.VTM.VTMTestType)(Enum.Parse(typeof(Types.VTM.VTMTestType), result.Value.ToString()));
                    break;

                case "SL_FS":
                    testParams.UseFullScale = Boolean.Parse(result.Value.ToString());
                    break;

                case "SL_N":
                    testParams.Count = UInt16.Parse(result.Value.ToString());
                    break;

                case "SL_ITM":
                    switch (testParams.TestType)
                    {
                    case VTMTestType.Ramp:
                        testParams.RampCurrent = UInt16.Parse(result.Value.ToString());
                        break;

                    case VTMTestType.Sinus:
                        testParams.SinusCurrent = UInt16.Parse(result.Value.ToString());
                        break;

                    case VTMTestType.Curve:
                        testParams.CurveCurrent = UInt16.Parse(result.Value.ToString());
                        break;
                    }

                    break;

                case "SL_Time":
                    switch (testParams.TestType)
                    {
                    case VTMTestType.Ramp:
                        testParams.RampTime = UInt16.Parse(result.Value.ToString());
                        break;

                    case VTMTestType.Sinus:
                        testParams.SinusTime = UInt16.Parse(result.Value.ToString());
                        break;

                    case VTMTestType.Curve:
                        testParams.CurveTime = UInt16.Parse(result.Value.ToString());
                        break;
                    }

                    break;

                case "SL_OpenEn":
                    testParams.IsRampOpeningEnabled = Boolean.Parse(result.Value.ToString());
                    break;

                case "SL_OpenI":
                    testParams.RampOpeningCurrent = UInt16.Parse(result.Value.ToString());
                    break;

                case "SL_TimeEx":
                    switch (testParams.TestType)
                    {
                    case VTMTestType.Ramp:
                        testParams.RampOpeningTime = UInt16.Parse(result.Value.ToString());
                        break;

                    case VTMTestType.Curve:
                        testParams.CurveAddTime = UInt16.Parse(result.Value.ToString());
                        break;
                    }

                    break;

                case "SL_Factor":
                    testParams.CurveFactor = UInt16.Parse(result.Value.ToString());
                    break;
                }
            }

            #endregion

            return(testParams);
        }