- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/acft.py
r512 r447 32 32 #--------------------------------------------------------------------------------------- 33 33 34 # Derate type: no derate possible35 DERATE_NONE = 036 37 # Derate type: Boeing, i.e. a percentage value.38 # For logging, the percentage value is expected as a string (i.e. whatever the39 # pilot enters into the text field).40 DERATE_BOEING = 141 42 # Derate type: EPR, i.e. an EPR value.43 # For logging, the EPR value is expected as a string (i.e. whatever the pilot44 # enters into the text field).45 DERATE_EPR = 246 47 # Derate type: Tupolev, i.e. nominal or takeoff48 # For logging, one of the DERATE_TUPOLEV_xxx values are expected.49 DERATE_TUPOLEV = 350 51 # Tupolev derate value: nominal52 DERATE_TUPOLEV_NOMINAL = 153 54 # Tupolev derate value: takeoff55 DERATE_TUPOLEV_TAKEOFF = 256 57 # Derate type: BAe-146, i.e. enabled or not58 # For logging, a boolean is expected.59 DERATE_B462 = 460 61 #---------------------------------------------------------------------------------------62 63 34 class SmoothedValue(object): 64 35 """A smoothed value.""" … … 232 203 233 204 @property 234 def derateType(self): 235 """Get the derate type for this aircraft. 236 237 This default implementation returns DERATE_NONE.""" 238 return DERATE_NONE 239 240 def getDerateLine(self, value): 241 """Get the log line for the given derate value. 242 243 It uses the the derate type and produces the standard message for 244 each. This children need not override it, although they can.""" 245 dt = self.derateType 246 247 if dt==DERATE_BOEING: 248 return "Derate calculated by the pilot: %s %%" % \ 249 ("-" if value is None else value,) 250 elif dt==DERATE_EPR: 251 return "EPR calculated by the pilot: %s" % \ 252 ("-" if value is None else value,) 253 elif dt==DERATE_TUPOLEV: 254 return "Thrust setting calculated by the pilot: %s" % \ 255 ("-" if value is None else 256 "nominal" if value==DERATE_TUPOLEV_NOMINAL else "takeoff",) 257 elif dt==DERATE_B462: 258 return "Derate setting: %s" % \ 259 ("-" if value is None else "enabled" if value else "disabled",) 260 elif dt!=DERATE_NONE: 261 print "mlx.acft.getDerateLine: invalid derate type: " + dt 262 205 def derateLabels(self): 206 """Get the strings related to the derate entry. 207 208 It returns a tuple of two items: 209 - the label before the entry field, 210 - the label after the entry field, which can be None. 211 212 If both labels are None, the derate value will not be logged or 213 queried. This is the default.""" 214 return (None, None) 215 216 @property 217 def derateTemplate(self): 218 """Get the template for logging the derate value. 219 220 If it returns None (which is the default), no derate value will be 221 logged.""" 263 222 return None 264 223 … … 513 472 """Log the derate values either newly or by updating the corresponding 514 473 line.""" 515 d t = self.derateType516 if d t==DERATE_NONE:474 derateTemplate = self.derateTemplate 475 if derateTemplate is None: 517 476 return 518 477 519 message = self.getDerateLine(self._flight.derate)520 if message is not None:521 522 523 524 525 526 527 478 derate = self._flight.derate 479 message = derateTemplate % ("-" if derate is None else derate) 480 if self._derateLineID is None: 481 if state is None: 482 state = self._aircraftState 483 self._derateLineID = \ 484 self.logger.message(state.timestamp, message) 485 else: 486 self.logger.updateLine(self._derateLineID, message) 528 487 529 488 def _logTakeoffAntiIce(self, state = None): … … 648 607 649 608 @property 650 def derateType(self): 651 """Get the derate type for this type.""" 652 return DERATE_BOEING 609 def derateLabels(self): 610 """Get the derate strings for this type.""" 611 return (xstr("takeoff_derate_boeing"), "%") 612 613 @property 614 def derateTemplate(self): 615 """Get the derate template for this aicraft type.""" 616 return "Derate calculated by the pilot: %s %%" 653 617 654 618 # def _appendSpeedChecker(self): … … 777 741 778 742 @property 779 def derateType(self): 780 """Get the derate type for this type.""" 781 return DERATE_BOEING 743 def derateLabels(self): 744 """Get the derate strings for this type.""" 745 return (xstr("takeoff_derate_boeing"), "%") 746 747 @property 748 def derateTemplate(self): 749 """Get the derate template for this aicraft type.""" 750 return "Derate calculated by the pilot: %s %%" 782 751 783 752 #--------------------------------------------------------------------------------------- … … 850 819 851 820 @property 852 def derateType(self): 853 """Get the derate type for this type.""" 854 return DERATE_EPR 821 def derateLabels(self): 822 """Get the derate strings for this type.""" 823 return ("EPR", None) 824 825 @property 826 def derateTemplate(self): 827 """Get the derate template for this aicraft type.""" 828 return "EPR calculated by the pilot: %s" 855 829 856 830 #--------------------------------------------------------------------------------------- … … 907 881 908 882 @property 909 def derateType(self): 910 """Get the derate type for this type.""" 911 return DERATE_TUPOLEV 883 def derateLabels(self): 884 """Get the derate strings for this type.""" 885 return (xstr("takeoff_derate_tupolev"), None) 886 887 @property 888 def derateTemplate(self): 889 """Get the derate template for this aicraft type.""" 890 return "Nominal/takeoff power calculated by the pilot: %s" 912 891 913 892 @property … … 960 939 961 940 @property 962 def derateType(self): 963 """Get the derate type for this type.""" 964 return DERATE_TUPOLEV 941 def derateLabels(self): 942 """Get the derate strings for this type.""" 943 return (xstr("takeoff_derate_tupolev"), None) 944 945 @property 946 def derateTemplate(self): 947 """Get the derate template for this aicraft type.""" 948 return "Nominal/takeoff power calculated by the pilot: %s" 965 949 966 950 def _appendLightsLoggers(self): … … 1006 990 1007 991 @property 1008 def derateType(self): 1009 """Get the derate type for this type.""" 1010 return DERATE_TUPOLEV 992 def derateLabels(self): 993 """Get the derate strings for this type.""" 994 return (xstr("takeoff_derate_tupolev"), None) 995 996 @property 997 def derateTemplate(self): 998 """Get the derate template for this aicraft type.""" 999 return "Nominal/takeoff power calculated by the pilot: %s" 1011 1000 1012 1001 def _appendLightsLoggers(self): … … 1049 1038 1050 1039 @property 1051 def derateType(self): 1052 """Get the derate type for this type.""" 1053 return DERATE_B462 1040 def derateLabels(self): 1041 """Get the derate strings for this type.""" 1042 return (xstr("takeoff_derate_b462"), None) 1043 1044 @property 1045 def derateTemplate(self): 1046 """Get the derate template for this aicraft type.""" 1047 return "Derate enabled: %s" 1054 1048 1055 1049 #---------------------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.