diff --git a/app/wits_sender.py b/app/wits_sender.py index c3f9475..491c2b9 100644 --- a/app/wits_sender.py +++ b/app/wits_sender.py @@ -232,6 +232,7 @@ def run_wits_sender(args, deps): packet = load_packet_from_file(source_file) else: packet = build_wits_packet(build_random_wits_data(deps.config.tms.device_code)) + # logging.info(f"packet: {packet}") send_packet(sock, packet) logger.info("TX WITS #%s -> %s:%s", seq, host, port) if logger.isEnabledFor(logging.DEBUG): diff --git a/model/wits.py b/model/wits.py index 5ab6d05..0aa5841 100644 --- a/model/wits.py +++ b/model/wits.py @@ -90,6 +90,32 @@ class WitsData: def __post_init__(self): validate_required_wits_fields(self) + def to_string(self) -> str: + parts = [] + + for channel, field_name, field_type in WITS_CHANNEL_MAPPING: + value = getattr(self, field_name, None) + + if value is None: + continue + + if field_type == "string": + formatted = str(value) + + elif field_type == "int": + formatted = str(int(value)) + + elif field_type == "float6": + formatted = f"{float(value):.6f}" + + else: + formatted = str(value) + + parts.append(f"{channel}{formatted}") + + return "".join(parts) + + WITS_CHANNEL_MAPPING = [ ("0101", "wellid", "string"),