// 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"); }
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)); }
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"); } }
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"); }