TX meter: add minor tick marks between main scale labels

Power bar: minor ticks every 5% (between 0/25/50/75/100% main marks)
SWR bar: minor ticks at integer values 2,3,4,6,7,8,9 (between 1/2.5/5/10)
Applied to both desktop (SpectrumView) and web (paintTXMeter JS)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-15 14:27:00 +03:00
co-authored by Claude Sonnet 4.6
parent 76e5c5514a
commit e8561dcc18
2 changed files with 32 additions and 4 deletions
+24 -3
View File
@@ -1331,7 +1331,7 @@ const
SWR_HIGH_THRESH = 2.5;
SWR_MAX = 10.0;
LEFT_INFO_MIN = 62; RIGHT_PAD = 8; LABEL_PAD = 4;
TICK_LONG = 5;
TICK_LONG = 5; TICK_MED = 3;
PWR_MARKS: array[0..4] of Double = (0.0, 0.25, 0.5, 0.75, 1.0);
SWR_MARKS_VAL: array[0..3] of Double = (1.0, 2.5, 5.0, 10.0);
SWR_MARKS_LBL: array[0..3] of string = ('1', '2.5', '5', '10');
@@ -1468,7 +1468,19 @@ begin
// --- Тики шкалы ---
ACanvas.Font.Size := 6; ACanvas.Font.Style := []; ACanvas.Brush.Style := bsClear;
// Мощность: тики ВЫШЕ power-бара (как dBm-тики в S-метре)
// Мощность: промежуточные тики каждые 5% (не на главных метках кратных 25%)
i := 5;
while i < 100 do
begin
if (i mod 25) <> 0 then
begin
X := PwrToX(i / 100.0);
VLine(X, PY1 - TICK_MED, PY1 - 1, CLR_TICK_GREEN);
end;
Inc(i, 5);
end;
// Мощность: главные тики с подписями (0%, 25%, 50%, 75%, 100%)
for i := 0 to 4 do
begin
X := PwrToX(PWR_MARKS[i]);
@@ -1479,7 +1491,16 @@ begin
ACanvas.TextOut(X - TW div 2, PY1 - TICK_LONG - ACanvas.TextHeight(Lbl) - 1, Lbl);
end;
// КСВ: тики НИЖЕ SWR-бара (как S-тики в S-метре)
// КСВ: промежуточные тики на целых значениях 2,3,4,6,7,8,9
for i := 2 to 9 do
begin
if i = 5 then Continue;
X := SWRToX(i);
if i >= 3 then VLine(X, SY2 + 1, SY2 + TICK_MED, CLR_TICK_BLUE)
else VLine(X, SY2 + 1, SY2 + TICK_MED, CLR_TICK_GREEN);
end;
// КСВ: главные тики с подписями (1, 2.5, 5, 10)
for i := 0 to 3 do
begin
X := SWRToX(SWR_MARKS_VAL[i]);