Exemple #1
0
        public void Initialize()
        {
            if (!Activated)
            {
                if (ScriptName != null && ScriptName != "Default")
                {
                    var pathArray = new string[] { Path.Combine(Path.GetDirectoryName(Locomotive.WagFilePath), "Script") };
                    Script = Simulator.ScriptManager.Load(pathArray, ScriptName) as ElectricPowerSupply;
                }
                if (Script == null)
                {
                    Script = new DefaultElectricPowerSupply() as ElectricPowerSupply;
                }

                // AbstractScriptClass
                Script.ClockTime          = () => (float)Simulator.ClockTime;
                Script.GameTime           = () => (float)Simulator.GameTime;
                Script.DistanceM          = () => Locomotive.DistanceM;
                Script.SpeedMpS           = () => Math.Abs(Locomotive.SpeedMpS);
                Script.Confirm            = Locomotive.Simulator.Confirmer.Confirm;
                Script.Message            = Locomotive.Simulator.Confirmer.Message;
                Script.SignalEvent        = Locomotive.SignalEvent;
                Script.SignalEventToTrain = (evt) =>
                {
                    if (Locomotive.Train != null)
                    {
                        Locomotive.Train.SignalEvent(evt);
                    }
                };

                // ElectricPowerSupply getters
                Script.CurrentState               = () => State;
                Script.CurrentAuxiliaryState      = () => AuxiliaryState;
                Script.CurrentPantographState     = () => Pantographs.State;
                Script.CurrentCircuitBreakerState = () => CircuitBreaker.State;
                Script.PantographVoltageV         = () => PantographVoltageV;
                Script.FilterVoltageV             = () => FilterVoltageV;
                Script.LineVoltageV               = () => LineVoltageV;
                Script.PowerOnDelayS              = () => PowerOnDelayS;
                Script.AuxPowerOnDelayS           = () => AuxPowerOnDelayS;

                // ElectricPowerSupply setters
                Script.SetCurrentState          = (value) => State = value;
                Script.SetCurrentAuxiliaryState = (value) => AuxiliaryState = value;
                Script.SetPantographVoltageV    = (value) => PantographVoltageV = value;
                Script.SetFilterVoltageV        = (value) => FilterVoltageV = value;

                Script.Initialize();
                Activated = true;
            }

            Pantographs.Initialize();
            CircuitBreaker.Initialize();
        }
Exemple #2
0
        public void Initialize()
        {
            if (!Activated)
            {
                if (ScriptName != null && ScriptName != "Default")
                {
                    var pathArray = new string[] { Path.Combine(Path.GetDirectoryName(Locomotive.WagFilePath), "Script") };
                    Script = Simulator.ScriptManager.Load(pathArray, ScriptName) as ElectricPowerSupply;
                }
                if (Script == null)
                {
                    Script = new DefaultElectricPowerSupply() as ElectricPowerSupply;
                }

                Script.ClockTime                  = () => (float)Simulator.ClockTime;
                Script.GameTime                   = () => (float)Simulator.GameTime;
                Script.DistanceM                  = () => Locomotive.DistanceM;
                Script.CurrentState               = () => State;
                Script.CurrentAuxiliaryState      = () => AuxiliaryState;
                Script.CurrentPantographState     = () => Pantographs.State;
                Script.CurrentCircuitBreakerState = () => CircuitBreaker.State;
                Script.FilterVoltageV             = () => FilterVoltageV;
                Script.LineVoltageV               = () => (float)Simulator.TRK.Tr_RouteFile.MaxLineVoltage;
                Script.PowerOnDelayS              = () => PowerOnDelayS;
                Script.AuxPowerOnDelayS           = () => AuxPowerOnDelayS;

                Script.SetCurrentState          = (value) => State = value;
                Script.SetCurrentAuxiliaryState = (value) => AuxiliaryState = value;
                Script.SetFilterVoltageV        = (value) => FilterVoltageV = value;

                Script.Initialize();
                Activated = true;
            }

            Pantographs.Initialize();
            CircuitBreaker.Initialize();
        }