2020-12-23 16:48:54 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
|
|
Created on Wed Dec 23 11:13:57 2020
|
|
|
|
|
2021-01-06 12:17:17 +00:00
|
|
|
@author: DJ2LS
|
2020-12-23 16:48:54 +00:00
|
|
|
"""
|
2021-02-08 15:33:11 +00:00
|
|
|
|
2021-02-16 13:23:57 +00:00
|
|
|
# Operator Defaults
|
2021-02-16 21:41:06 +00:00
|
|
|
MYCALLSIGN = b'AA0AA'
|
|
|
|
MYCALLSIGN_CRC8 = b'A'
|
2021-02-08 15:33:11 +00:00
|
|
|
|
2021-02-16 21:41:06 +00:00
|
|
|
DXCALLSIGN = b'AA0AA'
|
|
|
|
DXCALLSIGN_CRC8 = b'A'
|
2021-02-08 15:33:11 +00:00
|
|
|
|
2021-02-16 13:23:57 +00:00
|
|
|
MYGRID = b''
|
2021-02-19 08:50:04 +00:00
|
|
|
|
|
|
|
|
2021-02-24 15:47:52 +00:00
|
|
|
|
2021-02-19 08:58:12 +00:00
|
|
|
|
2021-02-24 13:16:29 +00:00
|
|
|
|
2021-02-19 10:08:44 +00:00
|
|
|
|
2021-02-16 13:23:57 +00:00
|
|
|
#---------------------------------
|
2021-02-08 15:33:11 +00:00
|
|
|
|
2021-02-16 13:23:57 +00:00
|
|
|
# Server Defaults
|
|
|
|
HOST = "localhost"
|
|
|
|
PORT = 3000
|
|
|
|
#---------------------------------
|
2021-02-08 15:33:11 +00:00
|
|
|
|
2021-02-19 10:08:44 +00:00
|
|
|
# HAMLIB DEFAULTS
|
|
|
|
|
|
|
|
#RIG_PTT_NONE
|
|
|
|
#No PTT available
|
|
|
|
|
|
|
|
#RIG_PTT_RIG
|
|
|
|
#Legacy PTT
|
|
|
|
|
|
|
|
#RIG_PTT_SERIAL_DTR
|
|
|
|
#PTT control through serial DTR signal
|
|
|
|
|
|
|
|
#RIG_PTT_SERIAL_RTS
|
|
|
|
#PTT control through serial RTS signal
|
|
|
|
|
|
|
|
#RIG_PTT_PARALLEL
|
|
|
|
#PTT control through parallel port
|
|
|
|
|
|
|
|
#RIG_PTT_RIG_MICDATA
|
|
|
|
#Legacy PTT, supports RIG_PTT_ON_MIC/RIG_PTT_ON_DATA
|
|
|
|
|
|
|
|
#RIG_PTT_CM108
|
|
|
|
#PTT control through CM108 GPIO pin
|
|
|
|
|
|
|
|
HAMLIB_PTT_TYPE = 'RIG_PTT_NONE'
|
2021-02-24 13:16:29 +00:00
|
|
|
PTT_STATE = False
|
2021-02-19 10:08:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#-------------------------
|
2020-12-23 16:48:54 +00:00
|
|
|
# FreeDV Defaults
|
2021-02-05 13:40:32 +00:00
|
|
|
FREEDV_RECEIVE = True
|
2021-01-06 12:17:17 +00:00
|
|
|
|
2021-02-28 14:24:14 +00:00
|
|
|
FREEDV_DATA_MODE = 12
|
2021-02-04 14:25:15 +00:00
|
|
|
FREEDV_SIGNALLING_MODE = 14
|
2021-01-06 12:17:17 +00:00
|
|
|
|
2021-01-20 21:51:14 +00:00
|
|
|
FREEDV_DATA_BYTES_PER_FRAME = 0
|
|
|
|
FREEDV_DATA_PAYLOAD_PER_FRAME = 0
|
|
|
|
FREEDV_SIGNALLING_BYTES_PER_FRAME = 0
|
|
|
|
FREEDV_SIGNALLING_PAYLOAD_PER_FRAME = 0
|
2021-02-24 13:16:29 +00:00
|
|
|
|
2021-02-28 18:34:36 +00:00
|
|
|
BER = 0
|
2021-02-16 13:23:57 +00:00
|
|
|
#---------------------------------
|
2020-12-23 16:48:54 +00:00
|
|
|
|
2021-02-16 13:23:57 +00:00
|
|
|
#Audio Defaults
|
2020-12-23 16:48:54 +00:00
|
|
|
AUDIO_INPUT_DEVICE = 1
|
|
|
|
AUDIO_OUTPUT_DEVICE = 1
|
2021-02-04 16:51:01 +00:00
|
|
|
#TX_SAMPLE_STATE = None
|
|
|
|
#RX_SAMPLE_STATE = None
|
2021-01-07 08:28:26 +00:00
|
|
|
|
2021-02-04 16:51:01 +00:00
|
|
|
#AUDIO_SAMPLE_RATE_RX = 44100
|
|
|
|
#AUDIO_SAMPLE_RATE_TX = 44100
|
2021-01-07 08:28:26 +00:00
|
|
|
MODEM_SAMPLE_RATE = 8000 #8000
|
2021-01-06 12:17:17 +00:00
|
|
|
AUDIO_FRAMES_PER_BUFFER = 2048
|
2020-12-23 16:48:54 +00:00
|
|
|
AUDIO_CHANNELS = 1
|
2021-02-16 13:23:57 +00:00
|
|
|
#---------------------------------
|
2020-12-25 21:55:56 +00:00
|
|
|
|
2021-02-16 13:23:57 +00:00
|
|
|
#ARQ DEFAULTS
|
2021-02-24 13:16:29 +00:00
|
|
|
TX_N_MAX_RETRIES = 5
|
2021-01-20 21:51:14 +00:00
|
|
|
TX_N_RETRIES = 0
|
2021-01-20 22:42:45 +00:00
|
|
|
|
2021-01-20 21:51:14 +00:00
|
|
|
ARQ_TX_N_FRAMES_PER_BURST = 0
|
|
|
|
ARQ_TX_N_BURSTS = 0
|
|
|
|
|
2020-12-28 14:20:51 +00:00
|
|
|
ARQ_PAYLOAD_PER_FRAME = 0
|
2021-02-16 13:23:57 +00:00
|
|
|
|
2020-12-29 20:21:28 +00:00
|
|
|
ARQ_RX_BURST_BUFFER = []
|
|
|
|
ARQ_RX_FRAME_BUFFER = []
|
2020-12-30 17:16:32 +00:00
|
|
|
ARQ_RX_FRAME_N_BURSTS = 0
|
2021-02-04 16:51:01 +00:00
|
|
|
|
2021-02-05 13:40:32 +00:00
|
|
|
## TX
|
|
|
|
ARQ_TX_N_CURRENT_ARQ_FRAME = 0
|
|
|
|
ARQ_TX_N_TOTAL_ARQ_FRAMES = 0
|
|
|
|
##
|
|
|
|
|
|
|
|
## RX
|
2021-02-04 16:51:01 +00:00
|
|
|
ARQ_N_ARQ_FRAMES_PER_DATA_FRAME = 0 #total number of arq frames per data frame
|
2021-02-05 13:40:32 +00:00
|
|
|
ARQ_RX_N_CURRENT_ARQ_FRAME = 0
|
|
|
|
##
|
|
|
|
|
|
|
|
ARQ_N_RX_ARQ_FRAMES = 0 # total number of received frames
|
2021-01-21 20:00:21 +00:00
|
|
|
ARQ_N_RX_FRAMES_PER_BURSTS = 0 # NUMBER OF FRAMES WE ARE WAITING FOR --> GOT DATA FROM RECEIVED FRAME
|
2021-02-04 14:25:15 +00:00
|
|
|
ARQ_ACK_PAYLOAD_PER_FRAME = 0 # PAYLOAD per ACK frame
|
2021-01-06 12:17:17 +00:00
|
|
|
|
2021-02-09 13:27:36 +00:00
|
|
|
ARQ_ACK_RECEIVED = False # set to 1 if ACK received
|
|
|
|
ARQ_RX_ACK_TIMEOUT = False # set to 1 if timeut reached
|
2021-02-16 13:23:57 +00:00
|
|
|
ARQ_RX_ACK_TIMEOUT_SECONDS = 10.0 #timeout for waiting for ACK frames
|
2021-02-10 14:05:03 +00:00
|
|
|
|
|
|
|
ARQ_FRAME_ACK_RECEIVED = False # set to 1 if FRAME ACK received
|
|
|
|
ARQ_RX_FRAME_TIMEOUT = False
|
2021-02-16 13:23:57 +00:00
|
|
|
ARQ_RX_FRAME_TIMEOUT_SECONDS = 10.0
|
2021-02-10 14:05:03 +00:00
|
|
|
|
2021-02-09 13:27:36 +00:00
|
|
|
|
|
|
|
ARQ_RX_RPT_TIMEOUT = False
|
2021-02-16 13:23:57 +00:00
|
|
|
ARQ_RX_RPT_TIMEOUT_SECONDS = 10.0
|
2021-02-08 18:00:12 +00:00
|
|
|
ARQ_RPT_RECEIVED = False #indicate if RPT frame has been received
|
2021-02-09 13:27:36 +00:00
|
|
|
ARQ_RPT_FRAMES = [] #buffer for frames which are requested to repeat
|
2021-02-08 18:00:12 +00:00
|
|
|
|
2020-12-29 20:21:28 +00:00
|
|
|
FRAME_CRC = b''
|
2021-02-04 14:25:15 +00:00
|
|
|
FRAME_BOF = b'\xAA\xAA' #here we define 2 bytes for the BOF
|
|
|
|
FRAME_EOF = b'\xFF\xFF' #here we define 2 bytes for the EOF
|
|
|
|
ARQ_FRAME_BOF_RECEIVED = False # status, if we received a BOF of a data frame
|
|
|
|
ARQ_FRAME_EOF_RECEIVED = False # status, if we received a EOF of a data frame
|
2020-12-28 14:20:51 +00:00
|
|
|
|
2021-02-04 14:25:15 +00:00
|
|
|
ARQ_N_SENT_FRAMES = 0 #counter for already sent frames
|
2021-01-02 08:41:58 +00:00
|
|
|
|
|
|
|
|
2021-01-20 13:31:28 +00:00
|
|
|
# ARQ STATES:
|
|
|
|
# IDLE
|
|
|
|
# RECEIVING_DATA
|
|
|
|
# SENDING_DATA
|
2021-02-09 13:27:36 +00:00
|
|
|
# RECEIVING_SIGNALLING
|
2021-01-20 13:31:28 +00:00
|
|
|
# SENDING_ACK
|
2021-01-20 22:42:45 +00:00
|
|
|
# ACK_RECEIVED
|
2021-02-24 15:47:52 +00:00
|
|
|
|
2021-02-24 13:16:29 +00:00
|
|
|
# CONNECTED
|
|
|
|
# DISCONNECTED
|
2021-02-24 15:47:52 +00:00
|
|
|
# CONNECTING
|
2021-02-24 13:16:29 +00:00
|
|
|
# DISCONNECTING
|
2021-02-24 16:29:08 +00:00
|
|
|
ARQ_STATE = 'IDLE'
|
2020-12-30 17:16:32 +00:00
|
|
|
|
2021-02-24 15:47:52 +00:00
|
|
|
# RECEIVING_SIGNALLING
|
|
|
|
# RECEIVING_DATA_10
|
|
|
|
# RECEIVING_DATA_11
|
|
|
|
# RECEIVING_DATA_12
|
|
|
|
CHANNEL_STATE = 'RECEIVING_SIGNALLING'
|
|
|
|
|
|
|
|
# IDLE
|
2021-02-28 14:24:14 +00:00
|
|
|
# BUSY
|
2021-02-24 16:41:14 +00:00
|
|
|
TNC_STATE = 'IDLE'
|
2021-02-24 15:47:52 +00:00
|
|
|
|
2021-02-28 14:24:14 +00:00
|
|
|
# MODE FOR SENDING AN RECEIVING DATA DURING ARQ SESSION
|
|
|
|
# 0 = NOT WAITING FOR DATA
|
|
|
|
# 1 = TELL DX STATION WE WANT TO SEND DATA
|
|
|
|
# 2 = DX STATION IS READY FOR DATA
|
|
|
|
# 3 = DX STATION SAID, THEY ARE READY FOR DATA
|
|
|
|
ARQ_READY_FOR_DATA = False
|
|
|
|
ARQ_DATA_CHANNEL_MODE = 12
|
|
|
|
|
|
|
|
# SEND KEEP ALIVE ONLY IF WE WANT
|
|
|
|
ARQ_SEND_KEEP_ALIVE = True
|
2021-02-28 16:28:07 +00:00
|
|
|
#ARQ_WAIT_FOR_DISCONNECT = False
|
2021-02-24 15:47:52 +00:00
|
|
|
|
2020-12-26 10:02:14 +00:00
|
|
|
# ------- TX BUFFER
|
|
|
|
TX_BUFFER_SIZE = 0
|
2021-01-20 21:51:14 +00:00
|
|
|
TX_BUFFER = []
|
2020-12-30 17:16:32 +00:00
|
|
|
# ------- RX BUFFER
|
|
|
|
RX_BUFFER = []
|
2021-01-20 21:51:14 +00:00
|
|
|
RX_BUFFER_SIZE = 0
|
2020-12-26 10:02:14 +00:00
|
|
|
|