Известные расхождения

Реестр того, что в текущем состоянии проекта работает не так, как выглядит. Страница описывает факты, а не планы: каждый пункт проверен по коду. Часть из них — хорошие задачи для первого вклада.

Обновляйте эту страницу вместе с исправлением: устранили расхождение — удалите пункт в том же коммите.

Сборка и упаковка

Сборка пакета вынесена из 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), а не двадцать.

Два флоуграфа недостижимы из клиента

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 бессмысленно.