Exemplo n.º 1
0
        internal DeviceState Start(TestParameters Parameters, Types.Commutation.TestParameters commParameters)
        {
            m_Parameters = Parameters;

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

            //запоминаем в каком режиме будут выполняться измерения
            m_Result = new TestResults {
                Mode = m_Parameters.Mode, OffStateVoltage = m_Parameters.OffStateVoltage, OsvRate = (ushort)m_Parameters.OsvRate
            };
            m_Result.TestTypeId = m_Parameters.TestTypeId;

            m_Stop = false;

            if (!m_IsEmulation)
            {
                ushort State = ReadRegister(REG_DEV_STATE);

                switch (State)
                {
                case (ushort)HWDeviceState.DS_Fault:
                    ushort faultReason = ReadRegister(REG_FAULT_REASON);
                    FireNotificationEvent((ushort)HWProblemReason.None, (ushort)HWWarningReason.None, faultReason, (ushort)HWDisableReason.None);

                    break;

                case (ushort)HWDeviceState.DS_Disabled:
                    ushort disableReason = ReadRegister(REG_DISABLE_REASON);
                    FireNotificationEvent((ushort)HWProblemReason.None, (ushort)HWWarningReason.None, (ushort)HWFaultReason.None, disableReason);

                    break;
                }
            }

            MeasurementLogicRoutine(commParameters);

            return(m_State);
        }
Exemplo n.º 2
0
        internal void SetResult(DeviceState State, Types.QrrTq.TestResults Result)
        {
            if (State == DeviceState.InProcess)
            {
                ClearStatus();
            }
            else
            {
                IsRunning = false;
                SetLabel(lbIdc, State, true, Result.Idc.ToString());
                SetLabel(lbQrr, State, true, Result.Qrr.ToString());
                SetLabel(lbIrr, State, true, Result.Irr.ToString());
                SetLabel(lbTrr, State, true, Result.Trr.ToString());
                SetLabel(lbTq, State, true, Result.Tq.ToString());
                SetLabel(lbDCFactFallRate, State, true, Result.DCFactFallRate.ToString());

                //выводим графики тока и напряжения
                Plot(@"I", m_XGreen.Color, Result.CurrentData);
                Plot(@"U", m_XOrange.Color, Result.VoltageData);
            }
        }
Exemplo n.º 3
0
 public void PostQrrTqEvent(DeviceState State, Types.QrrTq.TestResults Result)
 {
     EnumerateClients(Client => Client.QrrTqHandler(State, Result));
 }