# -*- coding: utf-8 -*-
"""
Created on Fri Jun 10 07:52:03 2022
:author: Jared Peacock
:license: MIT
"""
# =============================================================================
# Imports
# =============================================================================
from pathlib import Path
from loguru import logger
from mt_metadata.timeseries import Station
from .helpers import read_json_to_object
# =============================================================================
[docs]class PhoenixConfig:
"""
A container for the config.json file used to control the recording
"""
def __init__(self, fn=None, **kwargs):
self.fn = fn
self.obj = None
self.logger = logger
@property
def fn(self):
return self._fn
@fn.setter
def fn(self, fn):
if fn is None:
self._fn = None
else:
fn = Path(fn)
if fn.exists():
self._fn = Path(fn)
else:
raise ValueError(f"Could not find {fn}")
[docs] def read(self, fn=None):
"""
read a config.json file that is in the Phoenix format
:param fn: DESCRIPTION, defaults to None
:type fn: TYPE, optional
:return: DESCRIPTION
:rtype: TYPE
"""
if fn is not None:
self.fn = fn
self.obj = read_json_to_object(self.fn)
[docs] def has_obj(self):
if self.obj is not None:
return True
return False
@property
def auto_power_enabled(self):
if self.has_obj():
return self.obj.auto_power_enabled
@property
def config(self):
if self.has_obj():
return self.obj.config[0]
@property
def empower_version(self):
if self.has_obj():
return self.obj.empower_version
@property
def mtc150_reset(self):
if self.has_obj():
return self.obj.mtc150_reset
@property
def network(self):
if self.has_obj():
return self.obj.network
@property
def receiver(self):
if self.has_obj():
return self.obj.receiver
@property
def schedule(self):
if self.has_obj():
return self.obj.schedule
@property
def surveyTechnique(self):
if self.has_obj():
return self.obj.surveyTechnique
@property
def timezone(self):
if self.has_obj():
return self.obj.timezone
@property
def timezone_offset(self):
if self.has_obj():
return self.obj.timezone_offset
@property
def version(self):
if self.has_obj():
return self.obj.version