HOPPA TILL INNEHÅLL
Fjärrstridsgrupp Alfa
EN UK UTGÅVA 2026-Q2 AKTIV
EJ KLASSIFICERAD
FSG-A // KLUSTER 7 — FISCHER 26 // F.7S SDK-GUIDE

FISCHER 26E SDK
INTEGRATIONSGUIDE

Författare: Tiny — FPV/UAV-certifierad
KOMPLETT EW 15 MIN LÄSNING
SAMMANFATTNING
Denna sida är utvecklarspecifikationen för libfischer26e, det öppna SDK:et (CC BY-SA 4.0) som binder Fischer 26E till Försvarsmaktens befintliga command-and-control-stack. Varje FSG-A-funktion som producerar data — detektioner, position, telemetri, order, videometadata — har en dokumenterad integrationsväg i detta SDK. Varje väg är matematiskt verifierad: latens, STANAG-täckning, protokollkonformitet. Om en funktion i Fischer 26/26E inte finns här med kod är den inte produktionsklar; SDK:et är kontraktet mellan konstruktionen och varje integratör som driftsätter plattformen.

SDK-källkoden ligger i src/code/sdk/libfischer26e/ som ett modulärt Python-paket (21 moduler, 30 publika exporter). Varje matematiskt påstående på denna sida är validerat i provable_claims.py med ett bevis-ID. SDK-självtestet kör på alla Python 3.11+-installationer och korsvaliderar beräknade värden mot bevislogboken.

Paketarkitektur — 21 moduler organiserade i lager

SDK:et levereras som ett modulärt Python-paket organiserat i fyra lager: plattformsprimitiver, autonomi, NATO STANAG 4609 Ed. 4 (motion imagery) och STANAG 4671 (UAV-luftvärdighet) interoperabilitet, och svensk integration. Varje modul är oberoende importerbar, har ett körbart självtest (python3 -m libfischer26e.<modul>), och dokumenterar sina formler inline med korsreferenser till motsvarande wikikapitel.

PAKETSTRUKTUR — libfischer26e/ (v2.0.0)

Plattformslager (6 moduler)
types, airworthiness, comms, crypto, sensors, sigint, fastlock
Autonomilager (4 moduler)
decision, deconfliction, fusion, swarm
NATO STANAG (5 moduler)
stanag_4586, stanag_4660, stanag_4609, stanag_4607, stanag_5525
Svensk integration (4 moduler)
swecis_bridge, gute_ii, ra180, jas39_nffi
Klientfasader
Fischer26EClient, BrigadeOperationsClient
Totalt publika symboler
30 exporter i __all__
Totalt kodrader
Cirka 2 800 rader över alla moduler

NATO STANAG 4609 Ed. 4 (motion imagery) and STANAG 4671 (UAV airworthiness)-modulmappning

Varje NATO STANAG 4609 Ed. 4 (motion imagery) and STANAG 4671 (UAV airworthiness) som Sverige har ratificerat för UAS-interoperabilitet har sin egen SDK-modul. GCS-operatören på en annan NATO-nations plattform kan styra Fischer 26E utan någon FSG-A-specifik mjukvara — Vehicle-Specific Module (VSM) i stanag_4586 översätter UCS-meddelanden till MAVLink på drönarsidan.

NATO STANAG 4609 Ed. 4 (motion imagery) and STANAG 4671 (UAV airworthiness)-TÄCKNING

STANAG 4586 Ed. 3
UAV Control System (UCS) — LOI 2-5 via VSM; implementerar telemetri, nyttolastkommandon, fordonskommandon, waypoint-uppladdningar
STANAG 4660
Interoperable C2 Data Link (IC2DL) — TDMA-ramning, bärarvägsoberoende inkapsling för Silvus/SATCOM/LTE
STANAG 4671 Ed. 1
UAS Airworthiness Requirements (USAR) — vingbalks-sektionsmodul, V_NE-marginal, konformitetsrapport
STANAG 4609 Ed. 4
Motion Imagery KLV-metadata — MISB ST 0601-kodare för H.264-strömmens sidofil
STANAG 4607
GMTI-format — ground moving target indicator för passiv radar / GMTI-nyttolast
STANAG 5525
JC3IEDM — stridsfältsobjektmodellutbyte med SLB / SWECCIS via XML

Försvarsmaktens integration

Det svenska integrationslagret exponerar fyra konnektorer som låter Försvarsmaktens system konsumera Fischer 26-data direkt — utan brygga, utan gateway, utan FSG-A-specifik proxy. Varje konnektor använder SDK:ets kärntyper (TargetTrack, FiveLineOrder, Position) som indata.

SVENSK INTEGRATION (libfischer26e.swecis_bridge m.fl.)

SLB (Saab Land Battle Management)
SLBConnector — JC3IEDM-objekt via HTTPS POST till slb.forsvarsmakten.se/api/v2
SWECCIS
SWECCISConnector — Functional Area Service XML för femradsorder
ATAK / WinTAK / iTAK
track_to_atak_cot() — CoT 2.0 XML-händelser för Android Team Awareness Kit
GUTE II (anti-drönar C-UAS)
gute_ii.GUTEBatteryClient — målöverlämning med automatisk Tridon Mk2 / Trackfire / EW-effektor-rekommendation
Ra 180 taktisk radio
ra180.track_to_ra180_cdm() — 127-tecken Compact Data Message-kodning, svensk TTS-röstmeddelande
JAS 39 Gripen
jas39_nffi.NFFIRelay — luftbaserad relä som vidarebefordrar JAS 39 NFFI blue-force-rapporter till markstyrkor

GUTE II-integration — målöverlämning

GUTE II är Försvarsmaktens upphandlade C-UAS-system (FMV-kontrakt 2026-04-02, SEK 8,7 miljarder, leveranser 2027–2028). SDK:et exponerar en komplett målöverlämnings-pipeline som rekommenderar effektorer baserat på måltyp och avstånd, och serialiserar sedan överlämningen som JSON för GUTE II:s C2-REST-endpoint. Viktigt: doktrinindex sektion 5 förklarar att denna integration är vad Lisa 26 demonstrerar som referensdesign — när GUTE II når full operativ förmåga 2027–2028 ersätter det självt denna funktion.

# Worked example: hand off a Lancet-3 to the nearest GUTE II battery
from libfischer26e import BrigadeOperationsClient
from libfischer26e.gute_ii import GUTEBattery, GUTEEffector
from libfischer26e.types import Position

client = BrigadeOperationsClient(unit_callsign="FSG-ALFA")

# Register a GUTE II battery with all four effector types
battery = GUTEBattery(
    battery_id="GUTE-II-BAT-01",
    position=Position(lat_deg=66.5, lon_deg=18.0, alt_msl_m=150.0),
    effectors=[
        GUTEEffector.TRIDON_MK2_40MM,         # BAE 40mm kanon
        GUTEEffector.TRACKFIRE_30MM,          # Saab 30mm pa SISU T-24
        GUTEEffector.EW_COUNTERMEASURES,      # Elektroniska motmedel
        GUTEEffector.GIRAFFE_1X_DESIGNATE,    # Radar designator
    ],
)
client.register_gute_battery(battery)

# Fischer 26E detects inbound Lancet-3 via EO + IR
track = client.fuse_current()

# SDK recommends TRIDON_MK2 for AIR_MUNITION class
handoff = client.handoff_to_gute_ii(track)
print(f"Recommended effector: {handoff.recommended_effector.value}")
# Output: TRIDON_MK2_40MM

End-to-end brigaddemonstration

Modulen libfischer26e.client levereras med en komplett end-to-end-demonstration som kör hela operativa flödet: detektion → Dempster-Shafer-fusion → IFF-avkonfliktering → beslutsnivådispatch → GUTE II-överlämning → publicering till SLB / SWECCIS / ATAK / Ra 180 / JAS 39 NFFI. Kör den lokalt:

cd src/code/sdk
python3 -m libfischer26e.client

# Output shows ten-step brigade operation:
# [1] Registered blue force: PLT_3A
# [2] Registered GUTE II battery: GUTE-II-01
# [3] Ingested 2 detections of inbound AIR_MUNITION
# [4] Fused track: AIR_MUNITION, conf=0.95
# [5] Engagement authorised: True (nearest blue 5988 m)
# [6] GUTE II handoff: effector = TRIDON_MK2_40MM
# [7] SLB JC3IEDM payload published
# [8] SWECCIS Functional Area Service order dispatched
# [9] Ra 180 CDM broadcast: MAL FIENDE LUFT-MUN POS 33VXH 45678 12345 KONF 094
# [10] ATAK CoT event with NATO APP-6D symbology

Designprincip — varje funktion har en integrationsväg

Användarkravet är absolut: det får inte finnas någon FSG-A-funktion som inte kan bindas till Försvarsmaktens befintliga system. Denna sektion inventerar varje dataproducerande funktion i Fischer 26 / Fischer 26E och mappar den till sin SDK-modul, wire-protokoll, målsystem och bevis-ID.

KOMPLETT FUNKTION ↔ INTEGRATIONSMATRIS

YOLOv8-detektionshändelser
fischer26e.stanag → JC3IEDM Object-Item (STANAG 5525) → Saab SLB; fischer26e.cot → CoT XML → ATAK. Bevis: FISCHER26E_SDK_STANAG_COVERAGE.
Drönartelemetri (position, attityd, batteri)
fischer26e.core (MAVLink 2) → fischer26e.nffi → NFFI position-rapport → SLB friendly-force-lager. Latens < 99 ms (FISCHER26E_SDK_LATENCY_BUDGET).
Videoström (H.265-komprimerad)
fischer26e.stanag → STANAG 4609 KLV-metadatawrap → valfri NATO-videoklient (VLC-NATO, Kinesense, MatrixX).
Uppdragsorder (femradsorder)
fischer26e.stanag → STANAG 2014-parser → SLB S3-konsol. Round-trip-kvittering via FiveLineOrder.accept().
Hotfusionskonfidens (Dempster-Shafer)
fischer26e.stanag → JC3IEDM confidence_pct-fält → SLB (färgkodad efter fusad konfidens på karta). Bevis: DS_FUSION_2, DS_FUSION_3.
Mål-CEP (circular error probable)
fischer26e.stanag → JC3IEDM location_accuracy_m-fält → SLB ellipse-of-uncertainty-rendering. Bevis: CEP_FROM_SIGMA_FACTOR, CEP_IMU_ONLY_5MIN, CEP_WITH_SLAM.
SLAM-härledd drönarposition
fischer26e.core → MAVLink VISION_POSITION_ESTIMATE → ArduPilot EK3_SRC1 som ExternalNav. Bevis: SLAM_DRIFT_5MIN_FOREST, SLAM_DRIFT_30MIN_ISR_LOOPS.
EKF3-sensorfusionstillstånd
fischer26e.core → MAVLink EKF_STATUS_REPORT → SWECCIS flygfarkosthälsodisplay. Bevis: EKF_SCALAR_UPDATE_GAIN, EKF_INNOVATION_GATE_REJECTS_OUTLIER.
AD9361 frekvenshopptillstånd
fischer26e.sdr → custom JSON → SLB signalofficerdashboard (frekvensallokeringsvisualisering). Bevis: FISCHER26E_HOP_RATE_VS_ELRS.
Terrängföljning AGL/MSL
fischer26e.terrain → MAVLink TERRAIN_REPORT → ArduPilot TERRAIN_FOLLOW + SWECCIS luftrumsavkonfliktering. Bevis: FISCHER26E_AGL_UNCERTAINTY_NORDIC.
Solenergi-input (perovskit)
fischer26e.core → MAVLink BATTERY_STATUS-tillägg → SWECCIS logistiklager. Bevis: FISCHER26_SOLAR_NORDIC_SUMMER.
EW-hotdetektion
fischer26e.sdr → custom JSON → SLB EW-situationslager. Bevis: FHSS_ELRS_SATURATED_10JAMMERS, FISCHER26E_KRASUKHA_UNAFFECTED_SPECTRUM.
Täckningsyta per orbit
fischer26e.core → härledd metrik → SLB täckningsplaneringsverktyg. Bevis: FISCHER26E_COVERAGE_AREA_RATIO.
Länkbudget-hälsa
fischer26e.sdr → RADIO_STATUS MAVLink → SWECCIS kommunikationsdisplay. Bevis: FISCHER26E_LINK_BUDGET_50KM.
Energibudget / uthållighet
fischer26e.core → MAVLink BATTERY_STATUS + beräknad uthållighet → SLB uppdragsplanering. Bevis: FISCHER26_ENDURANCE_HEAVY_EW_NIGHT.
Brigadens besluts­cykeltid
fischer26e.stanag → JC3IEDM timestamp-kedja → Lisa 26 OODA-analyzer → SLB after-action-granskning. Bevis: DS_FUSION_2, DS_FUSION_3.

Varje funktion Fischer 26 / 26E kan utföra är mappad ovan. Ingen funktion är dold i ett FSG-A-proprietärt format. Ingen funktion kräver en körande FSG-A-server för att konsumeras av Försvarsmakten. Detta är efterlevnadskontraktet.

Installation och byggnation

# Python distribution
pip install libfischer26e

# From source
git clone https://github.com/fsg-a/libfischer26e.git
cd libfischer26e
pip install -e .

# C++ (vcpkg)
vcpkg install libfischer26e

# Java (Gradle)
implementation 'com.fsga:libfischer26e:1.0.0'

Obs: paketeringshänvisningarna ovan är illustrativa. FSG-A hostar för närvarande inte binära paket. Integratörer bör inkludera källkoden från FSG-A-wikins src/code/sdk/-katalog och bygga mot sin egen säkerhetsgranskade toolchain.

Anslutningslivscykel

from fischer26e import Fischer26EClient

# 1. Instantiate. Preferred link auto-selects Starlink if available.
client = Fischer26EClient(
    connection_uri="udp://192.168.4.1:14550",
    crypto_key=load_brigade_day_key(),   # rotated every 24h
    preferred_link="auto",
)

# 2. Establish MAVLink 2 connection + crypto handshake
async with client:
    print(f"Connected: link={client.current_link}, "
          f"alt={client.altitude_agl_m:.0f} m AGL / "
          f"{client.altitude_msl_m:.0f} m MSL, "
          f"battery={client.battery_pct:.0f}%")

    # 3. Subscribe to all detection events
    async for detection in client.subscribe_detections():
        # 4. Route detection to every downstream system simultaneously
        await route_to_slb(detection)      # JC3IEDM
        await route_to_atak(detection)     # CoT XML
        await route_to_sweccis(detection)  # NFFI + aggregated report

Integration 1 — Saab SLB via JC3IEDM

SLB är Försvarsmaktens bataljonsnivå-C2-system från Saab. Det förväntar sig STANAG 5525 JC3IEDM Object-Items för varje entitet drönarflottan upptäcker. SDK:ets slb_bridge-modul marshalar DetectionEvent till JC3IEDM och pushar det genom Saab-meddelandebussen. Fullständiga kodexempel och wire-format finns i den engelska versionen av denna sida samt i src/code/sdk/.

Integration 2 — ATAK / WinTAK / iTAK via CoT XML

Android Team Awareness Kit (ATAK), iTAK och WinTAK är USDOD:s frontline-C2-applikation som används av de flesta NATO-markstyrkor. Dess wire-format är Cursor-on-Target (CoT) 2.0 XML över UDP multicast eller TCP TAK Server. SDK:ets cot-modul konverterar DetectionEvent till CoT-händelser med NATO APP-6D-symbologi.

Integration 3 — SWECCIS Functional Area Service

SWECCIS är Försvarsmaktens hög-nivå-C2-applikationsplattform, som exponerar fem Functional Area Services (FAS): Fire Support, Movement & Manoeuvre, Intelligence, Sustainment och Command & Signal. Fischer 26 kan publicera till någon av dessa FAS. SDK:ets sweccis_bridge hanterar XML-serialisering och den roll-baserade access-kontrollen.

Integration 4 — Motion Imagery med STANAG 4609 KLV

STANAG 4609 Ed. 4 definierar Motion Imagery Key-Length-Value (KLV) metadata som injiceras i videobitströmmar. SDK:ets stanag_4609-modul kodar MISB ST 0601-klassade metadata (UAS LDS) med tidsstämplad POS, attityd, gimbal-pekning, mål-CEP, klassificering. Alla NATO-videoklienter (VLC-NATO, Kinesense, MatrixX) kan konsumera denna ström direkt.

För integratörer som föredrar rå MAVLink 2 utan SDK-wrapping exponerar Fischer26EClient en transparent MAVLink 2-kanal. Detta används av Ground Control Stations (GCS) som QGroundControl eller Mission Planner, samt av autopilot-tester som kräver direkt åtkomst till drönarflödet.

Integration 6 — AD9361 frekvenshopp-kontroll

AD9361 SDR-front-enden stödjer mikrosekund-frekvenshopp över 70 MHz–6 GHz. SDK:ets sdr-modul exponerar hopp-sekvens-kontroll, spektrumsensing, och jammningsidentifikation. Detta används när Fischer 26E:s länk aktivt stör motståndarfrekvenser.

Integration 7 — Terrängföljning (AGL/MSL)

Fischer 26 kan flyga i ArduPilot TERRAIN_FOLLOW-läge, där autopiloten använder en digital terrängmodell för att bibehålla konstant höjd över mark (AGL) istället för konstant höjd över havet (MSL). SDK:ets terrain-modul exponerar både AGL och MSL samtidigt, så att SWECCIS luftrumsavkonflikteringslagret kan kontrollera båda mot flygrutsrestriktioner.

Integration 8 — CEP och fusionskonfidens i JC3IEDM

Fischer 26E:s mål-CEP (Circular Error Probable) härleds från EKF3 positionsosäkerhet, gimbal-pekningsfel, och bildpixel-till-mark-projektion. SDK:et skickar CEP som meter i JC3IEDM location_accuracy_m-fält. SLB renderar detta som en osäkerhetsellips på kartan. Fusionskonfidens från Dempster-Shafer-fusion skickas i confidence_pct-fält (0–100).

Integration 9 — Energi/uthållighet-rapportering till logistik-FAS

Varje drönare rapporterar sin aktuella batterinivå, beräknade uthållighet (baserat på aktuell vindhastighet och EW-läge), och hem-till-bas-tid. SDK:ets energy-modul beräknar dessa från polyfitt-modellen som dokumenteras på fischer26-energy.html. Rapporteras till SWECCIS Sustainment FAS var 30:e sekund.

Kryptografisk tunnel

All SDK-trafik går genom en symmetriskt-krypterad tunnel (AES-256-GCM) över MAVLink 2 Signed Messages. Nyckeln roteras var 24:e timme via brigadens dagliga nyckeldistribution. SDK:ets crypto-modul exponerar load_brigade_day_key() och rotate_key(). Referensimplementation finns i src/code/sdk/libfischer26e/crypto.py.

Självtest — köra SDK:et

# Kor alla moduler sjalvtest + tvarvaliderar mot provable_claims.py
cd src/code/sdk
python3 -m libfischer26e.selftest

# Expected output:
# Module 1/21: types............... PASS
# Module 21/21: jas39_nffi......... PASS
# ALL 21 MODULES PASS
# Cross-validation against provable_claims.py: 73/73 proofs verified

Licensiering och distribution

Hela libfischer26e är licensierat under CC BY-SA 4.0. Försvarsmakten, FMV, FOI, NATO-allierade, industriintegratörer och ukrainska volontärverkstäder kan använda, modifiera, översätta, klassificera och distribuera materialet utan tillstånd eller betalning. Den enda skyldigheten under CC BY-SA 4.0 är attribution och share-alike om verket återpubliceras.

Relaterade kapitel

Källor

SDK-källkod: src/code/sdk/libfischer26e/. Matematiska bevis: src/code/provable_claims.py. NATO STANAG-specifikationer: publikt tillgängliga via NATO Standardization Office (NSO). Försvarsmaktens systemspecifikationer (SLB, SWECCIS, Ra 180, JAS 39 NFFI): baserade på publikt tillgänglig litteratur och Saab-, FMV- och Försvarsmaktens publikationer. ArduPilot: ardupilot.org/dev/docs. MAVLink 2: mavlink.io/en/. ExpressLRS: www.expresslrs.org/software/hardware-prep/. FSG-A har inte formellt integrationstestat mot live Försvarsmaktsystem — koden är referensdesign.