Jokainen Cursor on Target (CoT) -viesti on yksi XML-dokumentti, jonka juurielementti <event> kantaa tyyppikoodin, uniikin tunnisteen, kolme UTC-aikaleimaa ja <point>-sijainnin; kaikki muu kulkee avoimen <detail>-kontin sisällä. Tämä yksi muoto siirtää sijainnit, karttatunnukset, chatin, reitit, piirrokset, hälytykset ja lääketieteelliset pyynnöt ATAK:n, WinTAK:n, iTAK:n ja TAK Serverin välillä. Tämä sivu on kopiointikirjasto: kommentoitu, syntaktisesti kelvollinen CoT XML viesteille, joita taktiset järjestelmät todella vaihtavat, jokaisen mukana huomautus siitä, mitä vastaanottava TAK-asiakas sille tekee.
Formatin historiasta ja suunnittelusta lue Cursor on Target -katsauksemme, ja kenttä kerrallaan läpikäynnin CoT-skeeman syväsukellus; tämä artikkeli pysyy tarkoituksella ”näytä XML” -tasolla. Alla olevat elementti- ja attribuuttinimet on todennettu MITRE:n julkista CoT-perustapahtumaskeemaa, aliskeemadokumentaatiota ja TAK-asiakkaiden mukana julkaistuja CoT-tyyppimääritelmiä vasten. Kutsutunnukset, UID:t ja koordinaatit ovat fiktiivisiä; aikaleimat ovat havainnollistavia ISO-8601-UTC-arvoja.
CoT-viestin anatomia
Minimaalinen kelvollinen CoT-tapahtuma vaatii seitsemän <event>-attribuuttia, täsmälleen yhden <point>-elementin ja valinnaisesti <detail>-elementin:
<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>
Mitä kukin osa ohjaa vastaanottavassa asiakkaassa:
| Osa | Merkitys | Mitä ATAK / TAK Server sille tekee |
|---|---|---|
uid | Asian identiteetti, ei viestin | Sama uid siirtää olemassa olevaa karttatunnusta; uusi uid luo uuden. Poistot ja hälytysten perumiset kohdistuvat siihen. |
type | Piste-viiva-taksonomia siitä, mikä asia on | Valitsee MIL-STD-2525-symbolin ja kuuluvuusvärin; ohjaa palvelinpuolen suodatusta ja federaatiosääntöjä. |
how | Miten sijainti on tuotettu | Painottaa raportin fuusiossa (GPS, arvio tai välitetty); ATAK näyttää sen karttatunnuksen tiedoissa. |
time / start / stale | Luontiaika ja voimassaoloikkuna | Kun stale menee ohi, asiakkaat harmaattavat karttatunnuksen ja poistavat sitten sen; kukaan ei lähetä erillistä vanhenemisviestiä. |
point | lat/lon (WGS-84-desimaaliasteet), hae (metriä ellipsoidin yläpuolella), ce/le (virhesäteet) | Sijoittaa karttatunnuksen; ce voi piirtää tarkkuusrenkaan. Tuntemattomat arvot käyttävät sovittua sentinel-arvoa 9999999. |
detail | Avoin laajennuskontti | Tunnetut alaelementit (alla) asettavat kutsutunnuksen, tiimivärin, akun, nopeusvektorin; tuntemattomat alaelementit ohitetaan, ei hylätä. |
Kolme <point>-elementin ominaisuutta kompasteuttaa integroijia jatkuvasti. hae on korkeus WGS-84-ellipsoidin yläpuolella, ei keskimerenpinnan yläpuolella. ce ja le ovat 1-sigman vaaka- ja pystyvirherajat metreinä, ja skeema vaatii ne myös silloin, kun ne ovat tuntemattomia — arvo 9999999.0 on sovittu ”tuntematon”-sentinel ja parempi kuin itsevarma 0.0. Ja lat/lon ovat etumerkillisiä desimaaliasteita; kuusi desimaalia antaa noin 0,1 m resoluution; MGRS- tai UTM-vaihtoehtoa CoT:ssa ei ole.
CoT-tyyppikoodit ja how-arvot: lunttilappu
Attribuutti type on väliviivoin erotettu polku taksonomiassa, jonka ensimmäinen token kertoo, millainen tapahtuma on kyseessä:
| Ensimmäinen token | Perhe | Tyypilliset käyttötarkoitukset |
|---|---|---|
a- | Atomit — todelliset asiat | Joukot, ajoneuvot, lentokoneet, haavoittuneet, tapahtumat |
b- | Bitit — tieto-objektit | Chat, reitit, piirrokset, karttatunnukset, videoaliakset, hälytykset |
t- | Tehtävät / ohjaus | Elvytyspingit, poistotehtävät, tietojen nouto |
y- | Vastaukset | Kuittaukset, tehtävien tila |
Atomeilla toinen token on kuuluvuus ja kolmas taistelualue; loput laskeutuvat MIL-STD-2525-funktiopuuta pitkin isoilla kirjaimilla, ja pienet kirjaimet on varattu CoT-laajennuksille:
| Token | Kuuluvuus | Token | Taistelualue |
|---|---|---|---|
p | Vireillä | P | Avaruus |
u | Tuntematon | A | Ilma |
a | Oletettu oma | G | Maa |
f | Oma | S | Merenpinta |
n | Neutraali | U | Vedenalainen |
s | Epäilty | X | Muu |
h | Vihollinen | sen jälkeen tulevat 2525-funktiotunnukset isoilla kirjaimilla (esim. -U-C taistelu, -E-V-A-T panssarivaunu) | |
Koska taksonomia dekoodautuu etuliitteittä, asiakas, joka ymmärtää vain a-h-G:n, piirtää silti yleisen vihollisen maasymbolin koodille a-h-G-E-V-A-T. Yleisiä merkkijonoja oikeasta liikenteestä: a-f-G-U-C (oman maan taisteluyksikkö — ATAK-laitteen oletustyyppi), a-f-A-M-F-Q / a-f-A-M-H-Q (oma kiinteäsiipinen / roottoridrooni), a-u-G (tuntematon maa), b-m-p-s-m (spot map -karttatunnus), b-t-f (GeoChat), b-m-r (reitti), b-r-f-h-c (9-line-lääkintäpyyntö). Kuvakkeiden muuntuminen symboleiksi on kuvattu artikkelissa symbolien renderöinti TAK:ssa ja standardien vertailu artikkelissa APP-6 vs. MIL-STD-2525.
Attribuutti how tallentaa alkuperän, ja fuusiojärjestelmät painottavat sen mukaan raportteja:
| how | Merkitys |
|---|---|
h-e | Ihmisen syöttämä arvio |
h-c / h-t / h-p | Ihminen laskenut / kirjattu (ääni, paperi) / liitetty toisesta ikkunasta |
h-g-i-g-o | Virallisesti ”erittäin epäluuloinen jälki” — käytännössä ATAK leimaa näillä useimmat käsin asetetut karttatunnukset ja GeoChat-viestit |
m-g | Koneen tuottama GPS:stä (tarkennukset m-g-d DGPS, m-g-n INS+GPS) |
m-i / m-f / m-r | Mitattu kuvasta / fuusioitu useista lähteistä / välitetty yhdyskäytävän kautta |
m-n / m-s / m-c | Inertiaalinavigaatio / simulaatio / konfiguraatiotiedosto |
Aikasäännöt: time, start ja stale ovat ISO 8601 UTC -arvoja, jotka päättyvät Z:aan (sekunnin murrot ovat valinnaisia). time on tapahtuman tuottamishetki; start–stale on voimassaoloikkuna. stale:n asettaminen ennen start:ia on MITRE:n alkuperäinen ”hylkää jälki” -konventio — vaikka TAK-verkoissa eksplisiittinen poistotehtävä (alla) on luotettavampi.
Sijaintiraportit: oma PLI ja viholliset tai neutraalit karttatunnukset
Sivun yläreunassa oleva esimerkki on oma sijaintiraportti (PLI): ATAK toistaa sen muutaman sekunnin välein samalla uid:lla, asettaa stale:n noin kahteen–neljään raportointiväliin plus varmuuden ja antaa kaikkien muiden asiakkaiden kerätä karttatunnuksen, jos päivitykset loppuvat. Anturisyötetyt tai operaattorin asettamat karttatunnukset käyttävät samaa tapahtumamuotoa eri type:llä ja pidemmällä stale:lla:
<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>
Mitä vastaanottajat tekevät: type maalaa panssarivaunun punaisen timanttisymbolin; contact/callsign muuttuu nimeksi; usericon kiinnittää täsmälleen oikean kuvakesetin merkinnän (muoto COT_MAPPING_2525C/<affiliation>/<type> on juuri se, mitä ATAK:n 2525-paletti tuottaa); link relation="p-p" mainitsee tuottajan; <archive/> käskee asiakkaita säilyttämään karttatunnuksen sen sijaan, että se vanhenisi stale:n mukana. Tuntemattomat kontaktit käyttävät yksinkertaisesti a-u-G:tä; keltainen kysymysmerkki-ikoni ilmestyy ilman muita muutoksia. Pelkälle värilliselle nastalle ilman 2525-koodausta ATAK käyttää spot map -karttatunnusta:
<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>
Tässä kuvakkeen valitsevat usericon spot map -paletista ja ARGB-väriarvo (etumerkillinen 32-bittinen kokonaisluku, -65536 on peittävä punainen) eikä symboliikkakoodi — hyödyllistä omille merkinnöille, jotka eivät saa vihjata 2525-identiteettiä.
GeoChat-viestit (b-t-f)
Chat TAK-maailmassa ei ole erillinen protokolla: GeoChat-rivi on b-t-f-tyyppinen CoT-tapahtuma, jonka teksti kulkee <remarks>:ssa ja osoitus <__chat>/<chatgrp>:ssa:
<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>
Lukutapa: tapahtuman uid on konventionaalisesti GeoChat.<sender>.<conversation>.<message-uuid>, mikä tekee deduplikoinnista toistossa triviaalia; chatgrp/uid0 on lähettäjä ja uid1 kohde — yksittäisen vastaanottajan UID suorassa viestissä, huoneen nimi lähetysviestissä; remarks/@to kantaa vastaanottajan UID:n suorissa viesteissä; stale asetetaan päivää eteenpäin, koska chatin on — sijainneista poiketen — selvittävä store-and-forwardista. Toimitus- ja lukukuittaukset palaavat tyypeillä b-t-f-d ja b-t-f-r. Tapahtuman point voi ankkuroda viestin paikkaan kartalla; ATAK välittää myös lähettäjän reaaliaikaisen sijainnin, ellei operaattori kytke sitä pois. Koko store-and-forward- ja kaistanleveyskuva on artikkelissa taktinen chat ja datastrategia TAK-ympäristössä.
Reitit, piirrokset ja etäisyys-suuntima-viivat
Reitti on yksi b-m-r-tapahtuma, jonka reittipisteet ovat <link>-alaelementtejä — b-m-p-w nimetyille reittipisteille, b-m-p-c muotojen hallintapisteille — ja niitä seuraa <link_attr>-tyylittelylohko:
<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 renderöi link point-luettelon reittigeometriaksi, nostaa b-m-p-w-merkinnät omia kutsutunnuksia kantaviksi reittipistekarttatunnuksiksi ja lukee link_attr:sta liikkumistavan (Driving|Walking|Flying|Swimming|Watercraft), suunnan (Infil|Exfil) ja reittityypin (Primary|Secondary). Tapahtuman oma point on 0/0-sentinel — geometria elää kokonaan detailissa.
Piirrokset noudattavat samaa ”geometria detailissa” -kaavaa. Ympyrä on yhtäsuurten akselien ellipsi <shape>:n sisällä:
<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>
point on keskipiste, major/minor ovat metrejä, ja b-x-KmlStyle-tyyppisen linkin alle sisällytetty KML-tyylinen lohko kantaa ääriviivan ja täytön. Suorakulmio jättää shape-elementin pois ja luettelee kulmansa <link point="lat,lon"/>-alaelementteinä tyypillä u-d-r; vapaalla kädellä piirretty viiva tekee saman tyypillä u-d-f sulkiessaan monikulman toistamalla ensimmäisen pisteen lopussa. Etäisyys-suuntima-viiva on taas eri asia: tyyppi u-rb-a, point on ankkuri ja vektori on numeerinen:
<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&B 1"/>
</detail>
</event>
Yksiköt koodataan pieniksi kokonaisluvuiksi: rangeUnits 0=km, 1=metriä, 2=mailia, 3=jaardia, 4=jalkaa, 5=merimailia; bearingUnits 0=astetta, 1=mailia, 2=radiaania; northRef 0=todellinen pohjoinen, 1=magneettinen, 2=ruudukko. ATAK laskee tuonnissa nuolenkärjen paikan uudelleen ankkurista ja vektorista.
Hälytykset ja CASEVAC-/MEDEVAC-pyynnöt
Hätämajakat ovat pieniä, kiireellisiä tapahtumia: tyyppi b-a-o-tbl yleiseen 911-hälytykseen, stale vain kymmenen sekuntia eteenpäin (majakkaa välitetään uudelleen sen sijaan, että se jäisi roikkumaan) ja UID-konventio <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>
emergency/@type-merkkijonot ja niiden CoT-tyypit siten kuin ATAK ne määrittelee:
| Hälytys | CoT-tyyppi | Laukaisin ATAK:ssa |
|---|---|---|
| 911 Alert | b-a-o-tbl | Hätäpainike, yleinen |
| Ring The Bell | b-a-o-pan | Tarkoituksellinen kiireellisen huomion pyyntö |
| In Contact | b-a-o-opn | Joukot kontaktissa |
| Geo-fence Breached | b-a-g | Jälki saapuu valvottuun geofenceen tai poistuu siitä |
| Custom | b-a-o-c | Liitännäisen määrittelemä |
| Cancel Alert | b-a-o-can | Operaattori peruu aktiivisen majakan |
Vastaanotettaessa asiakkaat etsivät karttatunnuksen link/@uid:llä, nostavat hälytyksen etäisyydellä ja suuntimalla uhrin sijaintiin ja pitävät majakan hengissä; TAK Server välittää sen säännöllisesti uudelleen. Peruutus käyttää samaa tapahtuman uid:ta ja kääntää detailin:
<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>
9-line MEDEVAC/CASEVAC-pyyntö on b-r-f-h-c-tyyppinen karttatunnus, jonka detail kantaa <_medevac_>-elementin (huomaa alaviivat), joka sisältää yhdeksän riviä attribuutteina. Turvallinen, laajasti ymmärretty osajoukko:
<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>
Dekoodaus: potilasmäärät tärkeysjärjestyksessä ovat urgent/priority/routine; rivi 5 litter/ambulatory; security on indeksi 0–3 (N ei vihollista, P mahdollinen, E vihollinen alueella, X saattaja tarvitaan); hlz_marking indeksoi A paneelit, B pyrotekniikan, C savun, D ei mitään, E muun; erikoiskalusto tulee boolean-lipuiksi (hoist, extraction_equipment, ventilator); kliininen MIST-raportti asettuu zMistsMap:n alle. ATAK renderöi tästä elementistä täyden 9-line-kortin ja laskeutumispaikan työkalut. Operatiivinen työnkulku sen ympärillä on artikkelissa CASEVAC-koordinaatio-ohjelmisto.
Anturin näkökenttä ja videolinkit
MITRE:n anturialiskeema kiinnittää ohjattavan näkökentän mihin tahansa karttatunnukseen. Lisää alustan oman sijaintitapahtuman sisään — tässä oma roottoridrooni, tyyppi a-f-A-M-H-Q — seuraavat:
<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 on astetta todellisesta pohjoisesta, elevation on kallistus (negatiivinen tarkoittaa alas), fov/vfov ovat vaaka- ja pystynäkökenttä asteina, range on kalteva etäisyys metreinä — yhdessä ne antavat ATAK:lle mahdollisuuden piirtää anturikartio kartalle. <__video>-alaelementti sitoo karttatunnuksen streamin URL:ään, joten karttatunnuksen avaus avaa syötteen. Erilliset kamerarekisteröinnit kulkevat omina b-i-v-tyyppisinä tapahtumina, jotka kantavat <ConnectionEntry>-elementin, jossa on address, port, protocol ja vastaavia virittimen attribuutteja, ja ne täyttävät videonhallinnan jokaisessa asiakkaassa. Laajemmasta putkesta — telemetriataajuuksista, KLV-metatiedoista, kohdistuksesta — kertoo artikkeli droonitelemetrian integraatio TAK:hin.
Juuri tähän useimmat integraatio-ohjelmat juuttuvat: tutka, droonin autopilotti, akustinen anturi ja vanha C2-syöte kuvaavat maailmaa kukin eri tavalla, ja jokainen on käännettävä kelvolliseksi CoT:ksi — oikeat tyypit, rehelliset ce/le, vakaat UID:t, järkevät stale-ajat — muuten COP täyttyy aavejäljistä. Rakennamme juuri tällaisia CoT-yhdyskäytäviä ja sovittimia sekä ATAK- ja WinTAK-liitännäisiä, jotka renderöivät lopputuloksen. Kerro, mitä syötettä tarvitset taktiseen kuvaan →
Karttatunnusten poisto ja elvytysping/pong
CoT:ssa ei ole sisäänrakennettua poistoa; TAK lisää sen päälle tehtävätapahtumana tyyppiä t-x-d-d, jonka <link> nimeää poistettavan kohteen:
<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>
Ilman <__forcedelete/>-elementtiä ATAK vain merkitsee viitatun kohteen paikallisesti vanhentuneeksi ja poistaa sen käyttäjän vanhentuneiden kohteiden asetusten mukaisesti; sen kanssa kohde poistetaan suoraan jokaiselta asiakkaalta, joka saa tehtävän. Importoija vaatii, että link/@uid, @relation ja @type ovat läsnä eivätkä tyhjiä, joten pidä kaikki kolme. Elvytys on vielä pienempi — TAK-asiakkaat pingaavat palvelinta, joka on ollut hiljaa noin 15 sekuntia, toistaen muutaman sekunnin välein, ja käsittelevät t-x-c-t-r-tyyppisen pongin ohjausviestinä, joka ei koskaan päädy kartalle:
<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>
Jos rakennat yhdyskäytävää, peilaa tämä käyttäytyminen: <uid>-ping-tapahtuma jokaisella välillä, jolla yhteyden halutaan tarkistettavan, ja pongien hiljainen hylkääminen.
Kelvollisen CoT:n tuottaminen: aikaleimat, stale, UID:t, escape
Toistuvat viat CoT-lähettimissä ovat ennustettavia, ja ne kaikki ovat halpoja estää:
- UTC aina. Jokainen aikaleima päättyy
Z:aan; paikalliset siirtymät tai puuttuvaZsiirtävät karttatunnuksia tunteja menneisyyteen tai tulevaisuuteen. Sekunnin murrot ovat valinnaisia, ja mikä tahansa tarkkuus on sallittu. - Stale-kuri. Liikkuvat jäljet: kaksi–neljä raportointiväliä plus marginaali. Paikallaan pysyvät karttatunnukset: tunteja päiviin,
<archive/>-elementillä, jos niiden pitää säilyä. Älä jätästale:a oletuksena kaukaiseen tulevaisuuteen elävälle jäljelle — aavekarttatunnukset ovat yleisin kentältä tuleva valitus. - Vakaat UID:t. Johda uid entiteetistä (sarjanumero, jälkinumero, sisällön tiiviste), ei viestistä. Kaksi todellista jälkeä samalla uid:lla romahtavat yhdeksi vilkuvaksi karttatunnuksaksi.
- Rehelliset virheet. Jos et tiedä korkeutta tai tarkkuutta, lähetä
9999999.0, älä0. Fuusiomoottorit tulkitsevat0:n väitteeksi. - Koordinaatit. Etumerkilliset desimaaliasteet, WGS-84; kuusi desimaalia riittää mainiosti. Neljään desimaaliin typistäminen (noin 10 m) on laillinen kaistanleveysvalinta, jonka jotkin kirjastot tekevät — mutta tee se johdonmukaisesti.
- XML-escape. Escapeta
&,<,>attribuuttiarvoissa ja tekstissä — kutsutunnukset ja huomiot sisältävät ennemmin tai myöhemmin et-merkin. Yksi harhaileva<remarks-kentässä tappaa koko dokumentin jo jäsentimessä. - Validoi kerran, luota sen jälkeen. Tarkista lähettimen tuloste julkaistua CoT-tapahtuman XSD:tä vastaan kehityksen aikana. XSD ei saa kiinni semanttisista virheistä (stale ennen startia, merkityksettömät type-päätteet), joten lisää nämä tarkistukset assertioina kooderissa.
CoT:n lähettäminen: mesh-multicast vs. TAK Server
Kaksi kuljetusta kattaa lähes jokaisen käyttöönoton. Palvelinoton mesh SA multicastaa jokaisen XML-dokumentin yhtenä UDP-datagrammina TAK-osoitteeseen 239.2.3.1:6969 (GeoChat käytti historiallisesti myös 224.10.10.1:17012:a); jokainen segmentin asiakas kuulee kaiken, eikä store-and-forwardia ole. Palvelinmallissa asiakkaat yhdistävät TAK Serveriin TCP:llä — portti 8087 salaamaton, 8089 TLS asiakassertifikaateilla — joka striimaa XML:ää molempiin suuntiin, jakaa tapahtumat ryhmä- ja tehtäväsuodatuksella ja voi uudelleenkoodata striimin yhteyden kautta neuvotelluksi kompaktiksi TAK-protobufiksi. Koodauksen ja neuvottelun yksityiskohdat, mukaan lukien milloin protobuf rikkoo työkalut, on käsitelty artikkelissa TAK-protokolla: CoT XML vs. protobuf; reititys palvelinrajojen yli artikkelissa TAK Federation Hub -arkkitehtuuri ja liittokuntakuva artikkelissa CoT:n ja NATO-standardien siltaaminen.
Nyrkkisääntö ratkaisee valinnan: jos vastaanottajat ovat samalla RF-segmentillä ja häviöt ovat siedettäviä, multicast on ilmainen; jos kuka tahansa on segmentin ulkopuolella, toisessa verkossa tai tarvitsee toiston yhteydettömänä, tarvitset palvelimen — samoin kaikki, mikä vaatii auditointijäljen.
Muuta sensori- tai C2-tietovirta kelvolliseksi CoT:ksi
Rakennamme CoT-yhdyskäytäviä ja sovittimia, jotka muuntavat tutka-, drone-, akustiset ja vanhat C2-virrat puhtaiksi Cursor on Target -virroiksi, sekä ATAK- ja WinTAK-liitännäisiä, jotka esittävät ne taktisessa kuvassa.
Laatinut Corvus Intelligence -insinööritiimi, joka rakentaa CoT-yhdyskäytäviä, TAK Server -integraatioita ja ATAK-/WinTAK-liitännäisiä; jokainen elementin nimi, tyyppikoodi ja käyttäytyminen on todennettu MITRE:n julkista CoT-skeemadokumentaatiota ja TAK-asiakkaiden mukana julkaistuja CoT-määritelmiä vasten. Tietoa Corvus Intelligencestä →