Exemple #1
0
    def accept(self):
        """
        DOCUMENT ME!
        """
        # ponto da trajetória existe ?
        if self.__brk_trj is not None:
            # salva edição do ponto da trajetória
            ldct_brk_trj = self.__gui_data2dict()

            # coloca no dicionário
            ldct_brk_trj["nBrk"] = self.__brk_trj.i_brk_id

            # carrega o dicionário
            self.__brk_trj.load_brk(ldct_brk_trj)

        # senão, o ponto da trajetória não existe
        else:
            # cria um novo ponto da trajetória
            self.__brk_trj = bptrj.CBrkNEW(self.__model, self, self.__gui_data2dict())
            assert self.__brk_trj

        # faz o "accept"
        QtGui.QDialog.accept(self)
Exemple #2
0
    def make_trj(self, fdct_data):
        """
        carrega os dados de procedimento de trajetória a partir de um dicionário (formato 0001)

        @param fdct_data: dicionário com os dados do procedimento de trajetória
        """
        # identificação da trajetória
        if "nTrj" in fdct_data:
            self.i_prc_id = int(fdct_data["nTrj"])
            self.s_prc_desc = "Trajetória {:04d}".format(fdct_data["nTrj"])

        # descrição
        if "descricao" in fdct_data:
            self.s_prc_desc = fdct_data["descricao"]

        # star
        if "star" in fdct_data:
            self._v_trj_star = ('S' == fdct_data["star"].strip().upper())

        # proa
        if "proa" in fdct_data:
            self._f_trj_proa = float(fdct_data["proa"].strip().upper())

        # breakpoints da trajetória
        if "breakpoints" in fdct_data:
            # para todos breakpoints da trajetória...
            for l_brk in sorted(fdct_data["breakpoints"],
                                key=lambda l_k: l_k["nBrk"]):
                # cria o breakpoint
                lo_brk = brktrj.CBrkNEW(self._model, self, l_brk)
                assert lo_brk

                # coloca o breakpoint na lista
                self._lst_trj_brk.append(lo_brk)

        # (bool)
        self.v_prc_ok = True
Exemple #3
0
    def __make_apx(self, fdct_data):
        """
        carrega os dados de procedimento de aproximação a partir de um dicionário (formato 0001)

        @param fdct_data: dicionário com os dados do procedimento de aproximação
        """
        # identificação do procedimento de aproximação
        if "nApx" in fdct_data:
            self.i_prc_id = int(fdct_data["nApx"])
            self.s_prc_desc = "Aproximação {:03d}".format(fdct_data["nApx"])

        # descrição do procedimento de aproximação
        if "descricao" in fdct_data:
            self.s_prc_desc = fdct_data["descricao"].strip()

        # aeródromo da aproximação
        if "aerodromo" in fdct_data:
            # obtém o dicionário de aeródromos
            ldct_aer = self.__model.airspace.dct_aer

            # obtém o indicativo do aeródromo
            ls_aer_indc = fdct_data["aerodromo"]

            # obtém o aeródromo de aproximação
            self.__ptr_apx_aer = ldct_aer.get(ls_aer_indc, None)

            # não existe o aeródromo no dicionário ?
            if self.__ptr_apx_aer is None:
                # logger
                l_log = logging.getLogger("CSubNEW::__make_apx")
                l_log.setLevel(logging.WARNING)
                l_log.warning(
                    u"<E01: aeródromo [{}] não existe.".format(ls_aer_indc))

        # pista de aproximação
        if "pista" in fdct_data:
            # existe o aeródromo ?
            if self.__ptr_apx_aer is not None:
                # obtém o dicionário de pistas
                ldct_pis = self.__ptr_apx_aer.dct_aer_pistas

                # obtém o indicativo do aeródromo
                ls_pst_indc = fdct_data["pista"]

                # obtém o pista de subida
                self.__ptr_apx_pis = ldct_pis.get(ls_pst_indc, None)

                # não existe a pista no dicionário ?
                if self.__ptr_apx_pis is None:
                    # logger
                    l_log = logging.getLogger("CApxNEW::__make_apx")
                    l_log.setLevel(logging.WARNING)
                    l_log.warning(
                        u"<E02: aeródromo [{}]/pista [{}] não existe.".format(
                            self.__ptr_apx_aer.s_aer_indc, ls_pst_indc))

        # flag ILS
        if "ils" in fdct_data:
            self.__v_apx_ils = ('S' == fdct_data["ils"].strip().upper())

        # flag aproximação perdida
        if "aproxperd" in fdct_data:
            self.__v_apx_ape = ('S' == fdct_data["aproxperd"].strip().upper())

        # número da espera
        if "espera" in fdct_data:
            self.__ptr_apx_prc_esp = int(fdct_data["espera"])

        # breakpoints da aproximação
        if "breakpoints" in fdct_data:
            # para todos breakpoints da aproximação...
            for l_brk in sorted(fdct_data["breakpoints"],
                                key=lambda l_k: l_k["nBrk"]):
                # cria o breakpoints
                lo_brk = brknew.CBrkNEW(self.__model, self, l_brk)
                assert lo_brk

                # coloca o breakpoint na lista
                self.__lst_apx_brk.append(lo_brk)

        # (bool)
        self.v_prc_ok = True
Exemple #4
0
    def _make_sub(self, fdct_data):
        """
        carrega os dados de procedimento de subida a partir de um dicionário (formato 0001)

        @param fdct_data: dicionário com os dados do procedimento de subida
        """
        # identificação do procedimento de subida
        if "nSub" in fdct_data:
            self.i_prc_id = int(fdct_data["nSub"])
            self.s_prc_desc = "Subida {:03d}".format(fdct_data["nSub"])

        # descrição
        if "descricao" in fdct_data:
            self.s_prc_desc = fdct_data["descricao"]

        # aeródromo da subida
        if "aerodromo" in fdct_data:
            # obtém o dicionário de aeródromos
            ldct_aer = self._model.airspace.dct_aer

            # obtém o indicativo do aeródromo
            ls_aer_id = fdct_data["aerodromo"]

            # obtém o aeródromo de subida
            self._ptr_sub_aer = ldct_aer.get(ls_aer_id, None)

            # não existe o aeródromo no dicionário ?
            if self._ptr_sub_aer is None:
                # logger
                l_log = logging.getLogger("CSubNEW::_make_sub")
                l_log.setLevel(logging.WARNING)
                l_log.warning(
                    "<E01: aerodromo [{}] não existe no dicionário.".format(
                        ls_aer_id))

        # pista de subida
        if "pista" in fdct_data:
            # existe o aeródromo ?
            if self._ptr_sub_aer is not None:
                # obtém o dicionário de pistas
                ldct_pis = self._ptr_sub_aer.dct_aer_pistas

                # obtém o indicativo do aeródromo
                ls_pis_id = fdct_data["pista"]

                # obtém o pista de subida
                self._ptr_sub_pis = ldct_pis.get(ls_pis_id, None)

                # não existe a pista no dicionário ?
                if self._ptr_sub_pis is None:
                    # logger
                    l_log = logging.getLogger("CSubNEW::_make_sub")
                    l_log.setLevel(logging.WARNING)
                    l_log.warning(
                        "<E02: pista [{}] não existe no dicionário.".format(
                            ls_pis_id))

        # break-points da subida
        if "breakpoints" in fdct_data:
            # para todos break-points da subida...
            for l_brk in sorted(fdct_data["breakpoints"],
                                key=lambda l_k: l_k["nBrk"]):
                # cria o break-points
                lo_brk = brknew.CBrkNEW(self._model, self, l_brk)
                assert lo_brk

                # coloca o break-point na lista
                self._lst_sub_brk.append(lo_brk)

        # (bool)
        self.v_prc_ok = True