improve handling of codecserver errors

This commit is contained in:
Jakob Ketterl 2023-07-02 00:43:54 +02:00
parent cb3fe19db9
commit 90955819bf
2 changed files with 10 additions and 3 deletions

View file

@ -6,6 +6,10 @@ from digiham.ambe import Modes, ServerError
from owrx.meta import MetaParser
from owrx.pocsag import PocsagParser
import logging
logger = logging.getLogger(__name__)
class DigihamChain(BaseDemodulatorChain, FixedIfSampleRateChain, FixedAudioRateChain, DialFrequencyReceiver, MetaProvider):
def __init__(self, fskDemodulator, decoder, mbeMode, filter=None, codecserver: str = ""):
@ -24,6 +28,9 @@ class DigihamChain(BaseDemodulatorChain, FixedIfSampleRateChain, FixedAudioRateC
raise DemodulatorError("Connection to codecserver failed: {}".format(ce))
except ServerError as se:
raise DemodulatorError("Codecserver error: {}".format(se))
except RuntimeError as re:
logger.exception("Codecserver error while instantiating MbeSynthesizer:")
raise DemodulatorError("Fatal codecserver error. Please check receiver logs.")
workers += [
fskDemodulator,
decoder,

View file

@ -13,7 +13,6 @@ from datetime import datetime, timedelta
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
class UnknownFeatureException(Exception):
@ -137,14 +136,12 @@ class FeatureDetector(object):
if cache.has(requirement):
return cache.get(requirement)
logger.debug("performing feature check for %s", requirement)
method = self._get_requirement_method(requirement)
result = False
if method is not None:
result = method()
else:
logger.error("detection of requirement {0} not implement. please fix in code!".format(requirement))
logger.debug("feature check for %s complete. result: %s", requirement, result)
cache.set(requirement, result)
return result
@ -564,3 +561,6 @@ class FeatureDetector(object):
return False
except ConnectionError:
return False
except RuntimeError as e:
logger.exception("Codecserver error while checking for AMBE support:")
return False