/// <summary> /// /// </summary> /// <param name="powerSupplyStation"></param> /// <param name="name"></param> /// <returns></returns> public IEnumerable <VFI> GetVFI(String trainName, ModeControls motorcontrol, MassMass mass) { return(GetAll() .Where(vfi => vfi.Train.Name == trainName) .Where(vfi => vfi.ModeControl == motorcontrol) .Where(vfi => vfi.Mass == mass) .Select(vfi => vfi).ToList()); }
/// <summary> /// Pull4 /// </summary> /// <param name="mass"></param> /// <returns></returns> public static IEnumerable <VFI> GetVfiRusi4Pull4(MassMass mass) { var modecontrolRepository = ModeControlsRepository.GetInstance(); var modecontrol = modecontrolRepository.GetByModeControl("Pull4"); const String trainName = "81-740.1(Rusi4)"; var vfiRepository = GetInstance(); return(vfiRepository.GetVFI(trainName, modecontrol, mass)); }
/// <summary> /// Move by a <paramref name="distance"/> with definite modeControl /// </summary> /// <exception cref="ArgumentNullException"></exception> public IEnumerable <OutTrainParameters> Move(Double distance, IModeControl modeControl, Double IntegrStep = 0.1) { var result = new List <OutTrainParameters>(); ModeControl = modeControl; var massRepository = MassRepository.GetInstance(); ByMass = massRepository.GetByMass(100); if (ByMass == null) { throw new ArgumentNullException(nameof(ByMass)); } while (Space <= distance && (Time > 1 && Converter.GetVelocityKmPerHour(Velocity) > 0.1) || (Time <= 1)) { if (Velocity >= MaxVelocity && ModeControl is IPull) { ModeControl = ModeControl.Low(ByMass); TimeInModeControl = 0; } if (!CanPullOrBreak && (ModeControl is IPull || ModeControl is IRecuperationBreak)) { if (ModeControl is IPull) { ModeControl = ModeControl.Low(ByMass); } else { ModeControl = ModeControl.High(ByMass); } TimeInModeControl = 0; } Step(IntegrStep); var step = new OutTrainParameters(ModeControl, Current, Space, Time, SpacePiketage, Velocity, ForceAdditionalResistance, ForceBaseResistance, Force); result.Add(step); } return(result); }
public MassMass Mass;// { get; protected set; } /// <exception cref="InvalidOperationException">Condition.</exception> protected static TBaseModeRusi4 GetInstance <TBaseModeRusi4>(MassMass mass) where TBaseModeRusi4 : BaseModeRusi4 <T>//, new() { if (instance == null) { var list = typeof(TBaseModeRusi4).GetConstructors(); var ctor = typeof(TBaseModeRusi4).GetConstructor( BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(MassMass) }, null); if (ctor == null) { throw new InvalidOperationException(); } instance = ctor.Invoke(new Object[] { mass }) as BaseModeRusi4 <T>; } return(instance as TBaseModeRusi4); }
/// <exception cref="ArgumentNullException">value is <see langword="null"/></exception> private Pull1Rusi4(MassMass mass) { ForceAndCurrent = VFIRepository.GetVfiRusi4Pull1(mass); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public IModeControl High(MassMass mass) { return(this); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public IModeControl Low(MassMass mass) { return(this); }
public static InertRusi4 GetInstance(MassMass mass) { return(GetInstance <InertRusi4>(mass)); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public override IModeControl High(MassMass mass) { throw new NotImplementedException(); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public override IModeControl Low(MassMass mass) { return(Break2Rusi4.GetInstance(mass)); }
/// <exception cref="ArgumentNullException">value is <see langword="null"/></exception> private Break1Rusi4(MassMass mass) { ForceAndCurrent = VFIRepository.GetVfiRusi4Break1(mass); }
/// <summary> /// Переход из торможения в выбег /// </summary> /// <param name="mass"></param> /// <returns></returns> public abstract IModeControl High(MassMass mass);
/// <summary> /// Переход на низкий уровень Тяга-> Выбег ->Тормоз /// </summary> /// <param name="mass"></param> /// <returns></returns> public abstract IModeControl Low(MassMass mass);
/// <exception cref="ArgumentNullException">value is <see langword="null"/></exception> internal Pull3Rusi4(MassMass mass) { ForceAndCurrent = VFIRepository.GetVfiRusi4Pull3(mass); }
/// <summary> /// /// </summary> private InertRusi4(MassMass mass) { }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public static Pull1Rusi4 GetInstance(MassMass mass) { return(GetInstance <Pull1Rusi4>(mass)); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public override IModeControl Low(MassMass mass) { return(BaseModeRusi4 <InertRusi4> .GetInstance <InertRusi4>(mass)); }
/// <summary> /// Переход в режим торможения со средним замедлением /// </summary> /// <param name="mass"></param> /// <returns></returns> public override IModeControl High(MassMass mass) { return(BreakAverageRusi4.GetInstance()); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public static Break1Rusi4 GetInstance(MassMass mass) { return(GetInstance <Break1Rusi4>(mass)); }
/// <summary> /// /// </summary> /// <param name="mass"></param> /// <returns></returns> public override IModeControl Low(MassMass mass) { return(this); }