VAGSuite.ctrlAirmassResult.CalculateMaxAirmassforcell C# (CSharp) Method

CalculateMaxAirmassforcell() private method

private CalculateMaxAirmassforcell ( SymbolCollection symbols, string filename, int pedalposition, int rpm, int requestedQuantity, bool autogearbox, limitType &limiterType, bool torqueBased ) : int
symbols SymbolCollection
filename string
pedalposition int
rpm int
requestedQuantity int
autogearbox bool
limiterType limitType
torqueBased bool
return int
        private int CalculateMaxAirmassforcell(SymbolCollection symbols, string filename, int pedalposition, int rpm, int requestedQuantity, bool autogearbox, out limitType limiterType, bool torqueBased)
        {
            limiterType = limitType.None;
            // check against torque limiter
            SymbolHelper trqLimiter = GetSymbolLike(symbols, "Torque limiter", selectedBank);
            int[] trqLimitMap = readIntdatafromfile(filename, (int)trqLimiter.Flash_start_address, trqLimiter.Length);
            int[] trqXAxis = readIntdatafromfile(filename, trqLimiter.Y_axis_address, trqLimiter.Y_axis_length * 2);
            int[] trqYAxis = readIntdatafromfile(filename, trqLimiter.X_axis_address, trqLimiter.X_axis_length * 2);

            if (torqueBased)
            {
                int Nmlimit = Convert.ToInt32(GetInterpolatedTableValue(trqLimitMap, trqXAxis, trqYAxis, Convert.ToInt32(spinEdit1.EditValue) * 10, rpm));
                //requestedairmass
                if (requestedQuantity > Nmlimit)
                {
                    Console.WriteLine("Torque is limited from " + requestedQuantity.ToString() + " to " + Nmlimit.ToString() + " at " + rpm.ToString() + " rpm");
                    requestedQuantity = Nmlimit;
                    limiterType = limitType.TorqueLimiterEngine;
                }
            }
            else
            {
                int IQlimit = requestedQuantity;
                if (trqXAxis.Length == 1)
                {
                    // 2d map
                    IQlimit = Convert.ToInt32(GetInterpolatedTableValue(trqLimitMap, trqXAxis, trqYAxis, rpm, Convert.ToInt32(spinEdit1.EditValue) * 10));
                }
                else
                {
                    IQlimit = Convert.ToInt32(GetInterpolatedTableValue(trqLimitMap, trqXAxis, trqYAxis, Convert.ToInt32(spinEdit1.EditValue) * 10, rpm));
                }
                //requestedairmass
                if (requestedQuantity > IQlimit)
                {
            //                    Console.WriteLine("IQ is limited from " + requestedQuantity.ToString() + " to " + IQlimit.ToString() + " at " + rpm.ToString() + " rpm");
                    requestedQuantity = IQlimit;

                    limiterType = limitType.TorqueLimiterEngine;
                }
            }

            // check against smoke limiter

            return requestedQuantity; // no limits ...
        }