Example #1
0
        internal DeviceState Start(TestParameters Parameters, Types.Commutation.TestParameters commParameters)
        {
            m_Parameters = Parameters;

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

            m_Result            = new TestResults();
            m_Result.TestTypeId = m_Parameters.TestTypeId;

            m_Stop = false;

            if (!m_IsEmulation)
            {
                //смотрим состояние Gate
                m_IOGate.ClearWarning();
                ushort State = m_IOGate.ReadDeviceState();

                switch (State)
                {
                case (ushort)Types.Gate.HWDeviceState.Fault:
                    ushort faultReason = m_IOGate.ReadFaultReason();
                    FireNotificationEvent(ComplexParts.Gate, (ushort)HWProblemReason.None, (ushort)HWWarningReason.None, faultReason, (ushort)HWDisableReason.None);

                    break;

                case (ushort)Types.Gate.HWDeviceState.Disabled:
                    ushort disableReason = m_IOGate.ReadDisableReason();
                    FireNotificationEvent(ComplexParts.Gate, (ushort)HWProblemReason.None, (ushort)HWWarningReason.None, (ushort)HWFaultReason.None, disableReason);

                    break;
                }

                //смотрим состояние StLs
                m_IOStLs.ClearWarning();
                State = m_IOStLs.ReadDeviceState();

                switch (State)
                {
                case (ushort)Types.VTM.HWDeviceState.Fault:
                    ushort faultReason = m_IOStLs.ReadFaultReason();
                    FireNotificationEvent(ComplexParts.SL, (ushort)HWProblemReason.None, (ushort)HWWarningReason.None, faultReason, (ushort)HWDisableReason.None);

                    break;

                case (ushort)Types.VTM.HWDeviceState.Disabled:
                    ushort disableReason = m_IOStLs.ReadDisableReason();
                    FireNotificationEvent(ComplexParts.SL, (ushort)HWProblemReason.None, (ushort)HWWarningReason.None, (ushort)HWFaultReason.None, disableReason);

                    break;
                }
            }

            MeasurementLogicRoutine(commParameters);

            return(m_State);
        }
Example #2
0
 internal void SetResult(DeviceState State, Types.IH.TestResults Result)
 {
     if (State == DeviceState.InProcess)
     {
         ClearStatus();
     }
     else
     {
         IsRunning = false;
         SetLabel(lbIh, State, true, Result.Ih.ToString());
     }
 }
Example #3
0
 public void PostIHEvent(DeviceState State, Types.IH.TestResults Result)
 {
     EnumerateClients(Client => Client.IHHandler(State, Result));
 }