add 10s timeout and multimon restart for rtl_fm crash

This commit is contained in:
Jan Speller 2021-01-06 22:21:02 +01:00
parent 04e78c01c8
commit a7671dc154

View file

@ -15,6 +15,7 @@
@description: Input source for sdr with rtl_fm @description: Input source for sdr with rtl_fm
""" """
import logging import logging
import time
from boswatch.utils import paths from boswatch.utils import paths
from boswatch.processManager import ProcessManager from boswatch.processManager import ProcessManager
from boswatch.inputSource.inputBase import InputBase from boswatch.inputSource.inputBase import InputBase
@ -47,8 +48,14 @@ class SdrInput(InputBase):
logging.info("start decoding") logging.info("start decoding")
while self._isRunning: while self._isRunning:
if not sdrProc.isRunning: if not sdrProc.isRunning:
logging.warning("rtl_fm was down - try to restart") logging.warning("rtl_fm was down - trying to restart in 10 seconds")
time.sleep(10)
sdrProc.start() sdrProc.start()
if sdrProc.isRunning:
logging.info("rtl_fm is back up - restarting multimon...")
mmProc.setStdin(sdrProc.stdout)
mmProc.start()
elif not mmProc.isRunning: elif not mmProc.isRunning:
logging.warning("multimon was down - try to restart") logging.warning("multimon was down - try to restart")
mmProc.start() mmProc.start()