fix:雷达距离调节改为厘米和分米

This commit is contained in:
2026-04-22 08:46:47 +08:00
parent 7a315074ed
commit d7a5e4402a

111
web.py
View File

@@ -903,14 +903,36 @@ class RenderWorker(threading.Thread):
# 雷达信息 # 雷达信息
if cfg.get("show_radar", 1): if cfg.get("show_radar", 1):
unit_str = "厘米" if cfg.get("radar_unit", 0) else "分米" radar_dist_dm = radar_dist # 原始数据是分米
dist_val = (radar_dist * 10 if cfg.get("radar_unit", 0) alarm_d_dm = cfg.get("radar_alarm_dist", 50) # 报警值单位也是分米
else radar_dist)
alarm_d = cfg.get("radar_alarm_dist", 50) # 当距离大于60分米6米时不显示
rc = ((255, 80, 80) if dist_val <= alarm_d else (180, 220, 255)) if radar_dist_dm > 60:
texts.append((bw + 10, 48, pass # 不显示
f"雷达: {dist_val} {unit_str} 报警值: {alarm_d}{unit_str}", else:
rc, 26)) # 转换为米保留1位小数或厘米
if radar_dist_dm >= 10: # 大于等于1米用米显示
dist_val = radar_dist_dm / 10.0
unit_str = ""
dist_text = f"{dist_val:.1f}"
else: # 小于1米用厘米显示
dist_val = radar_dist_dm * 10
unit_str = "厘米"
dist_text = f"{dist_val:.0f}"
# 报警值也转换为对应单位
if alarm_d_dm >= 10:
alarm_val = alarm_d_dm / 10.0
alarm_unit = ""
alarm_text = f"{alarm_val:.1f}"
else:
alarm_val = alarm_d_dm * 10
alarm_unit = "厘米"
alarm_text = f"{alarm_val:.0f}"
# 颜色逻辑:使用转换后的分米值进行比较(报警值原始单位是分米)
rc = ((255, 80, 80) if radar_dist_dm <= alarm_d_dm else (180, 220, 255))
texts.append((10, sh-108, f"雷达: {dist_text}{unit_str} 报警值: {alarm_text}{alarm_unit}", rc, 22))
# 停机状态 # 停机状态
stop_text = "已停机" if is_stopped else "运行中" stop_text = "已停机" if is_stopped else "运行中"
@@ -984,11 +1006,36 @@ class RenderWorker(threading.Thread):
# 雷达信息 # 雷达信息
if cfg.get("show_radar", 1): if cfg.get("show_radar", 1):
unit_str = "厘米" if cfg.get("radar_unit", 0) else "分米" radar_dist_dm = radar_dist # 原始数据是分米
dist_val = (radar_dist * 10 if cfg.get("radar_unit", 0) else radar_dist) alarm_d_dm = cfg.get("radar_alarm_dist", 50) # 报警值单位也是分米
alarm_d = cfg.get("radar_alarm_dist", 50)
rc = ((255, 80, 80) if dist_val <= alarm_d else (180, 220, 255)) # 当距离大于60分米6米时不显示
texts.append((10, sh-108, f"雷达: {dist_val} {unit_str} 报警值: {alarm_d}{unit_str}", rc, 22)) if radar_dist_dm > 60:
pass # 不显示
else:
# 转换为米保留1位小数或厘米
if radar_dist_dm >= 10: # 大于等于1米用米显示
dist_val = radar_dist_dm / 10.0
unit_str = ""
dist_text = f"{dist_val:.1f}"
else: # 小于1米用厘米显示
dist_val = radar_dist_dm * 10
unit_str = "厘米"
dist_text = f"{dist_val:.0f}"
# 报警值也转换为对应单位
if alarm_d_dm >= 10:
alarm_val = alarm_d_dm / 10.0
alarm_unit = ""
alarm_text = f"{alarm_val:.1f}"
else:
alarm_val = alarm_d_dm * 10
alarm_unit = "厘米"
alarm_text = f"{alarm_val:.0f}"
# 颜色逻辑:使用转换后的分米值进行比较(报警值原始单位是分米)
rc = ((255, 80, 80) if radar_dist_dm <= alarm_d_dm else (180, 220, 255))
texts.append((10, sh-108, f"雷达: {dist_text}{unit_str} 报警值: {alarm_text}{alarm_unit}", rc, 22))
# 状态信息 # 状态信息
stop_text = "已停机" if is_stopped else "运行中" stop_text = "已停机" if is_stopped else "运行中"
@@ -1055,11 +1102,37 @@ class RenderWorker(threading.Thread):
# 雷达信息 # 雷达信息
if cfg.get("show_radar", 1): if cfg.get("show_radar", 1):
unit_str = "厘米" if cfg.get("radar_unit", 0) else "分米" radar_dist_dm = radar_dist # 原始数据是分米
dist_val = (radar_dist * 10 if cfg.get("radar_unit", 0) else radar_dist) alarm_d_dm = cfg.get("radar_alarm_dist", 50) # 报警值单位也是分米
alarm_d = cfg.get("radar_alarm_dist", 50)
rc = ((255, 80, 80) if dist_val <= alarm_d else (180, 220, 255)) # 当距离大于60分米6米时不显示
texts.append((bw+10, sh-80, f"雷达: {dist_val} {unit_str} 阈值: {alarm_d}{unit_str}", rc, 22)) if radar_dist_dm > 60:
pass # 不显示
else:
# 转换为米保留1位小数或厘米
if radar_dist_dm >= 10: # 大于等于1米用米显示
dist_val = radar_dist_dm / 10.0
unit_str = ""
dist_text = f"{dist_val:.1f}"
else: # 小于1米用厘米显示
dist_val = radar_dist_dm * 10
unit_str = "厘米"
dist_text = f"{dist_val:.0f}"
# 报警值也转换为对应单位
if alarm_d_dm >= 10:
alarm_val = alarm_d_dm / 10.0
alarm_unit = ""
alarm_text = f"{alarm_val:.1f}"
else:
alarm_val = alarm_d_dm * 10
alarm_unit = "厘米"
alarm_text = f"{alarm_val:.0f}"
# 颜色逻辑:使用转换后的分米值进行比较(报警值原始单位是分米)
rc = ((255, 80, 80) if radar_dist_dm <= alarm_d_dm else (180, 220, 255))
texts.append((10, sh-108, f"雷达: {dist_text}{unit_str} 报警值: {alarm_text}{alarm_unit}", rc, 22))
# 状态信息 # 状态信息
stop_text = "已停机" if is_stopped else "运行中" stop_text = "已停机" if is_stopped else "运行中"
@@ -1493,7 +1566,7 @@ class SettingsPanel(QWidget):
"key":"radar_alarm_dist", "min":5, "max":50, "step":5}, "key":"radar_alarm_dist", "min":5, "max":50, "step":5},
{"name":"雷达距离单位", "type":"toggle", {"name":"雷达距离单位", "type":"toggle",
"key":"radar_unit", "key":"radar_unit",
"values":[0, 1], "labels":["", "厘米"]}, "values":[0, 1], "labels":["", "厘米"]},
{"name":"显示雷达距离", "type":"toggle", {"name":"显示雷达距离", "type":"toggle",
"key":"show_radar", "key":"show_radar",
"values":[0, 1], "labels":["关闭", "开启"]}, "values":[0, 1], "labels":["关闭", "开启"]},