docs: def _assemble_buffer(self):
          """Split up received data from device into individual commands.
  
          Data sent by the device is a sequence of datagrams separated by
          semicolons.  It's common to receive a burst of them all in one
          submission when there's a lot of device activity.  This function
          disassembles the chain of datagrams into individual messages which
          are then passed on for interpretation.
          """
          self.transport.pause_reading()
  
          for message in self.buffer.split(';'):
              if message != '':
                  self.log.debug('assembled message '+message)
                  self._parse_message(message)
  
          self.buffer = ""
  
          self.transport.resume_reading()
          return