Exemple #1
0
//        private void MeasurementLogicRoutineUdsmUrsm(Types.Commutation.TestParameters Commutation)
//        {
//            //реализация теста UDSM/URSM
//            //это часть группы тестов BVT, он может быть исполнен только после теста BVT MeasurementLogicRoutine. предшедствующий данному тесту UDSM/URSM тест BVT поставляет исходные данные для данного теста
//            //если профиль измерения не предполагает исполнение теста BVT, то и тест UDSM/URSM никогда не будет исполнен
//
//            //проверяем состояние флага UDSM/URSM, исполняем тест UDSM/URSM только если он установлен
//            if (m_Parameters.UseUdsmUrsm)
//            {
//                //для исполнения данного теста блок должен находится в состоянии DS_Powered
//                if (!m_IsBVTEmulation)
//                {
//                    var devState = (Types.BVT.HWDeviceState) ReadRegister(REG_DEVICE_STATE, true);
//
//                    if (devState != Types.BVT.HWDeviceState.PowerReady)
//                        throw new Exception("BVT is not in 'PowerReady' state, UDSM/URSM test is not possible");
//                }
//
//                var internalState = DeviceState.InProcess;
//
//                try
//                {
//                    m_State = DeviceState.InProcess;
//
//                    WriteRegister(REG_LIMIT_CURRENT, (ushort) (m_Parameters.UdsmUrsmCurrentLimit * 10));
//                    WriteRegister(REG_PLATE_TIME, m_Parameters.UdsmUrsmPlateTime);
//                    WriteRegister(REG_RAMPUP_RATE, (ushort) (m_Parameters.UdsmUrsmRampUpVoltage * 10));
//                    WriteRegister(REG_START_VOLTAGE, m_Parameters.UdsmUrsmStartVoltage);
//                    WriteRegister(REG_VOLTAGE_FREQUENCY, m_Parameters.UdsmUrsmVoltageFrequency);
//                    WriteRegister(REG_FREQUENCY_DIVISOR, m_Parameters.UdsmUrsmFrequencyDivisor);
//                    WriteRegister(REG_MEASUREMENT_MODE, MEASURE_MODE_I);
//
//
//                    if (m_Parameters.UdsmUrsmTestType == Types.BVT.BVTTestType.Both || m_Parameters.UdsmUrsmTestType == Types.BVT.BVTTestType.Direct)
//                    {
//                        FireBvtUdsmUrsmDirectEvent(internalState, m_Result);
//
//                        if (m_IOCommutation.Switch(Types.Commutation.CommutationMode.BVTD, Commutation.CommutationType, Commutation.Position) == DeviceState.Fault)
//                        {
//                            m_State = DeviceState.Fault;
//                            FireBvtAllEvent(m_State);
//                            return;
//                        }
//
//                        ushort VDSM = CalcUdsmUrsmVoltage();
//                        WriteRegister(REG_LIMIT_VOLTAGE, VDSM);
//                        WriteRegister(REG_MEASUREMENT_TYPE, MEASURE_TYPE_AC_D);
//
//                        CallAction(ACT_START_TEST);
//
//                        m_Result.VDSM = VDSM;
//
//                        if (m_IsBVTEmulation)
//                        {
//                            internalState = DeviceState.Success;
//                            m_Result.IDSM = EMU_DEFAULT_IDSM;
//                        }
//                        else
//                        {
//                            internalState = WaitForEndOfTest();
//                            m_Result.IDSM = Math.Abs(ReadRegisterS(REG_RESULT_I) / 10.0f);
//                        }
//
//                        FireBvtUdsmUrsmDirectEvent(internalState, m_Result);
//
//                        if (m_IOCommutation.Switch(Types.Commutation.CommutationMode.None) == DeviceState.Fault)
//                        {
//                            m_State = DeviceState.Fault;
//                            FireBvtAllEvent(m_State);
//                            return;
//                        }
//                    }
//                    else
//                        internalState = DeviceState.Success;
//
//                    if ((internalState == DeviceState.Success) && (m_Parameters.UdsmUrsmTestType == Types.BVT.BVTTestType.Both || m_Parameters.UdsmUrsmTestType == Types.BVT.BVTTestType.Reverse))
//                    {
//                        internalState = DeviceState.InProcess;
//                        FireBvtUdsmUrsmReverseEvent(internalState, m_Result);
//
//                        if (m_IOCommutation.Switch(Types.Commutation.CommutationMode.BVTR, Commutation.CommutationType, Commutation.Position) == DeviceState.Fault)
//                        {
//                            m_State = DeviceState.Fault;
//                            FireBvtAllEvent(m_State);
//                            return;
//                        }
//
//                        ushort VRSM = CalcUdsmUrsmVoltage();
//                        WriteRegister(REG_LIMIT_VOLTAGE, VRSM);
//                        WriteRegister(REG_MEASUREMENT_TYPE, MEASURE_TYPE_AC_R);
//
//                        CallAction(ACT_START_TEST);
//
//                        m_Result.VRSM = VRSM;
//
//                        if (m_IsBVTEmulation)
//                        {
//                            internalState = DeviceState.Success;
//                            m_Result.IRSM = EMU_DEFAULT_IRSM;
//                        }
//                        else
//                        {
//                            internalState = WaitForEndOfTest();
//                            m_Result.IRSM = Math.Abs(ReadRegisterS(REG_RESULT_I) / 10.0f);
//                        }
//
//                        FireBvtUdsmUrsmReverseEvent(internalState, m_Result);
//                    }
//
//                    if (m_IOCommutation.Switch(Types.Commutation.CommutationMode.None) == DeviceState.Fault)
//                    {
//                        m_State = DeviceState.Fault;
//                        FireBvtAllEvent(m_State);
//                        return;
//                    }
//
//                    m_State = internalState;
//                }
//                catch (Exception ex)
//                {
//                    m_IOCommutation.Switch(Types.Commutation.CommutationMode.None);
//
//                    m_State = DeviceState.Fault;
//                    FireBvtAllEvent(m_State);
//                    FireExceptionEvent(ex.Message);
//
//                    throw;
//                }
//            }
//        }

        private void ReadArrays(Types.BVT.TestResults Result, bool IsDirect)
        {
            List <short> bufferArray;

            SystemHost.Journal.AppendLog(ComplexParts.BVT, LogMessageType.Note,
                                         "BVT @ReadArrays begin");

            Result.CurrentData.Clear();
            Result.VoltageData.Clear();

            m_IOAdapter.Call(m_Node, ACT_READ_MOVE_BACK);
            do
            {
                m_IOAdapter.Call(m_Node, ACT_READ_FRAGMENT);

                bufferArray = m_IOAdapter.ReadArrayFast16S(m_Node, ARR_SCOPE_I).ToList();
                Result.CurrentData.AddRange(bufferArray);

                bufferArray = m_IOAdapter.ReadArrayFast16S(m_Node, ARR_SCOPE_V).ToList();
                Result.VoltageData.AddRange(bufferArray);
            } while (bufferArray.Count > 0);

            Result.CurrentData =
                Result.CurrentData.Select(
                    Value => IsDirect ? (Value < 0 ? Math.Abs(Value) : (short)0) : (Value > 0 ? (short)0 : Value)).ToList();
            Result.VoltageData =
                Result.VoltageData.Select(
                    Value => IsDirect ? (Value < 0 ? Math.Abs(Value) : (short)0) : (Value > 0 ? (short)0 : Value)).ToList();

            SystemHost.Journal.AppendLog(ComplexParts.BVT, LogMessageType.Note,
                                         string.Format("BVT @ReadArrays data length {0}", Result.VoltageData.Count));

            SystemHost.Journal.AppendLog(ComplexParts.BVT, LogMessageType.Note,
                                         "BVT @ReadArrays end");
        }
Exemple #2
0
        internal IList <short> ReadArrayFastS(ushort Address)
        {
            SystemHost.Journal.AppendLog(ComplexParts.SL, LogMessageType.Note, string.Format("VTM @ReadArrayFastS, endpoint {0}", Address));

            if (m_IsSLEmulation)
            {
                return(new List <short>());
            }

            return(m_IOAdapter.ReadArrayFast16S(m_Node, Address));
        }
Exemple #3
0
        private void ReadArrays(TestResults Result)
        {
            if (Result != null)
            {
                //чтение массивов даннных тока и напряжения
                SystemHost.Journal.AppendLog(ComplexParts.QrrTq, LogMessageType.Note, "QrrTq @ReadArrays begin");

                //читаем массив данных для построения графика тока и напряжения
                Result.CurrentData.Clear();
                Result.VoltageData.Clear();

                if (!m_IsEmulation)
                {
                    Result.CurrentData = m_IOAdapter.ReadArrayFast16S(m_Node, EP_Current).ToList();
                    Result.VoltageData = m_IOAdapter.ReadArrayFast16S(m_Node, EP_Voltage).ToList();
                }

                SystemHost.Journal.AppendLog(ComplexParts.QrrTq, LogMessageType.Note, "QrrTq @ReadArray end");
            }
        }
Exemple #4
0
        private void ReadArrays(Types.SCTU.SctuTestResults Result)
        {
            //чтение массивов даннных тока и напряжения, это не сырые данные они уже готовы для отображения
            SystemHost.Journal.AppendLog(ComplexParts.Sctu, LogMessageType.Note, "SCTU @ReadArrays begin");

            //читаем массив данных для построения графика напряжения
            Result.VoltageData.Clear();

            if (!_isSctuEmulation)
            {
                Result.VoltageData = _ioAdapter.ReadArrayFast16S(_node, ARR_SCOPE_V).ToList();
            }

            //читаем массив данных для построения графика тока
            Result.CurrentData.Clear();

            if (!_isSctuEmulation)
            {
                Result.CurrentData = _ioAdapter.ReadArrayFast16S(_node, ARR_SCOPE_I).ToList();
            }

            SystemHost.Journal.AppendLog(ComplexParts.Sctu, LogMessageType.Note, "SCTU @ReadArrays end");
        }