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)
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)
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
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
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)