Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void UpdateFrame()
- {
- inherited();
- devNdl_1_BP.Value = PneumaticScheme.BPNode.Pressure;
- devNdl_1_BC1.Value = PneumaticScheme.BC.Node.Pressure;
- devNdl_1_BC2.Value = PneumaticScheme.BC.Node.Pressure + 15.0;
- devNdl_1_MR.Value = PneumaticScheme.MRNode.Pressure;
- devNdl_1_ER.Value = PneumaticScheme.ERNode.Pressure;
- PneumaticScheme.TB395State = devCtl_1_395.PositionInt;
- PneumaticScheme.LB254State = devCtl_1_254.PositionInt;
- PneumaticScheme.B367State = true;
- PneumaticScheme.B367CombinedValveState = 1;
- PneumaticScheme.CompressorState = gsCU.GetNode("KTK1").State;
- if (gsCU.GetNode("KTK2").State)
- PneumaticScheme.CompressorFlowRate = 8.87;
- else
- PneumaticScheme.CompressorFlowRate = 2.2;
- if (enableTraction)
- {
- //Interface.Print("TDir> te=" + fb(te > 0.0) + " relative=" + fb(GetDirectionRelativeToTrain()) + " td=" + fb((te > 0.0) != GetDirectionRelativeToTrain()));
- if ((te > 0.0) == GetDirectionRelativeToTrain())
- GetMyTrain().SetReverser(Train.TRACTION_FORWARD);
- else
- GetMyTrain().SetReverser(Train.TRACTION_REVERSE);
- SetMaximumTractiveEffort(Math.Fabs(te));
- }
- else
- {
- SetMaximumTractiveEffort(0.0001);
- }
- devCtl_1_KM.Locked = devCtl_1_KMr.PositionInt == 0;
- devCtl_1_KMr.SetLocked(devCtl_1_KM.Position != 0);
- devEng.MR6 = gsCU.GetNode("MR6").State;
- if (devEng.EngineRpm > 200 or gsCU.GetNode("KTN").State)
- devEng.FuelPumpRate = 0.6;
- else
- devEng.FuelPumpRate = 0.0;
- if (gsCU.GetNode("VTN").State)
- devEng.FuelInjectionMultiplier = 0.5;
- else
- devEng.FuelInjectionMultiplier = 1.0;
- gsCU.GetNode("RU10").Plus = gsCU.GetRelay("RU8").State and gsCU.GetRelay("KVV").State and devEng.EngineRpm >= 300.0;
- bool oil = devEng.EngineRpm >= 250 or gsCU.GetNode("KMN").State;
- gsCU.GetNode("RDM4").Enabled = oil;
- gsCU.GetNode("RDM3").Enabled = oil;
- if (gsCU.GetRelay("KVG").State and gsCU.GetRelay("KVV").State and gsCU.GetRelay("KP1").State)
- {
- enableTraction = true;
- float rpm = devEng.EngineRpm;
- float kW = engPowerBase.Y(rpm);
- float NM = 0.0;
- if (rpm > 200.0)
- NM = kW / rpm * 9549.296585; // 1000.0 / (2.0 * Math.PI / 60.0);
- devEng.EngineNetLoadMoment = NM;
- if (reversorState == 1.0)
- te = 166000.0;
- else if (reversorState == -1.0)
- te = -166000.0;
- }
- else
- {
- enableTraction = false;
- te = 0.0;
- if (gsCU.GetRelay("KD").State)
- devEng.EngineNetLoadMoment = -2000.0;
- else
- devEng.EngineNetLoadMoment = 0.0;
- }
- int mr1 = LlUtil.Cond(gsCU.GetNode("MR1").State, ~0, 0);
- int mr2 = LlUtil.Cond(gsCU.GetNode("MR2").State, ~0, 0);
- int mr3 = LlUtil.Cond(gsCU.GetNode("MR3").State, ~0, 0);
- int mr4 = LlUtil.Cond(gsCU.GetNode("MR4").State, ~0, 0);
- rpmValIndex = mr1 & engMR1 | mr2 & engMR2 | mr3 & engMR3 | mr4 & engMR4;
- devEng.MRRpmSetting = engRpm[rpmValIndex];
- }
- void UpdateFast()
- {
- inherited();
- gsCU.GetNode("AV4(1)").Enabled = devCtl_1_AvTH.State;
- gsCU.GetNode("AV2(1)").Enabled = devCtl_1_AvCommonControl.State;
- gsCU.GetNode("Kn3(1)").Enabled = devCtl_1_Start1.Pressed;
- gsCU.GetNode("RDK").Enabled = gsCU.GetNode("RDK").Enabled and PneumaticScheme.MRNode.Pressure < 900.0 or PneumaticScheme.MRNode.Pressure < 750.0;
- gsCU.GetNode("AV1(1)").Enabled = devCtl_1_AvLocoControl.State;
- if (gsCU.GetNode("Rvp").State and !gsCU.GetNode("Rnz").State)
- reversorState = Math.Fmin(1.0, reversorState + 0.5);
- if (!gsCU.GetNode("Rvp").State and gsCU.GetNode("Rnz").State)
- reversorState = Math.Fmax(-1.0, reversorState - 0.5);
- gsCU.GetNode("R.vp").Enabled = reversorState == 1.0;
- gsCU.GetNode("R.nz").Enabled = reversorState == -1.0;
- int p = devCtl_1_KM.Position;
- gsCU.GetNode("KM(1).1") .Enabled = p >= 1;
- gsCU.GetNode("KM(1).4") .Enabled = p == 0;
- gsCU.GetNode("KM(1).2") .Enabled = p % 2 == 0 and p >= 2;
- gsCU.GetNode("KM(1).8") .Enabled = p >= 8;
- gsCU.GetNode("KM(1).9") .Enabled = (p / 4) % 2 == 1;
- gsCU.GetNode("KM(1).10").Enabled = (p / 2) % 2 == 1;
- gsCU.GetNode("KM(1).5") .Enabled = p >= 2;
- gsCU.GetNode("KM(1).11").Enabled = p >= 12;
- gsCU.GetNode("KM(1).6") .Enabled = p >= 7;
- gsCU.GetNode("KM(1).19").Enabled = devCtl_1_KMr.PositionInt == 1;
- gsCU.GetNode("KM(1).31").Enabled = devCtl_1_KMr.PositionInt == -1;
- devLt_1_Compr.Lit = gsCU.GetNode("LS12(1)").State;
- devLt_1_Sbros.Lit = gsCU.GetNode("LS2(1)").State;
- devLt_1_NZarAB.Lit = !gsCU.GetRelay("KRN").State;
- //if (gsCU.GetRelay("KD").State)
- // devEng.EngineNetLoadMoment = -2000.0;
- gsSil.GetEdge("KD").Lin_G(LlUtil.Cond(gsCU.GetRelay("KD").State, 1.0 / 0.00012, 0.0));
- gsCU.Update();
- gsSil.Update(LseUpdate.time, LseUpdate.dt);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement