Exemplo n.º 1
0
        public int GetEfficiency(Car car, double speed, double torque)
        {
            double rpm = MathUtil.ConvertSpeedToRev(car, speed);

            int efficiency = -1;

            if (rpm > _maxRev || torque > _maxTorque || torque < _minTorque)
            {
                efficiency = EfficiencyMaxDao.GetEfficiency((int)Math.Round(torque), (int)Math.Round(rpm / 10) * 10);
            }
            else
            {
                efficiency = EfficiencyDao.GetEfficiency((int)Math.Round(torque), (int)Math.Round(rpm / 10) * 10);
            }

            if (efficiency == -1)
            {
                efficiency = 80;
            }
            return(efficiency);
        }
Exemplo n.º 2
0
        private static void InitInstance()
        {
            _instance = new EfficiencyCalculator
            {
                _efficiencyTable    = EfficiencyDao.Get(),
                _efficiencyMaxTable = EfficiencyMaxDao.Get()
            };


            _instance._maxRev = _instance._efficiencyTable
                                .AsEnumerable()
                                .Max(v => v.Field <int>(EfficiencyDao.ColumnRev));

            _instance._maxTorque = (int)_instance._efficiencyTable
                                   .AsEnumerable()
                                   .Max(v => v.Field <int>(EfficiencyDao.ColumnTorque));

            _instance._minTorque = (int)_instance._efficiencyTable
                                   .AsEnumerable()
                                   .Min(v => v.Field <int>(EfficiencyDao.ColumnTorque));
        }