code: def read_messages(self) -> str:
          
          if self.backend == Backends.grc:
              errors = self.__dev.read_errors()
  
              if "FATAL: " in errors:
                  self.fatal_error_occurred.emit(errors[errors.index("FATAL: "):])
  
              return errors
          elif self.backend == Backends.native:
              messages = "\n".join(self.__dev.device_messages)
              self.__dev.device_messages.clear()
  
              if messages and not messages.endswith("\n"):
                  messages += "\n"
  
              if "successfully started" in messages:
                  self.ready_for_action.emit()
              elif "failed to start" in messages:
                  self.fatal_error_occurred.emit(messages[messages.index("failed to start"):])
  
              return messages
          elif self.backend == Backends.network:
              return ""
          else:
              raise ValueError("Unsupported Backend")
docs: returns a string of new device messages separated by newlines
  
          :return: