|
Klv2CoT Converter Version 1.0
|
Cursor on Target (CoT) developed by The Mitre Corporation defines XML formatted location based data for sharing situation-awareness information. The CoT XML messages provide a description of an object (what), the time an event occurs (when), and the position of an event (where). Unmanned Air Systems (UAS) usually use Datalink Local Data Set(LDS) or Universal Data Set (UDS) for their platforms.
In order to facilitate interoperability between different systems, MISB EG 0805 defines a recommended conversions from EG 0104 and EG 0601 KLV metadata tags to two basic CoT schema messages (PlatformPosition and Sensor Point-of-Interest (SPOI).
Klv2CoTConvLib library provides conversion between KLV UAS LDS/UDS MISB EG0601.4 (released 4 March 2010) specification and CoT, the XML based information. Klv2CoTConvLib processes the metadata ( passed as KLV encoded buffer or list of KLV items ) and generates the Situational Awareness COT messages. Generally, the Converter decodes the metadata found in KLV packet and generates PlatformPosition or/and Sensor Point-of-Interest message type ( depending on the mode set ).
This is an example of Klv2CoT converter use in Telementry Recorder application. Application receives STANAG complient TS stream with KLV encoded metadata. In addition to metadata extraction, applicaiton provides CoT generation and streaming functionality. As some information (such as Battle Dimension, Affiliation, etc) is not present in the KLV messages, it may be added via the GUI. Application may generate Platform Position CoT message, Sensor Point of Interest CoT message, or both. In latter case, 2 messages will be generated from each KLV packet. Application is also allows information sampling, when CoT messages should be sent with some minimal time interval.
MISB EG 0805 Engineering Guideline defines the Motion Imagery Standards Board (MISB) metadata items used for fields in Cursor on Target (CoT) Situational Awareness (SI) messages. This library converts Platform Position and Sensor Point of Interest (SPI) metadata into equivalent MISB-standard Key Length Value (KLV) data packets.
Klv2CoT SDK provides examples with source code to help you get started using the converter. Here is a brief example of using the Klv2CoT for some basic tasks.
Let's say that you have to trancode KLV packet available in a data buffer into CoT Platform Position and Sensor Point of Interest messages.
#include <IKlv2CoTConv.h>
IKlv2CoTConv* pKlv2CoTConv = CreateKlv2CoTConv(IKlv2CoTConv::LDS);
// Parse Klv buffer and fill the CoT with the encoded data if(pKlv2CoTConv->Process(klv_buf, len, xmlStrPP, xmlStrSPI)) { // Write data to XML file. writeFile(pathMessage1.c_str(), xmlStrPP.c_str(), xmlStrPP.length()); writeFile(pathMessage2.c_str(), xmlStrSPI.c_str(), xmlStrSPI.length()) ; } else cout << "Error parsing Klv buffer" << endl;
// Delete converter if(pKlv2CoTConv) delete pKlv2CoTConv;
For more information please see some Sample Code
Please see IKlv2CoTConv for more details.
CoT - Cursor-on-Target
EG - Engineering Guideline
EG - Engineering Guideline
FPS - Frames per Second
KLV - Key-Length-Value
MI - Motion Imagery
SI - Situational Awareness
MISP - Motion Imagery Standards Profile
RP - Recommended Practice
SMPTE - Society of Motion Picture and Television Engineers
UTC - Coordinated Universal Time
UUID - Universally Unique Identifier
XML - Extensible Markup Language