Пример #1
0
        public static void InverseRelations()
        {
            Assert.Equal(1.2f, Me.FromMi(Me.ToMi(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Me.FromKiloM(Me.ToKiloM(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Me.FromYd(Me.ToYd(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Me.FromFt(Me.ToFt(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Me.FromIn(Me.ToIn(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, Me2.FromFt2(Me2.ToFt2(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Me2.FromIn2(Me2.ToIn2(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, Me3.FromFt3(Me3.ToFt3(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Me3.FromIn3(Me3.ToIn3(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, MpS.FromMpH(MpS.ToMpH(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, MpS.FromKpH(MpS.ToKpH(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, Kg.FromLb(Kg.ToLb(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Kg.FromTUS(Kg.ToTUS(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Kg.FromTUK(Kg.ToTUK(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Kg.FromTonne(Kg.ToTonne(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, N.FromLbf(N.ToLbf(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, KgpS.FromLbpH(KgpS.ToLbpH(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, W.FromKW(W.ToKW(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, W.FromHp(W.ToHp(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, W.FromBTUpS(W.ToBTUpS(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, KPa.FromPSI(KPa.ToPSI(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, KPa.FromInHg(KPa.ToInHg(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, KPa.FromBar(KPa.ToBar(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, KPa.FromKgfpCm2(KPa.ToKgfpCm2(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, Bar.FromKPa(Bar.ToKPa(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Bar.FromPSI(Bar.ToPSI(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Bar.FromInHg(Bar.ToInHg(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, Bar.FromKgfpCm2(Bar.ToKgfpCm2(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, BarpS.FromPSIpS(BarpS.ToPSIpS(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, KJpKg.FromBTUpLb(KJpKg.ToBTUpLb(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, L.FromGUK(L.ToGUK(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, L.FromGUS(L.ToGUS(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, pS.FrompM(pS.TopM(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, pS.FrompH(pS.TopH(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, S.FromM(S.ToM(1.2f)), RequestedAccuracy);
            Assert.Equal(1.2f, S.FromH(S.ToH(1.2f)), RequestedAccuracy);

            Assert.Equal(1.2f, C.FromF(C.ToF(1.2f)), RequestedAccuracy);
            Assert.Equal(12f, C.FromK(C.ToK(12f)), RequestedAccuracy); // we loose accuracy because of the large 273.15
        }
Пример #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();
            }
        }