some fixes in processManager

This commit is contained in:
Bastian Schroll 2019-03-08 22:22:41 +01:00
parent e19f9f2a71
commit 36e02eca4c
2 changed files with 55 additions and 16 deletions

View file

@ -37,14 +37,17 @@ class ProcessManager:
@param arg: argument to add as string"""
logging.debug("add argument to process: %s -> %s", self._args[0], arg)
self._args.append(arg.split())
for splitArg in arg.split():
self._args.append(splitArg)
def clearArguments(self):
"""!clear all arguments"""
self._args = self._args[0:1] # kept first element (process name)
def start(self):
"""!start the new process"""
"""!start the new process
@return: True or False"""
logging.debug("start new process: %s", self._args)
try:
self._processHandle = subprocess.Popen(self._args,
@ -52,17 +55,24 @@ class ProcessManager:
stdout=self._stdout,
stderr=self._stderr,
universal_newlines=self._textMode)
if not self.isRunning:
logging.error("cannot start")
return False
return True
except FileNotFoundError:
logging.error("File not found: %s", self._args[0])
return False
def stop(self):
"""!Stop the process by sending SIGTERM and wait for ending"""
if self._processHandle and self.isRunning:
logging.debug("stopping process: %s", self._args[0])
if self.isRunning:
self._processHandle.terminate()
while self.isRunning:
pass
logging.debug("cannot stop - process not running: %s", self._args[0])
else:
logging.debug("process not running: %s", self._args[0])
def readline(self):
"""!Read one line from stdout stream

View file

@ -47,13 +47,32 @@ from boswatch.processManager import ProcessManager
header.logoToLog()
header.infoToLog()
# sox = ProcessManager("_bin/win/sox/sox.exe")
# rtl = ProcessManager("_bin/win/rtl_fm/rtl_fm.exe")
# multimon = ProcessManager("_bin/win/multimon/multimon-ng.exe", True)
# multimon.addArgument("-a POCSAG1200")
# multimon.addArgument("-t raw")
# multimon.addArgument("-v 3")
# multimon.addArgument("poc1200.raw")
#
#
# try:
# rtl.addArgument("-f 85.235MHz")
# rtl.addArgument("-d 1")
# rtl.addArgument("-M fm -s 22050 -g 100")
# rtl.setStderr(None)
# #rtl.start()
#
# sox.addArgument("-t ogg 88022.ogg -esigned-integer -b16 -r 22050 -t raw -")
# sox.setStderr(None)
# sox.start()
#
#
# #.\_bin\win\sox\sox.exe -t ogg -esigned-integer -b16 -r 22050 88022.ogg -
#
# multimon.addArgument("-a ZVEI1 -a FMSFSK")
# multimon.addArgument("-t raw")
# #multimon.addArgument("-v 3")
# multimon.addArgument("-")
# multimon.setStdin(sox.stdout)
# multimon.setStderr(None)
#
# multimon.start()
#
# logging.debug("go")
@ -63,6 +82,16 @@ header.infoToLog()
# if data is not None:
# print(data)
#
# logging.debug("end")
#
# except:
# logging.exception("batsch")
#
# finally:
#
# sox.stop()
# multimon.stop()
# rtl.stop()
#
# exit()