GitXplorerGitXplorer
k

ATAK_push_cots

public
42 stars
9 forks
0 issues

Commits

List of commits on branch main.
Unverified
d69df5d94f44755f4f66f35198582b3ed0a51790

Merge branch 'main' of https://github.com/kylesayrs/ATAK_push_cots into main

kkylesayrs committed 6 months ago
Unverified
5a4fd78386e65c9f4ce62ac934b4d3dcf2fe9243

comment formatting

kkylesayrs committed 6 months ago
Verified
a42253e2dee7f1581d57818736de1f7af2621efe

Add feature requests section

kkylesayrs committed 7 months ago
Unverified
57c4bd4d65247b7d362514c0fe1ccd79da0c31a3

update CoTServer constructor arguments to default bind to 0.0.0.0

kkylesayrs committed 8 months ago
Verified
da1a47ede9a324ca6f3f9f09cc71528b4ae6fb3c

Change wording from receive to fetch to clarify interaction

kkylesayrs committed 8 months ago
Verified
c00c39ae6a2bbbdf8d12ae2fe2a545cbe001b8e7

Reduce image size

kkylesayrs committed 9 months ago

README

The README file for this repository.

ATAK_push_cots

Push Cursor on Target messages to TAK clients with attachments and other information without requiring a TAK server.

ATAK

Background

The Android Tactical Awareness Kit (ATAK) is a software platform used to enable geospatial awareness and multiuser collaboration. ATAK was originally developed by the Air Force Research Laboratory (AFRL) and is now maintained by the TAK Product Center (TPC) as a civilian application. This package exists to allow the easy sharing of markers (CoTs) to users of ATAK and other CivTAK distributions exist such as iTAK (iOS) and WinTAK (Windows).

A summary of the cursor on target schema (CoT) can be found here.

For troubleshooting, create an issue or ask on the reddit or discord.

Install

git clone https://github.com/kylesayrs/ATAK_push_cots
cd ATAK_push_cots
python3 -m pip install -e .

Usage

Pushing a standard CoT message can be done using the push_cot function

from atakcots import CotConfig, push_cot

cot_config = CotConfig(
    uid="Message",
    latitude=40.74931973338903,
    longitude=-73.96791282024928
)
    
push_cot(cot_config, "192.168.0.2")

Pushing CoTs which include attachments such as images must be done using CotServer.push_cot

from atakcots import CotConfig, CotServer

cot_config = CotConfig(
    uid="Message",
    latitude=40.74931973338903,
    longitude=-73.96791282024928,
    attachment_paths="sandeot.png"
)
    
with CotServer("192.168.0.1", 8000) as server:
    server.push_cot(cot_config, "192.168.0.2")
    server.push_cot(cot_config, "192.168.0.3")
    server.push_cot(cot_config, "192.168.0.4")

    # you should keep the context alive for as long as
    # you want clients to fetch the attachments

If you'd rather not use a context manager, you can use start and stop functions

from atakcots import CotConfig, CotServer

cot_config = CotConfig(
    uid="Message",
    latitude=40.74931973338903,
    longitude=-73.96791282024928,
    attachment_paths="sandeot.png"
)

server = CotServer("192.168.0.1", 8000)
server.start()

server.push_cot(cot_config, "192.168.0.2")
server.push_cot(cot_config, "192.168.0.3")
server.push_cot(cot_config, "192.168.0.4")

# stop when clients no longer need to fetch attachments
server.stop()

See examples for more use cases.

Feature requests

If you have any features or changes you'd like added to this repo, please create an issue and I'll make sure to implement/address it.