当前位置: 首页>>代码示例>>Python>>正文


Python MessageParser.getHeader方法代码示例

本文整理汇总了Python中MessageParser.MessageParser.getHeader方法的典型用法代码示例。如果您正苦于以下问题:Python MessageParser.getHeader方法的具体用法?Python MessageParser.getHeader怎么用?Python MessageParser.getHeader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MessageParser.MessageParser的用法示例。


在下文中一共展示了MessageParser.getHeader方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: _writeMessageToSocket

# 需要导入模块: from MessageParser import MessageParser [as 别名]
# 或者: from MessageParser.MessageParser import getHeader [as 别名]
    def _writeMessageToSocket(self, data, rewrite=False, nextPart=0, destAddresses=None):

        def getWord(type):
            """ Used to create logging text only """
            if type:
                return '(type: %s)' % type
            else:
                return '(type: UNKNOWN)'

            """
            if type == 'SVC':
                return '(type: SVC)'
            elif type == 'AFTN':
                return '(type: AFTN)'
            elif type == 'RF':
                return '(type: RF)'
            elif type == 'RQ':
                return '(type: RQ)'
            elif type == 'RQM_OK':
                return '(type: RQM_OK)'
            elif type == 'RQM_UNK':
                return '(type: RQM_UNK)'
            elif type == 'RQF_OK':
                return '(type: RQF_OK)'
            elif type == 'RQF_UNK':
                return '(type: RQF_UNK)'
            else:
                return '(type: UNKNOWN)'
            """

        mm = self.mm
        if len(data) >= 1:
            if not rewrite:
                self.logger.info("%d new bulletin will be sent" % len(data))
            else:
                self.logger.info("%d new bulletin will be resent (ack not received / reconnexion)" % len(data))

            for index in range(len(data)):
                if nextPart == 0:
                    # We will have access to the first part of the message here (big or not)
                    mp = MessageParser(data[index], mm, self.logger, True)
                    mm.header, mm.type = mp.getHeader(), mp.getType()
                    self.logger.debug("Header: %s, Type: %s" % (mm.header, mm.type))
                if mm.header== None and mm.type==None:
                    self.logger.info(data[index])
                    self.logger.error("Header %s is not in %s" % (mm.header, mm.routingTable))
                    if self.slow:
                        time.sleep(10)
                    os.unlink(self.dataFromFiles[0][1])
                    self.logger.info("%s has been erased", os.path.basename(self.dataFromFiles[0][1]))
                    del self.dataFromFiles[0]
                    mm.clearPartsToSend()
                    continue

                elif mm.header == None and mm.type=='SVC':
                    #FIXME: Is it possible to rewrite Service Message?
                    # If so, the CSN must not change!
                    mm.setFilingTime()
                    mm.nextCSN()
                    messageAFTN = MessageAFTN(self.logger, data[index], mm.stationID, mm.address, MessageAFTN.PRIORITIES[2],
                                              destAddresses or [mm.otherAddress], mm.CSN, mm.filingTime, mm.dateTime)
                    #self.logger.debug('\n' + messageAFTN.message)
                    #messageAFTN.setLogger(None)
                    #mm.archiveObject(self.archivePath + mm.CSN, messageAFTN)

                elif mm.header == None and mm.type in ['RQ', 'RF']:
                    # We will never have to sent such a message, it is only
                    # there for tests purposes
                    mm.setFilingTime()
                    mm.nextCSN()
                    messageAFTN = MessageAFTN(self.logger, data[index], mm.stationID, mm.address, MessageAFTN.PRIORITIES[2],
                                              destAddresses or [mm.otherAddress], mm.CSN, mm.filingTime, mm.dateTime)
                    #self.logger.debug('\n' + messageAFTN.message)
                    #messageAFTN.setLogger(None)
                    #mm.archiveObject(self.archivePath + mm.CSN, messageAFTN)

                elif mm.header == None and mm.type in MessageParser.REPLY_TYPES:
                    mm.setFilingTime()
                    mm.nextCSN()
                    messageAFTN = MessageAFTN(self.logger, data[index], mm.stationID, mm.address, MessageAFTN.PRIORITIES[3],
                                              destAddresses, mm.CSN, mm.filingTime, mm.dateTime)
                    #self.logger.debug('\n' + messageAFTN.message)
                    #messageAFTN.setLogger(None)
                    #mm.archiveObject(self.archivePath + mm.CSN, messageAFTN)

                elif mm.type == 'PRI_DESTADD_TEXT':
                    mm.destAddress = mp.destAddress
                    if mm.destAddress:
                        mm.priority = mp.priority
                        mm.setFilingTime()
                        mm.nextCSN()
                        messageAFTN = MessageAFTN(self.logger, mp.text, mm.stationID, mm.address, mm.priority, mm.destAddress, mm.CSN, mm.filingTime, mm.dateTime)
                    else:
                        if mm.isFromDisk():
                            try:
                                self.logger.warning("%s has been erased (no valid destination address)", os.path.basename(self.dataFromFiles[0][1]))
                                os.unlink(self.dataFromFiles[0][1])
                            except OSError, e:
                                (type, value, tb) = sys.exc_info()
                                self.logger.error("Unable to unlink %s ! Type: %s, Value: %s" % (self.dataFromFiles[0][1], type, value))
#.........这里部分代码省略.........
开发者ID:hawkeye438,项目名称:metpx,代码行数:103,代码来源:TransceiverAFTN.py

示例2: readFromSocket

# 需要导入模块: from MessageParser import MessageParser [as 别名]
# 或者: from MessageParser.MessageParser import getHeader [as 别名]
    def readFromSocket(self):
        replyAFTN = ''
        mm = self.mm
        
        buf = self.socket.recv(32768)

        if len(buf): 
            self.logger.debug('Raw Buffer: %s' % repr(buf))
            message, type = mm.parseReadBuffer(buf) # Only to find if it is an AFTN (SVC included) or Ack message
            while message:
                if type == 'AFTN':
                    ##############################################################################################
                    # An AFTN Message has been read on the socket. It can be a SVC Message or a 
                    # Standard Message.
                    ##############################################################################################
                    self.logger.debug("AFTN Message: %s" % repr(message))
                    mm.messageIn = MessageAFTN(self.logger)
                    mm.messageIn.setMessage(message)
                    if not mm.messageIn.messageToValues():
                        # Here we have a problem because our parser is unable to parse the message. We print the message,
                        # get the next message if present and quit the method (no ack sent, no tid verification)
                        self.logger.error("Method MessageAFTN.messageToValues() has not worked correctly (returned 0)")
                        self.logger.error(mm.messageIn.textLines)
                        message, type = mm.parseReadBuffer("") # Only to find if it is an AFTN (SVC included) or Ack message
                        continue

                    self.logger.debug(mm.messageIn.textLines)

                    self.logger.debug('Message as it has been received:')
                    self.logger.debug('\n' + mm.messageIn.message)

                    status = mm.isItPart(mm.messageIn.textLines)

                    # Not part of a big message, possibly a SVC message
                    if status == 0:
                        suffix = 'NOT_SVC_NOR_AFTN'
                        mp = MessageParser(mm.messageIn.textLines)
                        textType = mp.getType()
                        if textType == "SVC": 
                            ##############################################################################################
                            # A Service  Message has been read on the socket. 
                            ##############################################################################################
                            suffix = 'SVC'
                            self.logger.info("SVC Message Received(%s): %s (%s)" % (mm.messageIn.getTransmitID(), str(mm.messageIn.getTextLines()), MessageParser.names.get(mp.serviceType,
                                              "The service type of this message is unknown. Contact NavCanada")))

                            #if mp.serviceType in [8, 9]:
                            #    self.logger.info("*********************** SERVICE MESSAGE *****************************")
                            #    self.logger.info(str(mm.messageIn.getTextLines()))
                            #    self.logger.info("********************* END SERVICE MESSAGE ***************************")

                        elif textType == "AFTN":
                            suffix = ''
                            if mp.getHeader() in ['SI', 'SM']:
                                # Only one message will be in messages
                                messages = mm.completeHeader(mm.messageIn)

                            elif mp.getHeader(): 
                                # Only one message will be in messages
                                messages = ['\n'.join(mm.messageIn.textLines) + '\n'] 
                            else:
                                # Create headers before ingesting
                                messages = mm.addHeaderToMessage(mm.messageIn)

                            # Ingest in met px
                            for m in messages:
                                mm.ingest(m)

                        elif textType in ['RQ', 'RF']:
                            suffix = textType
                            # request for amis or metser
                            from RequestReplyAFTN import RequestReplyAFTN
                            import dateLib
                            date = dateLib.getYYGGgg()
                            if textType == 'RQ': # amis
                                addOn = 'AACN02 ANIK %s\nATTN %s\n\n' % (date, mm.messageIn.originatorAddress)
                                replyAFTN = 'RQM '
                            elif textType == 'RF': # metser
                                addOn = 'AACN44 CWAO %s\nATTN %s\n\n' % (date, mm.messageIn.originatorAddress)
                                replyAFTN = 'RQF '

                            self.logger.info('AFTN Request Received: Type = %s, Value = %s' % (textType, mp.request))

                            # We want to put the answer on amis or metser.
                            try:
                                rr = RequestReplyAFTN(mp.request, addOn, mp.sendOn, self.logger)
                            except:
                                (type, value, tb) = sys.exc_info()
                                self.logger.error("In RequestReplyAFTN: Type = %s, Value = %s" % (type, value))

                            if rr.bulletin:
                                self.logger.info('Reply is not empty, we will put bulletin in the queue of receiver %s and send an OK message' % rr.receiverName)
                                # bulletin is not empty, put it in queue and create an "OK" message
                                rr.putBulletinInQueue()
                                replyAFTN += 'OK'
                            else:
                                self.logger.info('Request is empty, we will send an UNK message')
                                # bulletin is empty, create an "UNK" message
                                replyAFTN += 'UNK'

#.........这里部分代码省略.........
开发者ID:hawkeye438,项目名称:metpx,代码行数:103,代码来源:TransceiverAFTN.py


注:本文中的MessageParser.MessageParser.getHeader方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。