示例#1
0
        private void RecordSteamPerformance()
        {
            MSTSSteamLocomotive steamloco = viewer.PlayerLocomotive as MSTSSteamLocomotive;

            double steamspeedMpH = Speed.MeterPerSecond.ToMpH(steamloco.SpeedMpS);

            if (steamspeedMpH >= previousLoggedSteamSpeedMpH + 5) // Add a new record every time speed increases by 5 mph
            {
                previousLoggedSteamSpeedMpH = (int)steamspeedMpH; // Keep speed records close to whole numbers

                dataLog.Data($"{Speed.MeterPerSecond.FromMpS(steamloco.SpeedMpS, false):F0}");
                dataLog.Data($"{Time.Second.ToM(steamloco.SteamPerformanceTimeS):F1}");
                dataLog.Data($"{steamloco.ThrottlePercent:F0}");
                dataLog.Data($"{steamloco.Train.MUReverserPercent:F0}");
                dataLog.Data($"{Dynamics.Force.ToLbf(steamloco.MotiveForceN):F0}");
                dataLog.Data($"{steamloco.IndicatedHorsePowerHP:F0}");
                dataLog.Data($"{steamloco.DrawBarPullLbsF:F0}");
                dataLog.Data($"{steamloco.DrawbarHorsePowerHP:F0}");
                dataLog.Data($"{Dynamics.Force.ToLbf(steamloco.LocomotiveCouplerForceN):F0}");
                dataLog.Data($"{Dynamics.Force.ToLbf(steamloco.LocoTenderFrictionForceN):F0}");
                dataLog.Data($"{Dynamics.Force.ToLbf(steamloco.TotalFrictionForceN):F0}");
                dataLog.Data($"{Mass.Kilogram.ToTonsUK(steamloco.TrainLoadKg):F0}");
                dataLog.Data($"{steamloco.BoilerPressurePSI:F0}");
                dataLog.Data($"{steamloco.LogSteamChestPressurePSI:F0}");
                dataLog.Data($"{steamloco.LogInitialPressurePSI:F0}");
                dataLog.Data($"{steamloco.LogCutoffPressurePSI:F0}");
                dataLog.Data($"{steamloco.LogReleasePressurePSI:F0}");
                dataLog.Data($"{steamloco.LogBackPressurePSI:F0}");

                dataLog.Data($"{steamloco.MeanEffectivePressurePSI:F0}");

                dataLog.Data($"{steamloco.CurrentSuperheatTempF:F0}");

                dataLog.Data($"{Frequency.Periodic.ToHours(steamloco.CylinderSteamUsageLBpS):F0}");
                dataLog.Data($"{Frequency.Periodic.ToHours(steamloco.WaterConsumptionLbpS):F0}");
                dataLog.Data($"{Mass.Kilogram.ToLb(Frequency.Periodic.ToHours(steamloco.FuelBurnRateSmoothedKGpS)):F0}");

                dataLog.Data($"{steamloco.SuperheaterSteamUsageFactor:F2}");
                dataLog.Data($"{steamloco.CumulativeCylinderSteamConsumptionLbs:F0}");
                dataLog.Data($"{steamloco.CumulativeWaterConsumptionLbs:F0}");

                dataLog.Data($"{steamloco.CutoffPressureDropRatio:F0}");

                dataLog.Data($"{steamloco.HPCylinderMEPPSI:F0}");
                dataLog.Data($"{steamloco.LogLPInitialPressurePSI:F0}");
                dataLog.Data($"{steamloco.LogLPCutoffPressurePSI:F0}");
                dataLog.Data($"{steamloco.LogLPReleasePressurePSI:F0}");
                dataLog.Data($"{steamloco.LogLPBackPressurePSI:F0}");
                dataLog.Data($"{steamloco.CutoffPressureDropRatio:F0}");
                dataLog.Data($"{steamloco.LPCylinderMEPPSI:F0}");

                dataLog.EndLine();
            }
        }
示例#2
0
        void RecordSteamPerformance()
        {
            MSTSSteamLocomotive steamloco = (MSTSSteamLocomotive)Viewer.PlayerLocomotive;
            float SteamspeedMpH           = MpS.ToMpH(steamloco.SpeedMpS);

            if (SteamspeedMpH >= previousLoggedSteamSpeedMpH + 5)             // Add a new record every time speed increases by 5 mph
            {
                previousLoggedSteamSpeedMpH = (float)(int)SteamspeedMpH;      // Keep speed records close to whole numbers

                Logger.Data(MpS.FromMpS(Viewer.PlayerLocomotive.SpeedMpS, false).ToString("F0"));
                Logger.Data(S.ToM(steamloco.SteamPerformanceTimeS).ToString("F1"));
                Logger.Data(Viewer.PlayerLocomotive.ThrottlePercent.ToString("F0"));
                Logger.Data(Viewer.PlayerTrain.MUReverserPercent.ToString("F0"));
                Logger.Data(N.ToLbf(Viewer.PlayerLocomotive.MotiveForceN).ToString("F0"));
                Logger.Data(steamloco.IndicatedHorsePowerHP.ToString("F0"));
                Logger.Data(steamloco.DrawBarPullLbsF.ToString("F0"));
                Logger.Data(steamloco.DrawbarHorsePowerHP.ToString("F0"));
                Logger.Data(N.ToLbf(steamloco.LocomotiveCouplerForceN).ToString("F0"));
                Logger.Data(N.ToLbf(steamloco.LocoTenderFrictionForceN).ToString("F0"));
                Logger.Data(N.ToLbf(steamloco.TotalFrictionForceN).ToString("F0"));
                Logger.Data(Kg.ToTUK(steamloco.TrainLoadKg).ToString("F0"));
                Logger.Data(steamloco.BoilerPressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogSteamChestPressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogInitialPressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogCutoffPressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogReleasePressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogBackPressurePSI.ToString("F0"));

                Logger.Data(steamloco.MeanEffectivePressurePSI.ToString("F0"));


                Logger.Data(steamloco.CurrentSuperheatTempF.ToString("F0"));

                Logger.Data(pS.TopH(steamloco.CylinderSteamUsageLBpS).ToString("F0"));
                Logger.Data(pS.TopH(steamloco.WaterConsumptionLbpS).ToString("F0"));
                Logger.Data(Kg.ToLb(pS.TopH(steamloco.FuelBurnRateSmoothedKGpS)).ToString("F0"));


                Logger.Data(steamloco.SuperheaterSteamUsageFactor.ToString("F2"));
                Logger.Data(steamloco.CumulativeCylinderSteamConsumptionLbs.ToString("F0"));
                Logger.Data(steamloco.CumulativeWaterConsumptionLbs.ToString("F0"));

                Logger.Data(steamloco.CutoffPressureDropRatio.ToString("F2"));

                Logger.Data(steamloco.HPCylinderMEPPSI.ToString("F0"));
                Logger.Data(steamloco.LogLPInitialPressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogLPCutoffPressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogLPReleasePressurePSI.ToString("F0"));
                Logger.Data(steamloco.LogLPBackPressurePSI.ToString("F0"));
                Logger.Data(steamloco.CutoffPressureDropRatio.ToString("F2"));
                Logger.Data(steamloco.LPCylinderMEPPSI.ToString("F0"));

                Logger.End();
            }
        }
示例#3
0
        void RecordSteamPowerCurve()
        {
            MSTSSteamLocomotive loco = (MSTSSteamLocomotive)Viewer.PlayerLocomotive;
            float speedMpH           = MpS.ToMpH(loco.SpeedMpS);

            if (speedMpH >= previousLoggedSpeedMpH + 1)        // Add a new record every time speed increases by 1 mph
            {
                previousLoggedSpeedMpH = (float)(int)speedMpH; // Keep speed records close to whole numbers
                Logger.Data(speedMpH.ToString("F1"));
                float power = W.ToHp(loco.MotiveForceN * loco.SpeedMpS);
                Logger.Data(power.ToString("F1"));
                Logger.Data((Viewer.PlayerLocomotive as MSTSSteamLocomotive).ThrottlePercent.ToString("F0"));
                Logger.Data((Viewer.PlayerLocomotive as MSTSSteamLocomotive).Train.MUReverserPercent.ToString("F0"));
                Logger.End();
            }
        }