FreeDATA/tnc/static.py

171 lines
3.9 KiB
Python
Raw Normal View History

2020-12-23 17:48:54 +01:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 23 11:13:57 2020
@author: DJ2LS
Here we are saving application wide variables and stats, which have to be accessed everywhere.
2022-05-09 02:41:49 +02:00
Not nice, suggestions are appreciated :-)
2020-12-23 17:48:54 +01:00
"""
import subprocess
from enum import Enum
2023-03-29 13:34:08 +02:00
VERSION = "0.8.0-alpha.4-TCI-exp"
2022-11-05 22:27:33 +01:00
ENABLE_EXPLORER = False
2023-02-02 18:03:22 +01:00
ENABLE_STATS = False
2022-11-05 22:27:33 +01:00
2021-07-09 19:26:02 +02:00
# DAEMON
DAEMONPORT: int = 3001
TNCSTARTED: bool = False
TNCPROCESS: subprocess.Popen
2021-07-09 19:26:02 +02:00
2021-02-16 14:23:57 +01:00
# Operator Defaults
MYCALLSIGN: bytes = b"AA0AA"
MYCALLSIGN_CRC: bytes = b"A"
2022-12-04 09:43:32 +01:00
DXCALLSIGN: bytes = b"ZZ9YY"
DXCALLSIGN_CRC: bytes = b"A"
MYGRID: bytes = b""
DXGRID: bytes = b""
2021-02-19 09:50:04 +01:00
SSID_LIST: list = [] # ssid list we are responding to
2022-03-19 12:42:10 +01:00
LOW_BANDWIDTH_MODE: bool = False
2021-03-12 14:14:36 +01:00
# ---------------------------------
2021-02-16 14:23:57 +01:00
# Server Defaults
HOST: str = "0.0.0.0"
PORT: int = 3000
SOCKET_TIMEOUT: int = 1 # seconds
2021-03-12 14:14:36 +01:00
# ---------------------------------
SERIAL_DEVICES: list = []
# ---------------------------------
2022-12-01 10:05:24 +01:00
LISTEN: bool = True
PTT_STATE: bool = False
TRANSMITTING: bool = False
2023-02-02 22:54:25 +01:00
HAMLIB_RADIOCONTROL: str = "disabled"
HAMLIB_RIGCTLD_IP: str = "127.0.0.1"
HAMLIB_RIGCTLD_PORT: str = "4532"
HAMLIB_STATUS: str = "unknown/disconnected"
HAMLIB_FREQUENCY: int = 0
HAMLIB_MODE: str = ""
HAMLIB_BANDWIDTH: int = 0
HAMLIB_RF: int = 0
HAMLIB_ALC: int = 0
2023-01-30 12:31:34 +01:00
HAMLIB_STRENGTH: int = 0
2021-03-12 14:14:36 +01:00
# -------------------------
2020-12-23 17:48:54 +01:00
# FreeDV Defaults
SNR: float = 0
FREQ_OFFSET: float = 0
SCATTER: list = []
ENABLE_SCATTER: bool = False
2022-12-05 17:37:09 +01:00
ENABLE_FSK: bool = False
RESPOND_TO_CQ: bool = False
2022-12-04 16:56:32 +01:00
RESPOND_TO_CALL: bool = True # respond to cq, ping, connection request, file request if not in session
2023-03-06 12:48:27 +01:00
TX_DELAY: int = 0 # delay in ms before sending modulation for triggering VOX for example or slow PTT radios
2021-03-12 14:14:36 +01:00
# ---------------------------------
2020-12-23 17:48:54 +01:00
2021-03-12 14:14:36 +01:00
# Audio Defaults
TX_AUDIO_LEVEL: int = 50
AUDIO_INPUT_DEVICES: list = []
AUDIO_OUTPUT_DEVICES: list = []
AUDIO_INPUT_DEVICE: int = -2
AUDIO_OUTPUT_DEVICE: int = -2
2022-12-26 12:11:59 +01:00
AUDIO_RECORD: bool = False
AUDIO_RECORD_FILE = ''
BUFFER_OVERFLOW_COUNTER: list = [0, 0, 0, 0, 0]
2023-02-01 13:08:15 +01:00
AUDIO_AUTO_TUNE: bool = False
2023-02-14 21:28:53 +01:00
# Audio TCI Support
AUDIO_ENABLE_TCI: bool = False
TCI_IP: str = '127.0.0.1'
TCI_PORT: int = '9000'
2022-11-18 15:19:41 +01:00
AUDIO_DBFS: int = 0
FFT: list = [0]
2022-12-05 17:37:09 +01:00
ENABLE_FFT: bool = True
CHANNEL_BUSY: bool = False
# ARQ PROTOCOL VERSION
2022-12-28 17:06:55 +01:00
ARQ_PROTOCOL_VERSION: int = 5
2021-09-26 17:51:11 +02:00
# ARQ statistics
2023-01-13 00:14:42 +01:00
SPEED_LIST: list = []
ARQ_BYTES_PER_MINUTE_BURST: int = 0
ARQ_BYTES_PER_MINUTE: int = 0
ARQ_BITS_PER_SECOND_BURST: int = 0
ARQ_BITS_PER_SECOND: int = 0
ARQ_COMPRESSION_FACTOR: int = 0
ARQ_TRANSMISSION_PERCENT: int = 0
ARQ_SECONDS_UNTIL_FINISH: int = 0
ARQ_SPEED_LEVEL: int = 0
TOTAL_BYTES: int = 0
# set save to folder state for allowing downloading files to local file system
ARQ_SAVE_TO_FOLDER: bool = False
2021-02-24 16:47:52 +01:00
2022-05-23 13:11:16 +02:00
# CHANNEL_STATE = 'RECEIVING_SIGNALLING'
TNC_STATE: str = "IDLE"
ARQ_STATE: bool = False
ARQ_SESSION: bool = False
# disconnected, connecting, connected, disconnecting, failed
ARQ_SESSION_STATE: str = "disconnected"
# BEACON STATE
BEACON_STATE: bool = False
BEACON_PAUSE: bool = False
2021-09-26 17:51:11 +02:00
2020-12-30 18:16:32 +01:00
# ------- RX BUFFER
RX_MSG_BUFFER: list = []
RX_BURST_BUFFER: list = []
RX_FRAME_BUFFER: bytes = b""
RX_BUFFER_SIZE: int = 16
2020-12-26 11:02:14 +01:00
2022-05-23 13:11:16 +02:00
# ------- HEARD STATIONS BUFFER
HEARD_STATIONS: list = []
# ------- INFO MESSAGE BUFFER
2023-02-02 18:03:22 +01:00
# TODO: This can be removed?
INFO: list = []
2022-03-19 12:42:10 +01:00
# ------- CODEC2 SETTINGS
TUNING_RANGE_FMIN: float = -50.0
TUNING_RANGE_FMAX: float = 50.0
IS_CODEC2_TRAFFIC: bool = False # true if we have codec2 signalling mode traffic on channel
class FRAME_TYPE(Enum):
"""Lookup for frame types"""
BURST_01 = 10
# ...
BURST_51 = 50
2022-06-24 15:48:50 +02:00
BURST_ACK = 60
FR_ACK = 61
FR_REPEAT = 62
FR_NACK = 63
BURST_NACK = 64
CQ = 200
QRV = 201
PING = 210
PING_ACK = 211
2023-02-12 18:24:42 +01:00
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
2023-02-12 17:39:13 +01:00
FEC = 251
2022-10-21 21:59:26 +02:00
IDENT = 254
2022-06-21 02:11:07 +02:00
TEST_FRAME = 255