Skip to content

Commit 4266eb5

Browse files
committed
fix: clarify telemetry and link indicators
1 parent e337585 commit 4266eb5

5 files changed

Lines changed: 46 additions & 19 deletions

File tree

.github/workflows/altair-v5-ui-check.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ jobs:
5151
if (!app.includes('"VOLT", "TEMP", "MODE"')) throw new Error('MCU temperature must follow battery voltage in UI telemetry order');
5252
5353
const index = fs.readFileSync('index.html', 'utf8');
54-
if (!index.includes('<script src="js/v8.js"></script>')) throw new Error('v8.js is not connected in index.html');
55-
if (!index.includes('<script src="js/v8-final.js"></script>')) throw new Error('v8-final.js is not connected in index.html');
54+
if (!index.includes('<script src="js/v8.js?v=20260902-1"></script>')) throw new Error('Current v8.js revision is not connected in index.html');
55+
if (!index.includes('<script src="js/v8-final.js?v=20260902-1"></script>')) throw new Error('Current v8-final.js revision is not connected in index.html');
5656
if (!index.includes('Температура бортового компьютера')) throw new Error('MCU temperature card is missing');
5757
if (!index.includes('Команды, передаваемые на спутник')) throw new Error('Uplink panel purpose is unclear');
5858
@@ -62,6 +62,10 @@ jobs:
6262
if (!v8Runtime.includes('$CMD,RADIO,SET,FREQ=')) throw new Error('Runtime radio settings command is missing');
6363
if (!v8Runtime.includes('$CMD,RADIO,RESET')) throw new Error('Radio settings reset command is missing');
6464
if (!v8Runtime.includes('id="v8RadioFrequency"')) throw new Error('Radio settings controls are missing');
65+
if (!v8Runtime.includes('id="v8UplinkValue"') || !v8Runtime.includes('id="v8DownlinkValue"')) {
66+
throw new Error('Separate uplink/downlink indicators are missing');
67+
}
68+
if (!v8Runtime.includes('Контрольная сумма (CRC)')) throw new Error('CRC card label is incorrect');
6569
6670
const charts = fs.readFileSync('js/charts.js', 'utf8');
6771
if (!charts.includes('datasetFor(chart, id)')) throw new Error('Multi-ID chart datasets are missing');

css/v8.css

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
grid-template-columns:
99
minmax(245px, 1.65fr)
1010
minmax(125px, .78fr)
11-
minmax(190px, 1.05fr)
11+
minmax(230px, 1.18fr)
1212
minmax(100px, .62fr)
1313
minmax(135px, .78fr)
1414
auto;
@@ -37,7 +37,7 @@
3737
#topBar {
3838
grid-template-columns:
3939
minmax(235px, 1.55fr)
40-
minmax(185px, 1fr)
40+
minmax(230px, 1.12fr)
4141
minmax(100px, .62fr)
4242
auto;
4343
}
@@ -73,9 +73,22 @@
7373
.v8FrequencyMetric #v8FrequencyValue {
7474
color: #73e8ff;
7575
font-weight: 800;
76-
letter-spacing: .04em;
76+
letter-spacing: .025em;
7777
white-space: nowrap;
7878
}
79+
.v8FrequencyMetric .v8LinkRow {
80+
display: grid;
81+
grid-template-columns: 62px minmax(0, 1fr);
82+
gap: 7px;
83+
align-items: baseline;
84+
font-size: 10px;
85+
line-height: 1.25;
86+
}
87+
.v8FrequencyMetric .v8LinkLabel {
88+
color: #7f96ac;
89+
font-size: 8px;
90+
letter-spacing: .09em;
91+
}
7992

8093
.v8PanelToggle {
8194
margin-left: auto;

index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -460,16 +460,16 @@ <h3>Документация</h3>
460460
</script>
461461

462462
<script src="libraries/chart.umd.min.js"></script>
463-
<script src="js/parser.js"></script>
463+
<script src="js/parser.js?v=20260902-1"></script>
464464
<script src="js/logger.js"></script>
465465
<script src="js/serial.js"></script>
466466
<script src="js/ui.js"></script>
467-
<script src="js/charts.js"></script>
467+
<script src="js/charts.js?v=20260902-1"></script>
468468
<script src="js/rotator.js"></script>
469-
<script src="js/app.js"></script>
469+
<script src="js/app.js?v=20260902-1"></script>
470470
<script src="js/help.js"></script>
471-
<script src="js/v8.js"></script>
472-
<script src="js/v8-final.js"></script>
471+
<script src="js/v8.js?v=20260902-1"></script>
472+
<script src="js/v8-final.js?v=20260902-1"></script>
473473
<script type="module" src="js/satellite.js"></script>
474474
</body>
475475
</html>

js/app.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@
5757
const card = document.createElement("div");
5858
card.className = "card telemetryCard telemetryChecksum";
5959
card.dataset.telemetry = "CHECKSUM";
60-
card.dataset.tip = "Поле контрольной суммы принимается и отображается. В v8 прикладная XOR-проверка отключена.";
61-
card.innerHTML = '<span class="label">Контрольная сумма (поле)</span><span id="CHECKSUM" class="value telemetryTextValue">--</span><span class="unit">принимается без проверки</span>';
60+
card.dataset.tip = "Контрольная сумма пакета отображается как CRC. В v8 прикладная проверка этого поля отключена.";
61+
card.innerHTML = '<span class="label">Контрольная сумма (CRC)</span><span id="CHECKSUM" class="value telemetryTextValue">--</span><span class="unit">принимается без проверки</span>';
6262
const rssiCard = grid.querySelector('[data-telemetry="RSSI"]');
6363
if (rssiCard) grid.insertBefore(card, rssiCard);
6464
else grid.appendChild(card);

js/v8.js

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ function loadV8Styles() {
4343
const link = document.createElement("link");
4444
link.id = "altairV8Styles";
4545
link.rel = "stylesheet";
46-
link.href = "css/v8.css";
46+
link.href = "css/v8.css?v=20260902-1";
4747
document.head.appendChild(link);
4848
}
4949

@@ -89,7 +89,16 @@ function installFrequencyMetric() {
8989
block.className = "topMetric v8FrequencyMetric";
9090
block.innerHTML = `
9191
<div class="caption">РАДИОКАНАЛ</div>
92-
<div id="v8FrequencyValue">${ALTAIR_V8.frequencyMHz.toFixed(3)} МГц · BW ${ALTAIR_V8.rxBandwidthKHz} кГц</div>
92+
<div id="v8FrequencyValue">
93+
<div class="v8LinkRow">
94+
<span class="v8LinkLabel">UPLINK</span>
95+
<span id="v8UplinkValue">${ALTAIR_V8.frequencyMHz.toFixed(3)} МГц · BW ${ALTAIR_V8.rxBandwidthKHz} кГц</span>
96+
</div>
97+
<div class="v8LinkRow">
98+
<span class="v8LinkLabel">DOWNLINK</span>
99+
<span id="v8DownlinkValue">${ALTAIR_V8.frequencyMHz.toFixed(3)} МГц · BW ${ALTAIR_V8.rxBandwidthKHz} кГц</span>
100+
</div>
101+
</div>
93102
`;
94103
utc.parentNode.insertBefore(block, utc);
95104
}
@@ -440,10 +449,11 @@ function renderRadioProfile(profile) {
440449
if (power) power.value = String(profile.powerDbm);
441450
if (bandwidth) bandwidth.value = String(profile.bandwidthKHz);
442451

443-
const metric = document.getElementById("v8FrequencyValue");
444-
if (metric) {
445-
metric.textContent = `${profile.frequencyMHz.toFixed(3)} МГц · BW ${profile.bandwidthKHz} кГц`;
446-
}
452+
const linkText = `${profile.frequencyMHz.toFixed(3)} МГц · BW ${profile.bandwidthKHz} кГц`;
453+
const uplinkMetric = document.getElementById("v8UplinkValue");
454+
const downlinkMetric = document.getElementById("v8DownlinkValue");
455+
if (uplinkMetric) uplinkMetric.textContent = linkText;
456+
if (downlinkMetric) downlinkMetric.textContent = linkText;
447457

448458
const aboutFrequency = document.getElementById("v8AboutFrequency");
449459
const aboutPower = document.getElementById("v8AboutPower");
@@ -792,7 +802,7 @@ function patchTelemetryPresentation() {
792802
if (checksumCard) {
793803
const label = checksumCard.querySelector(".label");
794804
const unit = checksumCard.querySelector(".unit");
795-
if (label) label.textContent = "Контрольная сумма (поле)";
805+
if (label) label.textContent = "Контрольная сумма (CRC)";
796806
if (unit) unit.textContent = "принимается без проверки";
797807
}
798808

0 commit comments

Comments
 (0)