From e62dda7aedf60774e0c87f15da4269af551c7e35 Mon Sep 17 00:00:00 2001 From: wsy182 <2392948297@qq.com> Date: Thu, 12 Mar 2026 17:27:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(wits):=20=E6=B7=BB=E5=8A=A0WITS=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8C=85=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=BD=AC=E6=8D=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现to_string方法将WITS对象转换为字符串格式 - 根据通道映射配置格式化不同类型的字段值 - 支持string、int和float6格式的数据类型转换 - 移除调试日志代码行 --- app/wits_sender.py | 1 + model/wits.py | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) 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"),