Wtyczka WinTAK to biblioteka klas .NET Framework napisana w C# z użyciem WPF, którą WinTAK odnajduje przez Managed Extensibility Framework (MEF) i ładuje do własnego procesu. Może dodawać przyciski na wstążce, panele dokowane, narzędzia mapowe, handlery Cursor on Target (CoT) i usługi działające w tle. Budujesz ją w Visual Studio pod WinTAK SDK zgodny z dokładnym wydaniem WinTAK używanym przez twoich użytkowników i dostarczasz jako pakiet .wpk.

Ten przewodnik jest przeznaczony dla zespołów .NET rozpoczynających tworzenie wtyczek WinTAK oraz dla kadry programowej poszukującej gotowych rozwiązań. Uzupełnia nasze omówienie inżynierii wtyczek ATAK i WinTAK oraz WinTAK w TOC. Nazwy klas i interfejsów pochodzą z opublikowanego podręcznika WinTAK SDK API i jego przewodnika „Extending WinTAK”; API zmienia się między wydaniami, więc każdą nazwę sprawdzaj względem wersji SDK, z którą budujesz.

Czym jest WinTAK?

WinTAK to windowsowy przedstawiciel rodziny Team Awareness Kit (TAK): rządowa gotowa aplikacja (GOTS) i framework mapowy, który według swojej instrukcji użytkownika działa „zarówno w środowisku taktycznym, jak i w środowisku dowodzenia i kierowania”. Dzieli model zdarzeń CoT z ATAK i iTAK (zob. protokół TAK: CoT XML i protobuf), łączy się z TAK Server i obsługuje nakładki, pakiety danych, wideo oraz czat. Podpisane instalatory WinTAK wskazują PAR Government jako zweryfikowanego wydawcę, a najnowsze wydania 5.x celują w .NET Framework 4.8.1 na 64-bitowym Windows.

Strony produktów na tak.gov wymieniają dwie linie WinTAK. WinTAK-CIV, „Windows OS Team Awareness Kit for Civilians”, to edycja dostępna po rejestracji na tak.gov; binaria TAK-CIV są publiczne po zatwierdzeniu, z wyłączeniem krajów objętych embargiem i stron z Denied Persons List. WinTAK-MIL (Windows Tactical Assault Kit) jest ograniczony do użytku wojskowego USA, a rządy zagraniczne otrzymują TAK-MIL wyłącznie w ramach Foreign Military Sales. tak.gov klasyfikuje ATAK-CIV jako EAR99, ale zaznacza, że pozostałe linie TAK-CIV są nadal oceniane, więc nie zakładaj, że WinTAK-CIV ma tę samą klasyfikację. Użycie poza testami i oceną wymaga upoważnienia do eksploatacji (ATO) od twojej organizacji.

Numery wersji WinTAK nadążają za ATAK. Publiczny harmonogram wydań tak.gov wymienia WinTAK 5.8 na sierpień 2026 i 5.9 na grudzień 2026, każde z zamrożeniem funkcji miesiąc wcześniej. tak.gov wymienia także TAKX, „ukoronowanie dwóch czołowych platform dowodzenia i kierowania działających na Windows: WinTAK i RaptorX”, wraz z własnymi wariantami i listą wtyczek. Jeśli wybierasz klienta stacjonarnego na najbliższe lata, zapytaj najpierw, który z nich wdrożą twoi użytkownicy, zanim ustalisz docelową platformę wtyczki.

Skąd wziąć wtyczki WinTAK

Jeśli potrzebujesz istniejących wtyczek WinTAK, a nie nowej, szukaj w czterech miejscach:

  • Instalator WinTAK. Opcjonalne wtyczki zgodne z kompilacją są dołączone i zaznaczane na liście podczas instalacji; uruchom ponownie instalator i wybierz Modify, aby dodać kolejne. Krótki przewodnik startowy podaje jako przykłady Data Sync i ExCheck.
  • Wykazy wtyczek tak.gov. tak.gov prowadzi stronę wtyczek WinTAK, a część z nich dystrybuuje jako osobne pliki .wpk. Potrzebne jest konto, a to, co możesz pobrać, zależy od twojej roli.
  • Dostawcy sprzętu i oprogramowania. Wiele wtyczek powstało, bo firma chce mieć swój czujnik, radio lub usługę w TAK; TAK Product Center zauważa, że takie prace pozakontraktowe (IRAD) zwykle służą sprzedaży powiązanego systemu.
  • Projekty społeczności. Istnieją, ale jest ich znacznie mniej niż dla ATAK; nasz przewodnik po ekosystemie otwartego TAK omawia, co jest bezpłatne.

Instrukcja użytkownika WinTAK wymienia trzy sposoby instalacji wtyczki: Plug-in Manager w menu aplikacji, przeciągnięcie pliku .wpk na okno WinTAK (podwójne kliknięcie też działa) albo wybranie jej podczas instalacji WinTAK. Plug-in Manager pobiera wtyczki z lokalnego katalogu lub internetowego serwera aktualizacji, dla którego administrator uruchamia narzędzie wpkbuilder, aby utworzyć katalog plugins.json; wtyczki ze skonfigurowanego katalogu lokalnego instalują się automatycznie przy starcie WinTAK. Dwie kontrole ważą więcej niż funkcje: .wpk musi być zbudowany pod dokładnie twoją kompilację WinTAK i musi być dopuszczony do twojego wariantu i sieci.

WinTAK SDK: dostęp, stos i narzędzia

WinTAK SDK pochodzi z tak.gov, a dostęp zależy od tego, kim jesteś. Publiczny przewodnik deweloperski z marca 2025 pobierał WinTAK-CIV SDK (wówczas w wersji 5.3) i szablony projektów Visual Studio (plik .vsix) z zasobów dla deweloperów na stronie produktu WinTAK-CIV. FAQ tak.gov jest bardziej rygorystyczne: „Jeśli masz rządowego sponsora, masz dostęp do zestawów SDK ATAK lub WinTAK”. Opublikowany proces rozwoju TAK Product Center daje deweloperom rządowym i ich wykonawcom dostęp do repozytoriów Standard SDK (sponsorzy spoza DoD) lub Military SDK (sponsorzy z DoD). Oba zawierają dokumenty kontroli interfejsów, przykładowy kod źródłowy i deweloperską kompilację aplikacji hosta bez klucza, wyświetlającą znak wodny „Development Build”.

Stos to klasyczny desktop na Windows, a nie nowoczesny .NET:

  • .NET Framework i C#. Wtyczki celują we framework hosta (4.8.1 w najnowszych wydaniach). Biblioteki zbudowane wyłącznie pod .NET 6 lub 8 nie załadują się w procesie; biblioteki .NET Standard 2.0 — tak.
  • WPF i XAML dla każdego widoku, powiązane z modelami widoku.
  • MEF (System.ComponentModel.Composition) do odkrywania i wstrzykiwania zależności: WinTAK skanuje zestawy wtyczki w poszukiwaniu eksportowanych klas opatrzonych atrybutami — „konwencja zamiast konfiguracji”, słowami przewodnika SDK.
  • Prism dla modułów i agregatora zdarzeń.
  • Pakiety NuGet z zestawami WinTAK. Starsze przewodniki SDK korzystały z pakietu WinTak-Dependencies ze źródła TAKMaps Artifactory; bieżące instalacje SDK umieszczają folder NuGet w katalogu instalacyjnym WinTAK, który dodajesz jako lokalne źródło pakietów.

Ponieważ wtyczka działa wewnątrz WinTAK.exe, nieobsłużony wyjątek, zablokowany wątek interfejsu lub wyciek pamięci w twoim kodzie staje się problemem WinTAK na oczach operatora.

Anatomia wtyczki WinTAK

Produkcyjna wtyczka łączy kilka punktów rozszerzeń. Atrybuty MEF rejestrują każdą część, a WinTAK tworzy przyciski i panele leniwie (przycisk przy pierwszym kliknięciu, panel przy pierwszym żądaniu), co zapewnia szybki start.

CzęśćMechanizm w SDKTypowe zadanie
Punkt wejścia (moduł)IModule Prism eksportowany z [ModuleExport(..., InitializationMode = InitializationMode.WhenAvailable)]; usługi wstrzykiwane przez [ImportingConstructor]Uruchomienie usług w tle i subskrypcja zdarzeń przy starcie, np. FileDroppedEvent przez IEventAggregator
Panel dokowanyKlasa pochodna od DockPane z [DockPane(ID, "Name", Content = typeof(View))]; otwierany przez IDockingManager.GetDockPane(id)Panel, w którym pracuje operator; DockPane pełni jednocześnie rolę modelu widoku
Przycisk na wstążceKlasa pochodna od Button z [Button(id, caption, LargeImage = ..., SmallImage = ...)]; nadpisz OnClick()Otworzyć panel, uruchomić narzędzie mapowe, przełączyć feed
Narzędzia mapowe i nakładkiZdarzenia widoku mapy, takie jak MapMouseMove; warstwy IMapObjectRenderer (punkt, kształt, zespoły, alarm, obrys); IMapObjectFinderService; ILocationServiceWybierać punkty, rysować pola obserwacji i strefy, znajdować obiekty po UID, odczytywać własną pozycję
Hooki CoTICotMessageReceiver (PreviewMessageReceived, MessageReceived, AfterMessageReceived); ICotMessageSender; ICommunicationService (BroadcastCot, SendCot, SendMissionPackage)Pobierać, przekształcać i wysyłać CoT; przesyłać pakiety misji do kontaktów lub TAK Server
ImportIImportStrategy z [ImportStrategy(fileTypes)]Uczyć Import Manager nowego formatu plików
UstawieniaIToolPreferenceOpcje wtyczki w Settings, Tool Preferences
LogowanieILogger (od Info do Fatal)Diagnostyka obok logów WinTAK w %AppData%\WinTAK\Logs
MetadaneAtrybuty PluginName, PluginDescription, PluginIcon, PluginDependencies, TakSdkVersion, TakVariantNazwać wtyczkę i zadeklarować jej zależności, wersję SDK oraz warianty TAK, w które celuje

Minimalny moduł, który śledzi wrogie ślady i przekazuje je do systemu zewnętrznego, wzorowany na przykładowym module dostarczonym z SDK:

using System.ComponentModel.Composition;
using Prism.Mef.Modularity;
using Prism.Modularity;
using WinTak.Common.CoT;
using WinTak.CursorOnTarget.Services;

[ModuleExport(typeof(SensorBridgeModule), InitializationMode = InitializationMode.WhenAvailable)]
public class SensorBridgeModule : IModule
{
    private readonly ICotMessageReceiver _receiver;

    [ImportingConstructor]
    public SensorBridgeModule(ICotMessageReceiver receiver)
    {
        _receiver = receiver;
    }

    public void Initialize()
    {
        _receiver.MessageReceived += OnMessageReceived;
        // start the connector to the external sensor or C2 API here, off the UI thread
    }

    private void OnMessageReceived(object sender, CoTMessageArgument e)
    {
        if (e.Type == null || !e.Type.StartsWith("a-h-"))
            return; // not ours: leave e.Handled alone so other listeners still see it

        // validate e.Uid, e.Stale and the point, then queue the track for the bridge
    }
}

Uważaj na flagę Handled: podręcznik SDK zaleca oznaczać komunikat jako obsłużony „wtedy i tylko wtedy, gdy pozostali odbiorcy nie muszą go analizować”. Wtyczka, która po cichu połyka CoT, psuje inne wtyczki i narzędzia wbudowane.

Architektura odniesienia wtyczki WinTAK: host WinTAK (połączenia z serwerem, obsługa CoT, silnik mapy, dokowanie i preferencje) połączony przez MEF z własną wtyczką (usługa w tle, handler CoT, narzędzie mapowe, panel dokowany), połączony przez TLS z TAK Server i z zewnętrznym czujnikiem lub API C2, a poniżej ścieżka budowania, pakowania i wdrażania.
Wtyczka WinTAK działa wewnątrz procesu WinTAK: MEF podłącza jej części do usług hosta, CoT przepływa przez host do TAK Server, a każde wydanie jest budowane, pakowane jako .wpk i wdrażane pod konkretną kompilację WinTAK.

Przepływ pracy przy tworzeniu wtyczki WinTAK

  1. Zestaw narzędzi. Zainstaluj Visual Studio 2022 (wystarczy wersja Community), kompilację WinTAK SDK zgodną z docelowym wydaniem oraz szablony projektów WinTAK.
  2. Projekt. Zacznij od szablonu wtyczki WinTAK albo od biblioteki WPF User Control Library celującej w .NET Framework 4.8.1, tak jak w przewodniku SDK. Dodaj folder NuGet z SDK jako źródło pakietów i przypnij wersje pakietów do docelowej kompilacji.
  3. Debugowanie. Ustaw Start external program na WinTAK.exe z folderem instalacji WinTAK jako katalogiem roboczym, aby F5 uruchamiało WinTAK z twoją wtyczką i działały punkty przerwania; Attach to Process obejmuje uruchomioną instancję. WinTAK zgłasza nowo wykryte wtyczki przy starcie; włącz swoją, a pojawi się na karcie Plugins wstążki.
  4. Testowanie. Połącz się z laboratoryjnym TAK Server i odtwarzaj nagrane CoT, w tym zdarzenia uszkodzone i przeterminowane, obok zewnętrznego feedu. Zaznacz Log Debug Information (menu aplikacji, Support), aby uzyskać więcej szczegółów.
  5. Pakowanie. Produkuj osobny .wpk na każdą obsługiwaną kompilację WinTAK, z wersją wtyczki i docelową kompilacją w nazwie pliku.
  6. Podpisywanie. Podpisuj zestawy i instalatory certyfikatem podpisywania kodu twojej organizacji; zablokowane stacje robocze z listami dozwolonych aplikacji mogą odmówić uruchomienia niepodpisanego kodu. Dla baz operacyjnych tak.gov opisuje wtyczki budowane, podpisywane i kluczowane w procesie TAK Product Center, z zewnętrzną usługą podpisu dla deweloperów pozakontraktowych. Wcześnie potwierdź, której ścieżki oczekują twój sponsor i wariant.
  7. Dystrybucja. Małe floty instalują z folderu udostępnionego przez Plug-in Manager; większe prowadzą wewnętrzny serwer aktualizacji albo instalację WinTAK ze skryptu. Instalator obsługuje instalacje ciche z wybranymi komponentami (ADDLOCAL), ale krótki przewodnik uprzedza, że te wartości mogą się zmieniać między wersjami.

Co zespoły budują jako wtyczki WinTAK

  • Feedy z czujników i dronów. Telemetria, punkty orientacyjne czujników i pola obserwacji z BSP, radarów, czujników akustycznych lub RF. tak.gov opisuje swoje narzędzie UAS Tool jako udostępniające pozycję, punkt orientacyjny czujnika, pole widzenia i wideo urządzeniom ATAK i WinTAK; publiczny przewodnik z 2025 roku buduje panel pozycji MAVLink dla WinTAK. Zobacz wzorce integracji czujników i telemetrię drona w TAK.
  • Mosty C2. Tłumaczenie śladów, zadań i środków kontroli między narodowym lub koalicyjnym systemem C2 a CoT w obie strony, z jednym źródłem prawdy na każdy typ danych.
  • Import i eksport danych. WinTAK już importuje KML/KMZ, GPX, shapefile, DTED i pliki CoT; wtyczka dodaje format własnościowy albo eksportuje dane do systemu raportowego. Pakiety podążają za strukturą pakietów danych i pakietów misji.
  • Narzędzia planowania misji. Grafika siatki GRG, trasy i listy kontrolne. Standardowe wtyczki, takie jak GRG Builder i ExCheck, już pokrywają część tego zakresu, więc własne narzędzie zwykle koduje procedurę specyficzną dla pododdziału.
  • Wideo. WinTAK ma wbudowany odtwarzacz wideo i podgląd transmisji na żywo na mapie; wtyczki dodają sterowanie strumieniem dostawcy albo pola wyznaczane metadanymi. Nasz przewodnik integracji wideo w TAK omawia stronę strumieni.

Potrzebujesz zbudowanej wtyczki WinTAK? Rozwijamy wtyczki WinTAK i ATAK mostkujące czujniki, drony i systemy C2 do TAK: rozwój w C# i WPF pod twoją docelową kompilację WinTAK, mapowanie i walidacja CoT, pakowanie .wpk oraz ścieżka instalacji dopasowana do twojej akredytacji. Opowiedz nam o swojej integracji →

Wtyczki WinTAK a ATAK

Oba SDK udostępniają podobne idee (mapa, magistrala CoT, powierzchnie interfejsu, ścieżka importu), ale nie dzielą binariów: .apk ATAK nigdy nie załaduje się w WinTAK i odwrotnie.

AspektWtyczka WinTAKWtyczka ATAK
Język i środowiskoC# na .NET Framework (4.8.1 w najnowszych wydaniach), 64-bitowy WindowsJava lub Kotlin na Androidzie
Framework interfejsuWPF/XAML w panelach dokowanych, przyciski na wstążceWidoki Androida, zwykle w bocznych panelach rozwijanych
Wykrywanie i cykl życiaAtrybuty MEF; moduły Prism inicjowane przy starcie; przyciski i panele tworzone leniwieKlasa wejściowa zadeklarowana w deskryptorze wtyczki, z wywołaniami zwrotnymi startu i stopu rejestrującymi i usuwającymi komponenty
Pakiet.wpk albo opcjonalny komponent instalatora WinTAKPodpisany APK
DystrybucjaPlug-in Manager (folder lokalny lub serwer aktualizacji), przeciągnij i upuść, instalator, instalacja ze skryptutak.gov, MDM, sideloading, repozytoria wtyczek
Podpis produkcyjnyPodpisywanie kodu plus wymagania twojego wariantu i sponsoraPodpis APK; produkcyjny ATAK-CIV z Google Play wymaga wtyczek podpisanych przez proces tak.gov
DebugowanieVisual Studio: uruchomienie lub podłączenie do WinTAK.exeAndroid Studio i adb na urządzeniu lub emulatorze
Powiązanie wersjiJeden .wpk na kompilację WinTAKBudowa pod konkretną wersję ATAK SDK

Jeśli zdolność musi istnieć w obu klientach, dziel się specyfikacją, a nie kodem interfejsu: mapowania CoT, kontrakt zewnętrznego API i referencyjne komunikaty testowe, które muszą przejść obie implementacje. Ciężkie algorytmy mogą żyć w natywnym rdzeniu C lub C++ wywoływanym przez JNI na Androidzie i P/Invoke na Windows. Nasz przewodnik tworzenia wtyczek ATAK omawia stronę Androida.

Hartowanie bezpieczeństwa wtyczek WinTAK

Wtyczka WinTAK działa z pełnymi uprawnieniami procesu WinTAK i widzi każdy komunikat CoT na stacji roboczej, więc traktuj ją jako część zaufanej bazy obliczeniowej.

  • Waliduj dane wejściowe. WinTAK już przetworzył CoT, który ci przekazuje, ale sprawdzaj wartości: odrzucaj współrzędne poza zakresem, przeterminowane znaczniki czasu, nieznane prefiksy typów oraz nadmiarowo duże UID i znaki wywołcze, a także ograniczaj częstotliwość per źródło, żeby jeden niekontrolowany feed nie zablokował interfejsu. Własne wejścia (feedy, pliki, odpowiedzi API) przetwarzaj przez XmlReader z DtdProcessing.Prohibit, bez XmlResolver i z limitem rozmiaru. Opisane przykłady komunikatów CoT to dobre dane testowe.
  • Najmniejsze uprawnienia. Operatorzy powinni uruchamiać WinTAK jako standardowi użytkownicy. Zapisuj dane wtyczki w profilu użytkownika lub w folderze ProgramData WinTAK, nigdy w Program Files w trakcie działania, i nie wymagaj podwyższenia uprawnień po instalacji. Dane uwierzytelniające API trzymaj w magazynie certyfikatów Windows lub pod DPAPI, a nie jawnym tekstem w ustawieniach.
  • Żadnej nowej powierzchni ataku. Przedkładaj połączenia wychodzące nad lokalne nasłuchy. W programach DoD każdy port, protokół i usługa używane przez aplikację TAK muszą być zarejestrowane przez DoD PPSM, więc nowy nasłuch to zarówno papierologia, jak i ryzyko. Nie wysyłaj telemetrii poza stację roboczą.
  • Kontrolowane aktualizacje. Udostępniaj pliki .wpk z wewnętrznego serwera aktualizacji HTTPS lub kontrolowanego udziału, zachowuj poprzednią wersję do wycofania i podpisuj to, co dostarczasz. Aktualizacja wtyczki to zmiana kodu w systemie z akredytacją.
  • Znane zależności. Każdy dodany pakiet NuGet działa wewnątrz WinTAK: sprawdzaj go względem bazy doradztwa OSV i prowadź listę materiałów oprogramowania. Zestawy .NET łatwo się dekompilują, więc trzymaj sekrety i wrażliwą logikę poza klientem.

O odporności na manipulacje po stronie Androida zobacz hartowanie bezpieczeństwa wtyczek TAK.

Pułapki zgodności wersji WinTAK

  • Jedna kompilacja, jeden cel. Traktuj .wpk jako ważny wyłącznie dla kompilacji WinTAK, przeciwko której został skompilowany. Gdy użytkownicy przechodzą z 5.8 na 5.9, przebuduj przeciw pakietom SDK 5.9 i przetestuj ponownie.
  • Kilka wydań rocznie. TAK Product Center pracuje w 120-dniowym cyklu rozwoju z publikowanymi zamrożeniami funkcji, więc każde wydanie wymaga zaplanowanej przebudowy i przebiegu regresyjnego.
  • Niedopasowanie wariantu. Kompilacje CIV i MIL się różnią. Wtyczka może zadeklarować warianty, w które celuje (TakVariant), i wersję SDK, z którą była budowana (TakSdkVersion); testuj na wariancie, który uruchamiają twoi użytkownicy.
  • Dryf zależności. Celuj dokładnie we wersję .NET Framework hosta i nie dostarczaj własnej kopii zestawu, który WinTAK już ładuje, na przykład Prism, w innej wersji. Konflikty wiązania objawiają się wtyczkami, które cicho się nie ładują, więc najpierw czytaj pliki Errors, Log i Fatal w %AppData%\WinTAK\Logs.
  • TAKX. Nie zakładaj, że wtyczka WinTAK zadziała bez zmian w TAKX; dopóki TAK Product Center nie opublikuje ścieżki migracji dla twojego wariantu, zaplanuj budżet na port.

Zbuduj czy kup: szybka droga do wtyczki WinTAK

Jeśli zdolność jest potrzebna w tygodnie, a nie kwartały, przechodź tę listę od góry:

  1. Sprawdź, co istnieje. Przejrzyj opcjonalne komponenty instalatora i wykaz wtyczek WinTAK na tak.gov; wtyczka będąca własnością rządu może już pokrywać rdzeń zadania.
  2. Zapytaj dostawcę. Dostawcy czujników i systemów C2 często dostarczają integracje TAK dla własnych produktów.
  3. Zastanów się, czy wtyczka jest potrzebna. Jeśli twoje dane mogą dotrzeć do TAK Server lub sieci lokalnej jako CoT, WinTAK wyświetli je bez wtyczki. Buduj ją dla nowego interfejsu, przetwarzania lokalnego, nowego formatu plików, sterowania urządzeniami lub dwukierunkowego mostu.
  4. Zaplanuj budżet na cykl życia. Zaplanuj przebudowę i przebieg regresyjny na każde wydanie WinTAK, ścieżkę podpisywania i dystrybucji zgodną z twoją akredytacją oraz wsparcie każdego wariantu w polu. Zespół, który rozwiązał już kompozycję MEF, przypadki brzegowe CoT, pakowanie i przypinanie wersji, wcześnie usuwa większość ryzyka harmonogramu.

Potrzebujesz wtyczki WinTAK dla czujników lub systemu C2?

Budujemy wtyczki WinTAK i ATAK, które wprowadzają dane czujników, dronów i systemów C2 do TAK — z kompilacjami przypiętymi do wersji, walidacją CoT i ścieżką wdrożenia dopasowaną do twojej akredytacji.

Zbuduj z nami wtyczkę WinTAK → WinTAK w TOC →

Przygotował zespół inżynierski Corvus Intelligence, budujący wtyczki TAK i integracje CoT dla użytkowników obronnych; szczegóły WinTAK SDK zweryfikowano względem opublikowanego podręcznika SDK, instrukcji użytkownika WinTAK i dokumentów procesowych tak.gov. O Corvus Intelligence →