Beispiel #1
0
 def _bulletinManager__generateBulletin(self, rawBulletin):
     __doc__ = bulletinManager.bulletinManager._bulletinManager__generateBulletin.__doc__ + \
     """ Overriding here to pass correct parameter types.
     """
     return bulletinWmo.bulletinWmo(rawBulletin, self.logger,
                                    self.lineSeparator,
                                    self.finalLineSeparator, self.wmo_id)
Beispiel #2
0
    def write_data(self,data):
        unBulletinWmo = bulletinWmo.bulletinWmo(data,self.logger,finalLineSeparator='\r\r\n')

        # C'est dans l'appel a sendBulletin que l'on verifie si la connexion doit etre reinitialisee ou non
        succes, nbBytesSent = self.unSocketManagerWmo.sendBulletin(unBulletinWmo)

        #si le bulletin a ete envoye correctement, le fichier est efface
        if succes:
           self.totBytes += nbBytesSent

        return (succes, nbBytesSent)
Beispiel #3
0
    def getbulletin(self):
        import bulletinWmo

        # msg len + msg type is 10 char. that doesn't count in msglen
        # which is from SOH to ETX

        pos = self.pos

        msglen = int(self.data[pos:pos + 8])
        if self.data[pos + 8:pos + 10] != "00":
            self.logger.warning(" message type not 00 (%s)" %
                                self.data[pos + 8:pos + 10])

        # get current message

        pos += 10
        eom = pos + msglen
        msg = self.data[pos:eom]
        pos += msglen
        self.pos = pos
        #print "---------- msg -------- "
        #print msg

        # ok checking that bulletin starts with magic_begin and magic_end

        if msg[0:3] != self.magic_begin[0:3]:
            self.logger.warning(" did not find SOH at pos %d" % msg[0:3])

        if msg[-4:-1] != self.magic_end[0:3]:
            self.logger.warning(" did not find ETX at end of msg %s" %
                                msg[-4:-1])

        # keep/skip the bulletin counter  which is 3 or 5 characters in length
        for beg in range(4, 9):
            if not msg[beg] in "0123456789": break
        self.counter = msg[4:beg + 1]

        if msg[beg + 1:beg + 4] != '\r\r\n':
            self.logger.warning(" did not find cr cr lf after counter")
        beg = beg + 4

        # get wmo bulletin out of message
        bul = msg[beg:-4]

        # exactly like WMO bulletins
        bulltin = bulletinWmo.bulletinWmo(bul,
                                          self.logger,
                                          finalLineSeparator='\r\r\n')
        bulltin.doSpecificProcessing()
        fdata = bulltin.getBulletin(useFinalLineSeparator=False)

        return fdata
Beispiel #4
0
      def getbulletin(self  ):
          import bulletinWmo

          # msg len + msg type is 10 char. that doesn't count in msglen
          # which is from SOH to ETX

          pos = self.pos

          msglen = int(self.data[pos:pos+8])
          if self.data[pos+8:pos+10] != "00" :
             self.logger.warning(" message type not 00 (%s)" % self.data[pos+8:pos+10])

          # get current message

          pos += 10
          eom = pos + msglen
          msg  = self.data[pos:eom]
          pos  += msglen
          self.pos = pos
          #print "---------- msg -------- "
          #print msg

          # ok checking that bulletin starts with magic_begin and magic_end

          if msg[0:3] != self.magic_begin[0:3] :
             self.logger.warning(" did not find SOH at pos %d" % msg[0:3])

          if msg[-4:-1] != self.magic_end[0:3] :
             self.logger.warning(" did not find ETX at end of msg %s" % msg[-4:-1])

          # keep/skip the bulletin counter  which is 3 or 5 characters in length
          for beg in range(4,9) :
              if not msg[beg] in "0123456789" : break
          self.counter = msg[4:beg+1]

          if msg[beg+1:beg+4] != '\r\r\n' :
             self.logger.warning(" did not find cr cr lf after counter")
          beg = beg + 4

          # get wmo bulletin out of message
          bul = msg[beg:-4]

          # exactly like WMO bulletins
          bulltin  = bulletinWmo.bulletinWmo(bul,self.logger,finalLineSeparator='\r\r\n')
          bulltin.doSpecificProcessing()
          fdata = bulltin.getBulletin(useFinalLineSeparator=False)

          return fdata
Beispiel #5
0
 def _bulletinManager__generateBulletin(self,rawBulletin):
     __doc__ = bulletinManager.bulletinManager._bulletinManager__generateBulletin.__doc__ + \
     """ Overriding here to pass correct parameter types.
     """
     return bulletinWmo.bulletinWmo(rawBulletin,self.logger,self.lineSeparator,self.finalLineSeparator,self.wmo_id)