VAGSuite.ctrlAirmassResult.CheckAgainstTorqueLimiters C# (CSharp) Méthode

CheckAgainstTorqueLimiters() private méthode

private CheckAgainstTorqueLimiters ( SymbolCollection symbols, string filename, int rpm, int requestedairmass, bool Automatic, limitType &TrqLimiter ) : int
symbols SymbolCollection
filename string
rpm int
requestedairmass int
Automatic bool
TrqLimiter limitType
Résultat int
        private int CheckAgainstTorqueLimiters(SymbolCollection symbols, string filename, int rpm, int requestedairmass, bool Automatic, out limitType TrqLimiter)
        {
            int torque = 0;
            TrqLimiter = limitType.None;
            int LimitedAirMass = requestedairmass;
            int[] xaxis = readIntdatafromfile(filename, (int)GetSymbolAddress(symbols, "TorqueCal.m_AirXSP"), GetSymbolLength(symbols, "TorqueCal.m_AirXSP"));
            int[] yaxis = readIntdatafromfile(filename, (int)GetSymbolAddress(symbols, "TorqueCal.n_EngYSP"), GetSymbolLength(symbols, "TorqueCal.n_EngYSP"));
            torque = Tools.Instance.IQToTorque(requestedairmass, rpm, m_numberCylinders);

            int[] enginetorquelim = readIntdatafromfile(filename, (int)GetSymbolAddress(symbols, "TorqueCal.M_EngMaxTab"), GetSymbolLength(symbols, "TorqueCal.M_EngMaxTab"));
            if (Automatic)
            {
                enginetorquelim = readIntdatafromfile(filename, (int)GetSymbolAddress(symbols, "TorqueCal.M_EngMaxAutTab"), GetSymbolLength(symbols, "TorqueCal.M_EngMaxAutTab"));
            }

            int[] xdummy = new int[1];
            xdummy.SetValue(0, 0);
            int torquelimit1 = Convert.ToInt32(GetInterpolatedTableValue(enginetorquelim, xdummy, yaxis, rpm, 0));
            //requestedairmass
            if (torque > torquelimit1)
            {
                //Console.WriteLine("Torque is limited from " + torque.ToString() + " to " + torquelimit1.ToString() + " at " + rpm.ToString() + " rpm");
                torque = torquelimit1;
                TrqLimiter = limitType.TorqueLimiterEngine;
            }

            int[] airtorquemap = readIntdatafromfile(filename, (int)GetSymbolAddress(symbols, "TorqueCal.m_AirTorqMap"), GetSymbolLength(symbols, "TorqueCal.m_AirTorqMap"));
            int[] xairtorque = readIntdatafromfile(filename, (int)GetSymbolAddress(symbols, "TorqueCal.M_EngXSP"), GetSymbolLength(symbols, "TorqueCal.M_EngXSP"));
            int TestLimitedAirmass = Convert.ToInt32(GetInterpolatedTableValue(airtorquemap, xairtorque, yaxis, rpm, torque));
            if (TestLimitedAirmass < LimitedAirMass)
            {
                LimitedAirMass = TestLimitedAirmass;
                if (TrqLimiter == limitType.None) TrqLimiter = limitType.AirTorqueCalibration;
            }
            if (TrqLimiter == limitType.None) LimitedAirMass = requestedairmass; // bugfix for if no limiter is active
            return LimitedAirMass;
        }