Merge pull request #137 from KoenigMjr/bugfix/fieldnotfound
Some checks failed
build_docs / Build documentation (push) Has been cancelled
CodeQL / CodeQL-Build (push) Has been cancelled
pytest / build (ubuntu-latest, 3.10) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.11) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.12) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.13) (push) Has been cancelled
pytest / build (ubuntu-latest, 3.9) (push) Has been cancelled
build_docs / deploy (push) Has been cancelled

bugfix: Behebung der "[WARNING ] field not found" im Log
This commit is contained in:
Bastian Schroll 2025-08-08 13:49:18 +02:00 committed by GitHub
commit a1cb545c39
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -10,7 +10,7 @@ r"""!
by Bastian Schroll
@file: wildcard.py
@date: 15.01.2018
@date: 23.07.2025
@author: Bastian Schroll
@description: Functions to replace wildcards in stings
"""
@ -19,8 +19,6 @@ import time
logging.debug("- %s loaded", __name__)
# todo check function - write an test
_additionalWildcards = {}
@ -42,6 +40,8 @@ def replaceWildcards(message, bwPacket):
@param message: Message in which wildcards should be replaced
@param bwPacket: bwPacket instance with the replacement information
@return Input message with the replaced wildcards"""
# Start with wildcards that are always available
_wildcards = {
# formatting wildcards
# todo check if br and par are needed - if not also change config
@ -69,8 +69,14 @@ def replaceWildcards(message, bwPacket):
"{TIMES}": bwPacket.get("timestamp"),
"{FREQ}": bwPacket.get("frequency"),
"{MODE}": bwPacket.get("mode"),
}
# Get the packet mode to add specific wildcards
mode = bwPacket.get("mode")
# fms wildcards
if mode == "fms":
fms_wildcards = {
"{FMS}": bwPacket.get("fms"),
"{SERV}": bwPacket.get("service"),
"{COUNT}": bwPacket.get("country"),
@ -80,23 +86,41 @@ def replaceWildcards(message, bwPacket):
"{DIR}": bwPacket.get("direction"),
"{DIRT}": bwPacket.get("directionText"),
"{TACI}": bwPacket.get("tacticalInfo"),
}
_wildcards.update(fms_wildcards)
# pocsag wildcards
elif mode == "pocsag":
pocsag_wildcards = {
"{BIT}": bwPacket.get("bitrate"),
"{RIC}": bwPacket.get("ric"),
"{SRIC}": bwPacket.get("subric"),
"{SRICT}": bwPacket.get("subricText"),
"{MSG}": bwPacket.get("message"),
}
_wildcards.update(pocsag_wildcards)
# zvei wildcards
elif mode == "zvei":
zvei_wildcards = {
"{TONE}": bwPacket.get("tone"),
# message for MSG packet is done in poc
}
_wildcards.update(zvei_wildcards)
# msg wildcards
elif mode == "msg":
msg_wildcards = {
"{MSG}": bwPacket.get("message"),
}
_wildcards.update(msg_wildcards)
# Now, replace all collected wildcards
for wildcard, field in _wildcards.items():
# Only replace if the field was found in the packet (is not None)
if field is not None:
message = message.replace(wildcard, field)
# Handle additional, dynamically registered wildcards
for wildcard, fieldName in _additionalWildcards.items():
field = bwPacket.get(fieldName)
if field is not None: