From 2fd8f5f6f7749a95f35583c2d6facdf020b80383 Mon Sep 17 00:00:00 2001 From: DJ2LS <75909252+DJ2LS@users.noreply.github.com> Date: Sat, 6 Feb 2021 17:55:14 +0100 Subject: [PATCH] support for large data --- tnc.py | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/tnc.py b/tnc.py index c5f07995..f0785dd4 100644 --- a/tnc.py +++ b/tnc.py @@ -19,10 +19,19 @@ import arq class TCPRequestHandler(socketserver.BaseRequestHandler): def handle(self): + + self.data = bytes() + while True: + chunk = self.request.recv(8192)#.strip() + if chunk.endswith(b'\n'): + break + + self.data += chunk + # self.request is the TCP socket connected to the client - self.data = self.request.recv(1024).strip() - + #self.data = self.request.recv(1024).strip() +### self.data = self.request.recv(1000000).strip() # interrupt listening loop "while true" by setting MODEM_RECEIVE to False #if len(self.data) > 0: @@ -37,29 +46,31 @@ class TCPRequestHandler(socketserver.BaseRequestHandler): #if self.data == b'TEST': #logging.info("DER TEST KLAPPT! HIER KOMMT DER COMMAND PARSER HIN!") - + if self.data.startswith(b'SHOWBUFFERSIZE'): + self.request.sendall(bytes(static.RX_BUFFER[-1])) + print(static.RX_BUFFER_SIZE) + # BROADCAST PARSER ----------------------------------------------------------- if self.data.startswith(b'BC:'): #import modem #modem = modem.RF() - - static.MODEM_RECEIVE = True ####### FALSE.... - + data = self.data.split(b'BC:') #modem.Transmit(data[1]) - - static.MODEM_RECEIVE = True + # SEND AN ARQ FRAME ----------------------------------------------------------- - if self.data.startswith(b'ACK:'): - static.MODEM_RECEIVE = True ############## FALSE + if self.data.startswith(b'ARQ:'): - data = self.data.split(b'ACK:') + data = self.data.split(b'ARQ:') data_out = data[1] - - arq.transmit(data_out) + + #arq.transmit(data_out) + + TRANSMIT_ARQ = threading.Thread(target=arq.transmit, args=[data_out], name="TRANSMIT_ARQ") + TRANSMIT_ARQ.start() - \ No newline at end of file +