From 0719a1f44093210181d8db6d25b51ec63e93883b Mon Sep 17 00:00:00 2001 From: Eric Pedley Date: Mon, 24 Apr 2023 01:54:28 -0700 Subject: [PATCH 1/2] simplify logging of mavsdk_server output --- mavsdk/system.py | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/mavsdk/system.py b/mavsdk/system.py index fb0fb101..1bb1871a 100644 --- a/mavsdk/system.py +++ b/mavsdk/system.py @@ -39,17 +39,6 @@ from . import bin - -class _LoggingThread(threading.Thread): - def __init__(self, pipe, log_fn): - super().__init__() - self.pipe = pipe - self.log_fn = log_fn - - def run(self): - for line in self.pipe: - self.log_fn(line.decode("utf-8").replace("\n", "")) - class System: """ Instantiate a System object, that will serve as a proxy to @@ -381,13 +370,7 @@ def _start_mavsdk_server(system_address, port, sysid, compid): if system_address: bin_path_and_args.append(system_address) p = subprocess.Popen(bin_path_and_args, - shell=False, - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT) - - logger = logging.getLogger(__name__) - log_thread = _LoggingThread(p.stdout, logger.debug) - log_thread.start() + shell=False) except FileNotFoundError: print(""" This installation does not provide an embedded 'mavsdk_server' binary. From 8024c8c3785fd2b0b8cf88b4fb32d9b8a8cbadd5 Mon Sep 17 00:00:00 2001 From: Eric Pedley Date: Mon, 24 Apr 2023 22:39:06 -0700 Subject: [PATCH 2/2] add option to turn off verbose mavsdk_server output --- mavsdk/system.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mavsdk/system.py b/mavsdk/system.py index 1bb1871a..f167bd85 100644 --- a/mavsdk/system.py +++ b/mavsdk/system.py @@ -74,7 +74,7 @@ def __init__(self, mavsdk_server_address=None, port=50051, sysid=245, compid=190 def __del__(self): self._stop_mavsdk_server() - async def connect(self, system_address=None): + async def connect(self, system_address=None, verbose=True): """ Connect the System object to a remote system. @@ -100,7 +100,7 @@ async def connect(self, system_address=None): if self._mavsdk_server_address is None: self._mavsdk_server_address = 'localhost' - self._server_process = self._start_mavsdk_server(system_address,self._port, self._sysid, self._compid) + self._server_process = self._start_mavsdk_server(system_address,self._port, self._sysid, self._compid, verbose) await self._init_plugins(self._mavsdk_server_address, self._port) @@ -341,7 +341,7 @@ def tune(self) -> tune.Tune: return self._plugins["tune"] @staticmethod - def _start_mavsdk_server(system_address, port, sysid, compid): + def _start_mavsdk_server(system_address, port, sysid, compid, verbose=True): """ Starts the gRPC server in a subprocess, listening on localhost:port port parameter can be specified now to allow multiple mavsdk servers to be spawned via code @@ -370,7 +370,9 @@ def _start_mavsdk_server(system_address, port, sysid, compid): if system_address: bin_path_and_args.append(system_address) p = subprocess.Popen(bin_path_and_args, - shell=False) + shell=False, + stdout=subprocess.DEVNULL if not verbose else None, + stderr=subprocess.DEVNULL if not verbose else None) except FileNotFoundError: print(""" This installation does not provide an embedded 'mavsdk_server' binary.