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); }
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); } }
public void PostQrrTqEvent(DeviceState State, Types.QrrTq.TestResults Result) { EnumerateClients(Client => Client.QrrTqHandler(State, Result)); }