fix(ui): align signal thresholds with Python implementation
Use correct thresholds: 0=Very poor, 1-24=Poor, 25-26=Good, 27-28=Very good, 29-30=Excellent, 31=Very Strong, 99=No signal. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -818,7 +818,7 @@ function getSignalInfo(port, timeout) {
|
||||
const signalPower = parseInt(csqMatch[1]);
|
||||
const qual = parseInt(csqMatch[2]);
|
||||
|
||||
// Determine signal quality and color
|
||||
// Determine signal quality and color (matching Python thresholds)
|
||||
let signalDesc, signalColor, signalIcon, alertClass;
|
||||
|
||||
if (signalPower === 99) {
|
||||
@@ -831,22 +831,17 @@ function getSignalInfo(port, timeout) {
|
||||
signalColor = '#dc3545';
|
||||
signalIcon = '🔴';
|
||||
alertClass = 'alert-danger';
|
||||
} else if (signalPower <= 9) {
|
||||
} else if (signalPower <= 24) {
|
||||
signalDesc = 'Poor';
|
||||
signalColor = '#fd7e14';
|
||||
signalIcon = '🟠';
|
||||
alertClass = 'alert-warning';
|
||||
} else if (signalPower <= 14) {
|
||||
signalDesc = 'Fair';
|
||||
} else if (signalPower <= 26) {
|
||||
signalDesc = 'Good';
|
||||
signalColor = '#ffc107';
|
||||
signalIcon = '🟡';
|
||||
alertClass = 'alert-warning';
|
||||
} else if (signalPower <= 19) {
|
||||
signalDesc = 'Good';
|
||||
signalColor = '#20c997';
|
||||
signalIcon = '🟢';
|
||||
alertClass = 'alert-success';
|
||||
} else if (signalPower <= 25) {
|
||||
} else if (signalPower <= 28) {
|
||||
signalDesc = 'Very good';
|
||||
signalColor = '#198754';
|
||||
signalIcon = '🟢';
|
||||
@@ -866,14 +861,14 @@ function getSignalInfo(port, timeout) {
|
||||
// Calculate approximate dBm (for RSSI: -113 + 2*signalPower)
|
||||
let rssiDbm = signalPower !== 99 ? (-113 + 2 * signalPower) + ' dBm' : 'N/A';
|
||||
|
||||
// Signal bars visualization (1-5 bars based on signal power)
|
||||
// Signal bars visualization (1-5 bars based on signal power, matching thresholds)
|
||||
let bars = 0;
|
||||
if (signalPower !== 99) {
|
||||
if (signalPower >= 25) bars = 5;
|
||||
else if (signalPower >= 19) bars = 4;
|
||||
else if (signalPower >= 14) bars = 3;
|
||||
else if (signalPower >= 9) bars = 2;
|
||||
else if (signalPower >= 1) bars = 1;
|
||||
if (signalPower >= 29) bars = 5; // Excellent / Very Strong
|
||||
else if (signalPower >= 27) bars = 4; // Very good
|
||||
else if (signalPower >= 25) bars = 3; // Good
|
||||
else if (signalPower >= 10) bars = 2; // Poor (mid)
|
||||
else if (signalPower >= 1) bars = 1; // Poor (low)
|
||||
}
|
||||
|
||||
const barsHtml = `
|
||||
|
||||
Reference in New Issue
Block a user