Перейти к содержимому

DVB Adapters API

В интерфейсе Astra вы можете управлять конфигурациями DVB-адаптеров и контролировать их статус с помощью HTTP API.

{
"id": "...",
"name": "...",
"type": "...",
"enable": true,
"adapter": 0,
"device": 0
}
  • name — имя адаптера;
  • type — тип адаптера: S, S2, T, T2, ATSC, ISDB-T, C, C/A, C/B, C/C;
  • enable — true, если адаптер включён;
  • adapter — номер адаптера в системе: /dev/dvb/adapter0
  • device — номер устройства в адаптере: /dev/dvb/adapter0/frontend0
  • другие параметры зависят от конфигурации адаптера

Запрос: GET /api/adapter-info/{id}

  • id — уникальный идентификатор адаптера

В ответе будет JSON с конфигурацией адаптера

Запрос: POST /control/

{
"cmd": "set-adapter",
"id": "...",
"adapter": {...}
}
  • id — уникальный идентификатор адаптера
  • adapter — конфигурация адаптера

Запрос: POST /control/

{
"cmd": "restart-adapter",
"id": "..."
}
  • id — уникальный идентификатор адаптера

Запрос: POST /control/

{
"cmd": "set-adapter",
"id": "...",
"adapter": {
"remove": true
}
}
  • id — уникальный идентификатор адаптера

Статистика сигнала работающего адаптера из модуля мониторинга. Запрос: POST /control/ или GET /api/adapter-status/{id} с необязательным параметром ?t={time}. Оба варианта только для control. Наблюдатель получает 404.

{
"cmd": "adapter-status",
"id": "a002",
"t": 1
}
  • id — строка, обязательно. Идентификатор адаптера: поле id в теле или второй сегмент пути в GET /api/adapter-status/{id}. Адаптер должен быть запущен и иметь поле type или virtual.
  • t — число, необязательно. Поле t в теле или параметр запроса в GET. 1 (по умолчанию) — статистика за последний завершённый интервал мониторинга, 0 — последняя секундная выборка. Любое другое число возвращает ошибку not implemented. Десятичная числовая строка читается как число, любое другое значение считается как 1.

Оба варианта отвечают одинаковыми телами.

Интервал мониторинга задаётся настройкой tsdb_interval. Если она не задана, интервал равен 60 секундам.

Ответ:

{
"timestamp": 0,
"instance": "...",
"name": "...",
"lock": true,
"signal": 0,
"signal_db": 0,
"snr": 0,
"snr_db": 0,
"ber": 0,
"unc": 0,
"bitrate": 0
}
  • timestamp — время Unix. Для t=1 конец интервала отчёта, 0 пока первый интервал не завершён. Для t=0 время последней выборки, 0 до первой выборки;
  • instance — имя экземпляра, если указано в Настройки → Общие → Имя экземпляра;
  • name — имя потока;
  • lock — true, если тюнер захватил сигнал и может принимать данные;
  • signal — примерный уровень сигнала в процентах;
  • signal_db — уровень сигнала в dBm, умноженный на 100;
  • snr — примерное отношение сигнал/шум в процентах;
  • snr_db — отношение сигнал/шум в dB, умноженное на 100;
  • ber — счётчик битовых ошибок;
  • unc — счётчик блочных ошибок;
  • bitrate — общий битрейт в Кбит/с.

У адаптера SAT>IP или виртуального адаптера нет frontend: lock - состояние в эфире, bitrate - скорость его транспорта, поля сигнала равны 0.

Ответы с ошибкой, все со статусом 200:

  • {"adapter-status": "er", "error": "adapter id not defined"} — в теле нет строки id или в пути нет идентификатора. Идентификатор, который не декодируется из URI, считается отсутствующим.
  • {"adapter-status": "er", "id": "a002", "error": "adapter not found"} — нет работающего адаптера со слотом мониторинга с этим идентификатором: неизвестный или пустой идентификатор, выключенный адаптер, адаптер без type и без virtual или адаптер с no_event.
  • {"adapter-status": "er", "error": "not implemented"} — t отличается от 0 и 1.