add metrics for pocsag
This commit is contained in:
@ -1,15 +1,37 @@
|
||||
from csdr.module import PickleModule
|
||||
from owrx.bands import Bandplan
|
||||
from owrx.metrics import Metrics, CounterMetric
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class PocsagParser(PickleModule):
|
||||
def __init__(self):
|
||||
self.band = None
|
||||
super().__init__()
|
||||
|
||||
def process(self, meta):
|
||||
try:
|
||||
if "address" in meta:
|
||||
meta["address"] = int(meta["address"])
|
||||
meta["mode"] = "Pocsag"
|
||||
self.pushDecode()
|
||||
return meta
|
||||
except Exception:
|
||||
logger.exception("Exception while parsing Pocsag message")
|
||||
|
||||
def setDialFrequency(self, freq: int) -> None:
|
||||
self.band = Bandplan.getSharedInstance().findBand(freq)
|
||||
|
||||
def pushDecode(self):
|
||||
band = "unknown"
|
||||
if self.band is not None:
|
||||
band = self.band.getName()
|
||||
name = "digiham.decodes.{band}.pocsag".format(band=band)
|
||||
metrics = Metrics.getSharedInstance()
|
||||
metric = metrics.getMetric(name)
|
||||
if metric is None:
|
||||
metric = CounterMetric()
|
||||
metrics.addMetric(name, metric)
|
||||
metric.inc()
|
||||
|
Reference in New Issue
Block a user