mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
added frames per burst selector
This commit is contained in:
parent
b7f3bf7eff
commit
a1d2d752d4
|
@ -269,7 +269,7 @@ def arq_transmit(data_out):
|
||||||
static.ARQ_N_SENT_FRAMES = 0 # SET N SENT FRAMES TO 0 FOR A NEW SENDING CYCLE
|
static.ARQ_N_SENT_FRAMES = 0 # SET N SENT FRAMES TO 0 FOR A NEW SENDING CYCLE
|
||||||
while static.ARQ_N_SENT_FRAMES <= static.TX_BUFFER_SIZE:
|
while static.ARQ_N_SENT_FRAMES <= static.TX_BUFFER_SIZE:
|
||||||
|
|
||||||
static.ARQ_TX_N_FRAMES_PER_BURST = get_n_frames_per_burst()
|
#static.ARQ_TX_N_FRAMES_PER_BURST = get_n_frames_per_burst()
|
||||||
|
|
||||||
# ----------- CREATE FRAME TOTAL PAYLOAD TO BE ABLE TO CREATE CRC FOR IT
|
# ----------- CREATE FRAME TOTAL PAYLOAD TO BE ABLE TO CREATE CRC FOR IT
|
||||||
try: # DETECT IF LAST BURST TO PREVENT INDEX ERROR OF BUFFER
|
try: # DETECT IF LAST BURST TO PREVENT INDEX ERROR OF BUFFER
|
||||||
|
@ -411,7 +411,7 @@ def arq_transmit(data_out):
|
||||||
logging.log(25, "ARQ | RX | FRAME ACK RECEIVED - DATA TRANSMITTED! :-)")
|
logging.log(25, "ARQ | RX | FRAME ACK RECEIVED - DATA TRANSMITTED! :-)")
|
||||||
break
|
break
|
||||||
|
|
||||||
elif not static.ARQ_FRAME_ACK_RECEIVED: # == False and static.ARQ_RX_FRAME_TIMEOUT == True:
|
elif not static.ARQ_FRAME_ACK_RECEIVED and time.time() > frameacktimeout: # == False and static.ARQ_RX_FRAME_TIMEOUT == True:
|
||||||
logging.error("ARQ | TX | NO FRAME ACK RECEIVED")
|
logging.error("ARQ | TX | NO FRAME ACK RECEIVED")
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ def arq_transmit(data_out):
|
||||||
# BURST MACHINE TO DEFINE N BURSTS PER FRAME ---> LATER WE CAN USE CHANNEL MESSUREMENT TO SET FRAMES PER BURST
|
# BURST MACHINE TO DEFINE N BURSTS PER FRAME ---> LATER WE CAN USE CHANNEL MESSUREMENT TO SET FRAMES PER BURST
|
||||||
def get_n_frames_per_burst():
|
def get_n_frames_per_burst():
|
||||||
#n_frames_per_burst = randrange(1,10)
|
#n_frames_per_burst = randrange(1,10)
|
||||||
n_frames_per_burst = 1
|
n_frames_per_burst = 2
|
||||||
return n_frames_per_burst
|
return n_frames_per_burst
|
||||||
|
|
||||||
|
|
||||||
|
@ -475,9 +475,18 @@ def burst_rpt_received(data_in):
|
||||||
# ############################################################################################################
|
# ############################################################################################################
|
||||||
|
|
||||||
|
|
||||||
def open_dc_and_transmit(data_out):
|
def open_dc_and_transmit(data_out, mode, n_frames):
|
||||||
if not static.ARQ_READY_FOR_DATA:
|
if not static.ARQ_READY_FOR_DATA:
|
||||||
asyncio.run(arq_open_data_channel())
|
|
||||||
|
|
||||||
|
if n_frames != 0:
|
||||||
|
static.ARQ_TX_N_FRAMES_PER_BURST = int(n_frames)
|
||||||
|
|
||||||
|
else:
|
||||||
|
static.ARQ_TX_N_FRAMES_PER_BURST = get_n_frames_per_burst()
|
||||||
|
|
||||||
|
|
||||||
|
asyncio.run(arq_open_data_channel(mode))
|
||||||
# wait until data channel is open
|
# wait until data channel is open
|
||||||
while not static.ARQ_READY_FOR_DATA:
|
while not static.ARQ_READY_FOR_DATA:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
@ -485,9 +494,16 @@ def open_dc_and_transmit(data_out):
|
||||||
arq_transmit(data_out)
|
arq_transmit(data_out)
|
||||||
|
|
||||||
|
|
||||||
async def arq_open_data_channel():
|
|
||||||
|
|
||||||
static.ARQ_DATA_CHANNEL_MODE = get_best_mode_for_transmission()
|
|
||||||
|
async def arq_open_data_channel(mode):
|
||||||
|
print(type(mode))
|
||||||
|
if mode == 0:
|
||||||
|
static.ARQ_DATA_CHANNEL_MODE = get_best_mode_for_transmission()
|
||||||
|
print(static.ARQ_DATA_CHANNEL_MODE)
|
||||||
|
else:
|
||||||
|
static.ARQ_DATA_CHANNEL_MODE = int(mode)
|
||||||
|
|
||||||
static.ARQ_DATA_CHANNEL_LAST_RECEIVED = int(time.time())
|
static.ARQ_DATA_CHANNEL_LAST_RECEIVED = int(time.time())
|
||||||
|
|
||||||
while static.CHANNEL_STATE == 'SENDING_SIGNALLING':
|
while static.CHANNEL_STATE == 'SENDING_SIGNALLING':
|
||||||
|
|
6
sock.py
6
sock.py
|
@ -118,10 +118,14 @@ class CMDTCPRequestHandler(socketserver.BaseRequestHandler):
|
||||||
|
|
||||||
data_out = bytes(received_json["data"], 'utf-8')
|
data_out = bytes(received_json["data"], 'utf-8')
|
||||||
|
|
||||||
|
mode = int(received_json["mode"])
|
||||||
|
|
||||||
|
n_frames = int(received_json["n_frames"])
|
||||||
|
|
||||||
#ARQ_DATA_THREAD = threading.Thread(target=data_handler.arq_transmit, args=[data_out], name="ARQ_DATA")
|
#ARQ_DATA_THREAD = threading.Thread(target=data_handler.arq_transmit, args=[data_out], name="ARQ_DATA")
|
||||||
#ARQ_DATA_THREAD.start()
|
#ARQ_DATA_THREAD.start()
|
||||||
|
|
||||||
ARQ_DATA_THREAD = threading.Thread(target=data_handler.open_dc_and_transmit, args=[data_out], name="ARQ_DATA")
|
ARQ_DATA_THREAD = threading.Thread(target=data_handler.open_dc_and_transmit, args=[data_out, mode, n_frames], name="ARQ_DATA")
|
||||||
ARQ_DATA_THREAD.start()
|
ARQ_DATA_THREAD.start()
|
||||||
# asyncio.run(data_handler.arq_transmit(data_out))
|
# asyncio.run(data_handler.arq_transmit(data_out))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue