Maskinoversættelse, ikke gennemgået af en modersmålstalende. Engelsk er referencen.

Udviklere

Én motor. Alle veje ind.

Én Rust-motor til modstandsdygtighed i GNSS (Global Navigation Satellite System) og PNT (positionering, navigation og tidssynkronisering): en kommandolinjegrænseflade (CLI), pakker til Rust, Python og JavaScript, Kshana Studio i browseren, et plugin til JetBrains IDE (integreret udviklingsmiljø) og en MCP-server (Model Context Protocol), så en AI-assistent (kunstig intelligens) kører den validerede motor i stedet for at gætte på matematikken. Open source under AGPL-3.0 (GNU Affero General Public License, version 3) eller en kommerciel licens.

Terminal · kshana v0.40.0 Optaget kørsel
The recorded session plays here with JavaScript.
Reelle kommandoer, reelt output, afspillet som optaget. I outputtet: SVs, rumfartøjer (satellitter); J/S, forholdet mellem jammer og signal; thr, tærskel; RAIM, autonom integritetsovervågning i modtageren; SQM, overvågning af signalkvalitet; p95, 95. percentil.

Udgivelse v0.40.0 92 scenarietyper 49 MCP-værktøjer AGPL-3.0 eller kommerciel licens Genereret ud fra repositoryet
01Installation · AI-assistenter

Installér med én linje. Eller ingen.

Genereret ud fra repositoryets manifester og krydstjekket mod dets README-filer, så hver kommando passer til v0.40.0. kshana-mcp giver din AI-assistent den samme motor: et TOML-scenarie (Tom's Obvious, Minimal Language) ind, JSON (JavaScript Object Notation) og CSV (kommaseparerede værdier) ud.

InstallationFra manifesterne

Til alle, uden noget at installere.

Motoren kører lokalt som WebAssembly; intet uploades.

Rust-motorAGPL-3.0 eller kommerciel licensSoftware bill of materials og byggeproveniens ved hver udgivelse

AI-assistent + kshana-mcp Optaget session

De beskeder, en assistent udveksler med kshana-mcp, optaget fra serveren.

Den optagede session afspilles her trin for trin.

Samme kørsel i Studio: Motor v0.40.0 · clock-holdover.toml · seed 42Åbn i Kshana StudioRapport

49 værktøjer over den offentlige Kshana-API (programmeringsgrænseflade), i det officielle MCP-register som io.github.ashfordeOU/kshana-mcp. Orbit-eksporter: SP3 (Standard Product 3) og CCSDS (Consultative Committee for Space Data Systems) OMM og OEM (meddelelser om middelelementer og efemeride for baner, TEME: True Equator, Mean Equinox-system). Registrér den under AI-assistent (MCP-server) eller Docker-image. Dokumentation af MCP-serveren

run_scenario

Kør et Kshana-scenarie for PNT-robusthed ud fra en TOML-definition og returnér dets kvalitetsmål. Returnerer det menneskelæsbare resumé efterfulgt af det fulde resultat som JSON (FoM'er, kurver). Kshana validerer SGP4/SDP4, IAU-referencesystemer, Allan-deviationer, GNSS-tilgængelighed/DOP, ARAIM-beskyttelsesniveauer, GNSS/INS-fusion og kvantesensormodeller mod offentliggjorte referencer. Alle typer kører gennem dette ene værktøj, herunder spectrum (radiofrekvensspektrum og vandfald), solar-system, constellation-design og body-pnt (konstellationer omkring et vilkårligt legeme), campaign (kædede faser, parametersweeps, Monte Carlo-ensembler og sammensatte scenarier) og navigationstyperne for lav jordbane leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning og leo-pnt-chain. Indholdet er inline: et scenariefelt, der navngiver en fil, afvises, og et scenarie fylder højst 4 MiB. Kald list_scenario_kinds først for at finde scenarietyper og deres felter, og list_example_scenarios / get_example_scenario for et komplet scenarie af en type, der kan køres.

list_scenario_kinds

Vis hver indbygget Kshana-scenarietype med dens beskrivelse og påkrævede/valgfri TOML-felter, som et JSON-array. Brug det til at finde ud af, hvilke scenarier der kan køres, og hvordan man opbygger en gyldig scenarie-TOML til run_scenario.

validate_scenario

Forhåndskontrol af en Kshana-scenarie-TOML: kontrollér, at den kan parses som TOML, og find dens scenarietype uden at køre den. Returnerer den fundne type eller en beskrivende fejl for ugyldig TOML. (run_scenario udfører den fulde validering ved at køre scenariet.)

assess_receiver_log

Vurdér tilliden til en rigtig GNSS-modtagerlog: læs en u-blox UBX-, RINEX 3- (eventuelt med broadcast-navigation, som tilføjer motorens egen positionsbestemmelse, RAIM og en urstøttet monitor), Android GnssLogger- eller NMEA-log, kør tillidsmonitorerne (fald i bærebølge-til-støj-tæthed, AGC, jamming-indikator, tab af lås, positionsspring, RAIM, ur) mod en kalibreringsbaseline, og returnér hvornår og hvorfor modtageren holdt op med at være pålidelig. Valgfri [[events]] med indsættende hændelser og forudsagte C/N0-fald scores mod tolerancer angivet i scenariet: detekteret, sent eller missede, og enig eller uenig. Returnerer oversigten og det fulde resultat som JSON (diagram og CSV på forespørgsel; en CSV for en fartøjskørsel begynder med en #-kommentarlinje, der bærer den vejledende erklæring, som CSV-læsere springer over med deres kommentarindstilling). Logbytes lægges inline i TOML som text eller base64 (kun inline, højst 4 MiB). En [platform] kind = "vessel"-tabel vælger de maritime monitorer (kinematisk konsistens, kurs mod sejlretning, logfart, antennehøjde, C/N0-spredning, tidskonsistens) og tilføjer en tillidsscore på 0-100 pr. epoke med de monitorer, der trak fra. Hver epoke har også sin satellit-geometry (good; degraded ved få satellitter eller høj PDOP eller HDOP; eller unknown, hvor loggen ikke har satellitelevationer eller DOP); hver epoke har en label (good, fair, poor); for et fartøj indgår en geometry-monitor i scoren og trækker kun fra, når geometrien er poor (højst 15 point: degraded, aldrig untrusted), og hvert fradrag har en klasse: geometry (himlen), environment eller inconsistency (angrebslignende). Til et streamudsnit med gaten brug assess_vessel_stream. Kun vejledende; evidensniveau MODELLED.

list_example_scenarios

Vis de medfølgende referencescenarier som JSON: count og scenarios, et array af name, kind og about (første sætning i filens egen overskriftskommentar). Hvert enkelt er et komplet scenarie, der kører, som det er, så det er den hurtigste vej til en gyldig TOML for en type: vælg et navn, hent det med get_example_scenario, redigér det, kør det. Angiv kind for kun at vise eksemplerne af én type (for eksempel spectrum, solar-system, constellation-design, campaign, leo-signal, leo-pass, leo-navmsg, leo-pvt).

get_example_scenario

Returnér TOML-teksten for ét medfølgende referencescenarie, byte for byte den fil, som repositoriet leverer under scenarios/. Giv teksten (redigeret eller ej) videre til run_scenario, report_scenario, animate_scenario eller et eksportværktøj. Navne kommer fra list_example_scenarios. Et scenarie, der findes i repositoriet, men ikke er medfølgende, afvises med årsagen.

report_scenario

Kør et Kshana-scenarie og returnér dets rapport: et resumé til ledelsen, inputtene, hvert resultattal med dets enhed og dets VALIDATED- eller MODELLED-mærkat, hændelserne, de funktionsrækker, kørslen berørte, og en reproducerbarhedsjournal (motorversion, SHA-256-digests for scenarie og resultat, seed, den kommando, der reproducerer det). format er json (standard; den maskinlæsbare report.json) eller html (den udskrivbare, selvstændige report.html med diagrammet indlejret). En kampagnes rapport indeholder også dens sweeptabel eller Monte Carlo-fordeling. Rapporten er en ren funktion af scenariet: intet ur læses.

animate_scenario

Kør et Kshana-scenarie og returnér dets tidsserie som en animation. format er svg (standard: én animeret SVG uden script), html (én selvstændig afspillerside) eller frames (nummererede statiske SVG-billeder plus manifest.json, højst 120 billeder i ét svar). Valgfri fps (1 til 60, standard 12), duration_s (0,5 til 600, standard 8) og width (480 til 3840 pixel, standard 960). Det første indholdselement er et JSON-resumé af det tegnede: tidsintervallet og enheden, diagramtitlerne, antal faser og hændelser, om et spektrumvandfald indgår, de resultatstier, kurverne blev læst fra, eventuelle udeladte serier og filnavnene. Filerne følger, ét indholdselement hver, i den rækkefølge, som resuméets files opregner dem. En type, hvis resultat ikke har nogen samplet tidsakse, afvises med en besked, der siger det. Animationen er en MODELLED præsentation af kørslens egne tal; samme scenarie og samme indstillinger giver byte-identiske filer.

list_export_formats

Rapportér, hvilke interoperabilitetseksportformater der gælder for et Kshana-scenarie, uden at køre det: et JSON-array med én post pr. format (czml, kml, geojson, stk, sigmf) med applies, reason, når det ikke gælder, og spec_url, den offentliggjorte specifikation, som skriveren følger. CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON og STK-efemeriden (Systems Tool Kit) .e beskriver scenariets geometri; SigMF (Signal Metadata Format) optager de sampel, som et spectrum-scenarie med en [iq]-blok syntetiserer. Kald dette før export_interop.

export_interop

Eksportér et Kshana-scenarie i ét interoperabilitetsformat: czml (Cesium Language, til CesiumJS), kml (Keyhole Markup Language, til Google Earth og geografiske informationssystemer), geojson (RFC 7946), stk (Systems Tool Kit-efemeride .e, én fil pr. satellit) eller sigmf (Signal Metadata Format-optagelse af de syntetiserede sampel i et spectrum-scenarie). Det første indholdselement er et JSON-indeks: format, spec_url og files, hver med sin suffix (det, kommandolinjen føjer til outputnavnet, for eksempel .czml eller .G01.e), bytes, sha256 og encoding. Filerne følger, ét indholdselement hver, i indeksets rækkefølge: utf-8-filer som deres tekst, den binære SigMF-sampelfil som base64. En kampagne eksporterer hvert medlemsscenarie, som formatet gælder for. Et format, der ikke gælder, afvises med årsagen; list_export_formats rapporterer alle fem på én gang. Tidspunkter er i Coordinated Universal Time (UTC); samme scenarie giver byte-identiske filer.

import_route

Skriv en GeoJSON-rute ind i et Kshana-scenarie, der flyver et waypointspor, og returnér den nye scenarie-TOML (kør den med run_scenario). Ruten er en LineString (eller en Feature / FeatureCollection med én) af positioner i længdegrad og breddegrad; den erstatter scenariets start_lat_deg, start_lon_deg, step_lat_deg, step_lon_deg og waypoints. De typer, der tager en rute, er terrain-nav, terrain-slam, gravity-map og combined-altpnt; enhver anden type afvises med årsagen. Angiv sporets to endepunkter eller jævnt fordelte positioner langs en ret linje: sportyperne flyver start + i*step, så enhver anden form afvises.

export_sp3

Eksportér det propagerede konstellationsforløb i et orbit-scenarie som SP3-c-tekst med præcis efemeride (standardformatet til GNSS-efterbehandling). Giver fejl, hvis scenariet ikke er af typen orbit.

export_omm

Eksportér et orbit-scenaries middelelementer som et CCSDS 502.0-B-2 OMM-katalog (Orbit Mean-Elements Message) — én OMM pr. satellit. Giver fejl, hvis scenariet ikke er af typen orbit.

export_oem

Eksportér det propagerede konstellationsforløb i et orbit-scenarie som CCSDS OEM 2,0-efemeridetekst — den inertiale (TEME) tilstandstidsserie med både position OG hastighed, som værktøjer til flyvedynamik (GMAT / Orekit / STK) læser. Dette er det hastighedsbærende supplement til det rent positionsbaserede export_sp3. Giver fejl, hvis scenariet ikke er af typen orbit.

export_table_csv

Kør et Kshana-scenarie og returnér dets reproducerbarhedstabel som CSV-tekst — den bytestabile tabel, som CLI'en skriver som <scenario>.table.csv, og som artiklerne henviser til. Kun disse typer udsender en: realtime-frame-eop, lunar-time-budget, lunar-jamming, telecom-timing, leo-navmsg, når dens encode-decode-analyse kører på en kepler16- eller kepler-rac-meddelelsesmodel (broadcast-efemeridetabellen), og moonlight-service-volume, når både export_site_lat_deg og export_site_lon_deg er sat. Giver fejl for enhver anden type (eller et ugyldigt scenarie); brug run_scenario til kvalitetsmålene.

sky_geometry

Himmelgeometri under en azimutafhængig horisontlinje (en gadekløft, en havn, en fjord, en containerterminal): ud fra et sted, et tidspunkt og konstellationsforudindstillinger, two-line element-sæt (tle, med en UTC-epoch) eller satellitter angivet som azimut/elevation eller ECEF, hvilke satellitter der er synlige, og hvilke der er skjult af horisontlinjen, GDOP/PDOP/HDOP/VDOP/TDOP fra den med gnss_lib_py kontrollerede DOP-kerne, east-north-up-kofaktoren og -kovariansen med ét modtagerur pr. system (eller ét fælles) og den horisontale fejlellipse ved én sigma og ved en angiven konfidens for en angivet UERE. Uden request beskriver den en REPRESENTATIVE horisontlinjeforudindstilling med dens proveniens og dens afskæring for hver grad (en tom skyline_preset viser dem). Scenarier af typerne orbit og integrity (med user_site), gnss-sim, jamming, leo-pvt og leo-pass tager den samme [skyline]-sektion via run_scenario. Evidensniveau MODELLED: geometri under en angivet fejlmodel, kun sigtelinje; ikke en forudsigelse af en modtagers reelle fejl og ikke en integritetsgrænse; forudindstillede konstellationer er en repræsentativ himmel, ikke himlen på en given dato; tle-tekst med en epoch (UTC) giver den himmel, de elementsæt giver på det tidspunkt (SGP4), ikke en måling, og sky_source angiver, hvilken. Bærer den vejledende erklæring: ikke typegodkendt navigationsudstyr. Ingen Monte Carlo over MCP (bulkstikprøver; brug CLI, Python eller WASM). Kun inline, højst 4 MiB.

iq_signals

GNSS-IQ-lagets opsætning, som JSON: signals (de signalnavne, som iq_scene, iq_acquire og iq_track accepterer), enabled (om IQ-filværktøjerne er slået til), work_dir (den eneste mappe, de læser og skriver; hvert stiargument er relativt til den), max_samples (de flest komplekse sampel, ét kald må generere eller behandle) og, når den er slået fra, reason. IQ-sampel rejser aldrig gennem protokollen: værktøjerne tager filstier i arbejdsmappen og svarer med kompakte JSON-oversigter. IQ-laget tilføjer ingen syntese af interferens eller spoofer; intet udsendes nogensinde. Kald dette først.

iq_info

Beskriv én IQ-optagelse i arbejdsmappen uden at behandle den: type (rå med sidecar, SigMF, SigMF-samling), sampelformat, samplingfrekvens, centerfrekvens, samlede sampel, varighed, datafiler og deres størrelse, optagelsesgrænser og antal annotationer, som JSON (samme række, som kshana iq info udskriver). Valgfri raw beskriver en rå fil uden sidecar; valgfri hash tilføjer hver datafils SHA-256 (læser hele filen).

iq_scene

Generér en GNSS-IQ-scene med flere satellitter til en fil i arbejdsmappen (kshana iq scene). Tilstand med angivet profil: signal + prns (+ valgfri dopplers_hz, cn0_dbhz, data). Broadcast-tilstand: nav (en RINEX-navigationsfil i arbejdsmappen) + rx_pos [lat, lon, alt] placerer hver sund GPS-satellit i dens sande broadcast-geometri. Valgfri channel anvender ionosfære, troposfære, scintillation, multipath, landmobil skygning eller NLOS på signalniveau. rate_hz × duration_s skal holde sig inden for sampelbudgettet (se iq_signals). Skriver optagelsen (rå + <out>.json-sidecar eller et SigMF-par) og en reference-sidecar; svarer med de skrevne filer og deres bytetal, antal sampel og sampling samt referencens første epoke pr. satellit (kodefase, Doppler, C/N0), som iq_acquire kan scores mod. IQ-laget tilføjer ingen syntese af interferens eller spoofer; intet udsendes nogensinde.

iq_acquire

FFT-akkvisition af en eller flere PRN'er over en IQ-optagelse i arbejdsmappen (kshana iq acquire). Læser kun de sampel, som én søgning kræver (koherente × ikke-koherente kodeperioder), som skal holde sig inden for sampelbudgettet. Valgfrie frontend-trin (båndpas, notch, blanking, excision, AGC, kvantiserer) kører først. Svarer med én detektion pr. PRN: acquired, doppler_hz, code_phase_chips, den normaliserede top statistic, dens detektions-threshold og peak_ratio; json_out / csv_out gemmer også det fulde resultat som filer, og surface_out (én PRN; .csv, .json eller .bin) gemmer hele korrelationseffektfladen over Doppler × kodefase med toppen og dens parabolske og finsøgte Doppler-forfininger.

iq_track

Akkvirér og spor derefter en eller flere PRN'er over en IQ-optagelse i arbejdsmappen (kshana iq track): akkvisitionen initialiserer hver kanal, og derefter afspiller DLL/PLL-løkkebanken (eventuelt FLL-assisteret) optagelsen én gang. De sampel, der spores (hele optagelsen eller dens første max_seconds), skal holde sig inden for sampelbudgettet. Løkkerne kommer fra design (en kshana.loop-design/1-TOML-fil i arbejdsmappen, design_name vælger en) eller den indbyggede udformning, hvor løkkeargumenterne tilsidesætter den; reacquire gen-akkvirerer en kanal, der mister låsen eller falsk-låser. Sporingen streames, så hukommelsen vokser ikke med optagelsen. Svarer med udformningens navn og hash, eventuelle warnings (commensurate_sampling: en samplingfrekvens, der er et multiplum af den halve chiprate, gør kodeløkkens jitter og bias urepræsentative) og pr. kanal antal epoker, sekunder sporet, endelig Doppler og kodefase, endelig og gennemsnitlig C/N0 (dB-Hz), andelen af epoker i fase- og kodelås, locked_at_end, den endelige låstilstand, detekterede falske låse og gen-akkvisitioner. Output pr. epoke går kun til filer: epochs_out (E/P/L, diskriminatorer, løkketilstande, C/N0, låstilstand; .csv/.jsonl/.bin), events_out, json_out / csv_out. En PRN, der ikke er akkvireret, afvises med dens statistik og tærskel.

iq_frontend

Anvend modtagerens front end og DSP til dæmpning af interferens på en IQ-optagelse i arbejdsmappen, og skriv resultatet som en ny rå optagelse med en <out>.json-sidecar (kshana iq frontend). stages vælger et vilkårligt af: bandpass_hz [lo, hi] FIR, adaptivt notch, puls-blank, frekvensdomæne-excise, agc og en bits-bit-kvantiserer (forudgået af en automatisk AGC, medmindre no_agc), altid i den rækkefølge. Hele inputtet skal holde sig inden for sampelbudgettet. Svarer med de behandlede sampel og de skrevne filer med deres bytetal. Dette behandler en optagelse; det syntetiserer intet.

iq_campaign

Kør en lab-replay-kampagne i arbejdsmappen (kshana iq campaign): optagelser (hver beskrevet af en kshana.test-conditions/1-fil, der angiver laboratoriets kendte reference) x front end-kæder x løkkeudformninger, hvor hver celle spores og scores mod de angivne betingelser (tid til tab af lås, gen-akkvisitionstid, C/N0-forringelse mod den angivne J/S ved siden af en analytisk reference mærket MODELLED, falsk-låsrate, PLL/DLL-jitter, tilgængelighed). Trinvis: ét kald kører de ventende celler, der er inden for sampelbudgettet (eller max_cells), hver færdig celle bevares, og det næste kald genoptager. Svarer med celletal, fejl, de skrevne filer og digest, når alle celler er færdige. Scorer kun optagede data; den syntetiserer ingen interferens.

iq_campaign_status

Rapportér fremdriften i en lab-replay-kampagne fra dens outputmappe i arbejdsmappen, kun ved at læse filer: færdige og ventende celler, de optagelser, front ends og udformninger, der indgår i planen, og digest, når alle celler er færdige.

iq_sweep

Afspil én IQ-optagelse i arbejdsmappen over flere udformninger af sporingsløkker og rapportér hver udformnings resultat i stationær tilstand (kshana iq sweep): udformningerne er hver udformning i en kshana.loop-design/1-fil (design) eller produktet af listerne pll_bws_hz, dll_bws_hz, spacings_chips og coherents på den indbyggede udformning. Hver PRN akkvireres én gang, og hver (udformning, PRN)-kanal sporer de samme sampel, så hvert resultat er præcis det, man ville få ved at køre udformningen alene. Svarer med, pr. udformning og PRN, epochs, phase_jitter_deg og code_jitter_chips (over anden halvdel af kørslen), phase_lock_frac, code_lock_frac, mean_cn0_dbhz og udformningens hash; json_out / csv_out gemmer tabellen som filer. Det sporede interval skal holde sig inden for sampelbudgettet (max_seconds indsnævrer det), og højst 256 (udformning, PRN)-kanaler kører pr. kald. Dette behandler en optagelse; det syntetiserer intet.

iq_monitor

Kør monitorerne til detektion af interferens og spoofing over en IQ-optagelse i arbejdsmappen (kshana iq monitor): de bredbåndede power- og spectral-monitorer og, givet signal + prns, monitorerne for C/N0 og signalkvalitet pr. satellit, hver mod en baseline lært fra de første baseline_s sekunder (eller fra en indstillingsfil). Svarer med serierne (navn og længde), hver hændelse, monitorerne udløste (start, slut, monitor, hvad der ændrede sig; højst 200 i svaret), og de indstillinger og baselines, monitorerne lærte; json_out gemmer hele rapporten (hver serie, hændelse og spektrum), og csv_prefix skriver <prefix>.series.csv og <prefix>.events.csv. Intervallet skal holde sig inden for sampelbudgettet (max_seconds indsnævrer det). En monitorhændelse siger, at en målt størrelse forlod sin lærte baseline; den peger ikke på en årsag eller en kilde. Dette scorer kun optagede data; det syntetiserer intet. Evidensniveau: MODELLED.

iq_test_conditions

Validér en lab-fil med testbetingelser (kshana iq conditions): en kshana.test-conditions/1-fil, TOML- eller JSON-tekst, der angiver laboratoriets kendte reference for en optagelse (de forventede satellitter, indsvingningstiden, den angivne jamming- eller interferensplan). Svarer med de opløste betingelser og deres hash eller årsagen til, at filen er ugyldig. Kun inline: intet læses fra disken, og en optagelsessti, som filen nævner, åbnes ikke (en kampagne opløser dem inde i arbejdsmappen). Input er begrænset til 4 MiB.

iq_labfit

Tilpas modellen for tab af lås i sporingsløkken til laboratoriekørsler (kshana iq labfit): et iq-labfit-scenarie i TOML angiver en eller flere kørsler, hver med en modtagerlog og dens angivne testbetingelser; motoren indlæser hver log, tilpasser løkke- og empiriske modeller, bootstrapper usikkerheden og beregner fejlen på det tilbageholdte datasæt. Alt er inline: hver kørsels log giver text eller base64 (en path afvises), og værktøjet læser og skriver ingen fil, så det behøver ikke IQ-arbejdsmappen. Alternativt angiver scenariets [input] campaign = "<out-dir>", en færdig outputmappe fra kshana iq campaign: værktøjet tilpasser så C/N0- og lås-modellerne til dens scorede celler (en kshana.labfit-iq/1-rapport; Q er angivet, aldrig tilpasset, og den identificerbare J/S-forskydning tilpasses; med mode = "validation" kræves en [validation]-tabel). Den mappe opløses relativt til IQ-arbejdsmappen og skal ligge inde i den (alt uden for afvises); den læses, intet skrives. Svarer med den indlæste report, residualer og forudsigelser som CSV-tekst og et Markdown-resumé. Input er begrænset til 4 MiB. Tilpasningen beskriver de angivne laboratoriekørsler; den er ikke en forudsigelse for andre modtagere eller betingelser ud over det, rapporten angiver. Evidensniveau: MODELLED.

assess_vessel_stream

Score et afgrænset udsnit af et fartøjs NMEA 0183-strøm på samme måde, som kshana receiver-trust live scorer den, og returnér tillidstilstand pr. epoke (calibrating, nominal, degraded, untrusted) og en score på 0-100 med de monitorer, der trak fra (live JSON-lines-skema 1,3: hver epoke indeholder position, en advisory-erklæring om, at outputtet er vejledende, og dens satellit-geometry (good, degraded med årsager som few-satellites eller high-pdop, eller unknown, når udsnittet ikke har GSV eller GSA) med en label (good, fair, poor; geometrien trækker kun fra, når den er poor); hvert fradrag har en class: geometry (himlen, ikke en konstatering af, at intet angreb fandt sted), environment eller inconsistency (angrebslignende)), oversigten (antal pr. tilstand, geometri og klasse, laveste og sidste score, hvornår den første untrusted-epoke indtraf) og den sidste $PKSHT-sætning. session_toml erklærer fartøjet ([platform] kind = "vessel", dets grænser for hastighed, acceleration og drejehastighed, antennehøjde, om en kurssensor sidder på bussen). Udsnittet skal rumme kalibreringsvinduet; input er begrænset til 2 MiB og 20.000 epoker, og svaret indeholder højst 200 degraded- eller untrusted-epokelinjer. Dette er den afgrænsede form af live-kommandoen: ingen socket åbnes, og intet skrives til en port, og gaten og telemetrieksportørerne (den langvarigt kørende proces og dens --listen-server) findes kun på kommandolinjen. Kontrollerne kan ikke se en spoofer, hvis positionsbestemmelse er konsistent med alt på bussen. Kun vejledende: ikke typegodkendt navigationsudstyr; operatøren er fortsat ansvarlig. Evidensniveau: MODELLED.

jammertest_import

Læs det offentliggjorte Jammertest-testkatalog og -transmissionsplan (NPRA/jammertest-plan, MIT) som planlagt reference (kshana jammertest import): tidsvinduerne i ét testområde bliver til receiver-trust-hændelser med katalog-id og år i hver label. plans rummer én planfil pr. dag, log_start_utc er logens første epoke, local_offset_h planens forskydning fra UTC (standard 2, CEST). Returnerer events_toml (føj den til en receiver-trust-session), events (test-id, type, start og slut i sekunder siden logstart) og antal oversprungne. Hændelserne er PLANNED tidsvinduer, ikke optagede sendetidspunkter: et tidsvindue kan starte sent eller aldrig køre, og planens status-felt er for det meste tomt. Intet kontakt- eller personfelt i planen læses. Input er begrænset til 4 MiB pr. tekst. Evidensniveau: MODELLED.

jammertest_score

Score en modtagerlog mod Jammertest-planen (kshana jammertest score): for hver planlagt test detektionsforsinkelsen (første alarm minus planlagt start), om den blev detekteret inden for tolerancen, sent eller missede, og genopretningstiden (en alarmfri periode på recover_hold_s), samt de falske alarmer uden for hvert tidsvindue og dets sikkerhedsmargin. session_toml behøver kun [log] format = "ubx" (eller rinex, android, nmea, sbf); angiv loggen som log (tekstformater) eller log_base64 (binær). Kræver katalog- og plan-JSON (catalog_json, plans) og testområdet (location). Returnerer resultatkortet: tests, summary, baseline_contaminated og en MODELLED-mærkat. Planen består af planlagte tidsvinduer, ikke optagede sendetidspunkter, så en miss kan være en test, der aldrig kørte. En signeret bevispakke kræver en signeringsnøgle: brug kommandolinjen (kshana jammertest score --key). Input er begrænset til 4 MiB pr. tekst. Kun vejledende: ikke typegodkendt navigationsudstyr; operatøren er fortsat ansvarlig. Evidensniveau: MODELLED.

assess_vessel_log

Vurdér et fartøjs NMEA 0183-log som en batchkørsel (kshana receiver-trust med [platform] kind = "vessel"): scoremodellen, de monitorer, der kørte, og hver epokes score på 0-100 med dens fradrag, dens satellitgeometri (good, degraded, unknown) med en label (good, fair, poor) på hver epoke, hvor geometrien kun trækker fra, når den er poor, og en klasse på hvert fradrag (geometry, environment, inconsistency), med geometry_model (tærskler, den gældende øvre og nedre grænse og proveniens) og geometry_summary. session_toml angiver fartøjets grænser og eventuelle monitor- eller scoreindstillinger (ingen [log]-tabel nødvendig), og nmea er logteksten, hvilket undgår at indsætte den i en TOML-streng. Input er begrænset til 4 MiB; svaret indeholder dokumentet med epochs skåret ned til antal pr. tilstand og højst 200 degraded- eller untrusted-epoker. For en log i et andet format eller med [[events]] at score, brug assess_receiver_log. Kun vejledende: ikke typegodkendt navigationsudstyr; operatøren er fortsat ansvarlig. Evidensniveau: MODELLED.

generate_training_nmea

Generér syntetisk bro-NMEA 0183 til besætningstræning ud fra en nmea-scenario-TOML (kshana nmea-scenario): et fartøjs spor og en tidslinje med scriptede hændelser (jamming, positionsafdrift, tidsspoofing, forsinket genafspilning, med genopretning). Returnerer sættet af sætninger med gyldigt checksum (GGA, RMC, VTG, GSV, GSA, GNS, ZDA, HDT, VBW; de første 2000 linjer) og instruktørloggen (hvad der blev injiceret hvornår, med det sande spor og en summary på øverste niveau med spidshastigheder og -accelerationer; afdriftshændelser bærer deres spidsafdriftshastighed og -acceleration; skema kshana-nmea-training/1) som JSON og tekst. Modtagerens loft for synlige satellitter er receiver.max_used (standard 12). Deterministisk pr. seed. KUN TEKST: intet her syntetiserer RF, IQ eller nogen bølgeform, intet udsendes, og outputtet er til træning og test, aldrig til et fartøjs aktive navigationssystemer (en markørsætning i strømmen siger det). Vejledende, ikke typegodkendt navigationsudstyr. Streaming til en TCP- eller UDP-adresse findes kun på kommandolinjen. Fire eksempelscenarier leveres i scenarios/training/.

create_evidence_pack

Opret en signeret bevispakke for et vindue af et fartøjs NMEA 0183-log (kshana receiver-trust evidence): vinduets rå logbytes, konfigurationen med hver tærskel, resultaterne og årsagerne pr. epoke, en selvstændig oversigtsside og en manifest, der opregner hver fils SHA-256 med den fulde logs hash og en hashkæde, signeret med Ed25519. from_s/to_s er sekunder siden logens første epoke. Returnerer filerne som JSON (giv dem til verify_evidence_pack), underskriverens offentlige nøgle og fingeraftryk. Signeringsseedet returneres eller logges aldrig; hvis signing_key_seed_hex udelades, bruges en engangsnøgle, som kasseres, så pakken dokumenterer integritet over for den nøgle, den selv angiver, ikke hvem der underskrev: for en nøgle, der betyder noget, opret pakken på kommandolinjen (et seed givet her rejser gennem samtalen). Input er begrænset til 4 MiB og svaret til 4 MiB (indsnævr vinduet). En pakke er en teknisk journal over, hvad motoren beregnede ud fra en log under angivne indstillinger; den er ikke en juridisk vurdering, en faktuel konstatering om nogen hændelse eller en certificering. Evidensniveau: MODELLED.

create_round_trip_pack

Opret den signerede round-trip-pakke for laboratoriet (kshana evidence round-trip, docs/spec/TEST-CONDITIONS.md): forbinder via hash det scenarie, der frembragte bevægelsen, laboratoriets kshana.test-conditions/1-dokument, modtagerlogken og dens score mod de angivne hændelser i en signeret bevispakke, hvis config.json indeholder en round_trip-blok. Afviser en pakke, hvis betingelser og scoringshændelser er uenige, eller hvis angivne log-SHA-256 ikke er logens. INTET SIGNAL: intet skrives, afspilles eller planlægges; hvordan et scenaries bevægelse nåede modtageren, er operatørens ansvar og registreres kun som angivet. Signeringsseedet returneres eller logges aldrig; udeladt bruges en engangsnøgle, som kasseres (integritet, ikke identitet). Input er begrænset til 4 MiB og svaret til 4 MiB. En teknisk journal, ikke en juridisk vurdering eller en certificering. Evidensniveau: MODELLED.

verify_evidence_pack

Verificér en signeret bevispakke (kshana evidence verify): hver fils SHA-256 mod manifestet, hashkæden, Ed25519-signaturen og, med public_key (underskriverens nøgle, fra underskriveren ad en anden vej), at underskriveren er den forventede, og, med full_log, at den log, du har, er den, pakken registrerer, og at udsnittet stammer fra den. Returnerer rapporten: ok, hver fejl med kode og fil, hver kontrol, signer_pinned, noter og en verdict: verified (underskriver fastlåst), intact-signer-not-pinned (alt stemmer, men ingen betroet public_key blev givet, så signaturen kun beviser, at pakken er intakt over for den nøgle, den selv angiver, som enhver kan generere; sig det, og kald den ikke verificeret) eller failed, med en message til at vise brugeren. require_timestamp lader en pakke, der ikke bærer noget tidsstempeltoken, fejle. Input er begrænset til 4 MiB. En verificeret kontrol siger, at journalen er uændret, og hvem der underskrev (den nøgle, du angav); den siger ikke, hvad der forårsagede nogen hændelse, hvem der er ansvarlig, eller at loggen viser det, modtageren faktisk modtog.

build_interference_map

Byg et GNSS-interferenskort ud fra åbent licenserede positionsrapporter fra fly (ADS-B NIC/NACp) eller skibe (AIS) givet som CSV-tekst (kshana interference-map adsb|ais). Returnerer ét GeoJSON-dokument pr. UTC-dag (skema kshana-interference-map/v1) (filnavne <source>-<dataset>-<date>.geojson; metodeversion 2), hvor hver offentliggjort gittercelle er degraded, not_degraded, insufficient_sample, withheld_day_confounded eller withheld_no_background (ADS-B) eller anomalous/not_anomalous (AIS), med metoden, dens præregistrerede tærskler, datasættets licens og kildeangivelse indlejret. Hvert celleantal under publiceringsminimum (5) er null (tilbageholdt, aldrig nul), og en dag, hvis baggrund ikke kan estimeres, tilbageholder sine vurderinger. Kun aggregeret: identifikatorer hashes i hukommelsen og returneres aldrig, og en celle med færre end 5 forskellige fly eller fartøjer offentliggøres ikke. dataset er en tilladt forudindstilling eller custom (med licence, licence_url, attribution). Input er begrænset til 4 MiB og svaret til 4 MiB (brug en grovere cell_deg eller kommandolinjen til mere). Intet hentes: landpolygoner, hvis ønsket til AIS, gives med. En degraded celle peger ikke på interferens som årsag; en uoffentliggjort celle er ikke belæg for en klar celle; dette er ikke en prognose. Evidensniveau: MODELLED.

route_exposure

Opsummér, hvor stor en del af en rute der løber gennem degraded celler i et eller flere interferenskort (kshana route-exposure): for hvert kort (ét pr. kilde pr. UTC-dag, den GeoJSON som build_interference_map returnerer) rutens længde og andelene af dens længde i degraded celler, i celler, der ikke var degraded, i celler med for lidt data til at vurdere, og i celler, der ikke blev observeret. Ruten er en GeoJSON LineString eller lat,lon-CSV-tekst; date_from/date_to (YYYY-MM-DD) beholder kort inden for et datointerval. Input er begrænset til 4 MiB pr. element. Celler, der ikke er observeret, er ikke belæg for en klar rute; en degraded celle peger ikke på interferens som årsag; dette beskriver tidligere rapporter og er ikke en prognose. Evidensniveau: MODELLED.

compliance_report

Udfyld kortlægningen mod offentlige rammeværker ud fra Kshana-resultatdokumenter (kshana compliance-report): hvilke rækker i seks rammeværker og standarder for robusthed (det amerikanske DHS Resilient PNT-rammeværk v2.0, IMO-vejledning for skibe, EASA-vejledning for luftfart, NIS2 artikel 21, EN 16803, NIST IR 8323r1) de angivne kørsler leverer belæg for, hvilke de ikke gør, og det hul, hver række bevarer. Angiv hver kørsel som label, result (resultatets JSON-tekst) og, når du har den, scenario (scenarie-TOML, som navngiver den type, et resultat ikke gør; et receiver-trust-resultat behøver ingen). Højst 64 kørsler og 4 MiB i alt; intet læses fra disken. Hver rækkes status er evidenced, partly-evidenced, not-evidenced eller out-of-scope, og hver række beholder sin gap selv når den er evidenced; input, der ikke kunne bruges, opregnes i unrecognised og tæller for intet. Vis rapportens statement sammen med ethvert resultat, ordret: en status betyder, at en kørsel leverer belæg for de funktioner, rækken nævner; det er ikke en konstatering af, at et rammeværk er opfyldt, og det betyder ikke, at noget produkt er blevet vurderet eller godkendt af nogen. Beskriv ikke outputtet i stærkere vendinger. Evidensniveau: MODELLED.

compliance_mapping

Den statiske kortlægning af offentlige rammeværker (kshana compliance-report --mapping / --sources) som Markdown: én tabel pr. rammeværk med hver rækkes omskrevne krav, de Kshana-output, der leverer belæg for den, og det hul, outputtene ikke lukker; eller, med sources sat til true, de kildedokumenter, tabellerne henviser til, med versioner og URL'er. Den indledes med den erklæring, som hver rapport bærer, og som skal følge med ethvert uddrag: en række, der er markeret som evidenced, betyder, at en kørsel leverer belæg for de funktioner, rækken nævner; det er ikke en konstatering af, at et rammeværk er opfyldt, og det betyder ikke, at noget produkt er vurderet eller godkendt af nogen. Kræver ingen kørsler.

fit_imu_log

Tilpas sensorparametrene for scenarierne hybrid og fusion ud fra en IMU-log optaget i hvile (kshana imu-fit, docs/MACHINE-INPUTS.md). Disse scenarier tager støjparametre, ikke en tidsserie: værktøjet aflæser dem i en log, der er optaget med sensoren holdt i ro, ved hjælp af den overlappende Allan-deviation af det integrerede signal. Returnerer JSON: fit (accelerometerbias, PSD for hastighedens tilfældige gang q_va, gyrobias, PSD for vinklens tilfældige gang q_arw, bias-ustabilitetsgulv, når loggen er lang nok til at vise et, logens samplingrate og tidsspænd, de tidlige Allan-hældninger og notes om, hvad der ikke kunne tilpasses eller stoles på), toml (en [accel_classical]-tabel, hvis proveniens nævner logens SHA-256, klar til at indsætte i et scenarie) og sha256. En log, der ikke var i hvile, eller som er for kort eller ujævnt samplet, giver forkerte parametre eller afvises; hældningerne (omkring -0.5, hvor hvid støj dominerer) viser hvilket. Intet skrives til disk. Evidensniveau: MODELLED (estimatoren anvendt på loggen, ingen ekstern uafhængig reference).

list_standards_packs

List standardpakkerne (kshana standards-pack list): scorede scenariesæt til testprofilerne i DHS Resilient PNT framework, IMO MSC.1/Circ.1575 og ICAO Doc 9849 Appendix F, hver med de tærskler, den angiver før kørslen, og de compliance-rækker, den leverer belæg for. Kræver ingen input. En pakke måler modellerede scenarier mod angivne tærskler; den vurderer intet produkt. Evidensniveau: MODELLED.

run_standards_pack

Kør én standardpakke (kshana standards-pack run <id>): alle scenarier i den, scoret mod tærskler angivet før kørslen. Returnerer rapporten (hver test MET, NOT MET eller NEEDS INPUT, når den kræver en modtagerlog og ikke scores; hver tærskel med sin målte og forventede værdi) og det samme som markdown. Giv rapportens JSON videre til compliance_report for at se de rækker, pakken leverer belæg for. Sig klart, at en MET-tærskel betyder, at et modelleret scenarie nåede en angivet tærskel, og at en NOT MET er et resultat, der står i registeret; beskriv aldrig outputtet som et bevis for, at et produkt eller et rammeværk er opfyldt. Kun vejledende: analyseoutput, ikke typegodkendt navigationsudstyr. Evidensniveau: MODELLED.

lunanet_afs_check

Kontrollér LunaNet Augmented Forward Signal (AFS) mod den offentliggjorte specifikation, fastlåst til LNIS Version 5 Applicable Document 1 Volume A (LSIS-AFS V1.0, 29 January 2025) (kshana lunanet-afs-check, docs/LUNANET-AFS.md). Tilstanden spec kontrollerer denne implementering mod dokumentets trykte kodetabeller (de første og sidste 24 chips af hver AFS-I Gold-, AFS-Q Weil- og tertiær kode for PRN 1 til 210 samt begge Legendre-sekvenser) og gennemregnede eksempler (SB1 BCH, CRC-24Q), tærsklerne B1 til B10 i en præregistrering; B4 rapporterer ét miss (dokumentet trykker de samme sidste 24 chips for tertiær PRN 147 og 151). Tilstanden symbols kontrollerer en hård-beslutnings symbolstrøm (tekst af 0 og 1) for synkroniseringsmønsteret, SB1-afkodning, FID, TOI-kontinuitet og rammeafstand. Delrammerne 2 til 4 (rate-1/2 LDPC, CRC-24Q) er IKKE verificeret: LDPC-matricerne ligger i et separat bilag, som ikke er implementeret. Tilstanden generate returnerer en teststrøm med pladsholder-delrammer: symboler, ikke en bølgeform; Kshana skriver intet signal. VALIDATED kun mod de trykte tabeller i den udgave, som dokumentet selv markerer som TBC; sig det, og beskriv ikke et resultat som et bevis for, at nogen LunaNet-node eller -tjeneste er korrekt. Kun vejledende.

score_benchmark

Score en kshana-bench-indsendelse (kshana bench score, bench/SPEC.md, docs/BENCH.md): en forudsigelsesfil (kshana-bench-predictions/1) mod en referencefil (kshana-bench-truth/1), begge JSON-tekst, højst 4 MiB hver, og returnér resultatfilen (kshana-bench-result/1) med specifikationsversionen, opgaven (a detektion på modtagerlogs, b detektion på IQ, c forudsigelse af tidsholdover, d optimismegab uden for fordelingen), opdelingen, SHA-256 af begge input og opgavens metrikker (AUC, detektionssandsynlighed ved et loft for falsk alarm, RMSE pr. horisont eller optimismegabet). threshold er den angivne alarmtærskel for opgave a og b. Intet læses fra disk eller skrives. Hver score er MODELLED og beskriver en log eller et korpus, aldrig et produkt; den er ikke en certificering, og ingen organisation er anbefalet af en score. Evidensniveau: MODELLED.

render_leaderboard

Gengiv kshana-bench-resultatfiler (kshana bench leaderboard) som den statiske rangliste-side, HTML-tekst i svaret: results er en liste af kshana-bench-result/1-JSON-tekster (højst 256, 4 MiB hver), hver kontrolleret først; en fil scoret under en anden hovedversion af specifikationen afvises, fordi resultater fra forskellige hovedversioner aldrig sættes i én tabel. En række siger, at denne fil scorede dette tal på denne opdeling; den betyder ikke, at noget produkt er vurderet eller godkendt af nogen. Intet skrives. Evidensniveau: MODELLED.

trust_telemetry

Gengiv en GNSS-tillidsstrøm eller et receiver-trust-resultat som sikkerhedstelemetri i tekstform (kshana trust-telemetry, docs/TRUST-TELEMETRY.md), med de samme indkodere som kommandolinjen bruger: prometheus (visning af den endelige tilstand), cef eller leef (én syslog-linje efter RFC 5424 pr. båndskift eller pr. epoke med syslog_all; intet tidsstempel, fordi intet ur læses) eller otlp (OTLP/HTTP JSON-metrikpayload). input_kind er jsonl (standard) eller result; en strømlinje, der ikke kan fortolkes, springes over og tælles i kshana_trust_input_errors_total. Intet sendes, udstilles eller skrives: outputtet er tekst i svaret (de kørende eksportører, som er en proces, forbliver på kommandolinjen). Modtagerens rapporterede position udelades, medmindre expose_position er true. Et input, der bærer satellitgeometri (live-skema 1,3, resultater fra 0,36), tilføjer geometrimærket (good, fair, poor; aldrig scoret undtagen for poor) og status, HDOP, PDOP, VDOP og brugte satellitter samt et class-mærke (geometry, environment, inconsistency) på hver årsag; et ældre input gengives nøjagtigt som før. Kun vejledende: Kshana er ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162), og operatøren er fortsat ansvarlig. Evidensniveau: MODELLED.

export_test_bench

Eksportér et scenaries køretøjsbevægelse og hændelser til en GNSS-simulator i laboratoriet (kshana bench-export, docs/TEST-BENCH.md): en bevægelses-CSV og dens JSON-beskrivelse (jordfast og geodætisk position, hastighed, attitude, UTC), NMEA 0183 GGA/RMC-sætninger, en waypoint-tekst, når sampelgitteret er regulært i millisekunder, og scenariets hændelser som CSV og som [[events]] TOML til et receiver-trust-scenarie. Gælder for gnss-ins (dens udfald af navigationstilstanden er hændelserne), jamming og gnss-sim; en anden type afvises med begrundelsen. epoch er UTC-tidspunktet for bevægelsestidens nulpunkt, YYYY-MM-DDTHH:MM:SS (standard 2024-01-01T00:00:00Z). Intet skrives til disk: det første indholdselement er et JSON-indeks (files med suffix, bytes, sha256; notes for enhver udeladt fil; notice), efterfulgt af hver fils tekst i indeksets rækkefølge. Det samme scenarie og den samme epoke giver bytemæssigt identiske filer. INTET SIGNAL: intet af det eksporterede er, modellerer eller driver et radiofrekvens- eller basisbåndssignal, og en hændelse er et mærket interval, ikke en opskrift på at fremkalde interferens; simulatoren og dens operatør leverer signalerne og er ansvarlige for kun at køre dem, hvor det er tilladt. Behold meddelelsen sammen med filerne. Kshana offentliggør ingen resultater fra sådanne kørsler. Evidensniveau: MODELLED.

attach_evidence_timestamp

Bind et tidsstempeltoken efter RFC 3161 til en bevispakke (kshana evidence attach-timestamp), i hukommelsen: files er en pakke, som create_evidence_pack returnerer den, token_base64 er bytes af .tsr-filen fra en tidsstempelmyndighed. Tokenet gemmes som timestamp.tsr ved siden af den signerede manifest, ikke inde i den, og pakken med tokenet skal stadig kunne verificeres, ellers vedhæftes intet; et eksisterende token beholdes, medmindre replace er true. Returnerer de opdaterede files (giv dem til verify_evidence_pack med require_timestamp true for at kræve, at tokenet er til stede) og verifikationsnoterne. Det kontrollerer IKKE tidsstempelmyndighedens signatur på tokenet eller myndighedens certifikat (det kontrollerer tokenets struktur, og at dets message imprint er hashen af denne pakkes manifest.json): sig det, og henvis brugeren til openssl ts -verify. Input og svar er begrænset til 4 MiB. Et tidsstempel viser, at en hash fandtes på et tidspunkt, som myndigheden angiver; det er ikke en juridisk vurdering. Evidensniveau: MODELLED.

Alle kanaler

Alle måder at installere den på.

Én tabel, genereret ud fra repositoriets packaging/channels.json og krydstjekket mod dets README-filer, så hver kommando er den, README'en viser, fastlåst til v0.40.0. Færdigbyggede binære filer til alle operativsystemer, udvidelsen til desktop-assistenten, énklik-knapper til Cursor og VS Code, startprogrammerne npx og uvx, Homebrew, Scoop og winget, registrene og en selvhostet HTTP-tilstand. Kanaler markeret når udgivet går live med udgivelsen.

Motor og bindinger

Motoren alene, i det sprog eller på det sted, hvor du arbejder.

Kommandolinje (Rust)

Til ingeniører, der vil have kommandoen kshana. Kræver: Rust.

Fastlåst til v0.40.0cargo install kshana --version 0.40.0

Kontrollér den derefterkshana --version

Rust-bibliotek

Til Rust-udviklere, der indlejrer motoren. Kræver: Rust.

Fastlåst til v0.40.0cargo add kshana@0.40.0

Kontrollér den dereftercargo tree --depth 1 | grep kshana

Python

Til analytikere og notebooks. Kræver: Python.

Fastlåst til v0.40.0pip install kshana==0.40.0

Kontrollér den derefterpython -c "import kshana; print(kshana.version())"

JavaScript og WebAssembly

Til web- og Node.js-udviklere. Kræver: Node.

Fastlåst til v0.40.0npm install kshana@0.40.0

Kontrollér den derefternpm ls kshana

AI-assistenter (MCP-server)

Vejledende, ikke typegodkendt navigationsudstyr: operatøren er fortsat ansvarlig for navigationen. Serveren kører på din computer; intet sendes til Ashforde OÜ.

AI-assistent (MCP-server, cargo)

Til alle, der bruger en MCP-kompatibel assistent. Kræver: Rust 1,88+.

Fastlåst til v0.40.0cargo install kshana-mcp --version 0.40.0

Kontrollér den dereftercargo install --list | grep kshana-mcp

Docker-image

Til dem uden Rust-værktøjskæde; MCP-serveren i en container. Kræver: Docker.

Fastlåst til v0.40.0docker run --rm -i ghcr.io/ashfordeou/kshana-mcp:0.40.0

Kontrollér den derefterdocker image inspect ghcr.io/ashfordeou/kshana-mcp:0.40.0 --format '{{.Id}}'

npx

Til Node-brugere, enhver MCP-klient. Kræver: Node 18+.

Fastlåst til v0.40.0kshana-mcp@0.40.0

Kontrollér den derefternpx -y kshana-mcp@0.40.0 --version

Et startprogram: det henter udgivelsens binære fil, verificerer SHA256SUMS og kører den.

uvx / pipx

Til Python-brugere, enhver MCP-klient. Kræver: Python 3,9+ med uv eller pipx.

Fastlåst til v0.40.0kshana-mcp==0.40.0

Kontrollér den derefteruvx kshana-mcp==0.40.0 --version

Homebrew

Til macOS og Linux. Kræver: brew.

Fastlåst til v0.40.0formula for v0.40.0

Kontrollér den derefterkshana-mcp --version

Scoop

Til Windows. Kræver: Scoop.

Fastlåst til v0.40.0manifest for v0.40.0

Kontrollér den derefterkshana-mcp --version

winget under gennemgang

Til Windows. Kræver: winget.

Fastlåst til v0.40.0winget install AshfordeOU.KshanaMcp --version 0.40.0

Kontrollér den derefterkshana-mcp --version

Vises, når Microsoft har flettet indsendelsen.

Fjernadgang (streamable HTTP), selvhostet

Til klienter, der tager en URL. Kræver: din egen vært.

Fastlåst til v0.40.0v0.40.0

Som standard loopback; en binding uden for loopback kræver --allow-remote og et bearer-token. Kshana hoster intet endpoint.

Integrationer

Plugins og images, der bringer Kshana ind i andre værktøjer.

JetBrains IDE-plugin

Til brugere af IntelliJ, PyCharm og CLion. Kræver: en JetBrains IDE.

Settings → Plugins → Marketplace → søg efter "Kshana" (plugin-ID dev.kshana.ide). Højreklik på et scenarie .toml og vælg Run Kshana Scenario.

Signal K-plugin

Til bådejere, der kører en Signal K-server. Kræver: Node, en Signal K-server.

Fastlåst til v0.40.0npm install signalk-kshana-trust@0.40.0

Kontrollér den derefternpm ls signalk-kshana-trust

OpenCPN-plugin

Til brugere af OpenCPN-kortplotteren. Kræver: OpenCPN 5,8+.

Hent plugin'ets tarball fra udgivelsen. Udgivelsen indeholder tarballen og dens XML med katalogmetadata; optagelse i OpenCPN's katalog sker ved en pull request, der åbnes i hånden.

Image til referencebuild

Til gate- og bench-opsætninger. Kræver: Docker.

Fastlåst til v0.40.0docker pull ghcr.io/ashfordeou/kshana-reference-build:0.40.0

02Måder at bruge den på

Elleve veje ind.

Fra en browserfane til en regressionssuite i continuous integration (CI). Hver vej kører den samme motor og skriver det samme JSON-resultat, SVG-diagram (Scalable Vector Graphics) og HTML-rapport (HyperText Markup Language). Vælg én; hver kommando er ægte og kopieres med ét klik.

Kshana Studio

Ethvert medfølgende scenarie, kørt på din maskine som WebAssembly; intet installeret, intet uploadet. Justér det, sammenlign kørsler, kør en parametersweep og eksportér en reproducerbar rapport.

03Kommandolinje · biblioteker · formater

Ét kald, tre sprog, samme svar.

Kommandolinjen, bindingerne til Rust, Python og JavaScript og de filformater, motoren læser og skriver, side om side. Alt her er den gratis åbne kerne.

Kommandolinje · kshana --helpFra den binære fil

Kommandolinjereference, fra den binære fils egen brugsvejledning

kshana <scenario.toml> [--study-name <s>] [--eop <finals2000A>] [--export-sp3 <out.sp3>] [--export-omm <out.omm>] [--export-oem <out.oem>] [--export <czml|kml|geojson|stk|sigmf|all|list>]... [--import-route <route.geojson>]
kshana <scenario.toml> --animate <svg|html|frames|all> [--animate-fps <n>] [--animate-duration <s>]
kshana --study <suite.toml>
kshana --validate <scenario.toml>
kshana receiver-trust <scenario.toml>
kshana receiver-trust live <session.toml> [--stdin | --file <path> [--follow] | --tcp <host:port> | --udp <port>] [--gate] (kshana receiver-trust live --help)
kshana receiver-trust evidence <scenario.toml> --from <t0> --to <t1> --key <keyfile> --out <dir> (kshana evidence --help)
kshana evidence <keygen|verify|attach-timestamp> ... (kshana evidence --help)
kshana jammertest <import|score> ... (kshana jammertest --help)
kshana evidence round-trip <scenario.toml> --scenario <bench-scenario> --conditions <file> --from <t0> --to <t1> --key <keyfile> --out <dir> (kshana evidence --help)
kshana trust-telemetry [options] (kshana trust-telemetry --help)
kshana imu-fit <imu.csv> [--format csv|euroc] [--axis x|y|z] [--expected-mean <m/s2>] [--id <name>] [--json]
kshana nmea-scenario <scenario.toml> [--out <file.nmea>] [--tcp <addr>|--udp <addr>] (kshana nmea-scenario --help)
kshana interference-map <adsb|ais|fetch-land> ... (kshana interference-map --help)
kshana route-exposure --route <route> --map <map.geojson|dir> [--from <date>] [--to <date>]
kshana bench <spec|truth|cases|score|baseline|seal|reveal-check|manifest|verify-manifest|validate|leaderboard> ... (kshana bench --help)
kshana bench-export <scenario.toml> [--out <base>] [--epoch <YYYY-MM-DDTHH:MM:SS>]
kshana compliance-report [--out <base>] <result.json>... | --mapping | --sources
kshana lunanet-afs-check <spec [--json] [--strict]|symbols <file> [--max-sp-errors <n>] [--json]|generate --frames <n> [--toi0 <t>] --out <file>>
kshana standards-pack <list|run <id> [--json] [--out <base>]|rows <id>|tests <id>>
kshana partner check <submission.toml> [--json]
kshana osnma verify <pages|vectors.csv|stream.ubx> [--merkle-root <hex>] [--public-key <id:type:hex>] [--reference-time <gst-s>] [--json] (kshana osnma --help)
kshana iq <scene|acquire|track|sweep|labfit|campaign|conditions|frontend|monitor|inventory|info|extract|convert|decimate> ... (kshana iq --help)
kshana sky <request.json|request.toml> | --site <lat,lon[,h]> --systems <a,b,...> [--time <s>] [--mask <deg>] [--skyline-preset <name>] [--uere <m>] [--monte-carlo <n> --seed <s>] [--svg] (kshana sky --help)
kshana skyline --preset <name> [--json] | --presets | --profile <skyline.json|toml>
kshana kinds [--json]
kshana example [<name>]
kshana --help | --version

En kørsel skriver result.json, chart.svg, report.html, report.json, table.csv ved siden af scenariet; --export-sp3, --export-omm og --export-oem skriver banefiler; --animate skriver desuden kørslen som noget, der bevæger sig (animation.svg, animation.html, frames: en animeret SVG, en selvstændig HTML-afspiller eller en mappe med nummererede frames), med --animate-fps og --animate-duration til afspilningshastighed og længde; --export skriver scenariets geometri eller dets syntetiserede signal til andre værktøjer: CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON (geografisk JSON), en STK-efemeridefil (Systems Tool Kit), SigMF (Signal Metadata Format); --import-route læser en rute tegnet som en GeoJSON-linje; --eop indsprøjter jordorienteringsparametre fra en finals2000A-fil; --study kører en gratis suite af scenarier til study.json og study.html; kshana kinds --json lister alle typer med deres felter; kshana example udskriver et scenarie at starte fra. Resultater kan rejse i Kshana Interchange Format (KIF)-konvolutten. MCP-serveren udstiller baneeksporterne som værktøjer.

kshana --study er den gratis suitekører. Hvis du i stedet vil have analysen udført for dig, er det et betalt skræddersyet studie.

Hver kørselDeterministisk
  • Skriver result.json, chart.svg, report.html og den samme rapport som report.json, plus en CSV-tabel (kommaseparerede værdier) for de typer, der udgiver en. På anmodning skriver den også en animation af kørslen (--animate) og scenariet i de formater, andre værktøjer læser (--export).
  • Reproducerbar ud fra scenarie, seed og motorversion, med en CycloneDX SBOM (software bill of materials) og SLSA-build-proveniens (Supply-chain Levels for Software Artifacts) på hver udgivelse.
  • Dokumenteret: begreber, scenarieskema, Python-API, validering og alle vejledninger, genereret ud fra repositoriet. Dokumentation
Rust, Python, JavaScriptKørt mod v0.40.0

Hvert program kører det medfølgende scenarie clock-holdover (skriv det med kshana example clock-holdover > clock-holdover.toml) og udskriver den samme enlinjes oversigt. Pakkernes README-filer indeholder de fulde versioner.

src/main.rs · efter cargo add kshana
use kshana::api;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let toml = std::fs::read_to_string("clock-holdover.toml")?;
    let out = api::run_toml(&toml)?;              // RunOutput { json, svg, summary, csv }
    println!("{}", out.summary);                  // the one-line result string
    std::fs::write("clock-holdover.result.json", &out.json)?;
    Ok(())
}

kshana::api har også run_scenario, validate_scenario, list_scenario_kinds og baneeksporterne. Rust-dokumentation

Åbn i Kshana Studio: clock-holdover

Interoperabilitet · læs og skrivHver række nævner sin kontrol

Formater, motoren håndterer i dag, fra repositoriets standardside (Dokumentation: standarder). Åbn en række for at se, hvordan man når det, og hvad det blev kontrolleret mod.

  • CCSDS OEM Consultative Committee for Space Data Systems, Orbit Ephemeris Messagelæs · skriv
    Sådan
    --export-oem, MCP export_oem
    Kontrolleret mod
    CCSDS Blue Book-eksemplet, gendannet ordret
  • CCSDS OMM Orbit Mean-Elements Messageskriv
    Sådan
    --export-omm, MCP export_omm
    Kontrolleret mod
    Rundturstest på ægte two-line element-sæt
  • SP3-c / SP3-d Standard Product 3, præcis efemeridelæs · skriv
    Sådan
    --export-sp3, MCP export_sp3
    Kontrolleret mod
    Rundtur på et ægte øjebliksbillede af GPS-konstellationen (Global Positioning System)
  • CCSDS TDM Tracking Data Messagelæs · skriv
    Sådan
    Rust-bibliotek
    Kontrolleret mod
    CCSDS Blue Book-eksemplet, gendannet ordret
  • CCSDS Space Packet telemetri- og telekommandopakkerlæs · skriv
    Sådan
    space-packet-scenarier
    Kontrolleret mod
    Et uafhængigt biblioteks offentliggjorte testvektorer på byteniveau
  • RINEX Receiver Independent Exchange Format, navigation og observationlæs
    Sådan
    Scenarieinput, såsom pvt
    Kontrolleret mod
    Observationsfiler fra en ægte station i International GNSS (Global Navigation Satellite System) Service
  • TLE two-line element-sætlæs
    Sådan
    orbit-scenarier
    Kontrolleret mod
    De officielle referencevektorer fra AIAA (American Institute of Aeronautics and Astronautics)
  • IONEX IONosphere map EXchange formatlæs
    Sådan
    Rust-bibliotek
    Kontrolleret mod
    Læser produktet fra International GNSS Service; ingen ekstern kontrol anført endnu
  • IERS-jordorientering International Earth Rotation and Reference Systems Servicelæs
    Sådan
    --eop med en finals2000A-fil
    Kontrolleret mod
    Det officielle produkt, inklusive forudsagte rækker
  • KIF Kshana Interchange Formatlæs · skriv
    Sådan
    Konvolut om ethvert resultat
    Kontrolleret mod
    Kshanas eget versionerede konvolut, ikke en ekstern standard; hver modtager af det får en kompatibilitetsdom
  • JSON, SVG, HTML, CSV kørslens outputskriv
    Sådan
    Hver kørsel; MCP export_table_csv
    Kontrolleret mod
    Deterministisk ud fra scenarie, seed og motorversion
JetBrains IDE-pluginIntelliJ · PyCharm · CLion

Foretrækker du at klikke?

Pluginet "Kshana — PNT simulator": højreklik på et vilkårligt scenarie .toml, vælg Run Kshana Scenario, og læs kvalitetsmålene i et værktøjsvindue.

Benchmark

Kør benchmarken.

kshana bench score omsætter en indsendelsesfil og en opdelings reference til en resultatfil, og kshana bench leaderboard gengiver resultatfiler til en statisk side. Intet kører på dine vegne, og intet uploades.