Розділи Wiki

Wiki SDR SA PRO

Зони тривоги й дії за тривогою

PRO Зони тривоги — рядки нагляду й охорони таблиці частот: із порогом рівня й утриманням, видимі на спектрі, із краями, які можна тягнути мишею. Дії за тривогою — те, що програма робить, коли тривога сталась: каже голосом, грає сирену, знімає вікно, запускає вашу програму, надсилає тривогу на вашу адресу (webhook). Усе це живе на вкладці Сканер, у списку Таблиця частот: N; усі дії типово вимкнені. Самі правила тривог, журнал подій і запис IQ описано на сторінці Таблиця частот і тривоги; webhook, MQTT і локальний REST — на сторінці Webhook, MQTT і локальний REST.

Поріг і утримання в рядку 0.9.57

У розгорнутому рядку таблиці з видом нагляд чи охорона є два поля. У рядка з видом підпис їх не видно: підпис тривог не здіймає.

Поріг, дБ над полицею
Тривога лише на сигнал, рівень якого не нижчий за стільки децибелів над місцевою полицею шуму. Від 0 до 200; нуль або порожнє поле — без умови. Це не dBm: такий рівень несе список сигналів. Поріг, якщо він є, стоїть і в згорнутому рядку таблиці, наприклад ≥12 дБ.
Утримання, с
Тривога лише тоді, коли сигнал видно не менше стількох секунд. Від 0 до 3600; нуль або порожнє поле — одразу.

Текст застосовується клавішею Enter або виходом із поля; Esc повертає, як було. Значення поза межами не приймається: поле повертається до чинного, а в групі над списком червоним сказано Не прийнято — … з причиною.

Як це судиться

  • Щоогляду. Сигнал, що умов ще не виконав, тривоги не дає й судиться знову в наступному огляді — аж доки про нього не було тривоги.
  • Рівень — той самий, що в клітинці Рівень рядка: медіана по останніх влученнях; у рядка-каналу — потужність каналу над полицею. Рядок без рівня порога не долає.
  • Утримання — час від першого виявлення рядка до його останнього влучання. Це не безперервна присутність: сигнал, що зник і повернувся тим самим рядком, лічиться від першої появи. На мить тривоги рядок мусить бути в стані «сигнал є» й у нинішньому огляді.
  • Що в зоні. Сигнал лежить у зоні, коли центр його рядка лежить у її межах — із допуском у пів біна або 1 ppm частоти, що більше. Широкий сигнал із центром поза зоною до неї не належить, хоч би й заходив у неї краєм.
  • Кілька рядків. Рядок без умов спрацьовує самим накриттям. Де частоту накривають кілька рядків одного виду, досить одного, чиї умови виконано.
  • Охорона й далі не каже про сигнал, клас якому дає рядок-підпис: див. Тривоги.
  • Тривога на типи умов не має: порогу й утриманню підлягають лише нагляд і охорона.
  • Тривога про рядок одна. Сигнал, що після тривоги впав нижче порога, її не знімає; знову піднявшись, другої не дає.

Рядок Тривоги у згортці «Наскільки списку вірити» вкладки «Сканер» каже, скільки рядків мають поріг чи утримання: ; з порогом рівня над полицею чи утриманням — N.

Зони на спектрі 0.9.57

Кожен рядок нагляду й охорони — смуга на всю висоту поля спектра: жовта — нагляд, червона — охорона. Зони їдуть разом зі спектром, коли вид тягнуть чи масштабують. На водоспаді їх немає.

  • Табличка вгорі зліва в зоні каже: вид · назва · поріг · утримання, наприклад нагляд · Wi-Fi · ≥12 дБ · 5 с. Поріг і утримання стоять лише тоді, коли вони не нульові. Ширину таблички обмежує ширина зони (але вона не вужча за 24 пікселі): у вузької зони текст обрізано.
  • Вимикач Зони на спектрі — у групі Таблиця частот. Типово ввімкнений, зберігається між запусками. Це лише вигляд: сховані зони судяться так само.
  • Зон на спектрі — не більше 200, у порядку таблиці; скільки не вмістилось, каже напис ще зон: N у кутку. На суд тривог це не впливає.

Зона й миша

Край зони
На кожному краї — смужка завширшки 7 пікселів, що бере мишу. Тягніть її, щоб змінити одну межу; край не заходить за протилежний.
Табличка
За неї зону тягнуть цілком: обидві межі разом, ширина та сама.
Подвійний клік по табличці
На вкладці Сканер перемикає на Таблиця частот: N, розгортає рядок цієї зони й прокручує список до нього. Саму вкладку він не відкриває: якщо в бічній панелі стоїть інша, перейдіть на неї (Ctrl+5).
  • Таблиця приймає нові межі, щойно кнопку відпущено; доти рухається лише зона на екрані.
  • Межі, яких таблиця не приймає (наприклад, ділянка стала вужчою за крок каналів), не діють: зона повертається на місце, а в групі Таблиця частот сказано Не прийнято — ….
  • Зміна меж починає лічбу зайнятості цієї ділянки наново.
  • Точність тягання — піксель екрана. Точні межі задають поля Ділянка, МГц.
  • Решта поля прозора для миші: клік поза ручками лишається настройкою, подвійний клік — скиданням виду, правий клік — меню спектра.

Зона нагляду з меню спектра

Правий клік по спектру → Зона нагляду з виділення. У кінець таблиці стає новий рядок із назвою новий і видом нагляд, без порога й утримання; на вкладці «Сканер» його розгорнуто, а поверх спектра сказано Зона нагляду … МГц — у таблиці частот «Сканера». Коли у вікні кілька станцій, рядок іде в таблицю тієї станції, по спектру якої клацнули: клік робить її активною 0.9.58.

Попри назву, ділянку пункт бере не з пунктирного виділення на спектрі, а з оглядової лінійки — ту саму, що й кнопка Додати. Щоб зона лягла на вужчу смугу, потягніть її краї або виправте поля Ділянка, МГц.

Обмін таблицею: JSON 0.9.57

Файлом JSON діляться колекціями зон і підписів або тримають кілька таблиць на вибір. Кнопки — у групі Таблиця частот, поруч із кнопками CSV.

З файлу JSON…
Додає рядки до наявних. Ті самі назва й межі вдруге не беруться: рядок, що вже є, лишається як був, навіть якщо у файлі в нього інші поріг чи вид. Файл, у якому є хоч одна помилка, не дає жодного рядка: «…»: …. Жодного рядка не додано. Якщо всі нові рядки разом із наявними не вміщаються у 2000, не додається жоден.
У файл JSON…
Записує всю таблицю. Активна, коли таблиця не порожня.
  • Формат — той самий, що у власного файлу таблиці table.json: {"schema": 2, "rows": […]}. Поля рядка: name, kind, f0, f1, w0, w1, step, role, priority, comment, min_db, hold_s. Частоти, ширини й крок — у герцах.
  • Файл схеми 1 (записаний до 0.9.57) читається: поля min_db і hold_s у ньому нульові. Файл новішої схеми не читається.
  • Невідоме поле — помилка, а не тихе відкидання. Число в лапках — не число.
  • Записаний файл — UTF-8; читається й файл із позначкою порядку байтів.
  • CSV теж несе поріг і утримання — стовпці min_db і hold_s; див. Формат CSV.

Дії за тривогою 0.9.57

Дії стоять у групі Таблиця частот, у згортці Дії за тривогою. Вона типово згорнута й між запусками цього не пам’ятає; число в дужках біля заголовка каже, скільки дій увімкнено. Звук Windows, журнал подій і запис IQ — окремі вимикачі над згорткою: див. Звук, журнал подій і запис IQ.

  • Дій п’ять: голос, сирена, знімок вікна, запуск програми й webhook 0.9.58 — HTTP POST із тривогою на вашу адресу. Публікацію в брокер MQTT вмикають окремо, у згортці «Наскільки списку вірити» (див. MQTT).
  • Кожна дія типово вимкнена; вимикачі, шляхи, адреса webhook і аргументи зберігаються між запусками.
  • Дії спрацьовують лише на нову тривогу. Для запису з файлу й демонстраційного сигналу тривог, а отже й дій, немає.
  • Жодна дія не зупиняє список: те, що не вдалося, сказано словами (див. нижче).

Голосом

Вимикач Голосом. Фразу каже двигун мовлення Windows (SAPI або WinRT); двигун запускається на першу фразу. Голос говорить один раз на огляд, хоч скільки тривог у ньому: про першу — і скільки ще, наприклад: «Тривога 3: нагляд, Wi-Fi 2.4, 2437 мегагерц, 23 децибел над полицею. І ще 2.» Тривогу пошуку відеоканалів голос так і називає: «відео». Доки голос не договорив, нова фраза не починається: вона пропускається й лічиться.

Задум щодо мови такий: мова інтерфейсу, а без голосу для неї — англійська, і рядок під вимикачами каже — англійською: голосу для мови інтерфейсу у Windows немає.

Збірки 0.9.57 і 0.9.58 роблять це грубіше. Мову голосу вони беруть із мовних налаштувань Windows, а не з меню мови програми, і перевірка наявності голосу завжди відповідає «немає». Тому, коли в налаштуваннях Windows мова не англійська, фраза завжди англійська, навіть коли голос вашої мови встановлено, і рядок під вимикачами каже те саме. Коли в них англійська, голос англійський, а фраза йде мовою інтерфейсу: з українським інтерфейсом англійський голос читає український текст.

Немає голосу зовсім — дія каже чому: голосу немає: у Windows не знайдено жодного двигуна мовлення або голосу немає: двигун мовлення не запустився (…).

Сирена

Вимикач Сирена з файлу WAV, поруч — поле шляху й кнопка Вибрати… (активні, коли вимикач увімкнено). Файл грає один раз на огляд із тривогами. Доки він грає, знову не починається. Лише WAV. Відмови:

  • файл сирени не вибрано;
  • файл сирени не знайдено: …;
  • файл сирени не читається — потрібен WAV: ….

Знімок вікна

Вимикач Знімок вікна. Один PNG усього вікна на огляд із тривогами — той самий знімок, що за клавішею F9. Файл іде в підтеку alarms теки знімків програми: Зображення\SDR SA PRO\alarms. Теку програма створює сама. Ім’я — місцевий час до секунди: sdrsa-РРРРММДД-ГГХХСС.png; два знімки за одну секунду не затирають один одного. Що файлу не записано, сказано словами: знімок: ….

Коли у вікні кілька станцій, «Сканер» кожної знімає вікно на свої тривоги 0.9.58. На знімку — усе вікно з усіма станціями, і йде він у ту саму теку.

Запустити програму

Вимикач Запустити програму, поруч — поле шляху й кнопка Вибрати… (пропонує .exe, .bat, .cmd); нижче — поле Аргументи. Запускається лише те, що ви самі вказали; типово — нічого.

  • На кожну тривогу — окремий процес, не більше 8 за огляд; решта лічиться пропущеною: пропущено запусків: N (стеля 8 за огляд).
  • Параметри тривоги йдуть лише в аргументах. Змінних середовища з ними програма не додає.
  • На кінець процесу програма не чекає й виходу його не читає.
  • Шлях не вказано — програму для запуску не вказано; запуск відмовив — запуск не вдався: ….

Типові аргументи — {mhz} {level} {time} {reason} {name}. Підстановки:

ПідстановкаЩо в нійПриклад
{mhz}Центр рядка, МГц, три знаки2437.000
{f_lo_mhz}, {f_hi_mhz}Нижній і верхній край рядка, МГц, три знаки2427.000
{width_khz}Ширина рядка, кГц, один знак20000.0
{level}Рівень у дБ над місцевою полицею, один знак; порожньо — рівня немає23.4
{time}Час виміру, у якому рядок уперше підпав під правило, UTC2026-11-01T10:40:00Z
{reason}Причина: guard, watch, kind або videowatch
{name}, {kind}Клас за таблицею: назва й тип ділянкиWi-Fi
{number}Порядковий номер тривоги від початку списку, з одиниці3
{channel}Номер каналу; 0 — рядок не канал0
  • Рядок аргументів ділиться за пробілами; лапки навколо цілого аргументу тримають пробіли разом і знімаються, а лапки всередині слова лишаються текстом і пробілів не тримають; зворотні скісні риски шляхів лишаються. Незакрита лапка — поділ просто за пробілами.
  • Підстановка йде після поділу: назва з пробілами лишається одним аргументом, а порожній рівень — порожнім аргументом на своєму місці.
  • Невідома підстановка лишається як є, текстом. Перелік підстановок видно під полем, коли вимикач увімкнено.
  • Стандарту відео (PAL чи NTSC) серед підстановок немає; його несе поле video у тілі webhook.

Проба

Кнопка Проба активна, коли ввімкнено голос, сирену або webhook. Вона без тривоги каже пробну фразу, якщо ввімкнено голос («Проба голосу тривоги. Сканер каже так.», а коли фраза йде англійською — «Alarm voice test. This is how the scanner speaks.»), грає файл сирени, якщо ввімкнено сирену, і шле на адресу webhook подію test, якщо ввімкнено його 0.9.58 (див. Проба й лічильники). Знімка не робить і програми не запускає.

Що з діями вийшло

Під вимикачами всередині згортки стоїть рядок із лічильниками від запуску програми, останнім зробленим і відмовами, наприклад:

Дії за тривогою: голос — 4 (пропущено 1), сирена — 4, знімків — 4, запусків — 6 (пропущено 1, не вдалось 0). Останнє: голос · сирена · знімок … · запущено 2.

Дужки біля запусків стоять, лише коли щось пропущено чи не вдалось; у «Останнє» знімок названо шляхом до файлу, а відмови стоять у кінці рядка. З увімкненим webhook у рядку є ще webhook — N, а остання його відмова — webhook: … у кінці (див. Проба й лічильники).

Коли хоч одна дія ввімкнена, рядок Дії у згортці «Наскільки списку вірити» каже які й додає відмови — його видно й тоді, коли згортка дій закрита.

Де це зберігається

  • Поріг, утримання й межі зон — у таблиці частот, файл table.json.
  • Вимикач зон, вимикачі дій, шляхи сирени й програми, аргументи, адреса webhook — у файлі settings.json.
  • Обидва файли лежать у теці scanner теки даних SDR SA PRO; для програми, встановленої з пакета, це Документи\SDR SA PRO\scanner. На станції, що не головна, — у scanner\stations\<станція>: зони й дії в кожної станції свої. Див. Що зберігається між запусками і «Сканер» на кількох станціях.
  • Знімки за тривогою лежать окремо: Зображення\SDR SA PRO\alarms.
  • Стан згортки дій не зберігається.

Межі

  • Поріг — у дБ над місцевою полицею, не в dBm: таблиця калібрування до рівнів «Сканера» не доходить.
  • Поріг на осі рівнів не малюється: зона — смуга на всю висоту поля, і тягнути її можна лише вздовж частот.
  • Спершу сигнал мусить стати рядком списку: правило появи (див. Як рядок з’являється і зникає) діє до порога й утримання, тож тривога не приходить раніше за нього.
  • Частота рядка й зони — така, якою її показує сам приймач: похибки його опорного генератора «Сканер» не знає.
  • Клас у {name} і в голосі — мітка частоти з таблиці, а не розпізнаний вид сигналу.
  • Голос і сирена — один раз на огляд, знімок — один на огляд, програма — до 8 запусків на огляд, webhook — до 8 запитів на огляд.
  • Для запису з файлу й демонстраційного сигналу тривог і дій немає.

Wiki описує версію 0.9.58. Версію вашої програми видно в меню «Довідка» → «Про програму». Знайшли неточність? Напишіть нам.