diff --git a/modem/data_handler.py b/modem/data_handler.py index 484502e1..8eb96168 100644 --- a/modem/data_handler.py +++ b/modem/data_handler.py @@ -41,12 +41,11 @@ class DATA: log = structlog.get_logger("DATA") - def __init__(self) -> None: + def __init__(self, config) -> None: self.stats = stats.stats() - # Initial call sign. Will be overwritten later - self.mycallsign = Station.mycallsign + self.mycallsign = config['STATION']['mycall'] self.dxcallsign = Station.dxcallsign self.data_queue_transmit = DATA_QUEUE_TRANSMIT @@ -3218,7 +3217,7 @@ class DATA: if not ARQ.arq_session: Modem.modem_state = "IDLE" self.dxcallsign = b"AA0AA-0" - self.mycallsign = Station.mycallsign + self.mycallsign = self.mycallsign self.session_id = bytes(1) ARQ.arq_session_state = "disconnected" diff --git a/modem/main.py b/modem/main.py index 2e44fb4e..fcde98f3 100755 --- a/modem/main.py +++ b/modem/main.py @@ -217,10 +217,10 @@ log.info( ) # start data handler -data_handler.DATA() +data_handler.DATA(conf.config) # start modem -modem = modem.RF() +modem = modem.RF(conf.config) # start mesh protocol only if enabled if MeshParam.enable_protocol: diff --git a/modem/modem.py b/modem/modem.py index 9bee695e..7e330c66 100644 --- a/modem/modem.py +++ b/modem/modem.py @@ -61,11 +61,19 @@ class RF: log = structlog.get_logger("RF") - def __init__(self) -> None: + def __init__(self, config) -> None: """ """ self.sampler_avg = 0 self.buffer_avg = 0 + self.config = config + + self.audio_input_device = config['AUDIO']['rx'] + self.audio_output_device = config['AUDIO']['tx'] + + self.rx_audio_level = config['AUDIO']['rxaudiolevel'] + self.tx_audio_level = config['AUDIO']['txaudiolevel'] + self.AUDIO_SAMPLE_RATE_RX = 48000 self.AUDIO_SAMPLE_RATE_TX = 48000 self.MODEM_SAMPLE_RATE = codec2.api.FREEDV_FS_8000 @@ -185,7 +193,7 @@ class RF: channels=1, dtype="int16", callback=self.callback, - device=(AudioParam.audio_input_device, AudioParam.audio_output_device), + device=(self.audio_input_device, self.audio_output_device), samplerate=self.AUDIO_SAMPLE_RATE_RX, blocksize=4800, ) @@ -459,7 +467,7 @@ class RF: # self.log.debug("[MDM] callback") x = np.frombuffer(data_in48k, dtype=np.int16) x = self.resampler.resample48_to_8(x) - x = set_audio_volume(x, AudioParam.rx_audio_level) + x = set_audio_volume(x, self.rx_audio_level) # audio recording for debugging purposes if AudioParam.audio_record: diff --git a/modem/server.py b/modem/server.py index 131acf9c..c6596717 100644 --- a/modem/server.py +++ b/modem/server.py @@ -4,6 +4,8 @@ import os import serial_ports from config import CONFIG import audio +import data_handler +import modem app = Flask(__name__) sock = Sock(app) @@ -33,6 +35,10 @@ def api_response(data, status = 'ok'): set_config() +# start modem +d = data_handler.DATA(app.config_manager.config) +m = modem.RF(app.config_manager.config) + ## REST API @app.route('/', methods=['GET']) def index():