# Известные расхождения Реестр того, что в текущем состоянии проекта работает не так, как выглядит. Страница описывает **факты, а не планы**: каждый пункт проверен по коду. Часть из них — хорошие задачи для первого вклада. Обновляйте эту страницу вместе с исправлением: устранили расхождение — удалите пункт в том же коммите. ## Сборка и упаковка ### Сборка пакета вынесена из CI `.gitlab-ci.yml` больше не публикует в OBS-проекты апстрима (`home:librespace:satnogs2`), но своей инфраструктуры сборки у форка пока нет. В CI остались `sign_off`, `lint`, `test`, `flowgraphs`, `docs` и `pages`: джоба `flowgraphs` прогоняет `grcc` по всем `.grc` в образе станции, но `.deb` собирается вручную. *Последствие:* новую версию пакета нужно собирать и раскладывать руками. ## Флоуграфы ### У PHASMA нет аудио `satellites/fsk_phasma_decoder.grc` — единственный производственный флоуграф без аудиоветки: в нём нет ни ресемплера, ни стока на `zmq_base_port + 2`. Аудио для 50 кбод нельзя просто сжать до 48 кГц — получится алиасинг, а не запись, поэтому ветку не стали копировать из `fsk_ax25.grc`. *Последствие:* наблюдения `GFSK Pkst` и `FSK` на 50000/400000 бод дают пустой OGG. Подписчик `zmq_audio_sub` предупреждает об этом в `stderr`. *Что нужно:* отдельная ветка с собственной `audio_samp_rate`, вычисленной от бодрейта, и согласованный с ней подписчик. ### В имени IQ-файла нет частоты дискретизации `# TODO: Add sampling rate to the filename` в `zmq_iq_sub.py`. Частота равна `baudrate × decimation`, но децимацию считает сам `.grc` через `satnogs.find_decimation` — диспетчер её не знает и без импорта gr-satnogs вычислить не может. *Последствие:* запись IQ бесполезна, если не помнить параметры наблюдения. ### Частота аудио зашита `zmq_audio_sub.py` жёстко открывает OGG на 48000 Гц моно. Соответствие с флоуграфом ничем не проверяется. *Последствие:* при рассогласовании аудио ускорено или замедлено, и об этом ничто не сообщает — кроме случая, когда данных нет совсем. ### Разрешение водопада зависит от бодрейта Водопад берёт частоту с выхода доплер-компенсации: 48 кГц у аудио-режимов, 57.6 кГц у FSK 9600, 76.8 кГц у BPSK 9600, 66.56 кГц у APT/SSTV, 200 кГц у PHASMA — при БПФ везде на 1024 точки. Фиксированная полоса из этой точки съёма недостижима: после децимации шире полосы режима ничего нет, а второй тракт децимации — лишний фильтр на полной частоте SDR. *Последствие:* водопады разных режимов несопоставимы по полосе и по мощности в бине. С 2026-09-12 клиент нормирует: отдаёт порталу геометрию из заголовка `.dat` и `noise_dbhz = noise_db − 10·lg(bin_hz)`. Если фиксированная ветка водопада всё же понадобится, теперь это одна правка золотого `generic/fm.grc` (см. «Общий фронтенд» в [](grc-conventions.md)), а не двадцать. ### Два флоуграфа недостижимы из клиента `generic/iq_receiver.grc` и `generic/example_flowgraph.grc` собираются и устанавливаются, но ни один режим на них не ведёт. Оставлены как примеры и инструмент ручной отладки. ### `test_flowgraphs/frame_decoder_zmq_test.grc` неисправен Ссылается на несуществующий `iq_9888458.raw` и публикует на порт 55555, не согласованный с `zmq_base_port`. В сборку не входит. ### Рудиментарные параметры `decoded_data_file_path`, `file_path`, `iq_file_path`, `enable_iq_dump` объявлены почти во всех `.grc`, но ни к чему внутри не подключены — запись файлов живёт в подписчиках. Они существуют, чтобы флоуграф не упал, когда диспетчер передаст их в общем цикле. `doppler_correction_per_sec` был таким же и снят 2026-09-12: диспетчер его принимает и обнуляет. *Последствие:* выглядят рабочими, но менять их поведение правкой `.grc` бессмысленно.