Дві категорії завантажень: (1) повна кодова база FSG-A — понад 7 400 рядків Python, що реалізують Lisa 26 автономний двигун рішень, систему РЕБ Fischer 26, мультисенсорний синтез Dempster-Shafer, файли параметрів ArduPlane і SDK libfischer26e; та (2) дев\'ять автономних інтерактивних інструментів — компоненти React та HTML-додатки, які працюють у будь-якому браузері і дозволяють операторам, планувальникам та аналітикам досліджувати бюджети ліній, покриття, тріангуляцію, симуляцію на рівні бригади і повні двигуни рішень ланцюга знищення без встановлення. Кожен модуль має математичні самотести, що перевіряють свої числові твердження. Усе ліцензовано під CC BY-SA 4.0.
Повний пакет коду
FSGA-CODE-V2.ZIP
Розмір
~116 КБ стиснуто
Вміст
25 файлів Python, 7 476 рядків коду
Потребує
Python 3.8+ стандартна бібліотека; pyyaml для підсистеми РЕБ
Ліцензія
CC BY-SA 4.0 — вільно використовувати, модифікувати, поширювати
Кожен інструмент нижче — це один завантажуваний файл: або компонент React (.jsx), який працює в будь-якому середовищі React 18+, або автономний HTML-додаток, що працює в будь-якому браузері без етапу збирання. Усі інструменти отримані з технічних розділів вікі та відповідають математичним доказам у provable_claims.py. Оператори та планувальники можуть помістити будь-який файл у штабний термінал або ноутбук і негайно ним скористатися.
Штабна консоль Lisa 26 (об\'єднаний 6-вкладковий інтерфейс)
LISA26-STAFF-CONSOLE.JSX
Розмір
27 КБ, ~440 рядків
Вкладки
Синтез загроз (Dempster-Shafer), двигун рішень (L1/L2/L3), бюджет лінії (Friis FSPL), покриття (GSD+NIIRS), планування місії (Fresnel+LOS+сонце), статус флоту
Зона Френеля F1 посередині, горизонт прямої видимості від кривизни Землі, перевірка діапазону FPV, азимут сонця (алгоритм Жана Меуса для заходу «сонце за оператором»)
Варіанти FPV
5" ELRS 5 км €270, 7" ELRS 20 км €550, волоконна оптика незаглушувана 5 км €350
Натисніть кнопку fsga-code-v2.zip вище. Розпакуйте zip-файл у будь-яку папку. Відкрийте термінал у цій папці.
02
ВСТАНОВИТИ ЗАЛЕЖНОСТІ
Запустіть pip install pyyaml --break-system-packages (або використайте virtualenv). Сама Lisa 26 не потребує зовнішніх бібліотек окрім стандартної бібліотеки Python.
03
ЗАПУСТИТИ ТЕРМІНАЛ LISA 26
Запустіть cd lisa26-server && python3 lisa26.py. Дотримуйтесь підказок, щоб вибрати масштаб підрозділу (взвод/рота/батальйон/бригада) та правила застосування сили. Система запускає цикл датчиків і представляє рішення в реальному часі.
04
ЗАПУСТИТИ ВЕБ-COP LISA 26
Запустіть python3 lisa26_web.py, потім відкрийте http://localhost:8080. Штабні офіцери можуть схвалювати рішення L2 через веб-інтерфейс, тоді як польові оператори використовують термінал. Обидва діляться однією базою даних SQLite.
05
ЗАПУСТИТИ МАТЕМАТИЧНІ САМОТЕСТИ
Запустіть cd src/code && python3 provable_claims.py — перевіряє всі 63 числових твердження за їхніми формулами. Або cd fischer26-ew && python3 whitelist.py (HMAC-SHA256 IFF), python3 servo_pantilt.py (PWM), python3 jammer_control.py (захищені смуги), python3 ew_integration.py (повна інтеграція).
Швидкий старт — інтерактивні інструменти
Компоненти .jsx очікують React 18+ і спроектовані для того, щоб їх можна було вставити в будь-який проект React, включаючи Create React App, Vite, Next.js або артефакти Claude. Кожен компонент експортує функцію за замовчуванням; імпортуйте її та відобразіть:
# pip install requests
# Перевірити SHA-256 архіву завантаження перед інтеграцією будь-якого компонента
import hashlib
import requests
def verify_archive(url, expected_sha256):
"""Завантажити архів і перевірити його хеш перед використанням."""
response = requests.get(url, stream=True)
response.raise_for_status()
sha = hashlib.sha256()
for chunk in response.iter_content(8192):
sha.update(chunk)
actual = sha.hexdigest()
if actual != expected_sha256:
raise ValueError(f"Невідповідність хешу: {actual} != {expected_sha256}")
return True
# Приклад: хеш fsga-code-v2.zip публікується разом з посиланням для завантаження
# на цій сторінці. Інтегратор перевіряє його перед розпакуванням будь-якого .jsx-компонента.
print("Цілісність архіву перевірено — безпечно розпаковувати .jsx-компоненти")
Після перевірки вставте компоненти React у ваш проект. Кожен файл .jsx експортує функцію за замовчуванням. Мінімальний App.jsx виглядає так: import MissionPlanner from './lisa26-mission-planner.jsx'; export default () => <MissionPlanner />; — окрім стандартної конфігурації React 18+, інших налаштувань збирання не потрібно.
Автономний HTML (lisa26-dron-scenario.html) не потребує кроку збирання — відкрийте його безпосередньо в будь-якому браузері або завантажте на будь-який статичний веб-хостинг.
Математична верифікація
Кожен модуль у fsga-code-v2.zip має самотести, які виводять основну математику. Файл верхнього рівня provable_claims.py перевіряє всі 63 числові твердження в вікі проти їхніх формул і очікуваних значень; запуск його створює звіт про верифікацію, який інженер може перевірити перед тим, як прийняти будь-яке проектне твердження.
M1
БЕЗПЕКА HMAC-SHA256 IFF (whitelist.py)
7-байтний скорочений HMAC = 56 біт безпеки. Ймовірність колізії за спробу: 1/2⁵⁶ = 1,39×10⁻¹⁷. При 1000 heartbeats/с, очікуваний час до колізії становить 2,28 мільйона років. Достатньо для тактичного IFF, де тривалість місії вимірюється в годинах.
M2
СИНТЕЗ DEMPSTER-SHAFER (dempster_shafer.py)
Два незалежних датчики з довірою m1=0,70 і m2=0,65 об\'єднуються в m12 = 1 − (1−0,70)×(1−0,65) = 0,895 (89,5%). Три датчики (0,70, 0,65, 0,60) дають 0,958 (95,8%). Спадаюча віддача доведена — чотири датчики додали б лише 2,4% більше довіри.
M3
ДАЛЬНІСТЬ ГЛУШНИКА (jammer_control.py)
Рівняння вільного простору Friis d = 10^((P_tx + G_tx + G_rx − P_rx − 20·log₁₀(f) + 147,55)/20). При 2 Вт (33 дБм), 2,4 ГГц, спрямована антена +6 дБі проти цілі −80 дБм: d = 11 150 м. Практична дальність зменшена до ~8 км через місцевість і рослинність.
Без Fischer 26: FPV на 100 мВт (20 дБм) з 15 дБ втратами на місцевості = 17,8 км дальність. З Fischer 26 на 300 м AGL як реле підсилення (27 дБм, +6 дБі): LOS земля-повітря досягає 447 км — 25× множник дальності, обмежений лише геометрією.
M5
ВЕРХНІЙ РІВЕНЬ PROVABLE CLAIMS (provable_claims.py)
Усі 63 числові твердження в вікі перевіряються в одному сценарії. Кожне твердження несе формулу, посилання на джерело та очікувану допустиму похибку. Рецензент у FMV або FOI може змінити будь-який вхідний параметр і негайно побачити, як змінюються результати — довіра не потрібна.
Розгортання за масштабом підрозділу
Lisa 26 масштабується від одного планшета взводу до повного командного пункту бригади. Вимоги до обладнання та операторів на кожному рівні:
D1
ВЗВОД (район операцій 4 км²)
Один планшет Android (Samsung Galaxy Tab Active 4 Pro, ~€800). Один оператор. Флот дронів: 5 FPV плюс 2 перехоплювачі. Виконання всередині Termux; база даних на внутрішньому сховищі. 8 годин часу роботи від батареї.
D2
РОТА (район операцій 25 км²)
Захищений ноутбук, як-от Getac B360 (~€3 500). Два оператори — один на терміналі, один на веб-COP. Флот із 15 FPV, 2 Fischer 26 і 4 перехоплювачів. Рекомендовано Ubuntu 22.04 LTS.
D3
БАТАЛЬЙОН (район операцій 100 км²)
Rack-сервер у кейсі Pelican (Dell PowerEdge R250, ~€5 000). Три оператори. Флот із 25 FPV, 3 Fischer 26 і 8 перехоплювачів. Розгортання Docker-контейнера, зовнішній PostgreSQL для історичного аналізу, 4G/5G backhaul як резервне MANET.
D4
БРИГАДА (район операцій 600 км²)
Резервні rack-сервери з HA failover (~€12 000 загалом). П\'ять операторів. Флот із 50 FPV, 5 Fischer 26 і 16 перехоплювачів. Кластер Kubernetes з реплікованим PostgreSQL. Шлюз TAK Server для взаємодії з NATO через STANAG 5525. Starlink, MANET і 4G backhaul.
Ліцензія та використання
Увесь код та інструменти публікуються під Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0). Користувачі можуть вільно використовувати, змінювати та поширювати матеріали за умови дотримання трьох умов: позначити оригінальне джерело (FSG-A Fjärrstridsgrupp Alfa), публікувати модифіковані версії під тією ж ліцензією та не заявляти, що розробили оригінал. Збройні сили Швеції, союзні агентства та союзні організації можуть відгалужувати, змінювати та розгортати без дозволу або ліцензійних платежів. Немає прив\'язки до постачальника та немає ланцюга власних залежностей.
Код призначений для оборонних цілей — захист шведської та союзної території. Комерційне військове використання третіми сторонами, які не поділяють цих оборонних цінностей, суперечить духу ліцензії та не дозволене.
Вміст пакета.fsga-code-v2.zip містить 25 файлів Python загалом 7 476 рядків; повний список модулів знаходиться в README пакета. Усі модулі індивідуально самоперевіряються проти формул, опублікованих у відповідних розділах вікі.
Інтерактивні інструменти. 9 автономних інструментів отримують свою числову логіку з розділів вікі, на які вони посилаються (названі в кожному specbox вище). Поведінку кожного інструменту можна перевірити проти provable_claims.py — інструменти і докази використовують однакові константи.