Fiecare mesaj Cursor on Target (CoT) este un document XML unic al cărui element rădăcină, <event>, poartă un cod de tip, un identificator unic, trei marcatori de timp UTC și o poziție <point>; tot restul călătorește în interiorul containerului deschis <detail>. Aceeași singură formă mută poziții, marcaje, chat, rute, desene, alerte și cereri medicale între ATAK, WinTAK, iTAK și TAK Server. Această pagină este biblioteca de copy-paste: XML CoT adnotat și sintactic valid pentru mesajele pe care sistemele tactice le schimbă în realitate, fiecare cu o notă despre ce face cu el clientul TAK care îl primește.

Despre istoria și proiectarea formatului citiți prezentarea noastră a formatului Cursor on Target, iar pentru o analiză câmp cu câmp studiul aprofundat al schemei CoT; acest articol rămâne intenționat la nivelul „ară-mi XML-ul”. Numele elementelor și atributelor de mai jos au fost verificate împotriva documentației publice a schemei de bază a evenimentelor CoT de la MITRE și a definițiilor de tipuri CoT publicate împreună cu clienții TAK. Indicativele, UID-urile și coordonatele sunt fictive; marcatorii de timp sunt valori ISO-8601 UTC ilustrative.

Anatomia unui mesaj CoT

Un eveniment CoT minimal și valid are nevoie de șapte atribute <event>, exact un <point> și, opțional, un <detail>:

<event version="2.0" uid="ANDROID-9c2f71a4" type="a-f-G-U-C" how="m-g"
       time="2026-10-07T06:12:44.000Z" start="2026-10-07T06:12:44.000Z"
       stale="2026-10-07T06:13:14.000Z">
  <point lat="50.450112" lon="30.523398" hae="152.4" ce="4.5" le="9.0"/>
  <detail>
    <contact callsign="GRIF-2" endpoint="*:-1:stcp"/>
    <__group name="Cyan" role="Team Member"/>
    <status battery="78"/>
    <takv platform="ATAK-CIV" version="5.2.0" device="Samsung SM-G975F" os="34"/>
    <track speed="1.4" course="270.0"/>
    <precisionlocation geopointsrc="GPS" altsrc="GPS"/>
  </detail>
</event>

Ce conduce fiecare parte în clientul primitor:

Anatomia unui mesaj Cursor on Target: în stânga scheletul XML al unui eveniment CoT cu atributele event (uid, type, how, time, start, stale), elementul point (lat, lon, hae, ce, le) și copiii detail (contact, __group, status, takv, track, precisionlocation, remarks, link, usericon, __chat); săgețile din dreapta leagă fiecare parte de ceea ce conduce în ATAK și TAK Server: pictograma de pe hartă și culoarea apartenenței, gestionarea expirării, poziția și precizia, indicativul, culoarea și rolul în echipă, bateria și versiunea clientului, vectorul viteză-curs și rutarea GeoChat.
Fiecare element al unui eveniment CoT conduce un comportament concret în ATAK, WinTAK și TAK Server — de la simbolul 2525 ales de codul de tip până la estomparea în gri declanșată de marca de timp stale.
ParteSemnificațieCe fac ATAK / TAK Server cu ea
uidIdentitatea lucrului, nu a mesajuluiAcelași uid mută marcajul existent; un uid nou creează unul. Ștergerile și anulările de alerte îl vizează.
typeTaxonomie punct-liniuță a ceea ce esteAlege simbolul MIL-STD-2525 și culoarea apartenenței; conduce filtrarea pe server și regulile de federație.
howCum a fost produsă pozițiaPonderează raportul în fuziune (GPS versus estimat versus retransmis); ATAK îl arată în detaliile marcajului.
time / start / staleMomentul generării și fereastra de valabilitateDupă ce trece stale, clienții estompează marcajul în gri și apoi îl elimină; nimeni nu trimite o expirare explicită.
pointlat/lon (grade zecimale WGS-84), hae (metri deasupra elipsoidului), ce/le (raii de eroare)Poziționează marcajul; ce poate desena un inel de precizie. Valorile necunoscute folosesc santinela 9999999.
detailContainer deschis de extensiiCopiii cunoscuți (mai jos) stabilesc indicativul, culoarea echipei, bateria, vectorul viteză; copiii necunoscuți sunt ignorați, nu respinși.

Trei proprietăți ale <point> îi fac pe integratori să se împiedice constant. hae este înălțimea deasupra elipsoidului WGS-84, nu deasupra nivelului mediu al mării. ce și le sunt limitele de eroare orizontală și verticală de 1-sigma în metri, cerute de schemă chiar și când sunt necunoscute — valoarea 9999999.0 este santinela agreată pentru „necunoscut” și e mai bună decât un 0.0 plin de sine. Iar lat/lon sunt grade zecimale cu semn, șase zecimale dând cam 0,1 m rezoluție; în CoT nu există opțiune MGRS sau UTM.

Coduri de tip CoT și valori how: fișa rapidă

Atributul type este o cale separată prin liniuțe printr-o taxonomie al cărei prim token spune ce fel de eveniment este:

Primul tokenFamilieÎntrebuințări tipice
a-Atomi — lucruri realeUnități, vehicule, aeronave, răniți, incidente
b-Biți — obiecte informaționaleChat, rute, desene, marcaje, aliasuri video, alarme
t-Comandare / controlPing-uri de menținere, sarcini de ștergere, preluare de date
y-RăspunsuriConfirmări, starea sarcinilor

La atomi, al doilea token este apartenența și al treilea dimensiunea de luptă; restul coboară arborele de funcții MIL-STD-2525 cu majuscule, literele mici fiind rezervate extensiilor CoT:

TokenApartenențăTokenDimensiune de luptă
pÎn așteptarePSpațiu
uNecunoscutAAer
aPresupus prietenGSol
fPrietenSSuprafață marină
nNeutruUSubsuprafață
sSuspectXAlta
hOstilurmează apoi ID-urile de funcție 2525 cu majuscule (de ex. -U-C luptă, -E-V-A-T tanc)

Fiindcă taxonomia se decodifică pe prefix, un client care înțelege doar a-h-G desenează oricum o pictogramă generică ostilă la sol pentru a-h-G-E-V-A-T. Șiruri frecvente în trafic real: a-f-G-U-C (prietenos terestru de luptă — tipul implicit de dispozitiv ATAK), a-f-A-M-F-Q / a-f-A-M-H-Q (dronă prietenă cu aripă fixă / cu rotor), a-u-G (terestru necunoscut), b-m-p-s-m (marcaj spot map), b-t-f (GeoChat), b-m-r (rută), b-r-f-h-c (cerere medicală 9-line). Cum se mapă pictogramele pe simboluri este tratat în randarea simbologiei în TAK, iar comparația standardelor în APP-6 versus MIL-STD-2525.

Atributul how înregistrează proveniența, iar sistemele de fuziune îl folosesc pentru a pondera rapoartele:

howSemnificație
h-eEstimare introdusă de om
h-c / h-t / h-pCalculată de om / transcrisă (voce, hârtie) / lipită din altă fereastră
h-g-i-g-oOficial „o urmă foarte îndoielnică” — în practică ATAK ștampilează cu ea majoritatea marcajelor plasate manual și GeoChat
m-gGenerat de mașină din GPS (rafinări m-g-d DGPS, m-g-n INS+GPS)
m-i / m-f / m-rMăsurat din imagini / fuzionat din mai multe surse / retransmis printr-un gateway
m-n / m-s / m-cNavigație inerțială / simulație / fișier de configurare

Reguli de timp: time, start și stale sunt ISO 8601 UTC terminate cu Z (fracțiunile de secundă sunt opționale). time este momentul producerii evenimentului; start–stale este fereastra de valabilitate. Punerea lui stale înaintea lui start este convenția MITRE originală de „aruncare a urmei” — deși în rețelele TAK o sarcină explicită de ștergere (mai jos) e mai fiabilă.

Rapoarte de poziție: PLI prietenesc și marcaje ostile/neutre

Exemplul din topul paginii este un raport de propria poziție (PLI): ATAK îl repetă la fiecare câteva secunde cu același uid, pune stale la aproximativ două–patru intervale de raportare plus marjă și lasă fiecare celălalt client să adune marcajul dacă actualizările se opresc. Marcajele alimentate de senzori sau plasate de operator folosesc aceeași formă de eveniment cu un alt type și un stale mai lung:

<event version="2.0" uid="E-20261007-0413" type="a-h-G-E-V-A-T" how="h-g-i-g-o"
       time="2026-10-07T06:41:02.000Z" start="2026-10-07T06:41:02.000Z"
       stale="2026-10-07T18:41:02.000Z">
  <point lat="50.412220" lon="30.591054" hae="9999999.0" ce="25.0" le="9999999.0"/>
  <detail>
    <contact callsign="K-41"/>
    <remarks source="BAO.F.ATAK.ANDROID-9c2f71a4">Hull-down at treeline, 2 vehicles</remarks>
    <usericon iconsetpath="COT_MAPPING_2525C/a-h/a-h-G-E-V-A-T"/>
    <link uid="ANDROID-9c2f71a4" type="a-f-G-U-C" relation="p-p"/>
    <archive/>
  </detail>
</event>

Ce fac primitorii: type pictează rombul roșu al tancului; contact/callsign devine eticheta; usericon fixează exact intrarea din setul de pictograme (forma COT_MAPPING_2525C/<affiliation>/<type> este cea emisă de paleta 2525 din ATAK); link relation="p-p" acreditează producătorul; <archive/> le spune clienților să păstreze marcajul în loc să-l lase să expire cu stale. Contactele necunoscute folosesc pur și simplu a-u-G; pictograma galbenă cu semnul întrebării apare fără altă schimbare. Pentru un simplu ac colorat fără codare 2525, ATAK folosește un marcaj spot map:

<event version="2.0" uid="9405e320-9356-41c4-8449-f46990aa17f8"
       type="b-m-p-s-m" how="h-g-i-g-o"
       time="2026-10-07T06:55:10.000Z" start="2026-10-07T06:55:10.000Z"
       stale="2026-10-08T06:55:10.000Z">
  <point lat="50.456090" lon="30.563750" hae="9999999.0" ce="9999999.0" le="9999999.0"/>
  <detail>
    <contact callsign="R 1"/>
    <color argb="-65536"/>
    <usericon iconsetpath="COT_MAPPING_SPOTMAP/b-m-p-s-m/-65536"/>
  </detail>
</event>

Aici pictograma este aleasă de usericon din paleta spot map și de valoarea de culoare ARGB (un întreg pe 32 de biți cu semn, -65536 fiind roșu opac), nu de un cod de simbologie — util pentru adnotările prietenicoase care nu trebuie să implice o identitate 2525.

Mesajele GeoChat (b-t-f)

Chatul în lumea TAK nu este un protocol separat: o linie GeoChat este un eveniment CoT de tip b-t-f al cărui text călătorește în <remarks>, iar adresarea în <__chat>/<chatgrp>:

<event version="2.0"
       uid="GeoChat.ANDROID-9c2f71a4.All Chat Rooms.3f8c2b1e-77d3-4c9a-9e21-5b0f6a2d4e88"
       type="b-t-f" how="h-g-i-g-o"
       time="2026-10-07T07:02:31.000Z" start="2026-10-07T07:02:31.000Z"
       stale="2026-10-08T07:02:31.000Z">
  <point lat="0.0" lon="0.0" hae="0.0" ce="9999999.0" le="9999999.0"/>
  <detail>
    <__chat id="All Chat Rooms" chatroom="All Chat Rooms" groupOwner="false"
            senderCallsign="GRIF-2"
            messageId="3f8c2b1e-77d3-4c9a-9e21-5b0f6a2d4e88">
      <chatgrp uid0="ANDROID-9c2f71a4" uid1="All Chat Rooms" id="All Chat Rooms"/>
    </__chat>
    <link uid="ANDROID-9c2f71a4" type="a-f-G-U-C" relation="p-p"/>
    <remarks source="BAO.F.ATAK.ANDROID-9c2f71a4"
             time="2026-10-07T07:02:31.000Z">Bearing 085, treeline, over.</remarks>
  </detail>
</event>

Cum se citește: uid-ul evenimentului este convențional GeoChat.<sender>.<conversation>.<message-uuid>, ceea ce face deduplicarea la replay trivială; chatgrp/uid0 este expeditorul, iar uid1 destinația — UID-ul unui singur destinatar pentru un mesaj direct, numele camerei pentru difuzare; remarks/@to poartă UID-ul destinatarului la mesajele directe; stale este pus la o zi înainte, pentru că chatul, spre deosebire de poziții, trebuie să supraviețuiască store-and-forward. Confirmările de livrare și de citire vin înapoi ca tipurile b-t-f-d și b-t-f-r. Punctul point al evenimentului poate ancora mesajul de un loc pe hartă; ATAK transmite și poziția live a expeditorului, cu excepția cazului în care operatorul o dezactivează. Imaginea completă store-and-forward și de lățime de bandă este în chatul tactic și strategia de date în TAK.

Rute, desene și linii distanță–azimut

O rută este un eveniment b-m-r ai cărui puncte de traseu sunt copii <link> — b-m-p-w pentru puncte denumite, b-m-p-c pentru punctele de control ale formelor — urmate de un bloc de stilizare <link_attr>:

<event version="2.0" uid="9017073e-5658-42e7-baa8-b98f3c9c1622" type="b-m-r" how="h-e"
       time="2026-10-07T07:20:00.000Z" start="2026-10-07T07:20:00.000Z"
       stale="2026-10-08T07:20:00.000Z">
  <point lat="0.0" lon="0.0" hae="9999999.0" ce="9999999.0" le="9999999.0"/>
  <detail>
    <link uid="f3acf150-d75c-407d-be43-e401ab40fe74" callsign="SP"
          type="b-m-p-w" point="50.443353,-77.054400" remarks="" relation="c"/>
    <link uid="820ebf04-1300-4c3a-a368-d6f1e21a5ddb" callsign=""
          type="b-m-p-c" point="50.436413,-77.045642" remarks="" relation="c"/>
    <link uid="f6926af1-deec-44f4-ae06-46065c829887" callsign="CP1"
          type="b-m-p-w" point="50.446574,-77.040572" remarks="" relation="c"/>
    <link_attr planningmethod="Infil" color="-1" method="Driving" prefix="CP"
               type="Vehicle" stroke="3" direction="Infil" routetype="Primary"
               order="Ascending Check Points"/>
    <strokeColor value="-1"/>
    <strokeWeight value="3.0"/>
    <contact callsign="ROUTE ALFA"/>
    <remarks></remarks>
    <archive/>
    <labels_on value="true"/>
  </detail>
</event>

ATAK randează lista link point ca geometrie a rutei, promovează intrările b-m-p-w în marcaje de puncte de traseu cu indicative proprii și citește link_attr pentru modul de deplasare (Driving|Walking|Flying|Swimming|Watercraft), direcție (Infil|Exfil) și tipul rutei (Primary|Secondary). Punctul point propriu al evenimentului este santinela 0/0 — geometria trăiește în întregime în detail.

Desenele urmează același tipar „geometria în detail”. Un cerc este o elipsă cu axe egale în interiorul unui <shape>:

<event version="2.0" uid="6d09b6f6-720a-4eef-a197-183012512316"
       type="u-d-c-c" how="h-e"
       time="2026-10-07T07:35:12.000Z" start="2026-10-07T07:35:12.000Z"
       stale="2026-10-08T07:35:12.000Z">
  <point lat="50.437376" lon="30.572999" hae="9999999.0" ce="9999999.0" le="9999999.0"/>
  <detail>
    <shape>
      <ellipse major="300.0" minor="300.0" angle="360"/>
      <link uid="6d09b6f6-720a-4eef-a197-183012512316.Style"
            type="b-x-KmlStyle" relation="p-c">
        <Style>
          <LineStyle><color>ffffffff</color><width>4.0</width></LineStyle>
          <PolyStyle><color>96ffffff</color></PolyStyle>
        </Style>
      </link>
    </shape>
    <strokeColor value="-1"/>
    <strokeWeight value="4.0"/>
    <fillColor value="-1761607681"/>
    <contact callsign="PATROL AREA"/>
    <labels_on value="true"/>
  </detail>
</event>

Punctul point este centrul, major/minor sunt în metri, iar blocul în stil KML cuibărit sub un link de tip b-x-KmlStyle poartă conturul și umplutura. Un dreptunghi renunță la elementul shape și își enumeră colțurile ca copii <link point="lat,lon"/> de tip u-d-r; o linie cu mâna liberă face același lucru cu tipul u-d-f, închizând poligonul prin repetarea primului punct la final. O linie distanță–azimut este din nou alta: tip u-rb-a, point este ancora, iar vectorul este numeric:

<event version="2.0" uid="58df2fcd-e33e-414f-a718-b18b50cd3137"
       type="u-rb-a" how="h-e"
       time="2026-10-07T07:44:03.000Z" start="2026-10-07T07:44:03.000Z"
       stale="2026-10-08T07:44:03.000Z">
  <point lat="50.420806" lon="30.554945" hae="9999999.0" ce="9999999.0" le="9999999.0"/>
  <detail>
    <range value="886.14"/>
    <bearing value="45.6"/>
    <inclination value="0.0"/>
    <rangeUnits value="1"/>
    <bearingUnits value="0"/>
    <northRef value="0"/>
    <strokeColor value="-65536"/>
    <strokeWeight value="3.0"/>
    <contact callsign="R&amp;B 1"/>
  </detail>
</event>

Unitățile sunt codate ca întregi mici: rangeUnits 0=km, 1=metri, 2=mile, 3=iarzi, 4=picioare, 5=mile nautice; bearingUnits 0=grade, 1=mii, 2=radiani; northRef 0=nord adevărat, 1=magnetic, 2=grilă. ATAK recalculează la import poziția vârfului săgeții din ancoră și vector.

Alerte de urgență și cereri CASEVAC/MEDEVAC

Balizele de urgență sunt evenimente mici și urgente: tipul b-a-o-tbl pentru o alertă 911 generală, stale doar la zece secunde în viitor (baliza este retransmisă, nu lăsată să atârne) și o convenție de UID <device-uid>-9-1-1:

<event version="2.0" uid="ANDROID-9c2f71a4-9-1-1" type="b-a-o-tbl" how="h-g-i-g-o"
       time="2026-10-07T08:01:57.000Z" start="2026-10-07T08:01:57.000Z"
       stale="2026-10-07T08:02:07.000Z">
  <point lat="50.448620" lon="30.531104" hae="160.0" ce="8.0" le="12.0"/>
  <detail>
    <link uid="ANDROID-9c2f71a4" type="a-f-G-U-C" relation="p-p"/>
    <contact callsign="GRIF-2-Alert"/>
    <emergency type="911 Alert">GRIF-2</emergency>
  </detail>
</event>

Șirurile emergency/@type și tipurile lor CoT, așa cum le definește ATAK:

AlertăTip CoTDeclanșator în ATAK
911 Alertb-a-o-tblButon de urgență, general
Ring The Bellb-a-o-panCerere deliberată de atenție urgentă
In Contactb-a-o-opnTrupe în contact
Geo-fence Breachedb-a-gO urmă intră sau iese dintr-o zonă geofence monitorizată
Customb-a-o-cDefinit de plugin
Cancel Alertb-a-o-canOperatorul anulează o baliză activă

La primire, clienții caută marcajul după link/@uid, ridică alerta cu distanța și azimutul către poziția victimei și țin baliza în viață; TAK Server o retransmite periodic. O anulare reutilizează același uid de eveniment și răstoarnă detail-ul:

<event version="2.0" uid="ANDROID-9c2f71a4-9-1-1" type="b-a-o-can" how="h-g-i-g-o"
       time="2026-10-07T08:07:22.000Z" start="2026-10-07T08:07:22.000Z"
       stale="2026-10-07T08:07:32.000Z">
  <point lat="50.448620" lon="30.531104" hae="160.0" ce="8.0" le="12.0"/>
  <detail>
    <emergency cancel="true">GRIF-2</emergency>
  </detail>
</event>

Cererea 9-line MEDEVAC/CASEVAC este un marcaj de tip b-r-f-h-c al cărui detail poartă un element <_medevac_> (observați liniuțele de subliniere) care ține cele nouă linii ca atribute. Un subset sigur și pe larg înțeles:

<event version="2.0" uid="7b1e0c52-2f4d-4f18-9c6e-0d4a2b9f5c31"
       type="b-r-f-h-c" how="h-g-i-g-o"
       time="2026-10-07T08:10:40.000Z" start="2026-10-07T08:10:40.000Z"
       stale="2026-10-07T09:10:40.000Z">
  <point lat="50.448620" lon="30.531104" hae="160.0" ce="8.0" le="12.0"/>
  <detail>
    <contact callsign="GRIF-2"/>
    <_medevac_ casevac="false" title="GRIF-2 9LINE" freq="41.50"
              urgent="1" priority="0" routine="0"
              litter="1" ambulatory="0"
              security="2" hlz_marking="2"
              equipment_none="true">
      <zMistsMap>
        <zMist title="MIST 1" z="Z1" m="GSW"
               i="left thigh" s="HR 110, BP 100/60" t="tourniquet, TXA"/>
      </zMistsMap>
    </_medevac_>
    <remarks>Pickup at gravel yard, wind 310/8</remarks>
  </detail>
</event>

Decodare: numărul pacienților pe prioritate stă în urgent/priority/routine; linia 5 în litter/ambulatory; security este un indice 0–3 (N fără inamic, P posibil, E inamic în zonă, X escortă necesară); hlz_marking indexează A panouri, B pirotehnie, C fum, D niciunul, E altul; echipamentul special apare ca stegulețe booleene (hoist, extraction_equipment, ventilator); raportul clinic MIST se cuibărește sub zMistsMap. ATAK randează din acest element cardul 9-line complet și uneltele zonei de aterizare. Fluxul operațional din jur este tratat în software-ul de coordonare CASEVAC.

Câmpul de vedere al senzorului și legături video

Subschema de senzori a MITRE atașează un câmp de vedere direcționabil oricărui marcaj. În interiorul evenimentului de poziție al platformei înseși — aici o dronă prietenă cu rotor, tip a-f-A-M-H-Q — adăugați:

<event version="2.0" uid="UAV-ZP-07" type="a-f-A-M-H-Q" how="m-g"
       time="2026-10-07T08:22:05.000Z" start="2026-10-07T08:22:05.000Z"
       stale="2026-10-07T08:22:15.000Z">
  <point lat="50.437120" lon="30.552870" hae="820.0" ce="12.0" le="15.0"/>
  <detail>
    <contact callsign="ZP-07" endpoint="*:-1:stcp"/>
    <sensor azimuth="127.0" fov="30.0" vfov="22.0" range="2200.0"
           elevation="-18.0" model="EO/IR turret"/>
    <__video url="rtsp://192.168.4.60:8554/live.sdp"/>
  </detail>
</event>

azimuth este în grade față de nordul adevărat, elevation înclinarea (negativ înseamnă în jos), fov/vfov câmpul orizontal și vertical în grade, range distanța înclinată în metri — împreună îi permit ATAK să deseneze pe hartă conul senzorului. Copilul <__video> leagă marcajul de un URL de flux, deci deschiderea marcajului deschide transmisia. Înregistrările de camere de sine stătătoare călătoresc ca evenimente proprii de tip b-i-v purtând un <ConnectionEntry> cu address, port, protocol și atribute înrudite de tuner, care populează managerul video pe fiecare client. Pentru pipeline-ul mai larg — rate de telemetrie, metadate KLV, indicare — vezi integrarea telemetriei de drone cu TAK.

Aici se blochează majoritatea programelor de integrare: radarul, autopilotul dronei, senzorul acustic și fluxul C2 moștenit descriu lumea fiecare diferit, și fiecare trebuie tradus în CoT valid — tipuri corecte, ce/le cinstite, UID-uri stabile, stale rezonabile — altfel COP-ul se umple de urme-fantomă. Noi construim exact aceste gateway-uri și adaptoare CoT, plus plugin-uri ATAK/WinTAK care randează rezultatul. Spuneți-ne ce flux vă trebuie pe imaginea tactică →

Ștergerea marcajelor și ping/pong de menținere

CoT nu are ștergere integrată; TAK adaugă una deasupra ca eveniment de comandă de tip t-x-d-d al cărui <link> numește victima:

<event version="2.0" uid="6650d1ee-4b17-4d02-8c95-13a1f2e9b0aa"
       type="t-x-d-d" how="h-g-i-g-o"
       time="2026-10-07T08:31:19.000Z" start="2026-10-07T08:31:19.000Z"
       stale="2026-10-07T08:31:29.000Z">
  <point lat="0.0" lon="0.0" hae="9999999.0" ce="9999999.0" le="9999999.0"/>
  <detail>
    <link uid="E-20261007-0413" relation="p-p" type="a-h-G-E-V-A-T"/>
    <__forcedelete/>
  </detail>
</event>

Fără <__forcedelete/>, ATAK doar marchează elementul referit ca expirat local și îl elimină conform setărilor utilizatorului; cu el, elementul este eliminat de-a dreptul pe fiecare client care primește sarcina. Importatorul cere ca link/@uid, @relation și @type să fie prezente și nevide, deci păstrați-le pe toate trei. Keepalive-ul e și mai mic — clienții TAK dau ping unui server care a amuțit vreo 15 secunde, repetând la fiecare câteva secunde, și tratează pong-ul de tip t-x-c-t-r ca mesaj de control care nu ajunge niciodată pe hartă:

<event version="2.0" uid="ANDROID-9c2f71a4-ping" type="t-x-c-t" how="m-g"
       time="2026-10-07T08:33:50.000Z" start="2026-10-07T08:33:50.000Z"
       stale="2026-10-07T08:34:00.000Z">
  <point lat="0.0" lon="0.0" hae="0.0" ce="9999999.0" le="9999999.0"/>
</event>

Dacă construiți un gateway, oglindiți acest comportament: un eveniment <uid>-ping la fiecare interval la care conexiunea trebuie verificată și eliminarea silențioasă a pong-urilor.

Generarea de CoT valid: marcatori de timp, stale, UID-uri, escaping

Erorile recurente din emițătoarele CoT sunt previzibile și toate sunt ieftin de prevenit:

  • UTC, întotdeauna. Fiecare marcă de timp se termină cu Z; decalajele locale sau un Z lipsă deplasează marcajele cu ore în trecut sau în viitor. Fracțiunile de secundă sunt opționale, iar orice precizie este legală.
  • Disciplina stale. Urme mobile: două–patru intervale de raportare plus marjă. Marcaje statice: ore până la zile, cu <archive/> dacă trebuie să persiste. Nu lăsați niciodată stale la valoarea implicită în viitorul îndepărtat pentru o urmă vie — marcajele-fantomă sunt plângerea numărul unu din teren.
  • UID-uri stabile. Derivați uid-ul din entitate (număr de serie, număr de urmă, hash de conținut), nu din mesaj. Două urme reale care împart un uid se prăbușesc într-un singur marcaj care pâlpâie.
  • Erori cinstite. Dacă nu știți altitudinea sau precizia, emiteți 9999999.0, nu 0. Motoarele de fuziune citesc 0 drept o afirmație.
  • Coordonate. Grade zecimale cu semn, WGS-84; șase zecimale sunt din belșug. Trunchierea la patru zecimale (cam 10 m) este o alegere legitimă de lățime de bandă pe care o fac unele biblioteci — dar faceți-o consecvent.
  • Escaping XML. Escapați &, <, > în valorile atributelor și în text — indicativele și remarcile vor conține cândva un ampersand. Un singur < rătăcit într-un câmp remarks omoară tot documentul chiar în parser.
  • Validați o dată, apoi încredeți-vă. Verificați cu lint output-ul emițătorului dumneavoastră împotriva XSD-ului publicat de evenimente CoT în timpul dezvoltării. XSD-ul nu prinde erori semantice (stale înainte de start, cozile de tip fără sens), așa că adăugați acele verificări ca asserții în codor.

Trimiterea CoT: mesh multicast versus TAK Server

Două transporturi acoperă aproape orice implementare. Mesh-ul SA fără server transmite multicast fiecare document XML ca un singur datagram UDP către adresa TAK standard 239.2.3.1:6969 (GeoChat a mai folosit istoric și 224.10.10.1:17012); fiecare client din segment aude tot, iar store-and-forward nu există. În modelul cu server, clienții se conectează la TAK Server prin TCP — portul 8087 în clar, 8089 TLS cu certificate de client — care strecoară XML în ambele sensuri, distribuie evenimente cu filtrare pe grupuri și misiuni și poate recoda fluxul în formatul compact TAK protobuf negociat pe conexiune. Detaliile de codare și negociere, inclusiv când protobuf rupe uneltele, sunt tratate în protocolul TAK: CoT XML versus protobuf; rutarea peste granițele de server în arhitectura TAK Federation Hub, iar imaginea de coaliție în puntea dintre CoT și standardele NATO.

O regulă de bază hotărăște între ele: dacă primitorii sunt pe același segment RF și pierderile sunt tolerabile, multicastul e gratuit; dacă cineva e în afara segmentului, pe altă rețea sau are nevoie de replay în deconectare, vă trebuie serverul — la fel ca orice cere o pistă de audit.

Transformați fluxul de senzori sau C2 în CoT valid

Construim gateway-uri și adaptoare CoT care convertesc fluxurile radar, drone, acustice și C2 moștenite în fluxuri Cursor on Target curate, plus plugin-uri ATAK și WinTAK care le prezintă pe imaginea tactică.

Integrați sistemul dumneavoastră cu TAK → TAKpilot pentru CloudTAK →

Pregătit de echipa de inginerie Corvus Intelligence, care construiește gateway-uri CoT, integrări TAK Server și plugin-uri ATAK/WinTAK; fiecare nume de element, cod de tip și comportament descris aici a fost verificat față de documentația publică a schemei CoT de la MITRE și definițiile CoT publicate împreună cu clienții TAK. Despre Corvus Intelligence →