mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
scatter point reduction
one step towards less network data
This commit is contained in:
parent
9035a6e6f4
commit
c8ee5e2ff2
|
@ -234,12 +234,13 @@ def arq_data_received(data_in, bytes_per_frame):
|
|||
# TRANSMIT ACK FRAME FOR BURST-----------------------------------------------
|
||||
logging.info("ARQ | TX | ARQ DATA FRAME ACK [" + str(data_frame_crc.hex()) + "] [SNR:" + str(static.SNR) + "]")
|
||||
|
||||
helpers.wait(1)
|
||||
modem.transmit_signalling(ack_frame, 1)
|
||||
|
||||
while static.CHANNEL_STATE == 'SENDING_SIGNALLING':
|
||||
#helpers.wait(1)
|
||||
# since simultaneous decoding it seems, we don't have to wait anymore
|
||||
|
||||
while not modem.transmit_signalling(ack_frame, 1):
|
||||
time.sleep(0.01)
|
||||
|
||||
|
||||
#arq_reset_frame_machine()
|
||||
static.TNC_STATE = 'IDLE'
|
||||
static.ARQ_STATE = 'IDLE'
|
||||
|
|
17
tnc/modem.py
17
tnc/modem.py
|
@ -476,7 +476,7 @@ class RF():
|
|||
if sync != 0 and nbytes != 0:
|
||||
|
||||
# calculate snr and scatter
|
||||
#self.get_scatter(datac0_freedv)
|
||||
self.get_scatter(datac0_freedv)
|
||||
self.calculate_snr(datac0_freedv)
|
||||
|
||||
datac0_task = threading.Thread(target=self.process_data, args=[datac0_bytes_out, datac0_freedv, datac0_bytes_per_frame])
|
||||
|
@ -495,7 +495,7 @@ class RF():
|
|||
if sync != 0 and nbytes != 0:
|
||||
|
||||
# calculate snr and scatter
|
||||
#self.get_scatter(datac1_freedv)
|
||||
self.get_scatter(datac1_freedv)
|
||||
self.calculate_snr(datac1_freedv)
|
||||
|
||||
datac1_task = threading.Thread(target=self.process_data, args=[datac1_bytes_out, datac1_freedv, datac1_bytes_per_frame])
|
||||
|
@ -514,7 +514,7 @@ class RF():
|
|||
if sync != 0 and nbytes != 0:
|
||||
|
||||
# calculate snr and scatter
|
||||
self.get_scatter(datac3_freedv)
|
||||
#self.get_scatter(datac3_freedv)
|
||||
self.calculate_snr(datac3_freedv)
|
||||
|
||||
datac3_task = threading.Thread(target=self.process_data, args=[datac3_bytes_out, datac3_freedv, datac3_bytes_per_frame])
|
||||
|
@ -621,19 +621,24 @@ class RF():
|
|||
self.c_lib.freedv_get_modem_extended_stats(freedv, ctypes.byref(modemStats))
|
||||
|
||||
scatterdata = []
|
||||
scatterdata_small = []
|
||||
for i in range(MODEM_STATS_NC_MAX):
|
||||
for j in range(MODEM_STATS_NR_MAX):
|
||||
# check if odd or not to get every 2nd item for x
|
||||
if (j % 2) == 0:
|
||||
xsymbols = modemStats.rx_symbols[i][j]
|
||||
ysymbols = modemStats.rx_symbols[i][j+1]
|
||||
xsymbols = round(modemStats.rx_symbols[i][j])
|
||||
ysymbols = round(modemStats.rx_symbols[i][j+1])
|
||||
# check if value 0.0 or has real data
|
||||
if xsymbols != 0.0 and ysymbols != 0.0:
|
||||
scatterdata.append({"x": xsymbols, "y": ysymbols})
|
||||
|
||||
# only append scatter data if new data arrived
|
||||
if len(scatterdata) > 0:
|
||||
|
||||
if 150 > len(scatterdata) > 0:
|
||||
static.SCATTER = scatterdata
|
||||
else:
|
||||
scatterdata_small = scatterdata[::10]
|
||||
static.SCATTER = scatterdata_small
|
||||
|
||||
def calculate_ber(self, freedv):
|
||||
Tbits = self.c_lib.freedv_get_total_bits(freedv)
|
||||
|
|
Loading…
Reference in a new issue