示例#1
0
        private void FireVTMEvent(DeviceState State, Types.VTM.TestResults Result, int ITM)
        {
            var message = string.Format("{0} state {1}", !m_Parameter.IsSelfTest ? "VTM test" : "VTM self-test", State);

            if (State == DeviceState.Success)
            {
                message = !m_Parameter.IsSelfTest
                              ? String.Format("Test result VTM - {0} mV on ITM - {1} A", Result.Voltage, ITM)
                              : "Self-test OK";
            }

            SystemHost.Journal.AppendLog(ComplexParts.SL, LogMessageType.Info, message);
            m_Communication.PostSLEvent(State, Result);
        }
示例#2
0
        internal IOStLs(IOAdapter Adapter, BroadcastCommunication Communication)
        {
            m_IOAdapter         = Adapter;
            m_Communication     = Communication;
            m_IsSLEmulationHard = Settings.Default.SLEmulation;
            m_IsSLEmulation     = m_IsSLEmulationHard;
            m_ReadGraph         = Settings.Default.SLReadGraph;

            m_Node   = (ushort)Settings.Default.SLNode;
            m_Result = new Types.VTM.TestResults();

            SystemHost.Journal.AppendLog(ComplexParts.SL, LogMessageType.Info,
                                         String.Format("VTM created. Emulation mode: {0}", m_IsSLEmulation));
        }
示例#3
0
        internal void SetResult(DeviceState State, Types.VTM.TestResults Result)
        {
            if (State != DeviceState.InProcess)
            {
                IsRunning = false;

                if (State == DeviceState.Success)
                {
                    Plot(Result.SelfTestArray, Result.CapacitorsArray);
                }
            }
            else
            {
                ClearStatus();
            }
        }
示例#4
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);
        }
示例#5
0
        internal void SetResultVtm(DeviceState State, Types.VTM.TestResults Result)
        {
            if (State != DeviceState.InProcess)
            {
                IsRunning = false;

                if (State == DeviceState.Success)
                {
                    Plot(@"Itm", m_XGreen.Color, Result.ITMArray);
                    Plot(@"Vtm", m_XOrange.Color, Result.VTMArray);
                }
            }
            else
            {
                ClearStatus();
            }

            SetLabel(lblVtm, State, string.Format("{0}", Result.Voltage));

            //сознательно не используем SetLabel т.к. нам не нужна установка Background
            lblItm.Content = string.Format("{0}", Result.Current);
        }
示例#6
0
 public void PostSLEvent(DeviceState State, Types.VTM.TestResults Result)
 {
     EnumerateClients(Client => Client.SLHandler(State, Result));
 }