Source code for pyBADA.myTypes

from dataclasses import dataclass
from enum import StrEnum
from typing import Literal


[docs] class CalculationType(StrEnum): POINT = "POINT" INTEGRATED = "INTEGRATED"
[docs] class FlightPhase(StrEnum): CLIMB = "CLIMB" DESCENT = "DESCENT" CRUISE = "CRUISE"
[docs] class AccelerationOption(StrEnum): ROCD_ESF = "ROCD_ESF" ROCD_ACC = "ROCD_ACC" SLOPE_ACC = "SLOPE_ACC" SLOPE_ESF = "SLOPE_ESF" ROCD_RATING = "ROCD_RATING" SLOPE_RATING = "SLOPE_RATING" ESF_RATING = "ESF_RATING" ACC_RATING = "ACC_RATING"
[docs] class SpeedType(StrEnum): TAS = "TAS" CAS = "CAS" M = "M"
[docs] class AccelerationLevelKind(StrEnum): AT = "AT" BEFORE = "BEFORE" AFTER = "AFTER"
[docs] @dataclass class Speed: speedType: SpeedType | None = None accelerationLevelKind: AccelerationLevelKind | None = None initSpeed: float | None = None finalSpeed: float | None = None stepSpeed: float | None = None
[docs] @dataclass class SpeedBrakes: deployed: float | None = None value: float | None = None
[docs] @dataclass class CASMACHSpeedSchedule: CASbelowFL100: float | None = None CASaboveFL100: float | None = None Mach: float | None = None
[docs] @dataclass class Meteo: wS: float = 0.0 # Wind speed [kt], default to 0 deltaTemp: float = 0.0 # Temperature deviation [K], default to 0
[docs] @dataclass class PressureAltitude: initPressureAltitude: float | None = None finalPressureAltitude: float | None = None stepPressureAltitude: float | None = None
[docs] @dataclass class ControlTarget: ROCDtarget: float | None = None slopetarget: float | None = None acctarget: float | None = None ESFtarget: float | None = None
[docs] class TakeOffProcedureType(StrEnum): BADA = "BADA" NADP1 = "NADP1" NADP2 = "NADP2"
[docs] @dataclass class TakeOffProcedureBADA: type: Literal[TakeOffProcedureType.BADA] = TakeOffProcedureType.BADA
[docs] @dataclass class TakeOffProcedureNADP1: NADP1Threshold: float | None = None type: Literal[TakeOffProcedureType.NADP1] = TakeOffProcedureType.NADP1
[docs] @dataclass class TakeOffProcedureNADP2: NADP2Threshold1: float | None = None NADP2Threshold2: float | None = None type: Literal[TakeOffProcedureType.NADP2] = TakeOffProcedureType.NADP2
TakeOffProcedure = ( TakeOffProcedureBADA | TakeOffProcedureNADP1 | TakeOffProcedureNADP2 )
[docs] class DepartureProfileType(StrEnum): constCASbelow100 = "constCASbelow100" calculatedCAS = "calculatedCAS"
[docs] @dataclass class DepartureProfile: departureProfileType: DepartureProfileType | None = None
[docs] class ArrivalProfileType(StrEnum): constCASbelow100 = "constCASbelow100" calculatedCAS = "calculatedCAS" expedite = "expedite"
[docs] @dataclass class ArrivalProfile: arrivalProfileType: ArrivalProfileType | None = None
[docs] class ClimbType(StrEnum): CASMACH = "CASMACH" RATE = "RATE" ACCELERATION = "ACCELERATION"
[docs] class DescentType(StrEnum): CASMACH = "CASMACH" RATE = "RATE" SLOPE = "SLOPE" ACCELERATION = "ACCELERATION" EMERGENCY = "EMERGENCY"
[docs] class CruiseType(StrEnum): CONSTANTSPEED = "CONSTANTSPEED" ACCELERATION = "ACCELERATION"
[docs] class CruiseSpeedType(StrEnum): TAS = "TAS" CAS = "CAS" M = "M" MEC = "MEC" LRC = "LRC" MRC = "MRC" ECON = "ECON"
[docs] class HDescentType(StrEnum): ARPM = "ARPM" RATE = "RATE" SLOPE = "SLOPE" ACCELERATION = "ACCELERATION" EMERGENCY = "EMERGENCY"
[docs] class HClimbType(StrEnum): RATE = "RATE" ARPM = "ARPM" ACCELERATION = "ACCELERATION"
[docs] class HRating(StrEnum): MTKF = "MTKF" MCNT = "MCNT" ARPM = "ARPM"
[docs] class IntegrationType(StrEnum): ALTITUDE = "ALTITUDE" DISTANCE = "DISTANCE" TIME = "TIME"
[docs] @dataclass class HClimbRatingConfiguration: rating: HRating | None = None
[docs] @dataclass class ClimbCASMACHProfileConfiguration: casMachSpeedSchedule: CASMACHSpeedSchedule | None = None takeOffProcedure: TakeOffProcedure | None = None departureProfile: DepartureProfile | None = None reducedPower: bool = False
[docs] @dataclass class DescentCASMACHProfileConfiguration: casMachSpeedSchedule: CASMACHSpeedSchedule | None = None arrivalProfile: ArrivalProfile | None = None