mirror of
https://github.com/BOSWatch/BW3-Core.git
synced 2026-01-10 02:30:05 +01:00
little improvements in processManager class
This commit is contained in:
parent
5bc5fae9b2
commit
bb1fd118f5
|
|
@ -32,15 +32,12 @@ class ProcessManager:
|
|||
self._processHandle = None
|
||||
self._textMode = textMode
|
||||
|
||||
def __del__(self):
|
||||
self.stop()
|
||||
|
||||
def addArgument(self, arg):
|
||||
"""!add a new argument
|
||||
|
||||
@param arg: argument to add as string"""
|
||||
logging.debug("add argument to process: %s -> %s", self._args[0], arg)
|
||||
self._args.append(arg)
|
||||
self._args.append(arg.split())
|
||||
|
||||
def clearArguments(self):
|
||||
"""!clear all arguments"""
|
||||
|
|
@ -48,25 +45,24 @@ class ProcessManager:
|
|||
|
||||
def start(self):
|
||||
"""!start the new process"""
|
||||
logging.debug("start new process: %s", self._args[0])
|
||||
self._processHandle = subprocess.Popen(self._args,
|
||||
stdin=self._stdin,
|
||||
stdout=self._stdout,
|
||||
stderr=self._stderr,
|
||||
universal_newlines=self._textMode)
|
||||
logging.debug("start new process: %s", self._args)
|
||||
try:
|
||||
self._processHandle = subprocess.Popen(self._args,
|
||||
stdin=self._stdin,
|
||||
stdout=self._stdout,
|
||||
stderr=self._stderr,
|
||||
universal_newlines=self._textMode)
|
||||
except FileNotFoundError:
|
||||
logging.error("File not found: %s", self._args[0])
|
||||
|
||||
def stop(self):
|
||||
"""!Stop the process by sending SIGTERM and wait for ending
|
||||
|
||||
@return return code of process"""
|
||||
"""!Stop the process by sending SIGTERM and wait for ending"""
|
||||
if self._processHandle and self.isRunning:
|
||||
logging.debug("stopping process: %s", self._args[0])
|
||||
self._processHandle.terminate()
|
||||
while self.isRunning:
|
||||
pass
|
||||
return self._processHandle.returnCode
|
||||
logging.debug("process not running: %s", self._args[0])
|
||||
return 0
|
||||
logging.debug("cannot stop - process not running: %s", self._args[0])
|
||||
|
||||
def readline(self):
|
||||
"""!Read one line from stdout stream
|
||||
|
|
@ -112,4 +108,4 @@ class ProcessManager:
|
|||
if self._processHandle.poll() is None:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
|
|
|
|||
22
bw_client.py
22
bw_client.py
|
|
@ -32,8 +32,6 @@ logging.debug("BOSWatch client has started ...")
|
|||
logging.debug("Import python modules")
|
||||
import argparse
|
||||
logging.debug("- argparse")
|
||||
import subprocess
|
||||
logging.debug("- subprocess")
|
||||
import time
|
||||
logging.debug("- time")
|
||||
|
||||
|
|
@ -43,11 +41,31 @@ from boswatch.network.client import TCPClient
|
|||
from boswatch.network.broadcast import BroadcastClient
|
||||
from boswatch.decoder.decoder import Decoder
|
||||
from boswatch.utils import header
|
||||
from boswatch.processManager import ProcessManager
|
||||
|
||||
|
||||
header.logoToLog()
|
||||
header.infoToLog()
|
||||
|
||||
# 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")
|
||||
#
|
||||
# multimon.setStderr(None)
|
||||
# multimon.start()
|
||||
#
|
||||
# logging.debug("go")
|
||||
#
|
||||
# while multimon.isRunning:
|
||||
# data = multimon.readline()
|
||||
# if data is not None:
|
||||
# print(data)
|
||||
#
|
||||
#
|
||||
# exit()
|
||||
|
||||
logging.debug("parse args")
|
||||
# With -h or --help you get the Args help
|
||||
parser = argparse.ArgumentParser(prog="bw_client.py",
|
||||
|
|
|
|||
Loading…
Reference in a new issue