Поддерживаемые спутники

Демодуляцией и декодированием телеметрии занимается gr-satellites. Каждый аппарат описан в нём YAML-файлом (satyaml): частоты, модуляция, скорость, формат кадров.

СОНИКС ведёт собственный набор таких определений — soniks-satyaml. Он расширяет штатную базу gr-satellites аппаратами, которых там нет.

Как определения попадают на станцию

Двумя путями, и оба работают без вашего участия:

  1. При сборке образа. Dockerfile копирует soniks-satyaml/satyaml/* поверх каталога satyaml библиотеки gr-satellites, а sat.cfg — в /usr/local/bin. Это запас на первый старт.

  2. При каждом старте контейнера — sat-data bundle с портала. Клиент спрашивает у sonik.space свежайшую версию, скачивает архив (satyaml плюс sat.cfg), сверяет его sha256 и раскладывает по местам. Архив остаётся в кэше на постоянном томе, поэтому следующий старт обходится без сети, а версия уезжает на портал вместе с наблюдением — в client_metadata поле radio.sat_data.

  3. Между проходами — тот же bundle, без рестарта. Раз в SCHEDULER__SAT_DATA_SYNC_INTERVAL_IN_HOURS (6 часов) клиент сверяет версию с порталом; новую скачивает и раскладывает, когда проход не идёт, и заново сообщает порталу список своих спутников.

Практический вывод: недавно добавленный спутник доезжает до работающей станции сам, в пределах интервала проверки; перезапуск контейнера ускорит, обновлять образ не нужно.

Примечание

До версии 2.3 определения тянулись клонированием gr-satellites и soniks-satyaml из git при каждом старте. В сетях, где открыт только sonik.space, клон падал и станция навсегда оставалась с определениями из образа, ничего об этом не сообщая. Теперь источник один, тот же, что и у всего остального, — портал.

Примечание

Если портал недоступен, клиент напишет предупреждение в лог и продолжит работу с тем, что уже есть: с кэшем прошлого bundle либо с определениями из образа. Это не ошибка.

Список аппаратов soniks-satyaml

Ниже — то, что добавляет СОНИКС сверх штатной базы gr-satellites. Актуально на момент сборки документации; источник — soniks-satyaml/satyaml.

  • 239Alferov

  • A-SEANSAT-PG1

  • ACS3

  • AL-MUNTHER

  • ALAINSAT-1

  • ARCTICSAT-1

  • ASRTU-1

  • Avion_Kaluga_650

  • BEE-1000

  • BELIEFSAT-0

  • BLUEBIRD-6

  • BLUEWALKER-3

  • BOTSAT-1

  • BRO-18

  • COLIBRI-S

  • CROCUBE

  • CSC-1

  • CSC-2

  • CTC-0

  • Challangeone

  • DCS-1

  • DIDO-2

  • DIDO-3

  • DJIBOUTI-1A

  • DJIBOUTI-1B

  • ERNST

  • FORESAIL-1P

  • GALAPAGOS-UTE

  • GEOSCAN-1

  • GEOSCAN-2

  • GEOSCAN-3

  • GEOSCAN-4

  • GEOSCAN-5

  • GEOSCAN-6

  • GHALIB

  • GRBBeta

  • HADES-ICM

  • HADES-R

  • HCT-SAT2

  • HERMES-H1

  • HERMES-H2

  • HERMES-H3

  • HERMES-H4

  • HERMES-H5

  • HERMES-H6

  • HORIZON

  • HORS-1

  • HORS-2

  • HORS-3

  • HORS-4

  • HUBBLE-4

  • HUNITY

  • HYDRA-T

  • HYPERVIEW-1G

  • HYTI

  • INNOCUBE

  • INNOSAT16

  • INNOSAT3

  • IRIS-F1

  • IRIS-F2

  • IRIS-F3

  • ISOI

  • JACK001

  • JINJUSAT-1B

  • KILLICK-1

  • LASARSAT

  • LOBACHEVSKY

  • LUCA-1

  • LUR-1

  • Lilium-1

  • MONITOR-2

  • MORDOVIA-IOT

  • MTUSI-1

  • NANOFF-A

  • NANOFF-B

  • NAPA-1

  • NAPA-2

  • NASBSAT-1

  • NASBSAT-2

  • NEPT-1

  • NOKHCHO

  • NUSHSAT1

  • PARUS-T1

  • PHASMA-DIRAC

  • PHASMA-LAMARR

  • PHI-1

  • QMR-KWT-2

  • QMSAT

  • ROBUSTA-3A

  • RTU-MIREA1

  • RUZAEVKA-390

  • SAKHACUBE-CHOLBON

  • SAMSAT-IONOSPHERE

  • SATORO-3

  • SATORO-T2

  • SATURN

  • SIT-2086

  • SIT-HSE

  • SITRO-AIS-10

  • SITRO-AIS-11

  • SITRO-AIS-12

  • SITRO-AIS-13

  • SITRO-AIS-14

  • SITRO-AIS-15

  • SITRO-AIS-16

  • SITRO-AIS-17

  • SITRO-AIS-18

  • SITRO-AIS-19

  • SITRO-AIS-20

  • SITRO-AIS-21

  • SITRO-AIS-22

  • SITRO-AIS-23

  • SITRO-AIS-24

  • SITRO-AIS-25

  • SITRO-AIS-26

  • SITRO-AIS-27

  • SITRO-AIS-28

  • SITRO-AIS-29

  • SITRO-AIS-30

  • SITRO-AIS-31

  • SITRO-AIS-32

  • SITRO-AIS-33

  • SITRO-AIS-34

  • SITRO-AIS-35

  • SITRO-AIS-36

  • SITRO-AIS-37

  • SITRO-AIS-38

  • SITRO-AIS-39

  • SITRO-AIS-40

  • SITRO-AIS-41

  • SITRO-AIS-42

  • SITRO-AIS-43

  • SITRO-AIS-44

  • SITRO-AIS-45

  • SITRO-AIS-46

  • SITRO-AIS-47

  • SITRO-AIS-48

  • SITRO-AIS-49

  • SITRO-AIS-5

  • SITRO-AIS-50

  • SITRO-AIS-51

  • SITRO-AIS-52

  • SITRO-AIS-53

  • SITRO-AIS-54

  • SITRO-AIS-55

  • SITRO-AIS-56

  • SITRO-AIS-57

  • SITRO-AIS-58

  • SITRO-AIS-59

  • SITRO-AIS-6

  • SITRO-AIS-60

  • SITRO-AIS-61

  • SITRO-AIS-62

  • SITRO-AIS-63

  • SITRO-AIS-64

  • SITRO-AIS-65

  • SITRO-AIS-7

  • SITRO-AIS-8

  • SITRO-AIS-9

  • SITRO-TD-3

  • SITRO-TD-4

  • SWSU-60

  • TEVEL2-1

  • TEVEL2-2

  • TEVEL2-3

  • TEVEL2-4

  • TEVEL2-5

  • TEVEL2-6

  • TEVEL2-7

  • TEVEL2-8

  • TEVEL2-9

  • TPA-1

  • TUBIN

  • TUSUR-GO

  • UHETSAT

  • UND-ROADS-1

  • UND-ROADS-2

  • UVSQ-SAT-NG

  • UmKA-1

  • VDNH-80

  • VIOLET

  • VIZARD-ION

  • ZIMSAT-2

  • ZORKIY-2M-5

  • ZORKIY-2M-7

  • ZORKIY-2M-VPE

  • Zorkiy-2m

  • Zorkiy-2m-2

  • Zorkiy-2m-4

  • Zorkiy-2m-6

Добавление нового спутника

Определения живут в отдельном репозитории, а не здесь. Порядок такой:

  1. Подготовьте YAML по формату gr-satellites.

  2. Отправьте merge request в soniks-satyaml. Туда же кладутся точечные правки sat.cfg.

  3. После вливания CI репозитория соберёт новый bundle и опубликует его на портале — версией служит короткий SHA коммита.

  4. Все станции подхватят его при ближайшем перезапуске.

Если аппарату нужен режим демодуляции, которого клиент ещё не знает, потребуется правка и в этом репозитории — см. Как добавить режим демодуляции.