Ignore:
Timestamp:
07/05/12 17:51:58 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
hg-Phase:
(<MercurialRepository 1 'hg:/home/ivaradi/mlx/hg' '/'>, 'public')
Message:

Reworked fuel handling so that the model can tell what tanks there are

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/acft.py

    r273 r274  
    174174        This is the function that the simulator calls directly with the new
    175175        state."""
    176         config = self._flight.config
    177 
    178         self._smoothedIAS.add(config.realIASSmoothingLength, aircraftState.ias)
    179         aircraftState.smoothedIAS = self._smoothedIAS.get()
    180 
    181         self._smoothedVS.add(config.realVSSmoothingLength, aircraftState.vs)
    182         aircraftState.smoothedVS = self._smoothedVS.get()
    183        
    184         for checker in self._checkers:
    185             try:
    186                 checker.check(self._flight, self, self._flight.logger,
    187                               self._aircraftState, aircraftState)
    188             except:
    189                 print >> sys.stderr, "Checker", checker, "failed"
    190                 traceback.print_exc()
    191 
    192         self._flight.handleState(self._aircraftState, aircraftState)
    193 
    194         self._maxVS = max(self._maxVS, aircraftState.vs)
    195         self._minVS = min(self._minVS, aircraftState.vs)
    196 
    197         self._aircraftState = aircraftState
     176        try:
     177            config = self._flight.config
     178
     179            self._smoothedIAS.add(config.realIASSmoothingLength, aircraftState.ias)
     180            aircraftState.smoothedIAS = self._smoothedIAS.get()
     181
     182            self._smoothedVS.add(config.realVSSmoothingLength, aircraftState.vs)
     183            aircraftState.smoothedVS = self._smoothedVS.get()
     184
     185            for checker in self._checkers:
     186                try:
     187                    checker.check(self._flight, self, self._flight.logger,
     188                                  self._aircraftState, aircraftState)
     189                except:
     190                    print >> sys.stderr, "Checker", checker, "failed"
     191                    traceback.print_exc()
     192
     193            self._flight.handleState(self._aircraftState, aircraftState)
     194
     195            self._maxVS = max(self._maxVS, aircraftState.vs)
     196            self._minVS = min(self._minVS, aircraftState.vs)
     197        except:
     198            print >> sys.stderr, "Failed to handle the state"
     199            traceback.print_exc()
     200        finally:
     201            self._aircraftState = aircraftState
    198202   
    199203    def setStage(self, aircraftState, newStage):
     
    203207            if newStage==const.STAGE_PUSHANDTAXI:
    204208                self.logger.message(aircraftState.timestamp, "Block time start")
    205                 self.logFuel(aircraftState)
     209                self._flight.logFuel(aircraftState)
    206210                self.logger.message(aircraftState.timestamp,
    207211                                    "Zero-fuel weight: %.0f kg" % (aircraftState.zfw))
     
    234238                                          force = True)
    235239                self.logger.message(aircraftState.timestamp, "Flight time end")
    236                 self.logFuel(aircraftState)
     240                self._flight.logFuel(aircraftState)
    237241                self.logger.message(aircraftState.timestamp,
    238242                                    "Landing weight: %.0f kg, MLW: %.0f" % \
     
    409413    - fuel: left, centre, right
    410414    - n1: left, right
    411     - reverser: left, right"""
    412     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_CENTRE, const.FUELTANK_RIGHT]   
    413    
     415    - reverser: left, right"""   
    414416    def __init__(self, flight):
    415417        super(Boeing737, self).__init__(flight)
     
    426428                                 40 : 162 }
    427429
    428     def logFuel(self, aircraftState):
    429         """Log the amount of fuel"""
    430         self.logger.message(aircraftState.timestamp,
    431                             "Fuel: left=%.0f kg - centre=%.0f kg - right=%.0f kg" % \
    432                             (aircraftState.fuel[0], aircraftState.fuel[1],
    433                              aircraftState.fuel[2]))
    434         self.logger.message(aircraftState.timestamp,
    435                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    436                            
    437430#---------------------------------------------------------------------------------------
    438431
     
    519512    - n1: left, right
    520513    - reverser: left, right."""
    521     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_RIGHT]   
    522514
    523515    def __init__(self, flight):
     
    533525                                 35 : 158 }
    534526
    535     def logFuel(self, aircraftState):
    536         """Log the amount of fuel"""
    537         self.logger.message(aircraftState.timestamp,
    538                             "Fuel: left=%.0f kg - right=%.0f kg" % \
    539                             (aircraftState.fuel[0], aircraftState.fuel[1]))
    540         self.logger.message(aircraftState.timestamp,
    541                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    542 
    543527#---------------------------------------------------------------------------------------
    544528
     
    551535    - n1: left, right
    552536    - reverser: left, right"""
    553     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_CENTRE, const.FUELTANK_RIGHT]   
    554537
    555538    def __init__(self, flight):
     
    564547                                 30 : 175 }
    565548
    566     def logFuel(self, aircraftState):
    567         """Log the amount of fuel"""
    568         self.logger.message(aircraftState.timestamp,
    569                             "Fuel: left=%.0f kg - centre=%.0f kg - right=%.0f kg" % \
    570                             (aircraftState.fuel[0], aircraftState.fuel[1],
    571                              aircraftState.fuel[2]))
    572         self.logger.message(aircraftState.timestamp,
    573                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    574                            
    575549#---------------------------------------------------------------------------------------
    576550
     
    605579    - n1: left, right
    606580    - reverser: left, right."""
    607     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_CENTRE, const.FUELTANK_RIGHT]   
    608 
    609581    def __init__(self, flight):
    610582        super(CRJ2, self).__init__(flight)
     
    620592                                 45 : 175 }
    621593
    622     def logFuel(self, aircraftState):
    623         """Log the amount of fuel"""
    624         self.logger.message(aircraftState.timestamp,
    625                             "Fuel: left=%.0f kg - centre=%.0f kg - right=%.0f kg" % \
    626                             (aircraftState.fuel[0], aircraftState.fuel[1],
    627                              aircraftState.fuel[2]))
    628         self.logger.message(aircraftState.timestamp,
    629                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    630                            
    631594#---------------------------------------------------------------------------------------
    632595
     
    639602    - n1: left, right
    640603    - reverser: left, right."""
    641     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_CENTRE, const.FUELTANK_RIGHT]   
    642 
    643604    def __init__(self, flight):
    644605        super(F70, self).__init__(flight)
     
    655616                                 42 : 180 }
    656617
    657     def logFuel(self, aircraftState):
    658         """Log the amount of fuel"""
    659         self.logger.message(aircraftState.timestamp,
    660                             "Fuel: left=%.0f kg - centre=%.0f kg - right=%.0f kg" % \
    661                             (aircraftState.fuel[0], aircraftState.fuel[1],
    662                              aircraftState.fuel[2]))
    663         self.logger.message(aircraftState.timestamp,
    664                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    665                            
    666618#---------------------------------------------------------------------------------------
    667619
     
    674626    - rpm: left, right
    675627    - reverser: left, right."""
    676     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_CENTRE, const.FUELTANK_RIGHT]   
    677     # fuelTanks = [const.FUELTANK_LEFT_AUX, const.FUELTANK_LEFT,
    678     #              const.FUELTANK_RIGHT, const.FUELTANK_RIGHT_AUX]
    679 
    680628    def __init__(self, flight):
    681629        super(DC3, self).__init__(flight)
     
    697645        return True
    698646
    699     def logFuel(self, aircraftState):
    700         """Log the amount of fuel"""
    701         self.logger.message(aircraftState.timestamp,
    702                             "Fuel: left aux=%.0f kg - left=%.0f kg - right=%.0f kg - right aux=%.0f kg" % \
    703                             (aircraftState.fuel[0], aircraftState.fuel[1],
    704                              aircraftState.fuel[2], aircraftState.fuel[3]))
    705         self.logger.message(aircraftState.timestamp,
    706                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    707                            
    708647#---------------------------------------------------------------------------------------
    709648
     
    717656    - n1: left, right
    718657    - reverser: left, right."""
    719     fuelTanks = [const.FUELTANK_LEFT_TIP, const.FUELTANK_EXTERNAL1,
    720                  const.FUELTANK_LEFT_AUX,
    721                  const.FUELTANK_CENTRE,
    722                  const.FUELTANK_RIGHT_AUX,
    723                  const.FUELTANK_EXTERNAL2, const.FUELTANK_RIGHT_TIP]
    724 
    725658    def __init__(self, flight):
    726659        super(T134, self).__init__(flight)
     
    740673        return False
    741674   
    742     def logFuel(self, aircraftState):
    743         """Log the amount of fuel"""
    744         self.logger.message(aircraftState.timestamp,
    745                             "Fuel: left tip=%.0f kg - external 1=%.0f kg - left aux=%.0f kg - centre= %.0f kg - right aux=%.0f kg - external 2=%.0f kg - right tip=%.0f kg" % \
    746                             (aircraftState.fuel[0], aircraftState.fuel[1],
    747                              aircraftState.fuel[2],
    748                              aircraftState.fuel[3], aircraftState.fuel[4],
    749                              aircraftState.fuel[5], aircraftState.fuel[6]))
    750         self.logger.message(aircraftState.timestamp,
    751                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    752                            
    753675    def _appendLightsLoggers(self):
    754676        """Append the loggers needed for the lights."""
     
    773695    - n1: left, centre, right
    774696    - reverser: left, right"""
    775     fuelTanks = [const.FUELTANK_LEFT_AUX, const.FUELTANK_LEFT,
    776                  const.FUELTANK_CENTRE, const.FUELTANK_CENTRE2,
    777                  const.FUELTANK_RIGHT, const.FUELTANK_RIGHT_AUX]
    778697    def __init__(self, flight):
    779698        super(T154, self).__init__(flight)
     
    793712        return False
    794713   
    795     def logFuel(self, aircraftState):
    796         """Log the amount of fuel"""
    797         self.logger.message(aircraftState.timestamp,
    798                             "Fuel: left aux=%.0f kg - left=%.0f kg - centre=%.0f kg - centre 2=%.0f kg - right=%.0f kg - right aux=%.0f kg" % \
    799                             (aircraftState.fuel[0], aircraftState.fuel[1],
    800                              aircraftState.fuel[2], aircraftState.fuel[3],
    801                              aircraftState.fuel[4], aircraftState.fuel[5]))
    802         self.logger.message(aircraftState.timestamp,
    803                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    804 
    805714    def _appendLightsLoggers(self):
    806715        """Append the loggers needed for the lights."""
     
    826735    - n1: left, right
    827736    - reverser: left, right"""
    828     fuelTanks = [const.FUELTANK_LEFT, const.FUELTANK_RIGHT]
    829    
    830737    def __init__(self, flight):
    831738        super(YK40, self).__init__(flight)
     
    844751        return False
    845752   
    846     def logFuel(self, aircraftState):
    847         """Log the amount of fuel"""
    848         self.logger.message(aircraftState.timestamp,
    849                             "Fuel: left=%.0f kg - right=%.0f kg" % \
    850                             (aircraftState.fuel[0], aircraftState.fuel[1]))
    851         self.logger.message(aircraftState.timestamp,
    852                             "Total fuel: %.0f kg" % (sum(aircraftState.fuel),))
    853 
    854753    def _appendLightsLoggers(self):
    855754        """Append the loggers needed for the lights."""
     
    866765#---------------------------------------------------------------------------------------
    867766
    868 MostFuelTankAircraft = T134
     767mostFuelTanks = [const.FUELTANK_LEFT_TIP, const.FUELTANK_EXTERNAL1,
     768                 const.FUELTANK_LEFT_AUX,
     769                 const.FUELTANK_CENTRE,
     770                 const.FUELTANK_RIGHT_AUX,
     771                 const.FUELTANK_EXTERNAL2, const.FUELTANK_RIGHT_TIP]
    869772
    870773#---------------------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.