[bug] Монитор отдельной РЛС показывает нулевую дальность и генерирует NaN для цели над ней #19

Closed
opened 2026-10-29 12:23:31 +00:00 by chexit · 1 comment
Owner

Проверено на опубликованном 90379f6 при проверке дополнительного ревью. Незакоммиченные изменения из чужой рабочей копии недоступны.

monitor::cell берёт sam.kind.range() — дальность оружия. У Radar она 0, хотя sensor=1700. Метки с flat>0 отбрасываются; для цели строго над РЛС flat=0, коэффициент rr/(reach*1.25) становится inf, затем 0*inf даёт NaN.

Воспроизведено на оригинальных monitor.rs/sim в native harness с заглушками только SDK text_width/clock: Radar=(0,70,0), живой Shahed=(0,100,0), ID внесён в sam.seen, monitor::draw(&sim,0) возвращает FillShape с Rect { x: NaN, y: NaN, w: 3, h: 3 }. Это не доказательство падения GPU; это доказательство некорректных координат и пустого радара.

Исправление: явно разделить отображаемую дальность обнаружения и дальность поражения. Для Radar использовать sensor; для пусковых с внешним целеуказанием (P1-SUN sensor=0) не заменять всё слепо на sensor. Нулевая дальность должна иметь безопасный UI без деления. Проверить K и сетку J, обычные ЗРК, P1-SUN и вспомогательную технику.

Код:

let reach = sam.kind.range();
.

Проверено на опубликованном `90379f6` при проверке дополнительного ревью. Незакоммиченные изменения из чужой рабочей копии недоступны. `monitor::cell` берёт `sam.kind.range()` — дальность оружия. У Radar она 0, хотя sensor=1700. Метки с flat>0 отбрасываются; для цели строго над РЛС flat=0, коэффициент `rr/(reach*1.25)` становится inf, затем 0*inf даёт NaN. Воспроизведено на оригинальных `monitor.rs`/`sim` в native harness с заглушками только SDK text_width/clock: Radar=(0,70,0), живой Shahed=(0,100,0), ID внесён в sam.seen, `monitor::draw(&sim,0)` возвращает FillShape с `Rect { x: NaN, y: NaN, w: 3, h: 3 }`. Это не доказательство падения GPU; это доказательство некорректных координат и пустого радара. Исправление: явно разделить отображаемую дальность обнаружения и дальность поражения. Для Radar использовать sensor; для пусковых с внешним целеуказанием (P1-SUN sensor=0) не заменять всё слепо на sensor. Нулевая дальность должна иметь безопасный UI без деления. Проверить K и сетку J, обычные ЗРК, P1-SUN и вспомогательную технику. Код: https://gitea.maoniao.team/chexit/airdef/src/commit/90379f6/airdef-mod/src/monitor.rs#L104.
chexit added the area:uipriority:P2type:bug labels 2026-10-29 13:10:20 +00:00
Author
Owner

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/67a2a52 (запушено в main).

🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/67a2a52 (запушено в main).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chexit/airdef#19