fix:雷达距离调节改为厘米和分米
This commit is contained in:
113
web.py
113
web.py
@@ -903,15 +903,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)
|
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 "运行中"
|
||||||
stop_color = ((255, 100, 100) if is_stopped else (100, 255, 100))
|
stop_color = ((255, 100, 100) if is_stopped else (100, 255, 100))
|
||||||
@@ -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":["关闭", "开启"]},
|
||||||
|
|||||||
Reference in New Issue
Block a user