@@ -2099,6 +2099,9 @@ private void UpdateFX(float elapsedClockSeconds)
20992099 // Find
21002100 for ( int i = 0 ; i < NumCylinders ; i ++ )
21012101 {
2102+
2103+ // Trace.TraceInformation("NumCyl - {0} i {1}", NumCylinders, i);
2104+
21022105 // float realCrankAngleRad = (float)(LocomotiveAxle.AxlePositionRad + i * WheelCrankAngleDiffRad[i]);
21032106 float realCrankAngleRad = ( float ) ( LocomotiveAxle . AxlePositionRad ) ;
21042107 float normalisedCrankAngleRad = 0 ;
@@ -2132,43 +2135,51 @@ private void UpdateFX(float elapsedClockSeconds)
21322135 exhaustCrankAngleRad = CylinderExhaustOpenFactor * ( float ) Math . PI + ( float ) Math . PI ;
21332136 }
21342137
2138+ // Trace.TraceInformation("Cylinder {0} ExhaustCrank {1} RealCrank {2} NormalCrank {3}", i + 1, MathHelper.ToDegrees(exhaustCrankAngleRad), MathHelper.ToDegrees(realCrankAngleRad), MathHelper.ToDegrees(normalisedCrankAngleRad));
2139+
21352140 if ( absSpeedMpS > 0.001 )
21362141 {
2137- if ( i == 0 && ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) )
2142+ if ( i == 0 && ( ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) ) )
21382143 {
21392144 CylinderSteamExhaust1On = true ;
2145+
2146+ // Trace.TraceInformation("Exhaust - Factor {0} ExhaustCrank {1} RealCrank {2} NormalCrank {3} Exhaust1On {4} Cylinder {5} i {6}", CylinderExhaustOpenFactor, MathHelper.ToDegrees(exhaustCrankAngleRad), MathHelper.ToDegrees(realCrankAngleRad), MathHelper.ToDegrees(normalisedCrankAngleRad), CylinderSteamExhaust1On, i + 1, i);
21402147 }
2141- else
2148+ else if ( i == 0 )
21422149 {
21432150 CylinderSteamExhaust1On = false ;
2151+ // Trace.TraceInformation("Test #1 {0}", CylinderSteamExhaust1On);
21442152 }
2145-
2146- if ( i == 1 && ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) )
2153+
2154+ else if ( i == 1 && ( ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) ) )
21472155 {
21482156 CylinderSteamExhaust2On = true ;
2157+ // Trace.TraceInformation("Exhaust - Factor {0} ExhaustCrank {1} RealCrank {2} NormalCrank {3} Exhaust2On {4} Cylinder {5} i {6}", CylinderExhaustOpenFactor, MathHelper.ToDegrees(exhaustCrankAngleRad), MathHelper.ToDegrees(realCrankAngleRad), MathHelper.ToDegrees(normalisedCrankAngleRad), CylinderSteamExhaust2On, i + 1, i);
21492158 }
2150- else
2159+ else if ( i == 1 )
21512160 {
21522161 CylinderSteamExhaust2On = false ;
21532162 }
21542163
21552164 // Trace.TraceInformation("Exhaust - Factor {0} ExhaustCrank {1} RealCrank {2} NormalCrank {3} ExhaustOn {4} Cylinder {5}", CylinderExhaustOpenFactor, MathHelper.ToDegrees(exhaustCrankAngleRad), MathHelper.ToDegrees(realCrankAngleRad), MathHelper.ToDegrees(normalisedCrankAngleRad), SteamExhaust1On, i+1);
21562165
21572166
2158- if ( i == 2 && ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) )
2167+ else if ( i == 2 && ( ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) ) )
21592168 {
21602169 CylinderSteamExhaust3On = true ;
2170+ // Trace.TraceInformation("Exhaust - Factor {0} ExhaustCrank {1} RealCrank {2} NormalCrank {3} Exhaust3On {4} Cylinder {5} i {6}", CylinderExhaustOpenFactor, MathHelper.ToDegrees(exhaustCrankAngleRad), MathHelper.ToDegrees(realCrankAngleRad), MathHelper.ToDegrees(normalisedCrankAngleRad), CylinderSteamExhaust3On, i + 1, i);
21612171 }
2162- else
2172+ else if ( i == 2 )
21632173 {
21642174 CylinderSteamExhaust3On = false ;
21652175 }
21662176
2167- if ( i == 3 && ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) )
2177+ else if ( i == 3 && ( ( normalisedCrankAngleRad <= MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) || ( normalisedCrankAngleRad < 2 * MathHelper . Pi && normalisedCrankAngleRad >= exhaustCrankAngleRad ) ) )
21682178 {
21692179 CylinderSteamExhaust4On = true ;
2180+ // Trace.TraceInformation("Exhaust - Factor {0} ExhaustCrank {1} RealCrank {2} NormalCrank {3} Exhaust4On {4} Cylinder {5} i {6}", CylinderExhaustOpenFactor, MathHelper.ToDegrees(exhaustCrankAngleRad), MathHelper.ToDegrees(realCrankAngleRad), MathHelper.ToDegrees(normalisedCrankAngleRad), CylinderSteamExhaust4On, i + 1, i);
21702181 }
2171- else
2182+ else if ( i == 3 )
21722183 {
21732184 CylinderSteamExhaust4On = false ;
21742185 }
@@ -6836,6 +6847,18 @@ public override string GetDebugStatus()
68366847 FormatStrings . FormatVolume ( CurrentTrackSandBoxCapacityM3 , IsMetric ) ,
68376848 Simulator . Catalog . GetString ( "M/Press" ) ,
68386849 MainResPressurePSI ) ;
6850+
6851+ status . AppendFormat ( "\n {0}\t {1}\t {2}\t {3}\t {4}\t {5}\t {6}\t {7}\t {8}\n " ,
6852+ Simulator . Catalog . GetString ( "CylE:" ) ,
6853+ Simulator . Catalog . GetString ( "#1" ) ,
6854+ CylinderSteamExhaust1On ? Simulator . Catalog . GetString ( "Yes" ) : Simulator . Catalog . GetString ( "No" ) ,
6855+ Simulator . Catalog . GetString ( "#2" ) ,
6856+ CylinderSteamExhaust2On ? Simulator . Catalog . GetString ( "Yes" ) : Simulator . Catalog . GetString ( "No" ) ,
6857+ Simulator . Catalog . GetString ( "#3" ) ,
6858+ CylinderSteamExhaust3On ? Simulator . Catalog . GetString ( "Yes" ) : Simulator . Catalog . GetString ( "No" ) ,
6859+ Simulator . Catalog . GetString ( "#4" ) ,
6860+ CylinderSteamExhaust4On ? Simulator . Catalog . GetString ( "Yes" ) : Simulator . Catalog . GetString ( "No" ) ) ;
6861+
68396862 }
68406863
68416864#if DEBUG_STEAM_EFFECTS
0 commit comments