Source code for sitchlib.decomposer
"""Decomposer class wraps device message decomposers."""
from gps_decomposer import GpsDecomposer
from gsm_decomposer import GsmDecomposer
from kal_decomposer import KalDecomposer
from geoip_decomposer import GeoipDecomposer
[docs]class Decomposer(object):
"""Decompose device messages into normalized log messages."""
decomp_ref = {"kalibrate": KalDecomposer(),
"gsm_modem": GsmDecomposer(),
"gpsd": GpsDecomposer(),
"geo_ip": GeoipDecomposer()}
[docs] @classmethod
def decompose(cls, scan):
"""Direct messages to the correct decomposer."""
result = []
try:
decomposer = Decomposer.decomp_ref[scan["scan_program"]]
result = decomposer.decompose(scan)
except Exception as e:
print("Decomposition error for scan: %s" % (str(scan)))
print(e)
return result