Advertisement
agmike

Object Linkage

Sep 17th, 2011
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.40 KB | None | 0 0
  1.     void UpdateFrame()
  2.     {
  3.         inherited();
  4.  
  5.         devNdl_1_BP.Value = PneumaticScheme.BPNode.Pressure;
  6.         devNdl_1_BC1.Value = PneumaticScheme.BC.Node.Pressure;
  7.         devNdl_1_BC2.Value = PneumaticScheme.BC.Node.Pressure + 15.0;
  8.         devNdl_1_MR.Value = PneumaticScheme.MRNode.Pressure;
  9.         devNdl_1_ER.Value = PneumaticScheme.ERNode.Pressure;
  10.  
  11.         PneumaticScheme.TB395State = devCtl_1_395.PositionInt;
  12.         PneumaticScheme.LB254State = devCtl_1_254.PositionInt;
  13.         PneumaticScheme.B367State = true;
  14.         PneumaticScheme.B367CombinedValveState = 1;
  15.  
  16.         PneumaticScheme.CompressorState = gsCU.GetNode("KTK1").State;
  17.         if (gsCU.GetNode("KTK2").State)
  18.             PneumaticScheme.CompressorFlowRate = 8.87;
  19.         else
  20.             PneumaticScheme.CompressorFlowRate = 2.2;
  21.  
  22.         if (enableTraction)
  23.         {
  24.             //Interface.Print("TDir> te=" + fb(te > 0.0) + " relative=" + fb(GetDirectionRelativeToTrain()) + " td=" + fb((te > 0.0) != GetDirectionRelativeToTrain()));
  25.             if ((te > 0.0) == GetDirectionRelativeToTrain())
  26.                 GetMyTrain().SetReverser(Train.TRACTION_FORWARD);
  27.             else
  28.                 GetMyTrain().SetReverser(Train.TRACTION_REVERSE);
  29.  
  30.             SetMaximumTractiveEffort(Math.Fabs(te));
  31.         }
  32.         else
  33.         {
  34.             SetMaximumTractiveEffort(0.0001);
  35.         }
  36.  
  37.         devCtl_1_KM.Locked = devCtl_1_KMr.PositionInt == 0;
  38.         devCtl_1_KMr.SetLocked(devCtl_1_KM.Position != 0);
  39.  
  40.         devEng.MR6 = gsCU.GetNode("MR6").State;
  41.  
  42.         if (devEng.EngineRpm > 200 or gsCU.GetNode("KTN").State)
  43.             devEng.FuelPumpRate = 0.6;
  44.         else
  45.             devEng.FuelPumpRate = 0.0;
  46.  
  47.         if (gsCU.GetNode("VTN").State)
  48.             devEng.FuelInjectionMultiplier = 0.5;
  49.         else
  50.             devEng.FuelInjectionMultiplier = 1.0;
  51.  
  52.         gsCU.GetNode("RU10").Plus = gsCU.GetRelay("RU8").State and gsCU.GetRelay("KVV").State and devEng.EngineRpm >= 300.0;
  53.  
  54.         bool oil = devEng.EngineRpm >= 250 or gsCU.GetNode("KMN").State;
  55.         gsCU.GetNode("RDM4").Enabled = oil;
  56.         gsCU.GetNode("RDM3").Enabled = oil;
  57.  
  58.         if (gsCU.GetRelay("KVG").State and gsCU.GetRelay("KVV").State and gsCU.GetRelay("KP1").State)
  59.         {
  60.             enableTraction = true;
  61.  
  62.             float rpm = devEng.EngineRpm;
  63.             float kW = engPowerBase.Y(rpm);
  64.             float NM = 0.0;
  65.             if (rpm > 200.0)
  66.                 NM = kW / rpm * 9549.296585; // 1000.0 / (2.0 * Math.PI / 60.0);
  67.             devEng.EngineNetLoadMoment = NM;
  68.  
  69.             if (reversorState == 1.0)
  70.                 te = 166000.0;
  71.             else if (reversorState == -1.0)
  72.                 te = -166000.0;
  73.         }
  74.         else
  75.         {
  76.             enableTraction = false;
  77.             te = 0.0;
  78.            
  79.             if (gsCU.GetRelay("KD").State)
  80.                 devEng.EngineNetLoadMoment = -2000.0;
  81.             else
  82.                 devEng.EngineNetLoadMoment = 0.0;
  83.         }
  84.  
  85.        int mr1 = LlUtil.Cond(gsCU.GetNode("MR1").State, ~0, 0);
  86.        int mr2 = LlUtil.Cond(gsCU.GetNode("MR2").State, ~0, 0);
  87.        int mr3 = LlUtil.Cond(gsCU.GetNode("MR3").State, ~0, 0);
  88.        int mr4 = LlUtil.Cond(gsCU.GetNode("MR4").State, ~0, 0);
  89.        rpmValIndex = mr1 & engMR1 | mr2 & engMR2 | mr3 & engMR3 | mr4 & engMR4;
  90.        devEng.MRRpmSetting = engRpm[rpmValIndex];
  91.     }
  92.  
  93.     void UpdateFast()
  94.     {
  95.         inherited();
  96.  
  97.         gsCU.GetNode("AV4(1)").Enabled = devCtl_1_AvTH.State;
  98.         gsCU.GetNode("AV2(1)").Enabled = devCtl_1_AvCommonControl.State;
  99.         gsCU.GetNode("Kn3(1)").Enabled = devCtl_1_Start1.Pressed;
  100.  
  101.         gsCU.GetNode("RDK").Enabled = gsCU.GetNode("RDK").Enabled and PneumaticScheme.MRNode.Pressure < 900.0 or PneumaticScheme.MRNode.Pressure < 750.0;
  102.  
  103.         gsCU.GetNode("AV1(1)").Enabled = devCtl_1_AvLocoControl.State;
  104.  
  105.         if (gsCU.GetNode("Rvp").State and !gsCU.GetNode("Rnz").State)
  106.             reversorState = Math.Fmin(1.0, reversorState + 0.5);
  107.         if (!gsCU.GetNode("Rvp").State and gsCU.GetNode("Rnz").State)
  108.             reversorState = Math.Fmax(-1.0, reversorState - 0.5);
  109.  
  110.         gsCU.GetNode("R.vp").Enabled = reversorState == 1.0;
  111.         gsCU.GetNode("R.nz").Enabled = reversorState == -1.0;
  112.  
  113.         int p = devCtl_1_KM.Position;
  114.  
  115.         gsCU.GetNode("KM(1).1") .Enabled = p >= 1;
  116.         gsCU.GetNode("KM(1).4") .Enabled = p == 0;
  117.         gsCU.GetNode("KM(1).2") .Enabled = p % 2 == 0 and p >= 2;
  118.         gsCU.GetNode("KM(1).8") .Enabled = p >= 8;
  119.         gsCU.GetNode("KM(1).9") .Enabled = (p / 4) % 2 == 1;
  120.         gsCU.GetNode("KM(1).10").Enabled = (p / 2) % 2 == 1;
  121.         gsCU.GetNode("KM(1).5") .Enabled = p >= 2;
  122.         gsCU.GetNode("KM(1).11").Enabled = p >= 12;
  123.         gsCU.GetNode("KM(1).6") .Enabled = p >= 7;
  124.  
  125.         gsCU.GetNode("KM(1).19").Enabled = devCtl_1_KMr.PositionInt == 1;
  126.         gsCU.GetNode("KM(1).31").Enabled = devCtl_1_KMr.PositionInt == -1;
  127.  
  128.         devLt_1_Compr.Lit = gsCU.GetNode("LS12(1)").State;
  129.         devLt_1_Sbros.Lit = gsCU.GetNode("LS2(1)").State;
  130.         devLt_1_NZarAB.Lit = !gsCU.GetRelay("KRN").State;
  131.  
  132.         //if (gsCU.GetRelay("KD").State)
  133.         //    devEng.EngineNetLoadMoment = -2000.0;
  134.  
  135.         gsSil.GetEdge("KD").Lin_G(LlUtil.Cond(gsCU.GetRelay("KD").State, 1.0 / 0.00012, 0.0));
  136.  
  137.         gsCU.Update();
  138.         gsSil.Update(LseUpdate.time, LseUpdate.dt);
  139.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement