def smethod_0(binaryReader_0, byte_0): if not isinstance(binaryReader_0, QDataStream): return position = Position() fato = Fato() if (byte_0 != 1): raise Messages.ERR_INVALID_FILE_FORMAT # throw new Exception(Messages.ERR_INVALID_FILE_FORMAT) fato.name = binaryReader_0.readQString() fato.des1 = binaryReader_0.readQString() fato.des2 = binaryReader_0.readQString() fato.safetyAreaWidth = binaryReader_0.readDouble() fato.safetyAreaStart = binaryReader_0.readDouble() fato.safetyAreaEnd = binaryReader_0.readDouble() num = binaryReader_0.readInt() for i in range(num): positionType = binaryReader_0.readInt() flag = binaryReader_0.readBool() if (binaryReader_0.readBool()): position = Position( positionType, None, None, None, Altitude(binaryReader_0.readDouble()), Degrees.smethod_1(binaryReader_0.readDouble()), Degrees.smethod_5(binaryReader_0.readDouble())) if ( not flag) else Position( positionType, None, binaryReader_0.readDouble(), binaryReader_0.readDouble(), Altitude(binaryReader_0.readDouble())) if (i >= 3): fato.Add(position) else: fato[i] = position return fato
def calcRadiusArea3(self): try: pdg = 0.0 try: pdg = float(self.parametersPanel.txtPdg.text()) except: pass dist1 = math.fabs((Altitude( float(self.parametersPanel.txtTurningAltitude.text()), AltitudeUnits.FT).Metres - Altitude( float(self.parametersPanel.txtNextSegmentAltitude.text()), AltitudeUnits.FT).Metres) / (3.3 / 100.0)) dist2 = math.fabs(( Altitude(float(self.parametersPanel.txtTurningAltitude.text()), AltitudeUnits.FT).Metres - float(self.parametersPanel.pnlDer.txtAltitudeM.text()) - 5.0) / (pdg / 100.0)) # print dist1, dist2 self.parametersPanel.txtRadius.setText(str(round(dist1 + dist2, 4))) self.parametersPanel.txtRadiusFt.setText( str(round(Unit.ConvertMeterToNM(dist1 + dist2), 4))) except: pass
def method_2(self, point3d_0): if (not self.Assigned): return Altitude(point3d_0.z()) if self.eqAltitude != None: return Altitude(self.eqAltitude) position = self.Obstacle.position return Altitude(position.z() + self.Obstacle.trees)
def autoCalcFinishMagVar(self): try: if self.parametersPanel.chbAutoFinishMagVar.Checked: finishPt = None finishLat = None finishLon = None degree3 = None num = None result, degree, degree1 = self.parametersPanel.pnlStartPosP.method_3( ) if (result): value = float(self.parametersPanel.txtForwardTP.Value) value1 = float(self.parametersPanel.txtForwardTP.Value) distance = self.parametersPanel.txtDistanceP.Value result1, degree2, degree3, num = Geo.smethod_6( self.parametersPanel.cmbCalculationTypeP.SelectedItem, degree, degree1, value, distance) if (result1): finishPt = Point3D(degree3, degree2) finishLat = degree2 finishLon = degree3 if finishPt != None and self.model != None and self.date != None: # result, degree, degree1 = self.parametersPanel.pnlStartPosP.method_3(); result2, degree2 = Geo.smethod_7(finishLat, finishLon, Altitude(0), self.model, self.date) if (result2): degree2 = round(degree2, 2) self.parametersPanel.pnlVarFinishP.Value = degree2 except: pass
def btnEvaluate_Click(self): point3dCollection = None point3dCollection1 = None polylineArea = None polylineArea1 = None polylineArea2 = None primaryObstacleArea = None # if (self.parametersPanel.cmbSelectionMode.currentText() == "Manual" and not self.pnlSelectionMode.method_0()): # return; result, point3dCollection, point3dCollection1, polylineArea, polylineArea1, polylineArea2 = self.method_34( ) if (not result): return point3d = self.parametersPanel.pnlDer.Point3d num = MathHelper.getBearing(self.parametersPanel.pnlRwyStart.Point3d, point3d) percent = float(self.parametersPanel.txtMoc.text()) percent1 = float(self.parametersPanel.txtPdg.text()) ObstacleTable.MocMultiplier = self.parametersPanel.mocSpinBox.value() self.obstaclesModel = DepartureOmnidirectionalObstacles( point3d, num, Altitude(float(self.parametersPanel.txtTurningAltitude.text()), AltitudeUnits.FT), percent, percent1, self.parametersPanel.chbCatH.isChecked(), point3dCollection, point3dCollection1, polylineArea1, polylineArea2, self.manualPolygon) # return FlightPlanBaseDlg.btnEvaluate_Click(self)
def smethod_2(altitude_0, altitude_1, altitude_2, double_0): num = 0.0065 metres = 15 - num * altitude_2.Metres double0 = -(metres - double_0) return Altitude( -double0 / -num * math.log(1 - num * altitude_0.Metres / (288.15 - num * altitude_1.Metres)), AltitudeUnits.M)
def txtAltitudeChanged(self): try: self.method_29() self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) except: pass
def btnPDTCheck_Click(self): pdtResultStr = MathHelper.pdtCheckResultToString( float(self.parametersPanel.txtIsa.text()), Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT), float(self.parametersPanel.txtIas.text()), float(self.parametersPanel.txtTime.text())) QMessageBox.warning(self, "PDT Check", pdtResultStr)
def initParametersPan(self): ui = Ui_IasToTas() self.parametersPanel = ui FlightPlanBaseSimpleDlg.initParametersPan(self) self.parametersPanel.pnlWind = WindPanel( self.parametersPanel.gbNonStandard) self.parametersPanel.pnlWind.lblIA.setMinimumSize(180, 0) self.parametersPanel.pnlWind.speedBox.setEnabled(False) self.parametersPanel.vLayoutNonStandard.insertWidget( 0, self.parametersPanel.pnlWind) self.parametersPanel.pnlWind.setAltitude( Altitude(float(self.parametersPanel.txtAltitude.text()), AltitudeUnits.FT)) self.parametersPanel.txtAltitude.textChanged.connect( self.txtAltitudeChanged) self.parametersPanel.cmbType.addItems([ IasTasSegmentType.Departure, IasTasSegmentType.Enroute, IasTasSegmentType.Holding, IasTasSegmentType.InitialRR, IasTasSegmentType.InitialDR, IasTasSegmentType.IafIfFaf, IasTasSegmentType.MissedApproach ]) self.parametersPanel.cmbType.currentIndexChanged.connect( self.method_29) self.parametersPanel.txtIAS.textChanged.connect(self.method_29) self.parametersPanel.txtAltitude.textChanged.connect(self.method_29) self.parametersPanel.txtTime.textChanged.connect(self.method_29) self.parametersPanel.txtISA.textChanged.connect(self.method_29) self.parametersPanel.btnEST.clicked.connect(self.btnESTClicked) self.parametersPanel.btnREA.clicked.connect(self.btnREAClicked) self.parametersPanel.btnC.clicked.connect(self.btnCClicked) self.parametersPanel.btnD.clicked.connect(self.btnDClicked) self.parametersPanel.btnX.clicked.connect(self.btnXClicked) self.parametersPanel.btnNonStd.clicked.connect(self.btnNonStdClicked) self.parametersPanel.txtAltitudeM.textChanged.connect( self.txtAltitudeMChanged) self.parametersPanel.txtAltitude.textChanged.connect( self.txtAltitudeFtChanged) self.flag = 0 if self.flag == 0: self.flag = 2 if self.flag == 1: self.flag = 0 if self.flag == 2: try: self.parametersPanel.txtAltitudeM.setText( str( Unit.ConvertFeetToMeter( float(self.parametersPanel.txtAltitude.text())))) except: self.parametersPanel.txtAltitudeM.setText("0.0") self.method_29()
def method_29(self): self.dmeTolerance = Distance.NaN self.slantTolerance = Distance.NaN self.pilotDistance = Distance.NaN self.groundDistance = Distance.NaN if self.parametersPanel.txtDistance.text() == "" or self.parametersPanel.txtAcAltitude.text() == "" or self.parametersPanel.txtDmeAltitude.text() == "": self.parametersPanel.gbResult.setVisible(False) else: nauticalMiles = float(self.parametersPanel.txtDistance.text()) metres = Altitude(float(self.parametersPanel.txtAcAltitude.text()), AltitudeUnits.FT).Metres value = Altitude(float(self.parametersPanel.txtDmeAltitude.text())) num = Unit.ConvertMeterToNM(metres - value.Metres) if (nauticalMiles <= 0): self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE_OVERHEAD) self.dmeTolerance = Distance(460) elif (num <= nauticalMiles): if (self.parametersPanel.cmbCalculationType.currentIndex() != 0): self.groundDistance = Distance(math.sqrt(nauticalMiles * nauticalMiles - num * num), DistanceUnits.NM) self.pilotDistance = Distance(nauticalMiles, DistanceUnits.NM) self.slantTolerance = Distance(self.pilotDistance.NauticalMiles - self.groundDistance.NauticalMiles, DistanceUnits.NM) self.parametersPanel.lblResultDistance.setText(Captions.GROUND_DISTANCE) self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE) self.parametersPanel.txtResultDistance.setText(str(round(self.groundDistance.NauticalMiles,2)) +" nm" + " / " + str(round(self.groundDistance.Metres,2)) +" m") else: self.pilotDistance = Distance(math.sqrt(nauticalMiles * nauticalMiles + num * num), DistanceUnits.NM) self.groundDistance = Distance(nauticalMiles, DistanceUnits.NM) self.slantTolerance = Distance(nauticalMiles - math.sqrt(nauticalMiles * nauticalMiles - num * num), DistanceUnits.NM) self.parametersPanel.lblResultDistance.setText(Captions.PILOT_READOUT) self.parametersPanel.label_72.setText(Captions.DME_TOLERANCE) self.parametersPanel.txtResultDistance.setText(str(round(self.pilotDistance.NauticalMiles, 2)) +" nm" + " / " + str(round(self.pilotDistance.Metres, 2)) +" m") self.dmeTolerance = Distance(Unit.ConvertNMToMeter(self.pilotDistance.NauticalMiles * 0.0125) + 460) else: flag = False if (self.dmeTolerance.IsValid()): self.parametersPanel.txtResultDmeTol.setText(str(round(self.dmeTolerance.NauticalMiles, 2)) +" nm" + " / " + str(round(self.dmeTolerance.Metres, 2)) +" m") if (self.slantTolerance.IsValid()): self.parametersPanel.txtResultSlantTol.setText(str(round(self.slantTolerance.NauticalMiles, 2)) +"nm" + " / " + str(round(self.slantTolerance.Metres, 2)) +" m") self.parametersPanel.frame_62.setVisible(False if not self.pilotDistance.IsValid() else self.groundDistance.IsValid()) self.parametersPanel.frame_TakeOffSurfaceTrack_2.setVisible(self.dmeTolerance.IsValid()) self.parametersPanel.frame_TakeOffSurfaceTrack_3.setVisible(self.slantTolerance.IsValid()) # self.txtResult.Visible = !flag self.parametersPanel.gbResult.setVisible(True)
def ToString(self, format_0 = None): stringBuilder = StringBuilder() if format_0 == None: format_0 = "" if not isinstance(format_0, QString): format_0 = String.Str2QString(format_0) # if (provider == null) # { # provider = CultureInfo.CurrentCulture # } if (not String.IsNullOrEmpty(format_0)): format_0 = format_0.toUpper() if (format_0.contains("QA:")): format_0 = format_0.replace("QA:", "") num = 0 try: num = int(format_0) except: num = 0 stringBuilder = StringBuilder() str0 = "" for i in range(num): str0 = QString(String.Concat([str0, " "])) if (not String.IsNullOrEmpty(self.id)): stringBuilder.AppendLine("{0}{1}\t{2}".format(str0, Captions.ID, self.id)) if (not self.xy): lATITUDE = Captions.LATITUDE degree = Degrees.smethod_1(self.xlat) stringBuilder.AppendLine("{0}{1}\t{2}".format(str0, lATITUDE, degree.method_2())) lONGITUDE = Captions.LONGITUDE degree1 = Degrees.smethod_5(self.ylon) stringBuilder.Append("{0}{1}\t{2}".format(str0, lONGITUDE, degree1.method_2())) else: stringBuilder.AppendLine("{0}{1}\t{2}".format(str0, Captions.X, str(self.xlat)))#.ToString(Formats.GridXYFormat, provider))) stringBuilder.Append("{0}{1}\t{2}".format(str0, Captions.Y, str(self.ylon)))#.ToString(Formats.GridXYFormat, provider))) if (not self.altitude == None): altitude = Altitude(self.altitude) stringBuilder.AppendLine("") aLTITUDE = [str0, Captions.ALTITUDE, altitude.ToString(":m"), altitude.ToString(":ft")] stringBuilder.Append("{0}{1}\t{2} ({3})".format(str0, Captions.ALTITUDE, altitude.ToString(":m"), altitude.ToString(":ft"))) return stringBuilder.ToString() stringBuilder = StringBuilder() if (not String.IsNullOrEmpty(self.id)): stringBuilder.Append(self.id + ", ") if (not self.xy): degree2 = Degrees.smethod_1(self.xlat) str1 = degree2.method_2() degree3 = Degrees.smethod_5(self.ylon) stringBuilder.Append(str1 + ", " + degree3.method_2()) else: stringBuilder.Append(str(self.xlat) + ", " + str(self.ylon)) if (not self.altitude == None): altitude1 = Altitude(self.altitude) stringBuilder.Append(", {0} ({1})", ", " + altitude1.ToString(":m") + " (" + altitude1.ToString(":ft") + ")") return stringBuilder.ToString()
def method_30_BD(self): degree = None degree1 = None degree2 = None if (self.parametersPanel.pnlFinishPosBD.IsValid()): result, degree, degree1 = self.parametersPanel.pnlFinishPosBD.method_3( ) result, degree2 = Geo.smethod_7(degree, degree1, Altitude(0), self.modelBD, self.dateBD) if (result): degree2 = round(degree2, 2) self.parametersPanel.pnlVarFinishBD.Value = degree2
def __init__(self, polylineArea_0, altitude_0, altitude_1): polylineAreaList = [] polylineAreaList = HoldingTemplateBase.smethod_1(polylineArea_0, False) polylineAreaList.append(polylineArea_0) self.areas = [] count = len(polylineAreaList) num = 0.1 * count metres = altitude_1.Metres for i in range(count): if (i > 0): metres = num * altitude_1.Metres num = num - 0.1 self.areas.append( HoldingOverheadArea(polylineAreaList[i], Altitude(metres))) self.selectionArea = self.areas[len(self.areas) - 1].Area self.altitude = altitude_0.Metres