Плагін WinTAK — це бібліотека класів .NET Framework, написана на C# із WPF, яку WinTAK виявляє через Managed Extensibility Framework (MEF) і завантажує у власний процес. Він може додавати кнопки на стрічці, док-панелі, картографічні інструменти, обробники Cursor on Target (CoT) і фонові служби. Ви збираєте його у Visual Studio на основі WinTAK SDK, що відповідає точному релізу WinTAK ваших користувачів, і постачаєте як пакет .wpk.

Цей посібник — для команд .NET, що починають розробку плагінів WinTAK, і для програмного персоналу, який шукає готові плагіни WinTAK. Він доповнює наші матеріали «Інженерія плагінів ATAK і WinTAK» і «WinTAK у ТОЦ». Назви класів і інтерфейсів узято з опублікованого довідника WinTAK SDK API та його керівництва «Extending WinTAK»; API розвивається між релізами, тож звіряйте кожну назву з версією SDK, з якою ви збираєте.

Що таке WinTAK?

WinTAK — Windows-представник родини Team Awareness Kit (TAK): урядовий готовий (GOTS) застосунок і картографічний фреймворк, який, за словами його інструкції користувача, працює «як у тактичному середовищі, так і в середовищі командування і керування». Він поділяє модель подій CoT з ATAK і iTAK (див. «Протокол TAK: CoT XML і protobuf»), підключається до TAK Server і опрацьовує оверлеї, пакети даних, відео та чат. Підписані інсталятори WinTAK вказують PAR Government як перевіреного видавця, а останні релізи 5.x орієнтовані на .NET Framework 4.8.1 у 64-бітному Windows.

На сторінках продуктів tak.gov перелічено дві лінійки WinTAK. WinTAK-CIV, «Windows OS Team Awareness Kit for Civilians», — редакція, яку отримують через реєстрацію на tak.gov; бінарники TAK-CIV публічні після затвердження, за винятком країн під ембарго та сторін із Denied Persons List. WinTAK-MIL (Windows Tactical Assault Kit) обмежений військовим використанням США, а іноземні уряди отримують TAK-MIL лише через Foreign Military Sales. tak.gov класифікує ATAK-CIV як EAR99, але повідомляє, що інші лінійки TAK-CIV ще проходять оцінювання, тож не припускайте, що WinTAK-CIV має таку саму класифікацію. Використання поза тестуванням і оцінюванням потребує повноваження на експлуатацію (ATO) від вашої організації.

Номери версій WinTAK ідуть у ногу з ATAK. У публічному графіку релізів tak.gov значаться WinTAK 5.8 на серпень 2026 року та 5.9 на грудень 2026-го, кожен із заморозкою функцій за місяць до релізу. tak.gov також перелічує TAKX — «поєднання двох провідних платформ командування і керування на Windows: WinTAK і RaptorX» — із власними варіантами та переліком плагінів. Якщо ви обираєте настільний клієнт на наступні кілька років, спитайте, який із них розгортатимуть ваші користувачі, перш ніж фіксувати цільову платформу плагіна.

Де отримати плагіни WinTAK

Якщо вам потрібні наявні плагіни WinTAK, а не новий, шукайте в чотирьох місцях:

  • Інсталятор WinTAK. Необов'язкові плагіни, що відповідають збірці, вбудовані й відмічаються прапорцями під час встановлення; перезапустіть інсталятор і виберіть Modify, щоб додати інші. У короткому посібнику з початку роботи Data Sync і ExCheck наведені як приклади.
  • Переліки плагінів tak.gov. tak.gov веде сторінку плагінів WinTAK, і частина плагінів постачається окремими файлами .wpk. Потрібен обліковий запис, а те, що можна завантажити, залежить від вашої ролі.
  • Виробники обладнання та ПЗ. Багато плагінів існує тому, що компанія хоче бачити свій сенсор, радіо чи сервіс у TAK; TAK Product Center зазначає, що такі позадоговорні роботи (IRAD) зазвичай націлені на продаж пов'язаної системи.
  • Спільнотні проєкти. Вони існують, але значно менше, ніж для ATAK; наш посібник із відкритої екосистеми TAK описує, що доступне безоплатно.

Інструкція користувача WinTAK перелічує три способи встановити плагін: Plug-in Manager у меню Application Menu, перетягування файлу .wpk на вікно WinTAK (подвійний клік теж працює) або вибір плагіна під час встановлення WinTAK. Plug-in Manager підтягує плагіни з локального каталогу або вебсервера оновлень, для якого адміністратор запускає утиліту wpkbuilder, щоб створити каталог plugins.json; плагіни з налаштованого локального каталогу встановлюються автоматично при старті WinTAK. Дві перевірки важать більше за функціональність: .wpk має бути зібраний під вашу точну збірку WinTAK і має бути погоджений для вашого варіанта та мережі.

WinTAK SDK: доступ, стек та інструменти

WinTAK SDK походить із tak.gov, і доступ залежить від того, ким ви є. Публічний покроковий розбір для розробників від березня 2025 року завантажував WinTAK-CIV SDK (тоді версії 5.3) і шаблони проєктів Visual Studio (файл .vsix) із ресурсів для розробників на сторінці продукту WinTAK-CIV. ЧаВО tak.gov суворіше: «Якщо у вас є державний спонсор, вам дозволено отримати доступ до комплектів розробки (SDK) ATAK або WinTAK». Оприлюднений процес розробки TAK Product Center надає державним розробникам та їхнім підрядникам доступ до репозиторіїв Standard SDK (спонсори поза DoD) або Military SDK (спонсори з DoD). Обидва містять документи контролю інтерфейсів, зразки вихідного коду та розробницьку збірку основного застосунку без ключа, що показує водяний знак «Development Build».

Стек — класичний Windows-десктоп, а не сучасний .NET:

  • .NET Framework і C#. Плагіни орієнтуються на фреймворк хоста (4.8.1 в останніх релізах). Бібліотеки, зібрані лише під .NET 6 чи 8, не завантажаться у процес; бібліотеки .NET Standard 2.0 — завантажаться.
  • WPF і XAML для всіх відображень, прив'язані до моделей подання.
  • MEF (System.ComponentModel.Composition) для виявлення та впровадження залежностей: WinTAK сканує збірки плагіна в пошуках експортованих класів з атрибутами — «конвенція замість конфігурації», словами керівництва SDK.
  • Prism для модулів і агрегатора подій.
  • Пакети NuGet зі збірками WinTAK. Старіші керівництва SDK користувалися пакетом WinTak-Dependencies зі стрічки TAKMaps Artifactory; поточні інсталяції SDK кладуть теку NuGet у встановлений WinTAK, яку ви додаєте як локальне джерело пакетів.

Оскільки плагін виконується всередині WinTAK.exe, необроблений виняток, заблокований UI-потік або витік пам'яті у вашому коді стає проблемою WinTAK просто на очах у оператора.

Анатомія плагіна WinTAK

Продукційний плагін поєднує кілька точок розширення. Атрибути MEF реєструють кожну частину, а WinTAK створює кнопки й панелі ліниво (кнопку — під час першого кліку, панель — під час першого звернення), що зберігає швидкий запуск.

ЧастинаМеханізм у SDKТипове завдання
Точка входу (модуль)IModule Prism, експортований з [ModuleExport(..., InitializationMode = InitializationMode.WhenAvailable)]; служби впроваджуються через [ImportingConstructor]Запуск фонових служб і підписка на події при старті, напр. FileDroppedEvent через IEventAggregator
Док-панельКлас, похідний від DockPane, з [DockPane(ID, "Name", Content = typeof(View))]; відкривається через IDockingManager.GetDockPane(id)Панель, у якій працює оператор; DockPane водночас виконує роль моделі подання
Кнопка на стрічціКлас, похідний від Button, з [Button(id, caption, LargeImage = ..., SmallImage = ...)]; перевизначте OnClick()Відкрити панель, запустити картографічний інструмент, перемкнути потік
Картографічні інструменти та оверлеїПодії картографічного подання, як-от MapMouseMove; шари IMapObjectRenderer (точка, фігура, команда, тривога, контур); IMapObjectFinderService; ILocationServiceВибирати точки, креслити зони покриття і райони, знаходити об'єкти за UID, зчитувати власну позицію
Хуки CoTICotMessageReceiver (PreviewMessageReceived, MessageReceived, AfterMessageReceived); ICotMessageSender; ICommunicationService (BroadcastCot, SendCot, SendMissionPackage)Споживати, перетворювати й надсилати CoT; передавати місійні пакети контактам або TAK Server
ІмпортIImportStrategy з [ImportStrategy(fileTypes)]Навчити Import Manager новому формату файлів
НалаштуванняIToolPreferenceПараметри плагіна в Settings, Tool Preferences
ЖурналюванняILogger (від Info до Fatal)Діагностика поруч із власними журналами WinTAK у %AppData%\WinTAK\Logs
МетаданіАтрибути PluginName, PluginDescription, PluginIcon, PluginDependencies, TakSdkVersion, TakVariantНазвати плагін і оголосити його залежності, версію SDK та варіанти TAK, на які він розрахований

Мінімальний модуль, який стежить за ворожими треками й передає їх зовнішній системі, змодельований за власним прикладом модуля з 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
    }
}

Обережно з прапорцем Handled: довідник SDK радить позначати повідомлення обробленим «тоді й лише тоді, коли іншим слухачам не потрібно бачити це повідомлення». Плагін, який мовчки проковтує CoT, ламає інші плагіни та базові інструменти.

Еталонна архітектура плагіна WinTAK: хост WinTAK (з’єднання з сервером, обмін CoT, картографічний рушій, докування і налаштування), з’єднаний через MEF зі власним плагіном (фонова служба, обробник CoT, картографічний інструмент, док-панель), зв’язаний із TAK Server через TLS та із зовнішнім сенсором або C2 API, а внизу — шлях збирання, пакування й розгортання.
Плагін WinTAK виконується всередині процесу WinTAK: MEF з’єднує його частини зі службами хоста, CoT тече через хост до TAK Server, а кожен реліз збирається, пакується як .wpk і розгортається під конкретну збірку WinTAK.

Робочий процес розробки плагіна WinTAK

  1. Інструментарій. Встановіть Visual Studio 2022 (вистачить редакції Community), збірку WinTAK SDK, що відповідає цільовому релізу, і шаблони проєктів WinTAK.
  2. Проєкт. Почніть із шаблону плагіна WinTAK або з бібліотеки WPF User Control Library під .NET Framework 4.8.1, як робить керівництво SDK. Додайте тепу NuGet зі SDK як джерело пакетів і зафіксуйте версії пакетів під цільову збірку.
  3. Зневадження. Установіть Start external program на WinTAK.exe із текою встановленого WinTAK як робочим каталогом, тоді F5 запускає WinTAK із вашим плагіном і працюють точки зупину; Attach to Process покриває вже запущений інстанс. WinTAK повідомляє про нововиявлені плагіни при старті; увімкніть свій — і він з'явиться на вкладці Plugins стрічки.
  4. Тестування. Підключіться до лабораторного TAK Server і програйте записані CoT, включно з пошкодженими й простроченими подіями, поруч із зовнішнім потоком. Позначте Log Debug Information (Application Menu, Support) для більшої деталізації.
  5. Пакування. Випускайте окремий .wpk на кожну підтримувану збірку WinTAK, із версією плагіна й цільовою збіркою в імені файлу.
  6. Підписання. Підписуйте збірки й інсталятори сертифікатом підпису коду вашої організації; жорстко обмежені робочі станції зі списками дозволених застосунків можуть відмовити непідписаному коду. Для оперативних базлайнів tak.gov описує плагіни, які збираються, підписуються й ключуються через конвеєр TAK Product Center, зі сторонньою службою підписання для позадоговорних розробників. Достовірно підтвердіть, якого шляху очікують ваш спонсор і варіант.
  7. Поширення. Малі парки машин встановлюють плагіни зі спільної теки через Plug-in Manager; більші тримають внутрішній сервер оновлень або скриптоване встановлення WinTAK. Інсталятор підтримує тихе встановлення з вибраними компонентами (ADDLOCAL), але короткий посібник попереджає, що ці значення можуть змінюватися між версіями.

Що команди будують як плагіни WinTAK

  • Потоки сенсорів і безпілотників. Телеметрія, сенсорні точки інтересу та зони покриття від БпЛА, радарів, акустичних чи RF-сенсорів. tak.gov описує свій UAS Tool як такий, що ділиться позицією, сенсорною точкою інтересу, полем зору і відео з пристроями ATAK і WinTAK; публічний розбір 2025 року будує панель позицій MAVLink для WinTAK. Див. шаблони інтеграції сенсорів і телеметрію безпілотників у TAK.
  • Мости C2. Переклад треків, задач і контрольних орієнтирів між національною чи коаліційною системою C2 і CoT в обидва боки, з одним джерелом правди на кожен тип даних.
  • Імпорт і експорт даних. WinTAK уже імпортує KML/KMZ, GPX, shape-файли, DTED і файли CoT; плагін додає пропрієтарний формат або експортує дані в систему звітності. Пакети йдуть за структурою пакета даних і місійного пакета.
  • Засоби планування місій. Координатні сітки GRG, маршрути й контрольні списки. Стандартні плагіни, як-от GRG Builder і ExCheck, уже покривають частину цього, тож власний інструмент зазвичай кодує процедуру, специфічну для підрозділу.
  • Відео. У WinTAK є вбудований відеоплеєр і показ живого відео на карті; плагіни додають керування потоками вендора або контури за метаданими. Наш посібник із інтеграції відео в TAK покриває сторону потоків.

Потрібен готовий плагін WinTAK? Ми розробляємо плагіни WinTAK і ATAK, що мостять сенсори, безпілотники й системи C2 у TAK: розробка C# і WPF під вашу цільову збірку WinTAK, мапування й валідація CoT, пакування .wpk і шлях установлення, що відповідає вашій акредитації. Розкажіть нам про вашу інтеграцію →

Плагіни WinTAK і ATAK

Обидва SDK виставляють схожі ідеї (карта, шина CoT, UI-поверхні, шлях імпорту), але не мають спільних бінарників: .apk ATAK ніколи не завантажиться у WinTAK, і навпаки.

АспектПлагін WinTAKПлагін ATAK
Мова і середовищеC# на .NET Framework (4.8.1 в останніх релізах), 64-бітний WindowsJava або Kotlin на Android
UI-фреймворкWPF/XAML у док-панелях, кнопки на стрічціВідображення Android, зазвичай у бічних спадних панелях
Виявлення і життєвий циклАтрибути MEF; модулі Prism ініціалізуються при старті; кнопки й панелі створюються лінивоКлас входу, оголошений у дескрипторі плагіна, із колбеками старту й зупинки, які реєструють і видаляють компоненти
Пакет.wpk або необов'язковий компонент інсталятора WinTAKПідписаний APK
ПоширенняPlug-in Manager (локальна тека або сервер оновлень), перетягування, інсталятор, скриптоване встановленняtak.gov, MDM, сайдлоадинг, репозиторії плагінів
Продукційний підписПідпис коду плюс те, чого вимагають ваш варіант і спонсорПідпис APK; продукційний ATAK-CIV з Google Play очікує плагіни, підписані через конвеєр tak.gov
ЗневадженняVisual Studio: запуск або підключення до WinTAK.exeAndroid Studio і adb на пристрої чи емуляторі
Зв'язування версійОдин .wpk на збірку WinTAKЗібрано під конкретну версію ATAK SDK

Якщо спроможність має існувати в обох клієнтах, діліться специфікацією, а не UI-кодом: мапування CoT, контракт зовнішнього API і золоті тестові повідомлення, які мають пройти обидві реалізації. Важкі алгоритми можуть жити в нативному ядрі на C чи C++, що викликається через JNI на Android і P/Invoke на Windows. Наш посібник із розробки плагінів ATAK покриває сторону Android.

Зміцнення безпеки плагінів WinTAK

Плагін WinTAK виконується з усіма привілеями процесу WinTAK і бачить кожне CoT-повідомлення на робочій станції, тож ставтеся до нього як до частини довіреної обчислювальної бази.

  • Валідуйте вхідні дані. WinTAK уже розібрав CoT, який вам передає, але перевіряйте значення: відхиляйте координати поза діапазоном, прострочені мітки часу, невідомі префікси типів і завеликі UID чи позивні, а також обмежуйте частоту на джерело, щоб один некерований потік не заморозив UI. Власні входи (потоки, файли, відповіді API) розбирайте через XmlReader з DtdProcessing.Prohibit, без XmlResolver і з лімітом розміру. Анотовані приклади CoT-повідомлень — добрі тестові фікстури.
  • Найменші привілеї. Оператори мають запускати WinTAK від імені звичайних користувачів. Записуйте дані плагіна у профіль користувача або теку ProgramData WinTAK, ніколи в Program Files під час виконання, і не вимагайте підвищення прав після встановлення. Тримайте облікові дані API у сховищі сертифікатів Windows або під DPAPI, а не у налаштуваннях відкритим текстом.
  • Жодної нової поверхні атаки. Надавайте перевагу вихідним з'єднанням перед локальними слухачами. У програмах DoD кожен порт, протокол і сервіс, який використовує застосунок TAK, має бути зареєстрований через DoD PPSM, тож новий слухач — це й паперова робота, і ризик. Не надсилайте телеметрію з робочої станції.
  • Контрольовані оновлення. Роздавайте файли .wpk із внутрішнього HTTPS-сервера оновлень або контрольованого спільного ресурсу, тримайте попередню версію для відкату й підписуйте те, що постачаєте. Оновлення плагіна — це зміна коду в акредитованій системі.
  • Відомі залежності. Кожен доданий пакет NuGet виконується всередині WinTAK: перевіряйте його за базою рекомендацій OSV і тримайте перелік матеріалів ПЗ. Збірки .NET легко декомпілюються, тож не тримайте секретів і чутливої логіки в клієнті.

Про стійкість до втручання на стороні Android див. зміцнення безпеки плагінів TAK.

Пастки сумісності версій WinTAK

  • Одна збірка — одна ціль. Вважайте .wpk чинним лише для тієї збірки WinTAK, проти якої його скомпільовано. Коли користувачі переходять із 5.8 на 5.9, перезберіть проти пакетів SDK 5.9 і повторно протестуйте.
  • Кілька релізів на рік. TAK Product Center працює на 120-денному циклі розробки з опублікованими заморозками функцій, тож кожен реліз потребує запланованого перезбирання й регресійного проходу.
  • Невідповідність варіанта. Збірки CIV і MIL відрізняються. Плагін може оголосити варіанти, на які розрахований (TakVariant), і версію SDK, з якою зібраний (TakSdkVersion); тестуйте на варіанті, який запускають ваші користувачі.
  • Дрейф залежностей. Цільтесь точно у версію .NET Framework хоста і не постачайте власну копію збірки, яку WinTAK уже завантажує, як-от Prism, в іншій версії. Конфлікти прив'язок виявляються як плагіни, що мовчки не завантажуються, тож спершу читайте файли Errors, Log і Fatal у %AppData%\WinTAK\Logs.
  • TAKX. Не припускайте, що плагін WinTAK запуститься без змін у TAKX; поки TAK Product Center не опублікує шлях міграції для вашого варіанта, закладайте ресурс на порт.

Розробити чи купити: як швидко отримати плагін WinTAK

Якщо спроможність потрібна за тижні, а не за квартали, пройдіть цей список зверху вниз:

  1. Перевірте, що вже існує. Перегляньте необов'язкові компоненти інсталятора та перелік плагінів WinTAK на tak.gov; урядовий плагін може вже покривати ядро задачі.
  2. Спитайте вендора. Виробники сенсорів і систем C2 часто постачають TAK-інтеграції для власних продуктів.
  3. Поставте під сумнів сам плагін. Якщо ваші дані можуть дістатися TAK Server або локальної мережі у вигляді CoT, WinTAK покаже їх без плагіна. Будуйте його для нового UI, локальної обробки, нового формату файлів, керування пристроями або двостороннього мосту.
  4. Закладіть ресурс на життєвий цикл. Плануйте перезбирання й регресійний прохід на кожен реліз WinTAK, шлях підписання й поширення, що відповідає вашій акредитації, та підтримку кожного варіанта в полі. Команда, яка вже розв'язала композицію MEF, крайові випадки CoT, пакування й фіксацію версій, рано знімає більшість ризиків графіка.

Потрібен плагін WinTAK для ваших сенсорів або системи C2?

Ми будуємо плагіни WinTAK і ATAK, що приносять дані сенсорів, безпілотників і C2 у TAK — зі збірками під зафіксовані версії, валідацією CoT і шляхом розгортання, що відповідає вашій акредитації.

Розробити плагін WinTAK з нами → WinTAK у ТОЦ →

Підготувала інженерна команда Corvus Intelligence, що будує плагіни TAK і CoT-інтеграції для оборонних користувачів; деталі WinTAK SDK звірено з опублікованим довідником SDK, інструкцією користувача WinTAK і документами процесів tak.gov. Про Corvus Intelligence →