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-----------------------------------------------
|
# TRANSMIT ACK FRAME FOR BURST-----------------------------------------------
|
||||||
logging.info("ARQ | TX | ARQ DATA FRAME ACK [" + str(data_frame_crc.hex()) + "] [SNR:" + str(static.SNR) + "]")
|
logging.info("ARQ | TX | ARQ DATA FRAME ACK [" + str(data_frame_crc.hex()) + "] [SNR:" + str(static.SNR) + "]")
|
||||||
|
|
||||||
helpers.wait(1)
|
#helpers.wait(1)
|
||||||
modem.transmit_signalling(ack_frame, 1)
|
# since simultaneous decoding it seems, we don't have to wait anymore
|
||||||
|
|
||||||
while static.CHANNEL_STATE == 'SENDING_SIGNALLING':
|
while not modem.transmit_signalling(ack_frame, 1):
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
|
|
||||||
#arq_reset_frame_machine()
|
#arq_reset_frame_machine()
|
||||||
static.TNC_STATE = 'IDLE'
|
static.TNC_STATE = 'IDLE'
|
||||||
static.ARQ_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:
|
if sync != 0 and nbytes != 0:
|
||||||
|
|
||||||
# calculate snr and scatter
|
# calculate snr and scatter
|
||||||
#self.get_scatter(datac0_freedv)
|
self.get_scatter(datac0_freedv)
|
||||||
self.calculate_snr(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])
|
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:
|
if sync != 0 and nbytes != 0:
|
||||||
|
|
||||||
# calculate snr and scatter
|
# calculate snr and scatter
|
||||||
#self.get_scatter(datac1_freedv)
|
self.get_scatter(datac1_freedv)
|
||||||
self.calculate_snr(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])
|
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:
|
if sync != 0 and nbytes != 0:
|
||||||
|
|
||||||
# calculate snr and scatter
|
# calculate snr and scatter
|
||||||
self.get_scatter(datac3_freedv)
|
#self.get_scatter(datac3_freedv)
|
||||||
self.calculate_snr(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])
|
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))
|
self.c_lib.freedv_get_modem_extended_stats(freedv, ctypes.byref(modemStats))
|
||||||
|
|
||||||
scatterdata = []
|
scatterdata = []
|
||||||
|
scatterdata_small = []
|
||||||
for i in range(MODEM_STATS_NC_MAX):
|
for i in range(MODEM_STATS_NC_MAX):
|
||||||
for j in range(MODEM_STATS_NR_MAX):
|
for j in range(MODEM_STATS_NR_MAX):
|
||||||
# check if odd or not to get every 2nd item for x
|
# check if odd or not to get every 2nd item for x
|
||||||
if (j % 2) == 0:
|
if (j % 2) == 0:
|
||||||
xsymbols = modemStats.rx_symbols[i][j]
|
xsymbols = round(modemStats.rx_symbols[i][j])
|
||||||
ysymbols = modemStats.rx_symbols[i][j+1]
|
ysymbols = round(modemStats.rx_symbols[i][j+1])
|
||||||
# check if value 0.0 or has real data
|
# check if value 0.0 or has real data
|
||||||
if xsymbols != 0.0 and ysymbols != 0.0:
|
if xsymbols != 0.0 and ysymbols != 0.0:
|
||||||
scatterdata.append({"x": xsymbols, "y": ysymbols})
|
scatterdata.append({"x": xsymbols, "y": ysymbols})
|
||||||
|
|
||||||
# only append scatter data if new data arrived
|
# only append scatter data if new data arrived
|
||||||
if len(scatterdata) > 0:
|
|
||||||
|
if 150 > len(scatterdata) > 0:
|
||||||
static.SCATTER = scatterdata
|
static.SCATTER = scatterdata
|
||||||
|
else:
|
||||||
|
scatterdata_small = scatterdata[::10]
|
||||||
|
static.SCATTER = scatterdata_small
|
||||||
|
|
||||||
def calculate_ber(self, freedv):
|
def calculate_ber(self, freedv):
|
||||||
Tbits = self.c_lib.freedv_get_total_bits(freedv)
|
Tbits = self.c_lib.freedv_get_total_bits(freedv)
|
||||||
|
|
Loading…
Reference in a new issue