|
|
@@ -226,7 +226,17 @@
|
|
|
|
|
|
.signal-good { color: #67c23a; }
|
|
|
.signal-mid { color: #e6a23c; }
|
|
|
- .signal-bad { color: #f56c6c; }
|
|
|
+ .signal-bad { color: #ff9800; }
|
|
|
+ .signal-very-bad { color: #f56c6c; }
|
|
|
+
|
|
|
+ .signal-level-tag {
|
|
|
+ margin-left: 6px;
|
|
|
+ font-size: 11px;
|
|
|
+ font-weight: 600;
|
|
|
+ padding: 1px 6px;
|
|
|
+ border-radius: 4px;
|
|
|
+ border: 1px solid currentColor;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
@@ -321,7 +331,7 @@
|
|
|
</div>
|
|
|
<div class="signal-item">
|
|
|
<span class="signal-label">信号质量(RSSI)</span>
|
|
|
- <span class="signal-value" :class="rssiLevel">{{ state.hardwareInfo.network?.rssi ?? '--' }}</span>
|
|
|
+ <span class="signal-value" :class="rssiLevel">{{ rssiDisplay }}<span v-if="rssiLabel" class="signal-level-tag">{{ rssiLabel }}</span></span>
|
|
|
</div>
|
|
|
<div class="signal-item">
|
|
|
<span class="signal-label">误码率(BER)</span>
|
|
|
@@ -532,13 +542,31 @@ const temperatureDisplay = computed(() => {
|
|
|
return state.temperatureChip != null ? `${state.temperatureChip}°C` : '--';
|
|
|
});
|
|
|
|
|
|
-// 信号质量等级(rssi 越大信号越好)
|
|
|
+// 信号质量等级(ASU: 0-31,99 表示未知/无信号;好>24,中14~24,差9~14,极差≤9)
|
|
|
+const rssiLevelMap: Record<string, string> = {good: '好', mid: '中', bad: '差', 'very-bad': '极差'};
|
|
|
+
|
|
|
+const getRssiLevel = (rssi: number | null | undefined) => {
|
|
|
+ if (rssi == null || rssi >= 99) return '';
|
|
|
+ if (rssi > 24) return 'good';
|
|
|
+ if (rssi >= 14) return 'mid';
|
|
|
+ if (rssi >= 9) return 'bad';
|
|
|
+ return 'very-bad';
|
|
|
+};
|
|
|
+
|
|
|
const rssiLevel = computed(() => {
|
|
|
+ const level = getRssiLevel(state.hardwareInfo?.network?.rssi);
|
|
|
+ return level ? `signal-${level}` : '';
|
|
|
+});
|
|
|
+
|
|
|
+const rssiDisplay = computed(() => {
|
|
|
const rssi = state.hardwareInfo?.network?.rssi;
|
|
|
- if (rssi == null) return '';
|
|
|
- if (rssi >= 20) return 'signal-good';
|
|
|
- if (rssi >= 10) return 'signal-mid';
|
|
|
- return 'signal-bad';
|
|
|
+ if (rssi == null || rssi >= 99) return '--';
|
|
|
+ return `${rssi}`;
|
|
|
+});
|
|
|
+
|
|
|
+const rssiLabel = computed(() => {
|
|
|
+ const level = getRssiLevel(state.hardwareInfo?.network?.rssi);
|
|
|
+ return level ? rssiLevelMap[level] : '';
|
|
|
});
|
|
|
|
|
|
const open = (row: any) => {
|