mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
and another global has been eliminated..
This commit is contained in:
parent
145ac1533a
commit
5121cb5a14
|
@ -3,7 +3,6 @@ Gather information about audio devices.
|
||||||
"""
|
"""
|
||||||
import atexit
|
import atexit
|
||||||
import multiprocessing
|
import multiprocessing
|
||||||
|
|
||||||
import crcengine
|
import crcengine
|
||||||
import sounddevice as sd
|
import sounddevice as sd
|
||||||
import structlog
|
import structlog
|
||||||
|
|
|
@ -27,7 +27,7 @@ import stats
|
||||||
import ujson as json
|
import ujson as json
|
||||||
from codec2 import FREEDV_MODE, FREEDV_MODE_USED_SLOTS
|
from codec2 import FREEDV_MODE, FREEDV_MODE_USED_SLOTS
|
||||||
from queues import DATA_QUEUE_RECEIVED, DATA_QUEUE_TRANSMIT, RX_BUFFER
|
from queues import DATA_QUEUE_RECEIVED, DATA_QUEUE_TRANSMIT, RX_BUFFER
|
||||||
from static import FRAME_TYPE as FR_TYPE
|
from modem_frametypes import FRAME_TYPE as FR_TYPE
|
||||||
import broadcast
|
import broadcast
|
||||||
|
|
||||||
TESTMODE = False
|
TESTMODE = False
|
||||||
|
@ -45,6 +45,7 @@ class DATA:
|
||||||
self.event_queue = event_queue
|
self.event_queue = event_queue
|
||||||
|
|
||||||
self.mycallsign = config['STATION']['mycall']
|
self.mycallsign = config['STATION']['mycall']
|
||||||
|
self.ssid_list = config['STATION']['ssid_list']
|
||||||
self.mycallsign_crc = b''
|
self.mycallsign_crc = b''
|
||||||
|
|
||||||
self.mygrid = config['STATION']['mygrid']
|
self.mygrid = config['STATION']['mygrid']
|
||||||
|
@ -423,8 +424,8 @@ class DATA:
|
||||||
frametype = int.from_bytes(bytes(bytes_out[:1]), "big")
|
frametype = int.from_bytes(bytes(bytes_out[:1]), "big")
|
||||||
|
|
||||||
# check for callsign CRC
|
# check for callsign CRC
|
||||||
_valid1, _ = helpers.check_callsign(self.mycallsign, bytes(bytes_out[1:4]))
|
_valid1, _ = helpers.check_callsign(self.mycallsign, bytes(bytes_out[1:4]), self.ssid_list)
|
||||||
_valid2, _ = helpers.check_callsign(self.mycallsign, bytes(bytes_out[2:5]))
|
_valid2, _ = helpers.check_callsign(self.mycallsign, bytes(bytes_out[2:5]), self.ssid_list)
|
||||||
|
|
||||||
# check for session ID
|
# check for session ID
|
||||||
# signalling frames
|
# signalling frames
|
||||||
|
@ -739,6 +740,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
# Check if we received all frames in the burst by checking if burst buffer has no more "Nones"
|
# Check if we received all frames in the burst by checking if burst buffer has no more "Nones"
|
||||||
|
@ -1534,6 +1536,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
frametype = int.from_bytes(bytes(data_in[:1]), "big")
|
frametype = int.from_bytes(bytes(data_in[:1]), "big")
|
||||||
|
@ -1589,6 +1592,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
# Force data loops of Modem to stop and continue with next frame
|
# Force data loops of Modem to stop and continue with next frame
|
||||||
self.data_frame_ack_received = True
|
self.data_frame_ack_received = True
|
||||||
|
@ -1627,6 +1631,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
self.send_data_to_socket_queue(
|
self.send_data_to_socket_queue(
|
||||||
freedata="modem-message",
|
freedata="modem-message",
|
||||||
|
@ -1666,6 +1671,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
self.log.info("[Modem] ARQ REPEAT RECEIVED")
|
self.log.info("[Modem] ARQ REPEAT RECEIVED")
|
||||||
|
@ -1881,7 +1887,7 @@ class DATA:
|
||||||
self.states.set("dxcallsign", self.dxcallsign)
|
self.states.set("dxcallsign", self.dxcallsign)
|
||||||
|
|
||||||
# check if callsign ssid override
|
# check if callsign ssid override
|
||||||
valid, mycallsign = helpers.check_callsign(self.mycallsign, data_in[2:5])
|
valid, mycallsign = helpers.check_callsign(self.mycallsign, data_in[2:5], self.ssid_list)
|
||||||
self.mycallsign = mycallsign
|
self.mycallsign = mycallsign
|
||||||
self.dxgrid = b'------'
|
self.dxgrid = b'------'
|
||||||
helpers.add_to_heard_stations(
|
helpers.add_to_heard_stations(
|
||||||
|
@ -1891,6 +1897,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
self.log.info(
|
self.log.info(
|
||||||
"[Modem] SESSION ["
|
"[Modem] SESSION ["
|
||||||
|
@ -1957,7 +1964,7 @@ class DATA:
|
||||||
# We've arrived here from process_data which already checked that the frame
|
# We've arrived here from process_data which already checked that the frame
|
||||||
# is intended for this station.
|
# is intended for this station.
|
||||||
# Close the session if the CRC matches the remote station in static.
|
# Close the session if the CRC matches the remote station in static.
|
||||||
_valid_crc, mycallsign = helpers.check_callsign(self.mycallsign, bytes(data_in[2:5]))
|
_valid_crc, mycallsign = helpers.check_callsign(self.mycallsign, bytes(data_in[2:5]), self.ssid_list)
|
||||||
_valid_session = helpers.check_session_id(self.session_id, bytes(data_in[1:2]))
|
_valid_session = helpers.check_session_id(self.session_id, bytes(data_in[1:2]))
|
||||||
if (_valid_crc or _valid_session) and self.states.arq_session_state not in ["disconnected"]:
|
if (_valid_crc or _valid_session) and self.states.arq_session_state not in ["disconnected"]:
|
||||||
self.states.set("arq_session_state", "disconnected")
|
self.states.set("arq_session_state", "disconnected")
|
||||||
|
@ -1969,6 +1976,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
self.log.info(
|
self.log.info(
|
||||||
"[Modem] SESSION ["
|
"[Modem] SESSION ["
|
||||||
|
@ -2020,7 +2028,7 @@ class DATA:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Accept session data if the DXCALLSIGN_CRC matches the station in static or session id.
|
# Accept session data if the DXCALLSIGN_CRC matches the station in static or session id.
|
||||||
_valid_crc, _ = helpers.check_callsign(self.dxcallsign, bytes(data_in[4:7]))
|
_valid_crc, _ = helpers.check_callsign(self.dxcallsign, bytes(data_in[4:7]), self.ssid_list)
|
||||||
_valid_session = helpers.check_session_id(self.session_id, bytes(data_in[1:2]))
|
_valid_session = helpers.check_session_id(self.session_id, bytes(data_in[1:2]))
|
||||||
if _valid_crc or _valid_session and self.states.arq_session_state in ["connected", "connecting"]:
|
if _valid_crc or _valid_session and self.states.arq_session_state in ["connected", "connecting"]:
|
||||||
self.log.debug("[Modem] Received session heartbeat")
|
self.log.debug("[Modem] Received session heartbeat")
|
||||||
|
@ -2032,6 +2040,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
self.send_data_to_socket_queue(
|
self.send_data_to_socket_queue(
|
||||||
|
@ -2259,7 +2268,7 @@ class DATA:
|
||||||
self.arq_file_transfer = True
|
self.arq_file_transfer = True
|
||||||
|
|
||||||
# check if callsign ssid override
|
# check if callsign ssid override
|
||||||
_, self.mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4])
|
_, self.mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4], self.ssid_list)
|
||||||
|
|
||||||
# ignore channel opener if already in ARQ STATE
|
# ignore channel opener if already in ARQ STATE
|
||||||
# use case: Station A is connecting to Station B while
|
# use case: Station A is connecting to Station B while
|
||||||
|
@ -2350,12 +2359,13 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
self.session_id = data_in[13:14]
|
self.session_id = data_in[13:14]
|
||||||
|
|
||||||
# check again if callsign ssid override
|
# check again if callsign ssid override
|
||||||
_, self.mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4])
|
_, self.mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4], self.ssid_list)
|
||||||
|
|
||||||
self.log.info(
|
self.log.info(
|
||||||
"[Modem] ARQ | DATA | RX | ["
|
"[Modem] ARQ | DATA | RX | ["
|
||||||
|
@ -2464,6 +2474,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
self.log.info(
|
self.log.info(
|
||||||
|
@ -2566,7 +2577,7 @@ class DATA:
|
||||||
dxcallsign = helpers.bytes_to_callsign(bytes(data_in[7:13]))
|
dxcallsign = helpers.bytes_to_callsign(bytes(data_in[7:13]))
|
||||||
|
|
||||||
# check if callsign ssid override
|
# check if callsign ssid override
|
||||||
valid, mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4])
|
valid, mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4], self.ssid_list)
|
||||||
if not valid:
|
if not valid:
|
||||||
# PING packet not for me.
|
# PING packet not for me.
|
||||||
self.log.debug("[Modem] received_ping: ping not for this station.")
|
self.log.debug("[Modem] received_ping: ping not for this station.")
|
||||||
|
@ -2591,6 +2602,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
self.send_data_to_socket_queue(
|
self.send_data_to_socket_queue(
|
||||||
|
@ -2634,7 +2646,7 @@ class DATA:
|
||||||
|
|
||||||
# check if we received correct ping
|
# check if we received correct ping
|
||||||
# check if callsign ssid override
|
# check if callsign ssid override
|
||||||
_valid, mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4])
|
_valid, mycallsign = helpers.check_callsign(self.mycallsign, data_in[1:4], self.ssid_list)
|
||||||
if _valid:
|
if _valid:
|
||||||
|
|
||||||
self.dxgrid = bytes(helpers.decode_grid(data_in[7:11]), "UTF-8")
|
self.dxgrid = bytes(helpers.decode_grid(data_in[7:11]), "UTF-8")
|
||||||
|
@ -2659,6 +2671,7 @@ class DATA:
|
||||||
combined_snr,
|
combined_snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
self.log.info(
|
self.log.info(
|
||||||
|
@ -2821,6 +2834,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
def transmit_cq(self) -> None:
|
def transmit_cq(self) -> None:
|
||||||
|
@ -2888,6 +2902,7 @@ class DATA:
|
||||||
snr,
|
snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.respond_to_cq and self.respond_to_call:
|
if self.respond_to_cq and self.respond_to_call:
|
||||||
|
@ -2969,6 +2984,7 @@ class DATA:
|
||||||
combined_snr,
|
combined_snr,
|
||||||
self.modem_frequency_offset,
|
self.modem_frequency_offset,
|
||||||
self.states.radio_frequency,
|
self.states.radio_frequency,
|
||||||
|
self.states.heard_stations
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ import threading
|
||||||
import time
|
import time
|
||||||
import wave
|
import wave
|
||||||
import helpers
|
import helpers
|
||||||
import static
|
import deprecated_static
|
||||||
from global_instances import ARQ, AudioParam, Beacon, Channel, Daemon, HamlibParam, ModemParam, Station, Statistics, TCIParam, Modem, MeshParam
|
from global_instances import ARQ, AudioParam, Beacon, Channel, Daemon, HamlibParam, ModemParam, Station, Statistics, TCIParam, Modem, MeshParam
|
||||||
import structlog
|
import structlog
|
||||||
from random import randrange
|
from random import randrange
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# global_instances.py
|
# global_instances.py
|
||||||
|
|
||||||
from static import Daemon, ARQ, AudioParam, Beacon, Channel, HamlibParam, ModemParam, Station, Statistics, TCIParam, Modem, MeshParam
|
from deprecated_static import Daemon, ARQ, AudioParam, Beacon, Channel, HamlibParam, ModemParam, Station, Statistics, TCIParam, Modem, MeshParam
|
||||||
|
|
||||||
# Initialize instances with appropriate default values
|
# Initialize instances with appropriate default values
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ Created on Fri Dec 25 21:25:14 2020
|
||||||
import time
|
import time
|
||||||
from datetime import datetime,timezone
|
from datetime import datetime,timezone
|
||||||
import crcengine
|
import crcengine
|
||||||
from global_instances import Station, Modem
|
|
||||||
import structlog
|
import structlog
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import threading
|
import threading
|
||||||
|
@ -122,7 +121,7 @@ def get_crc_32(data: bytes) -> bytes:
|
||||||
return crc_data
|
return crc_data
|
||||||
|
|
||||||
|
|
||||||
def add_to_heard_stations(dxcallsign, dxgrid, datatype, snr, offset, frequency):
|
def add_to_heard_stations(dxcallsign, dxgrid, datatype, snr, offset, frequency, heard_stations_list):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
@ -137,16 +136,16 @@ def add_to_heard_stations(dxcallsign, dxgrid, datatype, snr, offset, frequency):
|
||||||
Nothing
|
Nothing
|
||||||
"""
|
"""
|
||||||
# check if buffer empty
|
# check if buffer empty
|
||||||
if len(Modem.heard_stations) == 0:
|
if len(heard_stations_list) == 0:
|
||||||
Modem.heard_stations.append(
|
heard_stations_list.append(
|
||||||
[dxcallsign, dxgrid, int(datetime.now(timezone.utc).timestamp()), datatype, snr, offset, frequency]
|
[dxcallsign, dxgrid, int(datetime.now(timezone.utc).timestamp()), datatype, snr, offset, frequency]
|
||||||
)
|
)
|
||||||
# if not, we search and update
|
# if not, we search and update
|
||||||
else:
|
else:
|
||||||
for i in range(len(Modem.heard_stations)):
|
for i in range(len(heard_stations_list)):
|
||||||
# Update callsign with new timestamp
|
# Update callsign with new timestamp
|
||||||
if Modem.heard_stations[i].count(dxcallsign) > 0:
|
if heard_stations_list[i].count(dxcallsign) > 0:
|
||||||
Modem.heard_stations[i] = [
|
heard_stations_list[i] = [
|
||||||
dxcallsign,
|
dxcallsign,
|
||||||
dxgrid,
|
dxgrid,
|
||||||
int(time.time()),
|
int(time.time()),
|
||||||
|
@ -157,8 +156,8 @@ def add_to_heard_stations(dxcallsign, dxgrid, datatype, snr, offset, frequency):
|
||||||
]
|
]
|
||||||
break
|
break
|
||||||
# Insert if nothing found
|
# Insert if nothing found
|
||||||
if i == len(Modem.heard_stations) - 1:
|
if i == len(heard_stations_list) - 1:
|
||||||
Modem.heard_stations.append(
|
heard_stations_list.append(
|
||||||
[
|
[
|
||||||
dxcallsign,
|
dxcallsign,
|
||||||
dxgrid,
|
dxgrid,
|
||||||
|
@ -172,10 +171,10 @@ def add_to_heard_stations(dxcallsign, dxgrid, datatype, snr, offset, frequency):
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
# for idx, item in enumerate(Modem.heard_stations):
|
# for idx, item in enumerate(heard_stations_list):
|
||||||
# if dxcallsign in item:
|
# if dxcallsign in item:
|
||||||
# item = [dxcallsign, int(time.time())]
|
# item = [dxcallsign, int(time.time())]
|
||||||
# Modem.heard_stations[idx] = item
|
# heard_stations_list[idx] = item
|
||||||
|
|
||||||
|
|
||||||
def callsign_to_bytes(callsign) -> bytes:
|
def callsign_to_bytes(callsign) -> bytes:
|
||||||
|
@ -287,7 +286,7 @@ def bytes_to_callsign(bytestring: bytes) -> bytes:
|
||||||
return bytes(f"{callsign}-{ssid}", "utf-8")
|
return bytes(f"{callsign}-{ssid}", "utf-8")
|
||||||
|
|
||||||
|
|
||||||
def check_callsign(callsign: bytes, crc_to_check: bytes):
|
def check_callsign(callsign: bytes, crc_to_check: bytes, ssid_list):
|
||||||
"""
|
"""
|
||||||
Function to check a crc against a callsign to calculate the
|
Function to check a crc against a callsign to calculate the
|
||||||
ssid by generating crc until we find the correct SSID
|
ssid by generating crc until we find the correct SSID
|
||||||
|
@ -312,7 +311,7 @@ def check_callsign(callsign: bytes, crc_to_check: bytes):
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
log.debug("[HLP] check_callsign: Error callsign SSID to integer:", e=err)
|
log.debug("[HLP] check_callsign: Error callsign SSID to integer:", e=err)
|
||||||
|
|
||||||
for ssid in Station.ssid_list:
|
for ssid in ssid_list:
|
||||||
call_with_ssid = bytearray(callsign)
|
call_with_ssid = bytearray(callsign)
|
||||||
call_with_ssid.extend("-".encode("utf-8"))
|
call_with_ssid.extend("-".encode("utf-8"))
|
||||||
call_with_ssid.extend(str(ssid).encode("utf-8"))
|
call_with_ssid.extend(str(ssid).encode("utf-8"))
|
||||||
|
|
|
@ -36,8 +36,9 @@ SNR: negative --> * 2
|
||||||
# pylint: disable=invalid-name, line-too-long, c-extension-no-member
|
# pylint: disable=invalid-name, line-too-long, c-extension-no-member
|
||||||
# pylint: disable=import-outside-toplevel, attribute-defined-outside-init
|
# pylint: disable=import-outside-toplevel, attribute-defined-outside-init
|
||||||
|
|
||||||
from static import FRAME_TYPE
|
from modem_frametypes import FRAME_TYPE
|
||||||
from global_instances import ARQ,ModemParam, MeshParam, Station, Modem
|
|
||||||
|
#from global_instances import ARQ,ModemParam, MeshParam, Station, Modem
|
||||||
|
|
||||||
from codec2 import FREEDV_MODE
|
from codec2 import FREEDV_MODE
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
@ -46,7 +47,6 @@ import threading
|
||||||
import modem
|
import modem
|
||||||
import helpers
|
import helpers
|
||||||
import structlog
|
import structlog
|
||||||
import ujson as json
|
|
||||||
|
|
||||||
from queues import MESH_RECEIVED_QUEUE, MESH_QUEUE_TRANSMIT, MESH_SIGNALLING_TABLE
|
from queues import MESH_RECEIVED_QUEUE, MESH_QUEUE_TRANSMIT, MESH_SIGNALLING_TABLE
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ import codec2
|
||||||
import itertools
|
import itertools
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import sounddevice as sd
|
import sounddevice as sd
|
||||||
from static import FRAME_TYPE
|
|
||||||
import structlog
|
import structlog
|
||||||
import tci
|
import tci
|
||||||
import cw
|
import cw
|
||||||
|
|
41
modem/modem_frametypes.py
Normal file
41
modem/modem_frametypes.py
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
|
class FRAME_TYPE(Enum):
|
||||||
|
"""Lookup for frame types"""
|
||||||
|
|
||||||
|
BURST_01 = 10
|
||||||
|
BURST_02 = 11
|
||||||
|
BURST_03 = 12
|
||||||
|
BURST_04 = 13
|
||||||
|
# ...
|
||||||
|
BURST_51 = 50
|
||||||
|
BURST_ACK = 60
|
||||||
|
FR_ACK = 61
|
||||||
|
FR_REPEAT = 62
|
||||||
|
FR_NACK = 63
|
||||||
|
BURST_NACK = 64
|
||||||
|
MESH_BROADCAST = 100
|
||||||
|
MESH_SIGNALLING_PING = 101
|
||||||
|
MESH_SIGNALLING_PING_ACK = 102
|
||||||
|
CQ = 200
|
||||||
|
QRV = 201
|
||||||
|
PING = 210
|
||||||
|
PING_ACK = 211
|
||||||
|
IS_WRITING = 215
|
||||||
|
ARQ_SESSION_OPEN = 221
|
||||||
|
ARQ_SESSION_HB = 222
|
||||||
|
ARQ_SESSION_CLOSE = 223
|
||||||
|
ARQ_DC_OPEN_W = 225
|
||||||
|
ARQ_DC_OPEN_ACK_W = 226
|
||||||
|
ARQ_DC_OPEN_N = 227
|
||||||
|
ARQ_DC_OPEN_ACK_N = 228
|
||||||
|
ARQ_STOP = 249
|
||||||
|
BEACON = 250
|
||||||
|
FEC = 251
|
||||||
|
FEC_WAKEUP = 252
|
||||||
|
IDENT = 254
|
||||||
|
TEST_FRAME = 255
|
|
@ -9,7 +9,6 @@ import queue
|
||||||
import server_commands
|
import server_commands
|
||||||
import service_manager
|
import service_manager
|
||||||
import state_manager
|
import state_manager
|
||||||
from static import Modem as modeminfo
|
|
||||||
import threading
|
import threading
|
||||||
import ujson as json
|
import ujson as json
|
||||||
|
|
||||||
|
@ -163,7 +162,7 @@ def post_modem_stop():
|
||||||
|
|
||||||
@app.route('/version', methods=['GET'])
|
@app.route('/version', methods=['GET'])
|
||||||
def get_modem_version():
|
def get_modem_version():
|
||||||
return api_response({"version": modeminfo.version})
|
return api_response({"version": 0})
|
||||||
|
|
||||||
|
|
||||||
# @app.route('/modem/arq_connect', methods=['POST'])
|
# @app.route('/modem/arq_connect', methods=['POST'])
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from queues import DATA_QUEUE_TRANSMIT
|
from queues import DATA_QUEUE_TRANSMIT
|
||||||
import base64
|
import base64
|
||||||
import helpers
|
|
||||||
import structlog
|
import structlog
|
||||||
log = structlog.get_logger("COMMANDS")
|
log = structlog.get_logger("COMMANDS")
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ class STATES:
|
||||||
self.audio_dbfs = 0
|
self.audio_dbfs = 0
|
||||||
self.dxcallsign: bytes = b"ZZ9YY-0"
|
self.dxcallsign: bytes = b"ZZ9YY-0"
|
||||||
self.dxgrid: bytes = b"------"
|
self.dxgrid: bytes = b"------"
|
||||||
|
self.heard_stations = []
|
||||||
|
|
||||||
self.arq_session_state = 'disconnected'
|
self.arq_session_state = 'disconnected'
|
||||||
self.arq_speed_level = 0
|
self.arq_speed_level = 0
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
#autopep8 --in-place --select W291,W293,W391,E231 --ignore E501 ../modem.py ../data_handler.py ../deprecated_main.py ../deprecated_sock.py ../static.py ../helpers.py
|
#autopep8 --in-place --select W291,W293,W391,E231 --ignore E501 ../modem.py ../data_handler.py ../deprecated_main.py ../deprecated_sock.py ../deprecated_static.py ../helpers.py
|
||||||
autopep8 --in-place --ignore E501 ../modem.py ../data_handler.py ../main.py ../sock.py ../static.py ../helpers.py
|
autopep8 --in-place --ignore E501 ../modem.py ../data_handler.py ../main.py ../sock.py ../static.py ../helpers.py
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue