mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
removed buffer management for N>1 frames per burst
I decided removing this from the code and keeping everything simple for N=1 frames per burst. N>1 frames per burst need a completely rethinking of buffer management.
This commit is contained in:
parent
6a4fe14377
commit
3a072a63a6
|
@ -296,12 +296,10 @@ def arq_transmit(data_out:bytes, mode:int, n_frames_per_burst:int):
|
||||||
|
|
||||||
#initial bufferposition is 0
|
#initial bufferposition is 0
|
||||||
bufferposition = 0
|
bufferposition = 0
|
||||||
bufferposition_burst = 0
|
|
||||||
|
|
||||||
# iterate through data out buffer
|
# iterate through data out buffer
|
||||||
while bufferposition < len(data_out) and not DATA_FRAME_ACK_RECEIVED and static.ARQ_STATE:
|
while bufferposition < len(data_out) and not DATA_FRAME_ACK_RECEIVED and static.ARQ_STATE:
|
||||||
# tempbuffer list for storing our data frames
|
|
||||||
tempbuffer = []
|
|
||||||
|
|
||||||
|
|
||||||
# we have TX_N_MAX_RETRIES_PER_BURST attempts for sending a burst
|
# we have TX_N_MAX_RETRIES_PER_BURST attempts for sending a burst
|
||||||
|
@ -332,10 +330,15 @@ def arq_transmit(data_out:bytes, mode:int, n_frames_per_burst:int):
|
||||||
# payload information
|
# payload information
|
||||||
payload_per_frame = modem.get_bytes_per_frame(data_mode) -2
|
payload_per_frame = modem.get_bytes_per_frame(data_mode) -2
|
||||||
|
|
||||||
|
# tempbuffer list for storing our data frames
|
||||||
|
tempbuffer = []
|
||||||
|
|
||||||
# append data frames with TX_N_FRAMES_PER_BURST to tempbuffer
|
# append data frames with TX_N_FRAMES_PER_BURST to tempbuffer
|
||||||
for i in range(0, TX_N_FRAMES_PER_BURST):
|
# this part ineeds to a completly rewrite!
|
||||||
|
# TX_NF_RAMES_PER_BURST = 1 is working
|
||||||
|
|
||||||
arqheader = bytearray()
|
arqheader = bytearray()
|
||||||
arqheader[:1] = bytes([10 + i])
|
arqheader[:1] = bytes([10]) #bytes([10 + i])
|
||||||
arqheader[1:2] = bytes([TX_N_FRAMES_PER_BURST])
|
arqheader[1:2] = bytes([TX_N_FRAMES_PER_BURST])
|
||||||
arqheader[3:4] = bytes(static.DXCALLSIGN_CRC8)
|
arqheader[3:4] = bytes(static.DXCALLSIGN_CRC8)
|
||||||
arqheader[4:5] = bytes(static.MYCALLSIGN_CRC8)
|
arqheader[4:5] = bytes(static.MYCALLSIGN_CRC8)
|
||||||
|
@ -358,8 +361,6 @@ def arq_transmit(data_out:bytes, mode:int, n_frames_per_burst:int):
|
||||||
extended_data_out += bytes([0]) * (payload_per_frame-len(extended_data_out)-len(arqheader))
|
extended_data_out += bytes([0]) * (payload_per_frame-len(extended_data_out)-len(arqheader))
|
||||||
frame = arqheader + extended_data_out
|
frame = arqheader + extended_data_out
|
||||||
|
|
||||||
# update the bufferposition
|
|
||||||
bufferposition = bufferposition_end
|
|
||||||
|
|
||||||
# append frame to tempbuffer for transmission
|
# append frame to tempbuffer for transmission
|
||||||
tempbuffer.append(frame)
|
tempbuffer.append(frame)
|
||||||
|
|
Loading…
Reference in a new issue