scatter point reduction

one step towards less network data
This commit is contained in:
DJ2LS 2021-09-30 21:49:22 +02:00
parent 9035a6e6f4
commit c8ee5e2ff2
2 changed files with 16 additions and 10 deletions

View file

@ -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'

View file

@ -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)