Exemplo n.º 1
0
 /// <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());
 }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
0
        /// <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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 /// <exception cref="ArgumentNullException">value is <see langword="null"/></exception>
 private Pull1Rusi4(MassMass mass)
 {
     ForceAndCurrent = VFIRepository.GetVfiRusi4Pull1(mass);
 }
Exemplo n.º 6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public IModeControl High(MassMass mass)
 {
     return(this);
 }
Exemplo n.º 7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public IModeControl Low(MassMass mass)
 {
     return(this);
 }
Exemplo n.º 8
0
 public static InertRusi4 GetInstance(MassMass mass)
 {
     return(GetInstance <InertRusi4>(mass));
 }
Exemplo n.º 9
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public override IModeControl High(MassMass mass)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public override IModeControl Low(MassMass mass)
 {
     return(Break2Rusi4.GetInstance(mass));
 }
Exemplo n.º 11
0
 /// <exception cref="ArgumentNullException">value is <see langword="null"/></exception>
 private Break1Rusi4(MassMass mass)
 {
     ForceAndCurrent = VFIRepository.GetVfiRusi4Break1(mass);
 }
Exemplo n.º 12
0
 /// <summary>
 /// Переход из торможения в выбег
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public abstract IModeControl High(MassMass mass);
Exemplo n.º 13
0
 /// <summary>
 /// Переход на низкий уровень Тяга-> Выбег ->Тормоз
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public abstract IModeControl Low(MassMass mass);
Exemplo n.º 14
0
 /// <exception cref="ArgumentNullException">value is <see langword="null"/></exception>
 internal Pull3Rusi4(MassMass mass)
 {
     ForceAndCurrent = VFIRepository.GetVfiRusi4Pull3(mass);
 }
Exemplo n.º 15
0
 /// <summary>
 ///
 /// </summary>
 private InertRusi4(MassMass mass)
 {
 }
Exemplo n.º 16
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public static Pull1Rusi4 GetInstance(MassMass mass)
 {
     return(GetInstance <Pull1Rusi4>(mass));
 }
Exemplo n.º 17
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public override IModeControl Low(MassMass mass)
 {
     return(BaseModeRusi4 <InertRusi4> .GetInstance <InertRusi4>(mass));
 }
Exemplo n.º 18
0
 /// <summary>
 /// Переход в режим торможения со средним замедлением
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public override IModeControl High(MassMass mass)
 {
     return(BreakAverageRusi4.GetInstance());
 }
Exemplo n.º 19
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public static Break1Rusi4 GetInstance(MassMass mass)
 {
     return(GetInstance <Break1Rusi4>(mass));
 }
Exemplo n.º 20
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="mass"></param>
 /// <returns></returns>
 public override IModeControl Low(MassMass mass)
 {
     return(this);
 }