code: def line_received(self, line):
          
          self._received_lines += 1
          self.loop.create_task(self._inform_watchdog())
          pattern = r'^(T|B|R|A|E)([0-9A-F]{8})$'
          msg = re.match(pattern, line)
          if msg:
              src, mtype, mid, msb, lsb = self._dissect_msg(msg)
              if lsb is not None:
                  self._msgq.put_nowait((src, mtype, mid, msb, lsb))
          elif re.match(r'^[0-9A-F]{1,8}$', line) and self._received_lines == 1:
              # Partial message on fresh connection. Ignore.
              self._received_lines = 0
              pass
          else:
              try:
                  self._cmdq.put_nowait(line)
              except QueueFull:
                  _LOGGER.error('Queue full, discarded message: %s', line)
docs: Gets called by data_received() when a complete line is
          received.
          Inspect the received line and process or queue accordingly.