Changeset 344:1374c29962a3 for src/mlx
- Timestamp:
- 12/02/12 08:11:57 (12 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- src/mlx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/acft.py
r340 r344 138 138 139 139 self._checkers.append(checks.SpeedChecker()) 140 #self._checkers.append(checks.NoStrobeSpeedChecker()) 140 141 self._checkers.append(checks.VSChecker()) 141 142 -
src/mlx/checks.py
r341 r344 56 56 aircraft.setStage(state, const.STAGE_PUSHANDTAXI) 57 57 elif stage==const.STAGE_PUSHANDTAXI or stage==const.STAGE_RTO: 58 if state.landingLightsOn or state.strobeLightsOn or \ 59 state.groundSpeed>80.0: 58 if state.landingLightsOn or state.strobeLightsOn: 60 59 aircraft.setStage(state, const.STAGE_TAKEOFF) 61 60 elif stage==const.STAGE_TAKEOFF: … … 1285 1284 class SpeedChecker(SimpleFaultChecker): 1286 1285 """Check if the speed is in the prescribed limits.""" 1286 @staticmethod 1287 def logSpeedFault(flight, state): 1288 """Log the speed fault.""" 1289 message = "Taxi speed over %.0f %s" % \ 1290 (flight.speedFromKnots(50), flight.getEnglishSpeedUnit()) 1291 flight.handleFault((SpeedChecker, flight.stage), state.timestamp, 1292 FaultChecker._appendDuring(flight, message), 1293 FaultChecker._getLinearScore(50, 80, 10, 15, 1294 state.groundSpeed)) 1295 1287 1296 def isCondition(self, flight, aircraft, oldState, state): 1288 1297 """Check if the fault condition holds.""" … … 1293 1302 def logFault(self, flight, aircraft, logger, oldState, state): 1294 1303 """Log the fault.""" 1295 message = "Taxi speed over %.0f %s" % \ 1296 (flight.speedFromKnots(50), flight.getEnglishSpeedUnit()) 1297 flight.handleFault(SpeedChecker, state.timestamp, 1298 FaultChecker._appendDuring(flight, message), 1299 FaultChecker._getLinearScore(50, 80, 10, 15, 1300 state.groundSpeed)) 1304 self.logSpeedFault(flight, state) 1305 1306 #--------------------------------------------------------------------------------------- 1307 1308 class NoStrobeSpeedChecker(StateChecker): 1309 """Checker for the ground speed of aircraft that have no strobe lights by 1310 which to detect the takeoff stage. 1311 1312 If, during the PUSHANDTAXI stage the speed exceeds 50 knots, the state as 1313 saved as a provisional takeoff state. If the speed then decreases below 50 1314 knots, or the plane remains on the ground for more than 20 seconds, a taxi 1315 speed error is logged with the highest ground speed detected. 1316 1317 If the plane becomes airborne within 20 seconds, the stage becomes TAKEOFF, 1318 and the previously saved takeoff state is logged. 1319 1320 During the TAXIAFTERLAND stage, speed is checked as in case of 1321 SpeedChecker.""" 1322 def __init__(self): 1323 """Initialize the speed checker.""" 1324 self._takeoffState = None 1325 self._highestSpeedState = None 1326 1327 def check(self, flight, aircraft, logger, oldState, state): 1328 """Check the state as described above.""" 1329 if flight.stage==const.STAGE_PUSHANDTAXI: 1330 self._checkPushAndTaxi(flight, aircraft, state) 1331 elif flight.stage==const.STAGE_TAXIAFTERLAND: 1332 if state.groundSpeed>50: 1333 SpeedChecker.logSpeedFault(flight, state) 1334 1335 def _checkPushAndTaxi(self, flight, aircraft, state): 1336 """Check the speed during the push and taxi stage.""" 1337 if state.groundSpeed>50: 1338 if self._takeoffState is None: 1339 self._takeoffState = state 1340 self._highestSpeedState = state 1341 else: 1342 if state.groundSpeed>self._highestSpeedState.groundSpeed: 1343 self._highestSpeedState = state 1344 1345 if state.timestamp > (self._takeoffState.timestamp + 20): 1346 SpeedChecker.logSpeedFault(flight, self._highestSpeedState) 1347 elif not state.onTheGround: 1348 aircraft.setStage(self._takeoffState, const.STAGE_TAKEOFF) 1349 self._takeoffState = None 1350 elif self._takeoffState is not None: 1351 SpeedChecker.logSpeedFault(flight, self._highestSpeedState) 1352 self._takeoffState = None 1301 1353 1302 1354 #---------------------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.