transmission progress

This commit is contained in:
DJ2LS 2021-08-14 20:00:32 +02:00 committed by GitHub
parent 56c211b089
commit 5efe491881
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 25 deletions

View file

@ -392,6 +392,7 @@ def arq_transmit(data_out):
elif static.ARQ_ACK_RECEIVED:
transfer_rates = helpers.calculate_transfer_rate()
logging.info("ARQ | RX | ACK [" + str(transfer_rates[2]) + " bit/s | " + str(transfer_rates[3]) + " B/min]")
# -----------IF ACK RECEIVED, INCREMENT ITERATOR FOR MAIN LOOP TO PROCEED WITH NEXT FRAMES/BURST
static.ARQ_N_SENT_FRAMES = static.ARQ_N_SENT_FRAMES + static.ARQ_TX_N_FRAMES_PER_BURST
break
@ -598,11 +599,7 @@ def arq_received_data_channel_opener(data_in):
connection_frame[3:9] = static.MYCALLSIGN
connection_frame[12:13] = bytes([static.ARQ_DATA_CHANNEL_MODE])
# wait before sending so we can sure, other station is ready for TX
wait_until_transmit = time.time() + static.TIME_BETWEEN_RX_TX
while time.time() < wait_until_transmit:
pass
modem.transmit_signalling(connection_frame)
#modem.transmit_signalling(connection_frame)
while static.CHANNEL_STATE == 'SENDING_SIGNALLING':
@ -672,12 +669,7 @@ def received_ping(data_in):
ping_frame[1:2] = static.DXCALLSIGN_CRC8
ping_frame[2:3] = static.MYCALLSIGN_CRC8
ping_frame[3:9] = static.MYGRID
# wait before sending so we can sure, other station is ready for TX
wait_until_transmit = time.time() + static.TIME_BETWEEN_RX_TX
while time.time() < wait_until_transmit:
pass
# wait while sending....
modem.transmit_signalling(ping_frame)
#modem.transmit_signalling(ping_frame)

View file

@ -15,6 +15,13 @@ import crcengine
import static
import data_handler
def timeout(seconds):
timeout = time.time() + seconds
while time.time() < timeout:
time.sleep(0.01)
def get_crc_8(data):
"""
@ -124,26 +131,37 @@ def arq_reset_frame_machine():
def calculate_transfer_rate():
if static.ARQ_TX_N_TOTAL_ARQ_FRAMES == 0:
total_n_frames = static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME
elif static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME == 0:
total_n_frames = int.from_bytes(static.ARQ_TX_N_TOTAL_ARQ_FRAMES, "big")
if static.ARQ_TX_N_TOTAL_ARQ_FRAMES == 0:
total_n_frames = static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME
elif static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME == 0:
total_n_frames = int.from_bytes(static.ARQ_TX_N_TOTAL_ARQ_FRAMES, "big")
total_bytes = (total_n_frames * static.ARQ_PAYLOAD_PER_FRAME)
total_transmission_time = time.time() - static.ARQ_START_OF_TRANSMISSION
static.TOTAL_BYTES = (total_n_frames * static.ARQ_PAYLOAD_PER_FRAME)
total_transmission_time = time.time() - static.ARQ_START_OF_TRANSMISSION
burst_bytes = static.ARQ_PAYLOAD_PER_FRAME
burst_transmission_time = time.time() - static.ARQ_START_OF_BURST
burst_bytes = static.ARQ_PAYLOAD_PER_FRAME
burst_transmission_time = time.time() - static.ARQ_START_OF_BURST
static.ARQ_BITS_PER_SECOND_TRANSMISSION = int((total_bytes * 8) / total_transmission_time)
static.ARQ_BYTES_PER_MINUTE_TRANSMISSION = int(((total_bytes) / total_transmission_time) * 60)
static.ARQ_BITS_PER_SECOND = int((static.TOTAL_BYTES * 8) / total_transmission_time)
static.ARQ_BYTES_PER_MINUTE = int(((static.TOTAL_BYTES) / total_transmission_time) * 60)
static.ARQ_BITS_PER_SECOND_BURST = int((burst_bytes * 8) / burst_transmission_time)
static.ARQ_BYTES_PER_MINUTE_BURST = int(((burst_bytes) / burst_transmission_time) * 60)
static.ARQ_BITS_PER_SECOND_BURST = int((burst_bytes * 8) / burst_transmission_time)
static.ARQ_BYTES_PER_MINUTE_BURST = int(((burst_bytes) / burst_transmission_time) * 60)
return [static.ARQ_BITS_PER_SECOND_TRANSMISSION, static.ARQ_BYTES_PER_MINUTE_TRANSMISSION, static.ARQ_BITS_PER_SECOND_BURST, static.ARQ_BYTES_PER_MINUTE_BURST]
# calculate transmission percentage
if int(static.ARQ_TX_N_TOTAL_ARQ_FRAMES) > 0:
static.ARQ_TRANSMISSION_PERCENT = int(static.ARQ_TX_N_CURRENT_ARQ_FRAME) / int(static.ARQ_TX_N_TOTAL_ARQ_FRAMES)
elif int(static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME) > 0:
static.ARQ_TRANSMISSION_PERCENT = int(static.ARQ_RX_N_CURRENT_ARQ_FRAME) / int(static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME)
else:
static.ARQ_TRANSMISSION_PERCENT = 0.0
return [static.ARQ_BITS_PER_SECOND, static.ARQ_BYTES_PER_MINUTE, static.ARQ_BITS_PER_SECOND_BURST, static.ARQ_BYTES_PER_MINUTE_BURST]

View file

@ -195,6 +195,10 @@ class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
"ARQ_RX_FRAME_N_BURSTS": str(static.ARQ_RX_FRAME_N_BURSTS),
"ARQ_RX_N_CURRENT_ARQ_FRAME": str(static.ARQ_RX_N_CURRENT_ARQ_FRAME),
"ARQ_N_ARQ_FRAMES_PER_DATA_FRAME": str(static.ARQ_N_ARQ_FRAMES_PER_DATA_FRAME),
"ARQ_BYTES_PER_MINUTE" : str(static.ARQ_BYTES_PER_MINUTE),
"ARQ_TRANSMISSION_PERCENT" : str(static.ARQ_TRANSMISSION_PERCENT),
"TOTAL_BYTES" : str(static.TOTAL_BYTES),
"STATIONS" : [],
"EOF" : "EOF",
}

View file

@ -182,6 +182,8 @@ ARQ_START_OF_BURST = 0
#ARQ_END_OF_TRANSMISSION = 0
ARQ_BITS_PER_SECOND = 0
ARQ_BYTES_PER_MINUTE = 0
ARQ_TRANSMISSION_PERCENT = 0
TOTAL_BYTES = 0
# ------- TX BUFFER
TX_BUFFER_SIZE = 0