fixed a bug in callsign parsing

This commit is contained in:
DJ2LS 2022-12-05 16:57:45 +01:00
parent 02c08a71a8
commit 9468ceb6fc
2 changed files with 22 additions and 10 deletions

View file

@ -239,13 +239,15 @@ class DATA:
# Dispatch commands that need more arguments. # Dispatch commands that need more arguments.
elif data[0] == "CONNECT": elif data[0] == "CONNECT":
# [1] dxcallsign # [1] mycallsign
# [2] attempts # [2] dxcallsign
# [3] attempts
self.arq_session_handler(data[1], data[2], data[3]) self.arq_session_handler(data[1], data[2], data[3])
elif data[0] == "PING": elif data[0] == "PING":
# [1] dxcallsign # [1] mycallsign
self.transmit_ping(data[1]) # [2] dxcallsign
self.transmit_ping(data[1], data[2])
elif data[0] == "BEACON": elif data[0] == "BEACON":
# [1] INTERVAL int # [1] INTERVAL int
@ -2183,10 +2185,11 @@ class DATA:
self.arq_cleanup() self.arq_cleanup()
# ---------- PING # ---------- PING
def transmit_ping(self, dxcallsign: bytes) -> None: def transmit_ping(self, mycallsign: bytes, dxcallsign: bytes) -> None:
""" """
Funktion for controlling pings Funktion for controlling pings
Args: Args:
mycallsign:bytes:
dxcallsign:bytes: dxcallsign:bytes:
""" """
@ -2200,7 +2203,7 @@ class DATA:
self.send_data_to_socket_queue(freedata="tnc-message", ping="transmitting") self.send_data_to_socket_queue(freedata="tnc-message", ping="transmitting")
self.log.info( self.log.info(
"[TNC] PING REQ [" "[TNC] PING REQ ["
+ str(self.mycallsign, "UTF-8") + str(mycallsign, "UTF-8")
+ "] >>> [" + "] >>> ["
+ str(dxcallsign, "UTF-8") + str(dxcallsign, "UTF-8")
+ "]" + "]"
@ -2210,7 +2213,7 @@ class DATA:
ping_frame[:1] = bytes([FR_TYPE.PING.value]) ping_frame[:1] = bytes([FR_TYPE.PING.value])
ping_frame[1:4] = static.DXCALLSIGN_CRC ping_frame[1:4] = static.DXCALLSIGN_CRC
ping_frame[4:7] = static.MYCALLSIGN_CRC ping_frame[4:7] = static.MYCALLSIGN_CRC
ping_frame[7:13] = helpers.callsign_to_bytes(self.mycallsign) ping_frame[7:13] = helpers.callsign_to_bytes(mycallsign)
self.log.info("[TNC] ENABLE FSK", state=static.ENABLE_FSK) self.log.info("[TNC] ENABLE FSK", state=static.ENABLE_FSK)
if static.ENABLE_FSK: if static.ENABLE_FSK:

View file

@ -333,13 +333,22 @@ def process_tnc_commands(data):
if not str(dxcallsign).strip(): if not str(dxcallsign).strip():
raise NoCallsign raise NoCallsign
# additional step for beeing sure our callsign is correctly # additional step for being sure our callsign is correctly
# in case we are not getting a station ssid # in case we are not getting a station ssid
# then we are forcing a station ssid = 0 # then we are forcing a station ssid = 0
dxcallsign = helpers.callsign_to_bytes(dxcallsign) dxcallsign = helpers.callsign_to_bytes(dxcallsign)
dxcallsign = helpers.bytes_to_callsign(dxcallsign) dxcallsign = helpers.bytes_to_callsign(dxcallsign)
DATA_QUEUE_TRANSMIT.put(["PING", dxcallsign]) # check if specific callsign is set with different SSID than the TNC is initialized
try:
mycallsign = received_json["mycallsign"]
mycallsign = helpers.callsign_to_bytes(mycallsign)
mycallsign = helpers.bytes_to_callsign(mycallsign)
except Exception:
mycallsign = static.MYCALLSIGN
DATA_QUEUE_TRANSMIT.put(["PING", mycallsign, dxcallsign])
command_response("ping", True) command_response("ping", True)
except NoCallsign: except NoCallsign:
command_response("ping", False) command_response("ping", False)
@ -367,7 +376,7 @@ def process_tnc_commands(data):
# check if specific callsign is set with different SSID than the TNC is initialized # check if specific callsign is set with different SSID than the TNC is initialized
try: try:
mycallsign = received_json["parameter"][0]["mycallsign"] mycallsign = received_json["mycallsign"]
mycallsign = helpers.callsign_to_bytes(mycallsign) mycallsign = helpers.callsign_to_bytes(mycallsign)
mycallsign = helpers.bytes_to_callsign(mycallsign) mycallsign = helpers.bytes_to_callsign(mycallsign)