Files
python/meshtastic/protobuf/atak_pb2.pyi

3852 lines
129 KiB
Python
Generated
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
@generated by mypy-protobuf. Do not edit manually!
isort:skip_file
trunk-ignore(buf-lint/PACKAGE_DIRECTORY_MATCH)"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing
if sys.version_info >= (3, 10):
import typing as typing_extensions
else:
import typing_extensions
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
class _Team:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _TeamEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Team.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Unspecifed_Color: _Team.ValueType # 0
"""
Unspecifed
"""
White: _Team.ValueType # 1
"""
White
"""
Yellow: _Team.ValueType # 2
"""
Yellow
"""
Orange: _Team.ValueType # 3
"""
Orange
"""
Magenta: _Team.ValueType # 4
"""
Magenta
"""
Red: _Team.ValueType # 5
"""
Red
"""
Maroon: _Team.ValueType # 6
"""
Maroon
"""
Purple: _Team.ValueType # 7
"""
Purple
"""
Dark_Blue: _Team.ValueType # 8
"""
Dark Blue
"""
Blue: _Team.ValueType # 9
"""
Blue
"""
Cyan: _Team.ValueType # 10
"""
Cyan
"""
Teal: _Team.ValueType # 11
"""
Teal
"""
Green: _Team.ValueType # 12
"""
Green
"""
Dark_Green: _Team.ValueType # 13
"""
Dark Green
"""
Brown: _Team.ValueType # 14
"""
Brown
"""
class Team(_Team, metaclass=_TeamEnumTypeWrapper): ...
Unspecifed_Color: Team.ValueType # 0
"""
Unspecifed
"""
White: Team.ValueType # 1
"""
White
"""
Yellow: Team.ValueType # 2
"""
Yellow
"""
Orange: Team.ValueType # 3
"""
Orange
"""
Magenta: Team.ValueType # 4
"""
Magenta
"""
Red: Team.ValueType # 5
"""
Red
"""
Maroon: Team.ValueType # 6
"""
Maroon
"""
Purple: Team.ValueType # 7
"""
Purple
"""
Dark_Blue: Team.ValueType # 8
"""
Dark Blue
"""
Blue: Team.ValueType # 9
"""
Blue
"""
Cyan: Team.ValueType # 10
"""
Cyan
"""
Teal: Team.ValueType # 11
"""
Teal
"""
Green: Team.ValueType # 12
"""
Green
"""
Dark_Green: Team.ValueType # 13
"""
Dark Green
"""
Brown: Team.ValueType # 14
"""
Brown
"""
global___Team = Team
class _MemberRole:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _MemberRoleEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_MemberRole.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Unspecifed: _MemberRole.ValueType # 0
"""
Unspecifed
"""
TeamMember: _MemberRole.ValueType # 1
"""
Team Member
"""
TeamLead: _MemberRole.ValueType # 2
"""
Team Lead
"""
HQ: _MemberRole.ValueType # 3
"""
Headquarters
"""
Sniper: _MemberRole.ValueType # 4
"""
Airsoft enthusiast
"""
Medic: _MemberRole.ValueType # 5
"""
Medic
"""
ForwardObserver: _MemberRole.ValueType # 6
"""
ForwardObserver
"""
RTO: _MemberRole.ValueType # 7
"""
Radio Telephone Operator
"""
K9: _MemberRole.ValueType # 8
"""
Doggo
"""
class MemberRole(_MemberRole, metaclass=_MemberRoleEnumTypeWrapper):
"""
Role of the group member
"""
Unspecifed: MemberRole.ValueType # 0
"""
Unspecifed
"""
TeamMember: MemberRole.ValueType # 1
"""
Team Member
"""
TeamLead: MemberRole.ValueType # 2
"""
Team Lead
"""
HQ: MemberRole.ValueType # 3
"""
Headquarters
"""
Sniper: MemberRole.ValueType # 4
"""
Airsoft enthusiast
"""
Medic: MemberRole.ValueType # 5
"""
Medic
"""
ForwardObserver: MemberRole.ValueType # 6
"""
ForwardObserver
"""
RTO: MemberRole.ValueType # 7
"""
Radio Telephone Operator
"""
K9: MemberRole.ValueType # 8
"""
Doggo
"""
global___MemberRole = MemberRole
class _CotHow:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _CotHowEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CotHow.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
CotHow_Unspecified: _CotHow.ValueType # 0
"""
Unspecified
"""
CotHow_h_e: _CotHow.ValueType # 1
"""
Human entered
"""
CotHow_m_g: _CotHow.ValueType # 2
"""
Machine generated
"""
CotHow_h_g_i_g_o: _CotHow.ValueType # 3
"""
Human GPS/INS derived
"""
CotHow_m_r: _CotHow.ValueType # 4
"""
Machine relayed (imported from another system/gateway)
"""
CotHow_m_f: _CotHow.ValueType # 5
"""
Machine fused (corroborated from multiple sources)
"""
CotHow_m_p: _CotHow.ValueType # 6
"""
Machine predicted
"""
CotHow_m_s: _CotHow.ValueType # 7
"""
Machine simulated
"""
class CotHow(_CotHow, metaclass=_CotHowEnumTypeWrapper):
"""
CoT how field values.
Represents how the coordinates were generated.
"""
CotHow_Unspecified: CotHow.ValueType # 0
"""
Unspecified
"""
CotHow_h_e: CotHow.ValueType # 1
"""
Human entered
"""
CotHow_m_g: CotHow.ValueType # 2
"""
Machine generated
"""
CotHow_h_g_i_g_o: CotHow.ValueType # 3
"""
Human GPS/INS derived
"""
CotHow_m_r: CotHow.ValueType # 4
"""
Machine relayed (imported from another system/gateway)
"""
CotHow_m_f: CotHow.ValueType # 5
"""
Machine fused (corroborated from multiple sources)
"""
CotHow_m_p: CotHow.ValueType # 6
"""
Machine predicted
"""
CotHow_m_s: CotHow.ValueType # 7
"""
Machine simulated
"""
global___CotHow = CotHow
class _CotType:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _CotTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CotType.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
CotType_Other: _CotType.ValueType # 0
"""
Unknown or unmapped type, use cot_type_str
"""
CotType_a_f_G_U_C: _CotType.ValueType # 1
"""
a-f-G-U-C: Friendly ground unit combat
"""
CotType_a_f_G_U_C_I: _CotType.ValueType # 2
"""
a-f-G-U-C-I: Friendly ground unit combat infantry
"""
CotType_a_n_A_C_F: _CotType.ValueType # 3
"""
a-n-A-C-F: Neutral aircraft civilian fixed-wing
"""
CotType_a_n_A_C_H: _CotType.ValueType # 4
"""
a-n-A-C-H: Neutral aircraft civilian helicopter
"""
CotType_a_n_A_C: _CotType.ValueType # 5
"""
a-n-A-C: Neutral aircraft civilian
"""
CotType_a_f_A_M_H: _CotType.ValueType # 6
"""
a-f-A-M-H: Friendly aircraft military helicopter
"""
CotType_a_f_A_M: _CotType.ValueType # 7
"""
a-f-A-M: Friendly aircraft military
"""
CotType_a_f_A_M_F_F: _CotType.ValueType # 8
"""
a-f-A-M-F-F: Friendly aircraft military fixed-wing fighter
"""
CotType_a_f_A_M_H_A: _CotType.ValueType # 9
"""
a-f-A-M-H-A: Friendly aircraft military helicopter attack
"""
CotType_a_f_A_M_H_U_M: _CotType.ValueType # 10
"""
a-f-A-M-H-U-M: Friendly aircraft military helicopter utility medium
"""
CotType_a_h_A_M_F_F: _CotType.ValueType # 11
"""
a-h-A-M-F-F: Hostile aircraft military fixed-wing fighter
"""
CotType_a_h_A_M_H_A: _CotType.ValueType # 12
"""
a-h-A-M-H-A: Hostile aircraft military helicopter attack
"""
CotType_a_u_A_C: _CotType.ValueType # 13
"""
a-u-A-C: Unknown aircraft civilian
"""
CotType_t_x_d_d: _CotType.ValueType # 14
"""
t-x-d-d: Tasking delete/disconnect
"""
CotType_a_f_G_E_S_E: _CotType.ValueType # 15
"""
a-f-G-E-S-E: Friendly ground equipment sensor
"""
CotType_a_f_G_E_V_C: _CotType.ValueType # 16
"""
a-f-G-E-V-C: Friendly ground equipment vehicle
"""
CotType_a_f_S: _CotType.ValueType # 17
"""
a-f-S: Friendly sea
"""
CotType_a_f_A_M_F: _CotType.ValueType # 18
"""
a-f-A-M-F: Friendly aircraft military fixed-wing
"""
CotType_a_f_A_M_F_C_H: _CotType.ValueType # 19
"""
a-f-A-M-F-C-H: Friendly aircraft military fixed-wing cargo heavy
"""
CotType_a_f_A_M_F_U_L: _CotType.ValueType # 20
"""
a-f-A-M-F-U-L: Friendly aircraft military fixed-wing utility light
"""
CotType_a_f_A_M_F_L: _CotType.ValueType # 21
"""
a-f-A-M-F-L: Friendly aircraft military fixed-wing liaison
"""
CotType_a_f_A_M_F_P: _CotType.ValueType # 22
"""
a-f-A-M-F-P: Friendly aircraft military fixed-wing patrol
"""
CotType_a_f_A_C_H: _CotType.ValueType # 23
"""
a-f-A-C-H: Friendly aircraft civilian helicopter
"""
CotType_a_n_A_M_F_Q: _CotType.ValueType # 24
"""
a-n-A-M-F-Q: Neutral aircraft military fixed-wing drone
"""
CotType_b_t_f: _CotType.ValueType # 25
"""--- Chat / messaging ---
b-t-f: GeoChat message
"""
CotType_b_r_f_h_c: _CotType.ValueType # 26
"""--- CASEVAC / MEDEVAC ---
b-r-f-h-c: CASEVAC/MEDEVAC report
"""
CotType_b_a_o_pan: _CotType.ValueType # 27
"""--- Alerts ---
b-a-o-pan: Ring the bell / alert all
"""
CotType_b_a_o_opn: _CotType.ValueType # 28
"""
b-a-o-opn: Troops in contact
"""
CotType_b_a_o_can: _CotType.ValueType # 29
"""
b-a-o-can: Cancel alert
"""
CotType_b_a_o_tbl: _CotType.ValueType # 30
"""
b-a-o-tbl: 911 alert
"""
CotType_b_a_g: _CotType.ValueType # 31
"""
b-a-g: Geofence breach alert
"""
CotType_a_f_G: _CotType.ValueType # 32
"""--- Generic ground atoms (simplified affiliation types) ---
a-f-G: Friendly ground (generic)
"""
CotType_a_f_G_U: _CotType.ValueType # 33
"""
a-f-G-U: Friendly ground unit (generic)
"""
CotType_a_h_G: _CotType.ValueType # 34
"""
a-h-G: Hostile ground (generic)
"""
CotType_a_u_G: _CotType.ValueType # 35
"""
a-u-G: Unknown ground (generic)
"""
CotType_a_n_G: _CotType.ValueType # 36
"""
a-n-G: Neutral ground (generic)
"""
CotType_b_m_r: _CotType.ValueType # 37
"""--- Routes and waypoints ---
b-m-r: Route
"""
CotType_b_m_p_w: _CotType.ValueType # 38
"""
b-m-p-w: Route waypoint
"""
CotType_b_m_p_s_p_i: _CotType.ValueType # 39
"""
b-m-p-s-p-i: Self-position marker
"""
CotType_u_d_f: _CotType.ValueType # 40
"""--- Drawing / tactical graphics ---
u-d-f: Freeform shape (line/polygon)
"""
CotType_u_d_r: _CotType.ValueType # 41
"""
u-d-r: Rectangle
"""
CotType_u_d_c_c: _CotType.ValueType # 42
"""
u-d-c-c: Circle
"""
CotType_u_rb_a: _CotType.ValueType # 43
"""
u-rb-a: Range/bearing line
"""
CotType_a_h_A: _CotType.ValueType # 44
"""--- Additional hostile/unknown aircraft ---
a-h-A: Hostile aircraft (generic)
"""
CotType_a_u_A: _CotType.ValueType # 45
"""
a-u-A: Unknown aircraft (generic)
"""
CotType_a_f_A_M_H_Q: _CotType.ValueType # 46
"""
a-f-A-M-H-Q: Friendly aircraft military helicopter observation
"""
CotType_a_f_A_C_F: _CotType.ValueType # 47
"""Friendly aircraft civilian
a-f-A-C-F: Friendly aircraft civilian fixed-wing
"""
CotType_a_f_A_C: _CotType.ValueType # 48
"""
a-f-A-C: Friendly aircraft civilian (generic)
"""
CotType_a_f_A_C_L: _CotType.ValueType # 49
"""
a-f-A-C-L: Friendly aircraft civilian lighter-than-air
"""
CotType_a_f_A: _CotType.ValueType # 50
"""
a-f-A: Friendly aircraft (generic)
"""
CotType_a_f_A_M_H_C: _CotType.ValueType # 51
"""Friendly aircraft military helicopter variants
a-f-A-M-H-C: Friendly aircraft military helicopter cargo
"""
CotType_a_n_A_M_F_F: _CotType.ValueType # 52
"""Neutral aircraft military
a-n-A-M-F-F: Neutral aircraft military fixed-wing fighter
"""
CotType_a_u_A_C_F: _CotType.ValueType # 53
"""Unknown aircraft civilian
a-u-A-C-F: Unknown aircraft civilian fixed-wing
"""
CotType_a_f_G_U_C_F_T_A: _CotType.ValueType # 54
"""Friendly ground unit subtypes
a-f-G-U-C-F-T-A: Friendly ground unit combat forces theater aviation
"""
CotType_a_f_G_U_C_V_S: _CotType.ValueType # 55
"""
a-f-G-U-C-V-S: Friendly ground unit combat vehicle support
"""
CotType_a_f_G_U_C_R_X: _CotType.ValueType # 56
"""
a-f-G-U-C-R-X: Friendly ground unit combat reconnaissance exploitation
"""
CotType_a_f_G_U_C_I_Z: _CotType.ValueType # 57
"""
a-f-G-U-C-I-Z: Friendly ground unit combat infantry mechanized
"""
CotType_a_f_G_U_C_E_C_W: _CotType.ValueType # 58
"""
a-f-G-U-C-E-C-W: Friendly ground unit combat engineer construction wheeled
"""
CotType_a_f_G_U_C_I_L: _CotType.ValueType # 59
"""
a-f-G-U-C-I-L: Friendly ground unit combat infantry light
"""
CotType_a_f_G_U_C_R_O: _CotType.ValueType # 60
"""
a-f-G-U-C-R-O: Friendly ground unit combat reconnaissance other
"""
CotType_a_f_G_U_C_R_V: _CotType.ValueType # 61
"""
a-f-G-U-C-R-V: Friendly ground unit combat reconnaissance cavalry
"""
CotType_a_f_G_U_H: _CotType.ValueType # 62
"""
a-f-G-U-H: Friendly ground unit headquarters
"""
CotType_a_f_G_U_U_M_S_E: _CotType.ValueType # 63
"""
a-f-G-U-U-M-S-E: Friendly ground unit support medical surgical evacuation
"""
CotType_a_f_G_U_S_M_C: _CotType.ValueType # 64
"""
a-f-G-U-S-M-C: Friendly ground unit support maintenance collection
"""
CotType_a_f_G_E_S: _CotType.ValueType # 65
"""Friendly ground equipment
a-f-G-E-S: Friendly ground equipment sensor (generic)
"""
CotType_a_f_G_E: _CotType.ValueType # 66
"""
a-f-G-E: Friendly ground equipment (generic)
"""
CotType_a_f_G_E_V_C_U: _CotType.ValueType # 67
"""
a-f-G-E-V-C-U: Friendly ground equipment vehicle utility
"""
CotType_a_f_G_E_V_C_ps: _CotType.ValueType # 68
"""
a-f-G-E-V-C-ps: Friendly ground equipment vehicle public safety
"""
CotType_a_u_G_E_V: _CotType.ValueType # 69
"""Unknown ground
a-u-G-E-V: Unknown ground equipment vehicle
"""
CotType_a_f_S_N_N_R: _CotType.ValueType # 70
"""Sea
a-f-S-N-N-R: Friendly sea surface non-naval rescue
"""
CotType_a_f_F_B: _CotType.ValueType # 71
"""Friendly force (non-domain-specific)
a-f-F-B: Friendly force boundary
"""
CotType_b_m_p_s_p_loc: _CotType.ValueType # 72
"""Bits / data messages
b-m-p-s-p-loc: Self-position location marker
"""
CotType_b_i_v: _CotType.ValueType # 73
"""
b-i-v: Imagery/video
"""
CotType_b_f_t_r: _CotType.ValueType # 74
"""
b-f-t-r: File transfer request
"""
CotType_b_f_t_a: _CotType.ValueType # 75
"""
b-f-t-a: File transfer acknowledgment
"""
CotType_u_d_f_m: _CotType.ValueType # 76
"""--- Additional drawing / tactical graphics ---
u-d-f-m: Freehand telestration / annotation. Anchor at event point,
geometry carried via DrawnShape.vertices. May be truncated to
MAX_VERTICES by the sender.
"""
CotType_u_d_p: _CotType.ValueType # 77
"""
u-d-p: Closed polygon. Geometry carried via DrawnShape.vertices,
implicitly closed (receiver duplicates first vertex as needed).
"""
CotType_b_m_p_s_m: _CotType.ValueType # 78
"""--- Additional markers ---
b-m-p-s-m: Spot map marker (colored dot at a point of interest).
"""
CotType_b_m_p_c: _CotType.ValueType # 79
"""
b-m-p-c: Checkpoint (intermediate route control point).
"""
CotType_u_r_b_c_c: _CotType.ValueType # 80
"""--- Ranging tools ---
u-r-b-c-c: Ranging circle (range rings centered on the event point).
"""
CotType_u_r_b_bullseye: _CotType.ValueType # 81
"""
u-r-b-bullseye: Bullseye with configurable range rings and bearing
reference (magnetic / true / grid).
"""
CotType_a_f_G_E_V_A: _CotType.ValueType # 82
"""--- PLI self-reporting (1) ------------------------------------------
a-f-G-E-V-A: Friendly armored vehicle, user-selectable self PLI.
"""
CotType_a_n_A: _CotType.ValueType # 83
"""--- 2525 quick-drop: basic affiliation gaps -------------------------
a-n-A: Neutral aircraft (friendly/hostile/unknown already present).
"""
CotType_a_u_G_U_C_F: _CotType.ValueType # 84
"""--- 2525 quick-drop: artillery (4) ----------------------------------"""
CotType_a_n_G_U_C_F: _CotType.ValueType # 85
CotType_a_h_G_U_C_F: _CotType.ValueType # 86
CotType_a_f_G_U_C_F: _CotType.ValueType # 87
CotType_a_u_G_I: _CotType.ValueType # 88
"""--- 2525 quick-drop: building (4) -----------------------------------"""
CotType_a_n_G_I: _CotType.ValueType # 89
CotType_a_h_G_I: _CotType.ValueType # 90
CotType_a_f_G_I: _CotType.ValueType # 91
CotType_a_u_G_E_X_M: _CotType.ValueType # 92
"""--- 2525 quick-drop: mine (4) ---------------------------------------"""
CotType_a_n_G_E_X_M: _CotType.ValueType # 93
CotType_a_h_G_E_X_M: _CotType.ValueType # 94
CotType_a_f_G_E_X_M: _CotType.ValueType # 95
CotType_a_u_S: _CotType.ValueType # 96
"""--- 2525 quick-drop: ship (3; a-f-S already at 17) ------------------"""
CotType_a_n_S: _CotType.ValueType # 97
CotType_a_h_S: _CotType.ValueType # 98
CotType_a_u_G_U_C_I_d: _CotType.ValueType # 99
"""--- 2525 quick-drop: sniper (4) -------------------------------------"""
CotType_a_n_G_U_C_I_d: _CotType.ValueType # 100
CotType_a_h_G_U_C_I_d: _CotType.ValueType # 101
CotType_a_f_G_U_C_I_d: _CotType.ValueType # 102
CotType_a_u_G_E_V_A_T: _CotType.ValueType # 103
"""--- 2525 quick-drop: tank (4) ---------------------------------------"""
CotType_a_n_G_E_V_A_T: _CotType.ValueType # 104
CotType_a_h_G_E_V_A_T: _CotType.ValueType # 105
CotType_a_f_G_E_V_A_T: _CotType.ValueType # 106
CotType_a_u_G_U_C_I: _CotType.ValueType # 107
"""--- 2525 quick-drop: troops (3; a-f-G-U-C-I already at 2) -----------"""
CotType_a_n_G_U_C_I: _CotType.ValueType # 108
CotType_a_h_G_U_C_I: _CotType.ValueType # 109
CotType_a_n_G_E_V: _CotType.ValueType # 110
"""--- 2525 quick-drop: generic vehicle (3; a-u-G-E-V already at 69) ---"""
CotType_a_h_G_E_V: _CotType.ValueType # 111
CotType_a_f_G_E_V: _CotType.ValueType # 112
CotType_b_m_p_w_GOTO: _CotType.ValueType # 113
"""--- Mission-specific points (4) -------------------------------------
b-m-p-w-GOTO: Go To / bloodhound navigation target.
"""
CotType_b_m_p_c_ip: _CotType.ValueType # 114
"""
b-m-p-c-ip: Initial point (mission planning).
"""
CotType_b_m_p_c_cp: _CotType.ValueType # 115
"""
b-m-p-c-cp: Contact point (mission planning).
"""
CotType_b_m_p_s_p_op: _CotType.ValueType # 116
"""
b-m-p-s-p-op: Observation post.
"""
CotType_u_d_v: _CotType.ValueType # 117
"""--- Vehicle drawings (2) --------------------------------------------
u-d-v: 2D vehicle outline drawn on the map.
"""
CotType_u_d_v_m: _CotType.ValueType # 118
"""
u-d-v-m: 3D vehicle model reference.
"""
CotType_u_d_c_e: _CotType.ValueType # 119
"""--- Drawing shapes (1) ----------------------------------------------
u-d-c-e: Non-circular ellipse (circle with distinct major/minor axes).
"""
CotType_b_i_x_i: _CotType.ValueType # 120
"""--- Image / media marker (1) ----------------------------------------
b-i-x-i: Quick Pic geotagged image marker. The image itself does not
ride on LoRa; this event references the image via iconset metadata.
"""
CotType_b_t_f_d: _CotType.ValueType # 121
"""--- GeoChat receipts (2) --------------------------------------------
b-t-f-d: GeoChat delivered receipt. Carried on the existing `chat`
payload_variant via GeoChat.receipt_for_uid + receipt_type.
"""
CotType_b_t_f_r: _CotType.ValueType # 122
"""
b-t-f-r: GeoChat read receipt. Same wire slot as b-t-f-d.
"""
CotType_b_a_o_c: _CotType.ValueType # 123
"""--- Custom emergency (1) --------------------------------------------
b-a-o-c: Custom / generic emergency beacon.
"""
CotType_t_s: _CotType.ValueType # 124
"""--- Tasking (1) -----------------------------------------------------
t-s: Task / engage request. Structured payload carried via the new
TaskRequest typed variant.
"""
CotType_m_t_t: _CotType.ValueType # 125
"""-- TAKTALK plugin shapes --
CoT types unique to the TAKTALK ATAK plugin. Note `y-` has a literal
trailing dash and no second atom — that's the wire format ATAK emits
for TAKTALK room broadcasts. The CotType enum encodes the literal
string verbatim (CotType_y -> "y-") so receivers reconstruct the
original event type byte-for-byte without consulting cot_type_str.
m-t-t: TAKTALK voice/text chat message. Payload carried via the
TakTalkMessage typed variant (text, chatroom_id, lang, from_voice).
"""
CotType_y: _CotType.ValueType # 126
"""
y-: TAKTALK room/membership broadcast. Payload carried via the
TakTalkRoomData typed variant (sender_callsign, room_id, room_name,
participants). The CoT type literally has a trailing dash and no
second atom — not a typo.
"""
class CotType(_CotType, metaclass=_CotTypeEnumTypeWrapper):
"""
Well-known CoT event types.
When the type is known, use the enum value for efficient encoding.
For unknown types, set cot_type_id to CotType_Other and populate cot_type_str.
"""
CotType_Other: CotType.ValueType # 0
"""
Unknown or unmapped type, use cot_type_str
"""
CotType_a_f_G_U_C: CotType.ValueType # 1
"""
a-f-G-U-C: Friendly ground unit combat
"""
CotType_a_f_G_U_C_I: CotType.ValueType # 2
"""
a-f-G-U-C-I: Friendly ground unit combat infantry
"""
CotType_a_n_A_C_F: CotType.ValueType # 3
"""
a-n-A-C-F: Neutral aircraft civilian fixed-wing
"""
CotType_a_n_A_C_H: CotType.ValueType # 4
"""
a-n-A-C-H: Neutral aircraft civilian helicopter
"""
CotType_a_n_A_C: CotType.ValueType # 5
"""
a-n-A-C: Neutral aircraft civilian
"""
CotType_a_f_A_M_H: CotType.ValueType # 6
"""
a-f-A-M-H: Friendly aircraft military helicopter
"""
CotType_a_f_A_M: CotType.ValueType # 7
"""
a-f-A-M: Friendly aircraft military
"""
CotType_a_f_A_M_F_F: CotType.ValueType # 8
"""
a-f-A-M-F-F: Friendly aircraft military fixed-wing fighter
"""
CotType_a_f_A_M_H_A: CotType.ValueType # 9
"""
a-f-A-M-H-A: Friendly aircraft military helicopter attack
"""
CotType_a_f_A_M_H_U_M: CotType.ValueType # 10
"""
a-f-A-M-H-U-M: Friendly aircraft military helicopter utility medium
"""
CotType_a_h_A_M_F_F: CotType.ValueType # 11
"""
a-h-A-M-F-F: Hostile aircraft military fixed-wing fighter
"""
CotType_a_h_A_M_H_A: CotType.ValueType # 12
"""
a-h-A-M-H-A: Hostile aircraft military helicopter attack
"""
CotType_a_u_A_C: CotType.ValueType # 13
"""
a-u-A-C: Unknown aircraft civilian
"""
CotType_t_x_d_d: CotType.ValueType # 14
"""
t-x-d-d: Tasking delete/disconnect
"""
CotType_a_f_G_E_S_E: CotType.ValueType # 15
"""
a-f-G-E-S-E: Friendly ground equipment sensor
"""
CotType_a_f_G_E_V_C: CotType.ValueType # 16
"""
a-f-G-E-V-C: Friendly ground equipment vehicle
"""
CotType_a_f_S: CotType.ValueType # 17
"""
a-f-S: Friendly sea
"""
CotType_a_f_A_M_F: CotType.ValueType # 18
"""
a-f-A-M-F: Friendly aircraft military fixed-wing
"""
CotType_a_f_A_M_F_C_H: CotType.ValueType # 19
"""
a-f-A-M-F-C-H: Friendly aircraft military fixed-wing cargo heavy
"""
CotType_a_f_A_M_F_U_L: CotType.ValueType # 20
"""
a-f-A-M-F-U-L: Friendly aircraft military fixed-wing utility light
"""
CotType_a_f_A_M_F_L: CotType.ValueType # 21
"""
a-f-A-M-F-L: Friendly aircraft military fixed-wing liaison
"""
CotType_a_f_A_M_F_P: CotType.ValueType # 22
"""
a-f-A-M-F-P: Friendly aircraft military fixed-wing patrol
"""
CotType_a_f_A_C_H: CotType.ValueType # 23
"""
a-f-A-C-H: Friendly aircraft civilian helicopter
"""
CotType_a_n_A_M_F_Q: CotType.ValueType # 24
"""
a-n-A-M-F-Q: Neutral aircraft military fixed-wing drone
"""
CotType_b_t_f: CotType.ValueType # 25
"""--- Chat / messaging ---
b-t-f: GeoChat message
"""
CotType_b_r_f_h_c: CotType.ValueType # 26
"""--- CASEVAC / MEDEVAC ---
b-r-f-h-c: CASEVAC/MEDEVAC report
"""
CotType_b_a_o_pan: CotType.ValueType # 27
"""--- Alerts ---
b-a-o-pan: Ring the bell / alert all
"""
CotType_b_a_o_opn: CotType.ValueType # 28
"""
b-a-o-opn: Troops in contact
"""
CotType_b_a_o_can: CotType.ValueType # 29
"""
b-a-o-can: Cancel alert
"""
CotType_b_a_o_tbl: CotType.ValueType # 30
"""
b-a-o-tbl: 911 alert
"""
CotType_b_a_g: CotType.ValueType # 31
"""
b-a-g: Geofence breach alert
"""
CotType_a_f_G: CotType.ValueType # 32
"""--- Generic ground atoms (simplified affiliation types) ---
a-f-G: Friendly ground (generic)
"""
CotType_a_f_G_U: CotType.ValueType # 33
"""
a-f-G-U: Friendly ground unit (generic)
"""
CotType_a_h_G: CotType.ValueType # 34
"""
a-h-G: Hostile ground (generic)
"""
CotType_a_u_G: CotType.ValueType # 35
"""
a-u-G: Unknown ground (generic)
"""
CotType_a_n_G: CotType.ValueType # 36
"""
a-n-G: Neutral ground (generic)
"""
CotType_b_m_r: CotType.ValueType # 37
"""--- Routes and waypoints ---
b-m-r: Route
"""
CotType_b_m_p_w: CotType.ValueType # 38
"""
b-m-p-w: Route waypoint
"""
CotType_b_m_p_s_p_i: CotType.ValueType # 39
"""
b-m-p-s-p-i: Self-position marker
"""
CotType_u_d_f: CotType.ValueType # 40
"""--- Drawing / tactical graphics ---
u-d-f: Freeform shape (line/polygon)
"""
CotType_u_d_r: CotType.ValueType # 41
"""
u-d-r: Rectangle
"""
CotType_u_d_c_c: CotType.ValueType # 42
"""
u-d-c-c: Circle
"""
CotType_u_rb_a: CotType.ValueType # 43
"""
u-rb-a: Range/bearing line
"""
CotType_a_h_A: CotType.ValueType # 44
"""--- Additional hostile/unknown aircraft ---
a-h-A: Hostile aircraft (generic)
"""
CotType_a_u_A: CotType.ValueType # 45
"""
a-u-A: Unknown aircraft (generic)
"""
CotType_a_f_A_M_H_Q: CotType.ValueType # 46
"""
a-f-A-M-H-Q: Friendly aircraft military helicopter observation
"""
CotType_a_f_A_C_F: CotType.ValueType # 47
"""Friendly aircraft civilian
a-f-A-C-F: Friendly aircraft civilian fixed-wing
"""
CotType_a_f_A_C: CotType.ValueType # 48
"""
a-f-A-C: Friendly aircraft civilian (generic)
"""
CotType_a_f_A_C_L: CotType.ValueType # 49
"""
a-f-A-C-L: Friendly aircraft civilian lighter-than-air
"""
CotType_a_f_A: CotType.ValueType # 50
"""
a-f-A: Friendly aircraft (generic)
"""
CotType_a_f_A_M_H_C: CotType.ValueType # 51
"""Friendly aircraft military helicopter variants
a-f-A-M-H-C: Friendly aircraft military helicopter cargo
"""
CotType_a_n_A_M_F_F: CotType.ValueType # 52
"""Neutral aircraft military
a-n-A-M-F-F: Neutral aircraft military fixed-wing fighter
"""
CotType_a_u_A_C_F: CotType.ValueType # 53
"""Unknown aircraft civilian
a-u-A-C-F: Unknown aircraft civilian fixed-wing
"""
CotType_a_f_G_U_C_F_T_A: CotType.ValueType # 54
"""Friendly ground unit subtypes
a-f-G-U-C-F-T-A: Friendly ground unit combat forces theater aviation
"""
CotType_a_f_G_U_C_V_S: CotType.ValueType # 55
"""
a-f-G-U-C-V-S: Friendly ground unit combat vehicle support
"""
CotType_a_f_G_U_C_R_X: CotType.ValueType # 56
"""
a-f-G-U-C-R-X: Friendly ground unit combat reconnaissance exploitation
"""
CotType_a_f_G_U_C_I_Z: CotType.ValueType # 57
"""
a-f-G-U-C-I-Z: Friendly ground unit combat infantry mechanized
"""
CotType_a_f_G_U_C_E_C_W: CotType.ValueType # 58
"""
a-f-G-U-C-E-C-W: Friendly ground unit combat engineer construction wheeled
"""
CotType_a_f_G_U_C_I_L: CotType.ValueType # 59
"""
a-f-G-U-C-I-L: Friendly ground unit combat infantry light
"""
CotType_a_f_G_U_C_R_O: CotType.ValueType # 60
"""
a-f-G-U-C-R-O: Friendly ground unit combat reconnaissance other
"""
CotType_a_f_G_U_C_R_V: CotType.ValueType # 61
"""
a-f-G-U-C-R-V: Friendly ground unit combat reconnaissance cavalry
"""
CotType_a_f_G_U_H: CotType.ValueType # 62
"""
a-f-G-U-H: Friendly ground unit headquarters
"""
CotType_a_f_G_U_U_M_S_E: CotType.ValueType # 63
"""
a-f-G-U-U-M-S-E: Friendly ground unit support medical surgical evacuation
"""
CotType_a_f_G_U_S_M_C: CotType.ValueType # 64
"""
a-f-G-U-S-M-C: Friendly ground unit support maintenance collection
"""
CotType_a_f_G_E_S: CotType.ValueType # 65
"""Friendly ground equipment
a-f-G-E-S: Friendly ground equipment sensor (generic)
"""
CotType_a_f_G_E: CotType.ValueType # 66
"""
a-f-G-E: Friendly ground equipment (generic)
"""
CotType_a_f_G_E_V_C_U: CotType.ValueType # 67
"""
a-f-G-E-V-C-U: Friendly ground equipment vehicle utility
"""
CotType_a_f_G_E_V_C_ps: CotType.ValueType # 68
"""
a-f-G-E-V-C-ps: Friendly ground equipment vehicle public safety
"""
CotType_a_u_G_E_V: CotType.ValueType # 69
"""Unknown ground
a-u-G-E-V: Unknown ground equipment vehicle
"""
CotType_a_f_S_N_N_R: CotType.ValueType # 70
"""Sea
a-f-S-N-N-R: Friendly sea surface non-naval rescue
"""
CotType_a_f_F_B: CotType.ValueType # 71
"""Friendly force (non-domain-specific)
a-f-F-B: Friendly force boundary
"""
CotType_b_m_p_s_p_loc: CotType.ValueType # 72
"""Bits / data messages
b-m-p-s-p-loc: Self-position location marker
"""
CotType_b_i_v: CotType.ValueType # 73
"""
b-i-v: Imagery/video
"""
CotType_b_f_t_r: CotType.ValueType # 74
"""
b-f-t-r: File transfer request
"""
CotType_b_f_t_a: CotType.ValueType # 75
"""
b-f-t-a: File transfer acknowledgment
"""
CotType_u_d_f_m: CotType.ValueType # 76
"""--- Additional drawing / tactical graphics ---
u-d-f-m: Freehand telestration / annotation. Anchor at event point,
geometry carried via DrawnShape.vertices. May be truncated to
MAX_VERTICES by the sender.
"""
CotType_u_d_p: CotType.ValueType # 77
"""
u-d-p: Closed polygon. Geometry carried via DrawnShape.vertices,
implicitly closed (receiver duplicates first vertex as needed).
"""
CotType_b_m_p_s_m: CotType.ValueType # 78
"""--- Additional markers ---
b-m-p-s-m: Spot map marker (colored dot at a point of interest).
"""
CotType_b_m_p_c: CotType.ValueType # 79
"""
b-m-p-c: Checkpoint (intermediate route control point).
"""
CotType_u_r_b_c_c: CotType.ValueType # 80
"""--- Ranging tools ---
u-r-b-c-c: Ranging circle (range rings centered on the event point).
"""
CotType_u_r_b_bullseye: CotType.ValueType # 81
"""
u-r-b-bullseye: Bullseye with configurable range rings and bearing
reference (magnetic / true / grid).
"""
CotType_a_f_G_E_V_A: CotType.ValueType # 82
"""--- PLI self-reporting (1) ------------------------------------------
a-f-G-E-V-A: Friendly armored vehicle, user-selectable self PLI.
"""
CotType_a_n_A: CotType.ValueType # 83
"""--- 2525 quick-drop: basic affiliation gaps -------------------------
a-n-A: Neutral aircraft (friendly/hostile/unknown already present).
"""
CotType_a_u_G_U_C_F: CotType.ValueType # 84
"""--- 2525 quick-drop: artillery (4) ----------------------------------"""
CotType_a_n_G_U_C_F: CotType.ValueType # 85
CotType_a_h_G_U_C_F: CotType.ValueType # 86
CotType_a_f_G_U_C_F: CotType.ValueType # 87
CotType_a_u_G_I: CotType.ValueType # 88
"""--- 2525 quick-drop: building (4) -----------------------------------"""
CotType_a_n_G_I: CotType.ValueType # 89
CotType_a_h_G_I: CotType.ValueType # 90
CotType_a_f_G_I: CotType.ValueType # 91
CotType_a_u_G_E_X_M: CotType.ValueType # 92
"""--- 2525 quick-drop: mine (4) ---------------------------------------"""
CotType_a_n_G_E_X_M: CotType.ValueType # 93
CotType_a_h_G_E_X_M: CotType.ValueType # 94
CotType_a_f_G_E_X_M: CotType.ValueType # 95
CotType_a_u_S: CotType.ValueType # 96
"""--- 2525 quick-drop: ship (3; a-f-S already at 17) ------------------"""
CotType_a_n_S: CotType.ValueType # 97
CotType_a_h_S: CotType.ValueType # 98
CotType_a_u_G_U_C_I_d: CotType.ValueType # 99
"""--- 2525 quick-drop: sniper (4) -------------------------------------"""
CotType_a_n_G_U_C_I_d: CotType.ValueType # 100
CotType_a_h_G_U_C_I_d: CotType.ValueType # 101
CotType_a_f_G_U_C_I_d: CotType.ValueType # 102
CotType_a_u_G_E_V_A_T: CotType.ValueType # 103
"""--- 2525 quick-drop: tank (4) ---------------------------------------"""
CotType_a_n_G_E_V_A_T: CotType.ValueType # 104
CotType_a_h_G_E_V_A_T: CotType.ValueType # 105
CotType_a_f_G_E_V_A_T: CotType.ValueType # 106
CotType_a_u_G_U_C_I: CotType.ValueType # 107
"""--- 2525 quick-drop: troops (3; a-f-G-U-C-I already at 2) -----------"""
CotType_a_n_G_U_C_I: CotType.ValueType # 108
CotType_a_h_G_U_C_I: CotType.ValueType # 109
CotType_a_n_G_E_V: CotType.ValueType # 110
"""--- 2525 quick-drop: generic vehicle (3; a-u-G-E-V already at 69) ---"""
CotType_a_h_G_E_V: CotType.ValueType # 111
CotType_a_f_G_E_V: CotType.ValueType # 112
CotType_b_m_p_w_GOTO: CotType.ValueType # 113
"""--- Mission-specific points (4) -------------------------------------
b-m-p-w-GOTO: Go To / bloodhound navigation target.
"""
CotType_b_m_p_c_ip: CotType.ValueType # 114
"""
b-m-p-c-ip: Initial point (mission planning).
"""
CotType_b_m_p_c_cp: CotType.ValueType # 115
"""
b-m-p-c-cp: Contact point (mission planning).
"""
CotType_b_m_p_s_p_op: CotType.ValueType # 116
"""
b-m-p-s-p-op: Observation post.
"""
CotType_u_d_v: CotType.ValueType # 117
"""--- Vehicle drawings (2) --------------------------------------------
u-d-v: 2D vehicle outline drawn on the map.
"""
CotType_u_d_v_m: CotType.ValueType # 118
"""
u-d-v-m: 3D vehicle model reference.
"""
CotType_u_d_c_e: CotType.ValueType # 119
"""--- Drawing shapes (1) ----------------------------------------------
u-d-c-e: Non-circular ellipse (circle with distinct major/minor axes).
"""
CotType_b_i_x_i: CotType.ValueType # 120
"""--- Image / media marker (1) ----------------------------------------
b-i-x-i: Quick Pic geotagged image marker. The image itself does not
ride on LoRa; this event references the image via iconset metadata.
"""
CotType_b_t_f_d: CotType.ValueType # 121
"""--- GeoChat receipts (2) --------------------------------------------
b-t-f-d: GeoChat delivered receipt. Carried on the existing `chat`
payload_variant via GeoChat.receipt_for_uid + receipt_type.
"""
CotType_b_t_f_r: CotType.ValueType # 122
"""
b-t-f-r: GeoChat read receipt. Same wire slot as b-t-f-d.
"""
CotType_b_a_o_c: CotType.ValueType # 123
"""--- Custom emergency (1) --------------------------------------------
b-a-o-c: Custom / generic emergency beacon.
"""
CotType_t_s: CotType.ValueType # 124
"""--- Tasking (1) -----------------------------------------------------
t-s: Task / engage request. Structured payload carried via the new
TaskRequest typed variant.
"""
CotType_m_t_t: CotType.ValueType # 125
"""-- TAKTALK plugin shapes --
CoT types unique to the TAKTALK ATAK plugin. Note `y-` has a literal
trailing dash and no second atom — that's the wire format ATAK emits
for TAKTALK room broadcasts. The CotType enum encodes the literal
string verbatim (CotType_y -> "y-") so receivers reconstruct the
original event type byte-for-byte without consulting cot_type_str.
m-t-t: TAKTALK voice/text chat message. Payload carried via the
TakTalkMessage typed variant (text, chatroom_id, lang, from_voice).
"""
CotType_y: CotType.ValueType # 126
"""
y-: TAKTALK room/membership broadcast. Payload carried via the
TakTalkRoomData typed variant (sender_callsign, room_id, room_name,
participants). The CoT type literally has a trailing dash and no
second atom — not a typo.
"""
global___CotType = CotType
class _GeoPointSource:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _GeoPointSourceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_GeoPointSource.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
GeoPointSource_Unspecified: _GeoPointSource.ValueType # 0
"""
Unspecified
"""
GeoPointSource_GPS: _GeoPointSource.ValueType # 1
"""
GPS derived
"""
GeoPointSource_USER: _GeoPointSource.ValueType # 2
"""
User entered
"""
GeoPointSource_NETWORK: _GeoPointSource.ValueType # 3
"""
Network/external
"""
class GeoPointSource(_GeoPointSource, metaclass=_GeoPointSourceEnumTypeWrapper):
"""
Geopoint and altitude source
"""
GeoPointSource_Unspecified: GeoPointSource.ValueType # 0
"""
Unspecified
"""
GeoPointSource_GPS: GeoPointSource.ValueType # 1
"""
GPS derived
"""
GeoPointSource_USER: GeoPointSource.ValueType # 2
"""
User entered
"""
GeoPointSource_NETWORK: GeoPointSource.ValueType # 3
"""
Network/external
"""
global___GeoPointSource = GeoPointSource
@typing.final
class TAKPacket(google.protobuf.message.Message):
"""
Packets for the official ATAK Plugin
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
IS_COMPRESSED_FIELD_NUMBER: builtins.int
CONTACT_FIELD_NUMBER: builtins.int
GROUP_FIELD_NUMBER: builtins.int
STATUS_FIELD_NUMBER: builtins.int
PLI_FIELD_NUMBER: builtins.int
CHAT_FIELD_NUMBER: builtins.int
DETAIL_FIELD_NUMBER: builtins.int
is_compressed: builtins.bool
"""
Are the payloads strings compressed for LoRA transport?
"""
detail: builtins.bytes
"""
Generic CoT detail XML
May be compressed / truncated by the sender (EUD)
"""
@property
def contact(self) -> global___Contact:
"""
The contact / callsign for ATAK user
"""
@property
def group(self) -> global___Group:
"""
The group for ATAK user
"""
@property
def status(self) -> global___Status:
"""
The status of the ATAK EUD
"""
@property
def pli(self) -> global___PLI:
"""
TAK position report
"""
@property
def chat(self) -> global___GeoChat:
"""
ATAK GeoChat message
"""
def __init__(
self,
*,
is_compressed: builtins.bool = ...,
contact: global___Contact | None = ...,
group: global___Group | None = ...,
status: global___Status | None = ...,
pli: global___PLI | None = ...,
chat: global___GeoChat | None = ...,
detail: builtins.bytes = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["chat", b"chat", "contact", b"contact", "detail", b"detail", "group", b"group", "payload_variant", b"payload_variant", "pli", b"pli", "status", b"status"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["chat", b"chat", "contact", b"contact", "detail", b"detail", "group", b"group", "is_compressed", b"is_compressed", "payload_variant", b"payload_variant", "pli", b"pli", "status", b"status"]) -> None: ...
def WhichOneof(self, oneof_group: typing.Literal["payload_variant", b"payload_variant"]) -> typing.Literal["pli", "chat", "detail"] | None: ...
global___TAKPacket = TAKPacket
@typing.final
class GeoChat(google.protobuf.message.Message):
"""
ATAK GeoChat message
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _ReceiptType:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _ReceiptTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[GeoChat._ReceiptType.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
ReceiptType_None: GeoChat._ReceiptType.ValueType # 0
"""normal chat message"""
ReceiptType_Delivered: GeoChat._ReceiptType.ValueType # 1
"""b-t-f-d delivered receipt"""
ReceiptType_Read: GeoChat._ReceiptType.ValueType # 2
"""b-t-f-r read receipt"""
class ReceiptType(_ReceiptType, metaclass=_ReceiptTypeEnumTypeWrapper):
"""
Receipt discriminator. Set alongside cot_type_id = b-t-f-d (delivered)
or b-t-f-r (read). ReceiptType_None is the default for a normal chat
message (cot_type_id = b-t-f).
Receivers can detect a receipt by checking receipt_type != ReceiptType_None
without re-parsing the envelope cot_type_id.
"""
ReceiptType_None: GeoChat.ReceiptType.ValueType # 0
"""normal chat message"""
ReceiptType_Delivered: GeoChat.ReceiptType.ValueType # 1
"""b-t-f-d delivered receipt"""
ReceiptType_Read: GeoChat.ReceiptType.ValueType # 2
"""b-t-f-r read receipt"""
MESSAGE_FIELD_NUMBER: builtins.int
TO_FIELD_NUMBER: builtins.int
TO_CALLSIGN_FIELD_NUMBER: builtins.int
RECEIPT_FOR_UID_FIELD_NUMBER: builtins.int
RECEIPT_TYPE_FIELD_NUMBER: builtins.int
LANG_FIELD_NUMBER: builtins.int
ROOM_ID_FIELD_NUMBER: builtins.int
VOICE_PROFILE_ID_FIELD_NUMBER: builtins.int
message: builtins.str
"""
The text message. Empty for receipts.
"""
to: builtins.str
"""
Uid recipient of the message
"""
to_callsign: builtins.str
"""
Callsign of the recipient for the message
"""
receipt_for_uid: builtins.str
"""
UID of the chat message this event is acknowledging. Empty for a
normal chat message; set for delivered / read receipts. Paired with
receipt_type so receivers can match the ack back to the original
outbound GeoChat by its event uid.
"""
receipt_type: global___GeoChat.ReceiptType.ValueType
"""
Receipt kind discriminator. See ReceiptType doc. Default ReceiptType_None
means this is a regular chat message, not a receipt.
"""
lang: builtins.str
"""
--- TAKTALK-flavored b-t-f extensions ---
Set when the ATAK TAKTALK plugin originates the chat, so the message
carries the room/language metadata TAKTALK uses to thread its UI.
These fields are absent / empty for non-TAKTALK CoT chat, so the wire
cost is paid only when TAKTALK is actually involved.
Wire shape in source XML (inside <event type="b-t-f">/<detail>):
<Ea>English</Ea> - lang
<roomId>UUID</roomId> - room_id
<voice_profile_id>X</voice_profile_id> - voice_profile_id
<voice_profile_id/> - empty marker; encoded as
present-but-empty string
BCP-47-ish language tag or human-readable name (e.g. "en", "English")
that the originator's TAKTALK plugin recorded for the message.
"""
room_id: builtins.str
"""
TAKTALK chatroom UUID (e.g. "30b2755c-c547-44ef-a0cc-cdbd8a15616f") that
the receiver's TAKTALK plugin uses to thread the message under the
right room. Resolved to a friendly name via TakTalkRoomData broadcasts.
"""
voice_profile_id: builtins.str
"""
TAKTALK voice profile pointer. Often empty in practice (the empty
marker `<voice_profile_id/>` still signals TAKTALK origination), so
receivers should treat empty-but-present as the equivalent of the
marker rather than a missing field.
"""
def __init__(
self,
*,
message: builtins.str = ...,
to: builtins.str | None = ...,
to_callsign: builtins.str | None = ...,
receipt_for_uid: builtins.str = ...,
receipt_type: global___GeoChat.ReceiptType.ValueType = ...,
lang: builtins.str | None = ...,
room_id: builtins.str | None = ...,
voice_profile_id: builtins.str | None = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["_lang", b"_lang", "_room_id", b"_room_id", "_to", b"_to", "_to_callsign", b"_to_callsign", "_voice_profile_id", b"_voice_profile_id", "lang", b"lang", "room_id", b"room_id", "to", b"to", "to_callsign", b"to_callsign", "voice_profile_id", b"voice_profile_id"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["_lang", b"_lang", "_room_id", b"_room_id", "_to", b"_to", "_to_callsign", b"_to_callsign", "_voice_profile_id", b"_voice_profile_id", "lang", b"lang", "message", b"message", "receipt_for_uid", b"receipt_for_uid", "receipt_type", b"receipt_type", "room_id", b"room_id", "to", b"to", "to_callsign", b"to_callsign", "voice_profile_id", b"voice_profile_id"]) -> None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_lang", b"_lang"]) -> typing.Literal["lang"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_room_id", b"_room_id"]) -> typing.Literal["room_id"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_to", b"_to"]) -> typing.Literal["to"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_to_callsign", b"_to_callsign"]) -> typing.Literal["to_callsign"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_voice_profile_id", b"_voice_profile_id"]) -> typing.Literal["voice_profile_id"] | None: ...
global___GeoChat = GeoChat
@typing.final
class Group(google.protobuf.message.Message):
"""
ATAK Group
<__group role='Team Member' name='Cyan'/>
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
ROLE_FIELD_NUMBER: builtins.int
TEAM_FIELD_NUMBER: builtins.int
role: global___MemberRole.ValueType
"""
Role of the group member
"""
team: global___Team.ValueType
"""
Team (color)
Default Cyan
"""
def __init__(
self,
*,
role: global___MemberRole.ValueType = ...,
team: global___Team.ValueType = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["role", b"role", "team", b"team"]) -> None: ...
global___Group = Group
@typing.final
class Status(google.protobuf.message.Message):
"""
ATAK EUD Status
<status battery='100' />
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
BATTERY_FIELD_NUMBER: builtins.int
battery: builtins.int
"""
Battery level
"""
def __init__(
self,
*,
battery: builtins.int = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["battery", b"battery"]) -> None: ...
global___Status = Status
@typing.final
class Contact(google.protobuf.message.Message):
"""
ATAK Contact
<contact endpoint='0.0.0.0:4242:tcp' phone='+12345678' callsign='FALKE'/>
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
CALLSIGN_FIELD_NUMBER: builtins.int
DEVICE_CALLSIGN_FIELD_NUMBER: builtins.int
callsign: builtins.str
"""
Callsign
"""
device_callsign: builtins.str
"""
Device callsign
IP address of endpoint in integer form (0.0.0.0 default)
"""
def __init__(
self,
*,
callsign: builtins.str = ...,
device_callsign: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["callsign", b"callsign", "device_callsign", b"device_callsign"]) -> None: ...
global___Contact = Contact
@typing.final
class PLI(google.protobuf.message.Message):
"""
Position Location Information from ATAK
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
LATITUDE_I_FIELD_NUMBER: builtins.int
LONGITUDE_I_FIELD_NUMBER: builtins.int
ALTITUDE_FIELD_NUMBER: builtins.int
SPEED_FIELD_NUMBER: builtins.int
COURSE_FIELD_NUMBER: builtins.int
latitude_i: builtins.int
"""
The new preferred location encoding, multiply by 1e-7 to get degrees
in floating point
"""
longitude_i: builtins.int
"""
The new preferred location encoding, multiply by 1e-7 to get degrees
in floating point
"""
altitude: builtins.int
"""
Altitude (ATAK prefers HAE)
"""
speed: builtins.int
"""
Speed
"""
course: builtins.int
"""
Course in degrees
"""
def __init__(
self,
*,
latitude_i: builtins.int = ...,
longitude_i: builtins.int = ...,
altitude: builtins.int = ...,
speed: builtins.int = ...,
course: builtins.int = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["altitude", b"altitude", "course", b"course", "latitude_i", b"latitude_i", "longitude_i", b"longitude_i", "speed", b"speed"]) -> None: ...
global___PLI = PLI
@typing.final
class AircraftTrack(google.protobuf.message.Message):
"""
Aircraft track information from ADS-B or military air tracking.
Covers the majority of observed real-world CoT traffic.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
ICAO_FIELD_NUMBER: builtins.int
REGISTRATION_FIELD_NUMBER: builtins.int
FLIGHT_FIELD_NUMBER: builtins.int
AIRCRAFT_TYPE_FIELD_NUMBER: builtins.int
SQUAWK_FIELD_NUMBER: builtins.int
CATEGORY_FIELD_NUMBER: builtins.int
RSSI_X10_FIELD_NUMBER: builtins.int
GPS_FIELD_NUMBER: builtins.int
COT_HOST_ID_FIELD_NUMBER: builtins.int
icao: builtins.str
"""
ICAO hex identifier (e.g. "AD237C")
"""
registration: builtins.str
"""
Aircraft registration (e.g. "N946AK")
"""
flight: builtins.str
"""
Flight number/callsign (e.g. "ASA864")
"""
aircraft_type: builtins.str
"""
ICAO aircraft type designator (e.g. "B39M")
"""
squawk: builtins.int
"""
Transponder squawk code (0-7777 octal)
"""
category: builtins.str
"""
ADS-B emitter category (e.g. "A3")
"""
rssi_x10: builtins.int
"""
Received signal strength * 10 (e.g. -194 for -19.4 dBm)
"""
gps: builtins.bool
"""
Whether receiver has GPS fix
"""
cot_host_id: builtins.str
"""
CoT host ID for source attribution
"""
def __init__(
self,
*,
icao: builtins.str = ...,
registration: builtins.str = ...,
flight: builtins.str = ...,
aircraft_type: builtins.str = ...,
squawk: builtins.int = ...,
category: builtins.str = ...,
rssi_x10: builtins.int = ...,
gps: builtins.bool = ...,
cot_host_id: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["aircraft_type", b"aircraft_type", "category", b"category", "cot_host_id", b"cot_host_id", "flight", b"flight", "gps", b"gps", "icao", b"icao", "registration", b"registration", "rssi_x10", b"rssi_x10", "squawk", b"squawk"]) -> None: ...
global___AircraftTrack = AircraftTrack
@typing.final
class CotGeoPoint(google.protobuf.message.Message):
"""
Compact geographic vertex used by repeated vertex lists in TAK geometry
payloads. Named with a `Cot` prefix to avoid a namespace collision with
`meshtastic.GeoPoint` in `device_ui.proto`, which is an unrelated zoom/
latitude/longitude type used by the on-device map UI.
Encoded as a signed DELTA from TAKPacketV2.latitude_i / longitude_i (the
enclosing event's anchor point). The absolute coordinate is recovered by
the receiver as `event.latitude_i + vertex.lat_delta_i` (and likewise for
longitude).
Why deltas: a 32-vertex telestration with vertices clustered within a few
hundred meters of the anchor has per-vertex deltas in the ±10^4 range.
Under sint32+zigzag those encode as 2 bytes each (tag+varint), versus the
4 bytes that sfixed32 would always require. At 32 vertices that is ~128
bytes of savings — the difference between fitting under the LoRa MTU or
not. Absolute coordinates (values ~10^9) would cost sint32 varint 5 bytes
per field, which is why TAKPacketV2's top-level latitude_i / longitude_i
stay sfixed32 — only small values win with sint32.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
LAT_DELTA_I_FIELD_NUMBER: builtins.int
LON_DELTA_I_FIELD_NUMBER: builtins.int
lat_delta_i: builtins.int
"""
Latitude delta from TAKPacketV2.latitude_i, in 1e-7 degree units.
Add to the enclosing event's latitude_i to recover the absolute latitude.
"""
lon_delta_i: builtins.int
"""
Longitude delta from TAKPacketV2.longitude_i, in 1e-7 degree units.
"""
def __init__(
self,
*,
lat_delta_i: builtins.int = ...,
lon_delta_i: builtins.int = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["lat_delta_i", b"lat_delta_i", "lon_delta_i", b"lon_delta_i"]) -> None: ...
global___CotGeoPoint = CotGeoPoint
@typing.final
class DrawnShape(google.protobuf.message.Message):
"""
User-drawn tactical graphic: circle, rectangle, polygon, polyline, freehand
telestration, ranging circle, or bullseye.
Covers CoT types u-d-c-c, u-d-r, u-d-f, u-d-f-m, u-d-p, u-r-b-c-c,
u-r-b-bullseye. The shape's anchor position is carried on
TAKPacketV2.latitude_i/longitude_i; polyline/polygon vertices are in the
`vertices` repeated field as `CotGeoPoint` deltas from that anchor.
Colors use the Team enum as a 14-color palette (see color encoding below)
with a fixed32 exact-ARGB fallback for custom user-picked colors that
don't map to a palette entry.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _Kind:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _KindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DrawnShape._Kind.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Kind_Unspecified: DrawnShape._Kind.ValueType # 0
"""
Unspecified (do not use on the wire)
"""
Kind_Circle: DrawnShape._Kind.ValueType # 1
"""
u-d-c-c: User-drawn circle (uses major/minor/angle, anchor = event point)
"""
Kind_Rectangle: DrawnShape._Kind.ValueType # 2
"""
u-d-r: User-drawn rectangle (uses vertices = 4 corners)
"""
Kind_Freeform: DrawnShape._Kind.ValueType # 3
"""
u-d-f: User-drawn polyline (uses vertices, not closed)
"""
Kind_Telestration: DrawnShape._Kind.ValueType # 4
"""
u-d-f-m: Freehand telestration / annotation (uses vertices, may be truncated)
"""
Kind_Polygon: DrawnShape._Kind.ValueType # 5
"""
u-d-p: Closed polygon (uses vertices, implicitly closed)
"""
Kind_RangingCircle: DrawnShape._Kind.ValueType # 6
"""
u-r-b-c-c: Ranging circle (major/minor/angle, stroke + optional fill)
"""
Kind_Bullseye: DrawnShape._Kind.ValueType # 7
"""
u-r-b-bullseye: Bullseye ring with range rings and bearing reference
"""
Kind_Ellipse: DrawnShape._Kind.ValueType # 8
"""
u-d-c-e: Ellipse with distinct major/minor axes (same storage as
Kind_Circle — uses major_cm/minor_cm/angle_deg — but receivers
render it as a non-circular ellipse rather than a round circle).
"""
Kind_Vehicle2D: DrawnShape._Kind.ValueType # 9
"""
u-d-v: 2D vehicle outline drawn on the map. Vertices carry the
outline polygon; receivers draw it as a filled polygon.
"""
Kind_Vehicle3D: DrawnShape._Kind.ValueType # 10
"""
u-d-v-m: 3D vehicle model reference. Same vertex polygon as
Kind_Vehicle2D; receivers that support 3D rendering extrude it.
"""
class Kind(_Kind, metaclass=_KindEnumTypeWrapper):
"""
Shape kind discriminator. Drives receiver rendering and also controls
which optional fields below are meaningful.
"""
Kind_Unspecified: DrawnShape.Kind.ValueType # 0
"""
Unspecified (do not use on the wire)
"""
Kind_Circle: DrawnShape.Kind.ValueType # 1
"""
u-d-c-c: User-drawn circle (uses major/minor/angle, anchor = event point)
"""
Kind_Rectangle: DrawnShape.Kind.ValueType # 2
"""
u-d-r: User-drawn rectangle (uses vertices = 4 corners)
"""
Kind_Freeform: DrawnShape.Kind.ValueType # 3
"""
u-d-f: User-drawn polyline (uses vertices, not closed)
"""
Kind_Telestration: DrawnShape.Kind.ValueType # 4
"""
u-d-f-m: Freehand telestration / annotation (uses vertices, may be truncated)
"""
Kind_Polygon: DrawnShape.Kind.ValueType # 5
"""
u-d-p: Closed polygon (uses vertices, implicitly closed)
"""
Kind_RangingCircle: DrawnShape.Kind.ValueType # 6
"""
u-r-b-c-c: Ranging circle (major/minor/angle, stroke + optional fill)
"""
Kind_Bullseye: DrawnShape.Kind.ValueType # 7
"""
u-r-b-bullseye: Bullseye ring with range rings and bearing reference
"""
Kind_Ellipse: DrawnShape.Kind.ValueType # 8
"""
u-d-c-e: Ellipse with distinct major/minor axes (same storage as
Kind_Circle — uses major_cm/minor_cm/angle_deg — but receivers
render it as a non-circular ellipse rather than a round circle).
"""
Kind_Vehicle2D: DrawnShape.Kind.ValueType # 9
"""
u-d-v: 2D vehicle outline drawn on the map. Vertices carry the
outline polygon; receivers draw it as a filled polygon.
"""
Kind_Vehicle3D: DrawnShape.Kind.ValueType # 10
"""
u-d-v-m: 3D vehicle model reference. Same vertex polygon as
Kind_Vehicle2D; receivers that support 3D rendering extrude it.
"""
class _StyleMode:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _StyleModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DrawnShape._StyleMode.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
StyleMode_Unspecified: DrawnShape._StyleMode.ValueType # 0
"""
Unspecified — receiver infers from which color fields are non-zero.
"""
StyleMode_StrokeOnly: DrawnShape._StyleMode.ValueType # 1
"""
Stroke only. No <fillColor> in the source XML. Used for polylines,
ranging lines, bullseye rings.
"""
StyleMode_FillOnly: DrawnShape._StyleMode.ValueType # 2
"""
Fill only. No <strokeColor> in the source XML. Rare but valid in
ATAK (solid region with no outline).
"""
StyleMode_StrokeAndFill: DrawnShape._StyleMode.ValueType # 3
"""
Both stroke and fill present. Closed shapes: circle, rectangle,
polygon, ranging circle.
"""
class StyleMode(_StyleMode, metaclass=_StyleModeEnumTypeWrapper):
"""
Explicit stroke/fill/both discriminator.
ATAK's source XML distinguishes "stroke-only polyline" from "closed shape
with both stroke and fill" by the presence of the <fillColor> element.
Both states can hash to all-zero color fields, so we carry the signal
explicitly. Parser sets this from (sawStrokeColor, sawFillColor) at the
end of parse; builder uses it to decide which of <strokeColor> /
<fillColor> to emit in the reconstructed XML.
"""
StyleMode_Unspecified: DrawnShape.StyleMode.ValueType # 0
"""
Unspecified — receiver infers from which color fields are non-zero.
"""
StyleMode_StrokeOnly: DrawnShape.StyleMode.ValueType # 1
"""
Stroke only. No <fillColor> in the source XML. Used for polylines,
ranging lines, bullseye rings.
"""
StyleMode_FillOnly: DrawnShape.StyleMode.ValueType # 2
"""
Fill only. No <strokeColor> in the source XML. Rare but valid in
ATAK (solid region with no outline).
"""
StyleMode_StrokeAndFill: DrawnShape.StyleMode.ValueType # 3
"""
Both stroke and fill present. Closed shapes: circle, rectangle,
polygon, ranging circle.
"""
KIND_FIELD_NUMBER: builtins.int
STYLE_FIELD_NUMBER: builtins.int
MAJOR_CM_FIELD_NUMBER: builtins.int
MINOR_CM_FIELD_NUMBER: builtins.int
ANGLE_DEG_FIELD_NUMBER: builtins.int
STROKE_COLOR_FIELD_NUMBER: builtins.int
STROKE_ARGB_FIELD_NUMBER: builtins.int
STROKE_WEIGHT_X10_FIELD_NUMBER: builtins.int
FILL_COLOR_FIELD_NUMBER: builtins.int
FILL_ARGB_FIELD_NUMBER: builtins.int
LABELS_ON_FIELD_NUMBER: builtins.int
VERTEX_LAT_DELTAS_FIELD_NUMBER: builtins.int
VERTEX_LON_DELTAS_FIELD_NUMBER: builtins.int
TRUNCATED_FIELD_NUMBER: builtins.int
BULLSEYE_DISTANCE_DM_FIELD_NUMBER: builtins.int
BULLSEYE_BEARING_REF_FIELD_NUMBER: builtins.int
BULLSEYE_FLAGS_FIELD_NUMBER: builtins.int
BULLSEYE_UID_REF_FIELD_NUMBER: builtins.int
kind: global___DrawnShape.Kind.ValueType
"""
Shape kind (circle, rectangle, freeform, etc.)
"""
style: global___DrawnShape.StyleMode.ValueType
"""
Explicit stroke/fill/both discriminator. See StyleMode doc.
"""
major_cm: builtins.int
"""
Ellipse major radius in centimeters. 0 for non-ellipse kinds.
"""
minor_cm: builtins.int
"""
Ellipse minor radius in centimeters. 0 for non-ellipse kinds.
"""
angle_deg: builtins.int
"""
Ellipse rotation angle in degrees. Valid values are 0..360 inclusive;
0 and 360 are equivalent rotations. In proto3, an unset uint32 reads
as 0, so senders should emit 0 when the angle is unspecified.
"""
stroke_color: global___Team.ValueType
"""
Stroke color as a named palette entry from the Team enum. If
Unspecifed_Color, the exact ARGB is carried in stroke_argb.
Valid only when style is StrokeOnly or StrokeAndFill.
"""
stroke_argb: builtins.int
"""
Stroke color as an exact 32-bit ARGB bit pattern. Always populated
on the wire; readers MUST use this value when stroke_color ==
Unspecifed_Color and MAY use it to recover the exact original bytes
even when a palette entry is set.
"""
stroke_weight_x10: builtins.int
"""
Stroke weight in tenths of a unit (e.g. 30 = 3.0). Typical ATAK
range 10..60.
"""
fill_color: global___Team.ValueType
"""
Fill color as a named palette entry. See stroke_color docs.
Valid only when style is FillOnly or StrokeAndFill.
"""
fill_argb: builtins.int
"""
Fill color exact ARGB fallback. See stroke_argb docs.
"""
labels_on: builtins.bool
"""
Whether labels are rendered on this shape.
"""
truncated: builtins.bool
"""
True if the sender truncated the vertex columns to fit the pool.
--- Bullseye-only fields. All ignored unless kind == Kind_Bullseye. ---
"""
bullseye_distance_dm: builtins.int
"""
Bullseye distance in meters * 10 (e.g. 3285 = 328.5 m). 0 = unset.
"""
bullseye_bearing_ref: builtins.int
"""
Bullseye bearing reference: 0 unset, 1 Magnetic, 2 True, 3 Grid.
"""
bullseye_flags: builtins.int
"""
Bullseye attribute bit flags:
bit 0: rangeRingVisible
bit 1: hasRangeRings
bit 2: edgeToCenter
bit 3: mils
"""
bullseye_uid_ref: builtins.str
"""
Bullseye reference UID (anchor marker). Empty = anchor is self.
"""
@property
def vertex_lat_deltas(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
@property
def vertex_lon_deltas(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
def __init__(
self,
*,
kind: global___DrawnShape.Kind.ValueType = ...,
style: global___DrawnShape.StyleMode.ValueType = ...,
major_cm: builtins.int = ...,
minor_cm: builtins.int = ...,
angle_deg: builtins.int = ...,
stroke_color: global___Team.ValueType = ...,
stroke_argb: builtins.int = ...,
stroke_weight_x10: builtins.int = ...,
fill_color: global___Team.ValueType = ...,
fill_argb: builtins.int = ...,
labels_on: builtins.bool = ...,
vertex_lat_deltas: collections.abc.Iterable[builtins.int] | None = ...,
vertex_lon_deltas: collections.abc.Iterable[builtins.int] | None = ...,
truncated: builtins.bool = ...,
bullseye_distance_dm: builtins.int = ...,
bullseye_bearing_ref: builtins.int = ...,
bullseye_flags: builtins.int = ...,
bullseye_uid_ref: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["angle_deg", b"angle_deg", "bullseye_bearing_ref", b"bullseye_bearing_ref", "bullseye_distance_dm", b"bullseye_distance_dm", "bullseye_flags", b"bullseye_flags", "bullseye_uid_ref", b"bullseye_uid_ref", "fill_argb", b"fill_argb", "fill_color", b"fill_color", "kind", b"kind", "labels_on", b"labels_on", "major_cm", b"major_cm", "minor_cm", b"minor_cm", "stroke_argb", b"stroke_argb", "stroke_color", b"stroke_color", "stroke_weight_x10", b"stroke_weight_x10", "style", b"style", "truncated", b"truncated", "vertex_lat_deltas", b"vertex_lat_deltas", "vertex_lon_deltas", b"vertex_lon_deltas"]) -> None: ...
global___DrawnShape = DrawnShape
@typing.final
class Marker(google.protobuf.message.Message):
"""
Fixed point of interest: spot marker, waypoint, checkpoint, 2525 symbol,
or custom icon.
Covers CoT types b-m-p-s-m, b-m-p-w, b-m-p-c, b-m-p-s-p-i, b-m-p-s-p-loc,
plus a-u-G / a-f-G / a-h-G / a-n-G with iconset paths. The marker position
is carried on TAKPacketV2.latitude_i/longitude_i; fields below carry only
the marker-specific metadata.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _Kind:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _KindEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Marker._Kind.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Kind_Unspecified: Marker._Kind.ValueType # 0
"""
Unspecified — fall back to TAKPacketV2.cot_type_id
"""
Kind_Spot: Marker._Kind.ValueType # 1
"""
b-m-p-s-m: Spot map marker
"""
Kind_Waypoint: Marker._Kind.ValueType # 2
"""
b-m-p-w: Route waypoint
"""
Kind_Checkpoint: Marker._Kind.ValueType # 3
"""
b-m-p-c: Checkpoint
"""
Kind_SelfPosition: Marker._Kind.ValueType # 4
"""
b-m-p-s-p-i / b-m-p-s-p-loc: Self-position marker
"""
Kind_Symbol2525: Marker._Kind.ValueType # 5
"""
2525B/C military symbol (iconsetpath = COT_MAPPING_2525B/...)
"""
Kind_SpotMap: Marker._Kind.ValueType # 6
"""
COT_MAPPING_SPOTMAP icon (e.g. colored dot)
"""
Kind_CustomIcon: Marker._Kind.ValueType # 7
"""
Custom icon set (UUID/GroupName/filename.png)
"""
Kind_GoToPoint: Marker._Kind.ValueType # 8
"""
b-m-p-w-GOTO: Go To / bloodhound navigation waypoint.
"""
Kind_InitialPoint: Marker._Kind.ValueType # 9
"""
b-m-p-c-ip: Initial point (mission planning control point).
"""
Kind_ContactPoint: Marker._Kind.ValueType # 10
"""
b-m-p-c-cp: Contact point (mission planning control point).
"""
Kind_ObservationPost: Marker._Kind.ValueType # 11
"""
b-m-p-s-p-op: Observation post.
"""
Kind_ImageMarker: Marker._Kind.ValueType # 12
"""
b-i-x-i: Quick Pic geotagged image marker. iconset carries the
image reference (local filename or remote URL); the image itself
does not ride on the LoRa wire.
"""
class Kind(_Kind, metaclass=_KindEnumTypeWrapper):
"""
Marker kind. Used to pick sensible receiver defaults when the CoT type
alone is ambiguous (e.g. a-u-G could be a 2525 symbol or a custom icon
depending on the iconset path).
"""
Kind_Unspecified: Marker.Kind.ValueType # 0
"""
Unspecified — fall back to TAKPacketV2.cot_type_id
"""
Kind_Spot: Marker.Kind.ValueType # 1
"""
b-m-p-s-m: Spot map marker
"""
Kind_Waypoint: Marker.Kind.ValueType # 2
"""
b-m-p-w: Route waypoint
"""
Kind_Checkpoint: Marker.Kind.ValueType # 3
"""
b-m-p-c: Checkpoint
"""
Kind_SelfPosition: Marker.Kind.ValueType # 4
"""
b-m-p-s-p-i / b-m-p-s-p-loc: Self-position marker
"""
Kind_Symbol2525: Marker.Kind.ValueType # 5
"""
2525B/C military symbol (iconsetpath = COT_MAPPING_2525B/...)
"""
Kind_SpotMap: Marker.Kind.ValueType # 6
"""
COT_MAPPING_SPOTMAP icon (e.g. colored dot)
"""
Kind_CustomIcon: Marker.Kind.ValueType # 7
"""
Custom icon set (UUID/GroupName/filename.png)
"""
Kind_GoToPoint: Marker.Kind.ValueType # 8
"""
b-m-p-w-GOTO: Go To / bloodhound navigation waypoint.
"""
Kind_InitialPoint: Marker.Kind.ValueType # 9
"""
b-m-p-c-ip: Initial point (mission planning control point).
"""
Kind_ContactPoint: Marker.Kind.ValueType # 10
"""
b-m-p-c-cp: Contact point (mission planning control point).
"""
Kind_ObservationPost: Marker.Kind.ValueType # 11
"""
b-m-p-s-p-op: Observation post.
"""
Kind_ImageMarker: Marker.Kind.ValueType # 12
"""
b-i-x-i: Quick Pic geotagged image marker. iconset carries the
image reference (local filename or remote URL); the image itself
does not ride on the LoRa wire.
"""
KIND_FIELD_NUMBER: builtins.int
COLOR_FIELD_NUMBER: builtins.int
COLOR_ARGB_FIELD_NUMBER: builtins.int
READINESS_FIELD_NUMBER: builtins.int
PARENT_UID_FIELD_NUMBER: builtins.int
PARENT_TYPE_FIELD_NUMBER: builtins.int
PARENT_CALLSIGN_FIELD_NUMBER: builtins.int
ICONSET_FIELD_NUMBER: builtins.int
kind: global___Marker.Kind.ValueType
"""
Marker kind
"""
color: global___Team.ValueType
"""
Marker color as a named palette entry. If Unspecifed_Color, the exact
ARGB is in color_argb.
"""
color_argb: builtins.int
"""
Marker color exact ARGB bit pattern. Always populated on the wire.
"""
readiness: builtins.bool
"""
Status readiness flag (ATAK <status readiness="true"/>).
"""
parent_uid: builtins.str
"""
Parent link UID (ATAK <link uid=... relation="p-p"/>). Empty = no parent.
For spot/waypoint markers this is typically the producing TAK user's UID.
"""
parent_type: builtins.str
"""
Parent CoT type (e.g. "a-f-G-U-C"). Usually the parent TAK user's type.
"""
parent_callsign: builtins.str
"""
Parent callsign (e.g. "HOPE").
"""
iconset: builtins.str
"""
Iconset path stored verbatim. ATAK emits three flavors:
Kind_Symbol2525 -> "COT_MAPPING_2525B/<cot-type-prefix>/<cot-type>"
Kind_SpotMap -> "COT_MAPPING_SPOTMAP/<cot-type>/<argb>"
Kind_CustomIcon -> "<UUID>/<GroupName>/<filename>.png"
Stored end-to-end without prefix stripping; the ~19 bytes saved by
stripping well-known prefixes are not worth the builder-side bug
surface, and the dict compresses the repetition effectively.
"""
def __init__(
self,
*,
kind: global___Marker.Kind.ValueType = ...,
color: global___Team.ValueType = ...,
color_argb: builtins.int = ...,
readiness: builtins.bool = ...,
parent_uid: builtins.str = ...,
parent_type: builtins.str = ...,
parent_callsign: builtins.str = ...,
iconset: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["color", b"color", "color_argb", b"color_argb", "iconset", b"iconset", "kind", b"kind", "parent_callsign", b"parent_callsign", "parent_type", b"parent_type", "parent_uid", b"parent_uid", "readiness", b"readiness"]) -> None: ...
global___Marker = Marker
@typing.final
class RangeAndBearing(google.protobuf.message.Message):
"""
Range and bearing measurement line from the event anchor to a target point.
Covers CoT type u-rb-a. The anchor position is on
TAKPacketV2.latitude_i/longitude_i; the target endpoint is carried as a
CotGeoPoint — same delta-from-anchor encoding used by DrawnShape.vertices
so a self-anchored RAB (common case) encodes in zero bytes.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
ANCHOR_FIELD_NUMBER: builtins.int
ANCHOR_UID_FIELD_NUMBER: builtins.int
RANGE_CM_FIELD_NUMBER: builtins.int
BEARING_CDEG_FIELD_NUMBER: builtins.int
STROKE_COLOR_FIELD_NUMBER: builtins.int
STROKE_ARGB_FIELD_NUMBER: builtins.int
STROKE_WEIGHT_X10_FIELD_NUMBER: builtins.int
anchor_uid: builtins.str
"""
Anchor UID (from <link uid="anchor-1"/>). Empty = free-standing.
"""
range_cm: builtins.int
"""
Range in centimeters (value * 100). Range 0..4294 km.
"""
bearing_cdeg: builtins.int
"""
Bearing in degrees * 100 (0..36000).
"""
stroke_color: global___Team.ValueType
"""
Stroke color as a Team palette entry. See DrawnShape.stroke_color doc.
"""
stroke_argb: builtins.int
"""
Stroke color exact ARGB fallback.
"""
stroke_weight_x10: builtins.int
"""
Stroke weight * 10 (e.g. 30 = 3.0).
"""
@property
def anchor(self) -> global___CotGeoPoint:
"""
Target/anchor endpoint (delta-encoded from TAKPacketV2.latitude_i/longitude_i).
"""
def __init__(
self,
*,
anchor: global___CotGeoPoint | None = ...,
anchor_uid: builtins.str = ...,
range_cm: builtins.int = ...,
bearing_cdeg: builtins.int = ...,
stroke_color: global___Team.ValueType = ...,
stroke_argb: builtins.int = ...,
stroke_weight_x10: builtins.int = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["anchor", b"anchor"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["anchor", b"anchor", "anchor_uid", b"anchor_uid", "bearing_cdeg", b"bearing_cdeg", "range_cm", b"range_cm", "stroke_argb", b"stroke_argb", "stroke_color", b"stroke_color", "stroke_weight_x10", b"stroke_weight_x10"]) -> None: ...
global___RangeAndBearing = RangeAndBearing
@typing.final
class Route(google.protobuf.message.Message):
"""
Named route consisting of ordered waypoints and control points.
Covers CoT type b-m-r. The first waypoint's position is on
TAKPacketV2.latitude_i/longitude_i; subsequent waypoints and checkpoints
are in `links`. Link count is capped at 16 by the nanopb pool; senders
MUST truncate longer routes and set `truncated = true`.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _Method:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _MethodEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Route._Method.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Method_Unspecified: Route._Method.ValueType # 0
"""
Unspecified / unknown
"""
Method_Driving: Route._Method.ValueType # 1
"""
Driving / vehicle
"""
Method_Walking: Route._Method.ValueType # 2
"""
Walking / foot
"""
Method_Flying: Route._Method.ValueType # 3
"""
Flying
"""
Method_Swimming: Route._Method.ValueType # 4
"""
Swimming (individual)
"""
Method_Watercraft: Route._Method.ValueType # 5
"""
Watercraft (boat)
"""
class Method(_Method, metaclass=_MethodEnumTypeWrapper):
"""
Travel method for the route.
"""
Method_Unspecified: Route.Method.ValueType # 0
"""
Unspecified / unknown
"""
Method_Driving: Route.Method.ValueType # 1
"""
Driving / vehicle
"""
Method_Walking: Route.Method.ValueType # 2
"""
Walking / foot
"""
Method_Flying: Route.Method.ValueType # 3
"""
Flying
"""
Method_Swimming: Route.Method.ValueType # 4
"""
Swimming (individual)
"""
Method_Watercraft: Route.Method.ValueType # 5
"""
Watercraft (boat)
"""
class _Direction:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _DirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Route._Direction.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Direction_Unspecified: Route._Direction.ValueType # 0
"""
Unspecified
"""
Direction_Infil: Route._Direction.ValueType # 1
"""
Infiltration (ingress)
"""
Direction_Exfil: Route._Direction.ValueType # 2
"""
Exfiltration (egress)
"""
class Direction(_Direction, metaclass=_DirectionEnumTypeWrapper):
"""
Route direction (infil = ingress, exfil = egress).
"""
Direction_Unspecified: Route.Direction.ValueType # 0
"""
Unspecified
"""
Direction_Infil: Route.Direction.ValueType # 1
"""
Infiltration (ingress)
"""
Direction_Exfil: Route.Direction.ValueType # 2
"""
Exfiltration (egress)
"""
@typing.final
class Link(google.protobuf.message.Message):
"""
Route waypoint or control point. Each link corresponds to one ATAK
<link type=... point=...> entry inside the b-m-r event.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
POINT_FIELD_NUMBER: builtins.int
UID_FIELD_NUMBER: builtins.int
CALLSIGN_FIELD_NUMBER: builtins.int
LINK_TYPE_FIELD_NUMBER: builtins.int
uid: builtins.str
"""
Optional UID (empty = receiver derives).
"""
callsign: builtins.str
"""
Optional display callsign (e.g. "CP1"). Empty for unnamed control points.
"""
link_type: builtins.int
"""
Link role: 0 = waypoint (b-m-p-w), 1 = checkpoint (b-m-p-c).
"""
@property
def point(self) -> global___CotGeoPoint:
"""
Waypoint position (delta-encoded from TAKPacketV2.latitude_i/longitude_i).
"""
def __init__(
self,
*,
point: global___CotGeoPoint | None = ...,
uid: builtins.str = ...,
callsign: builtins.str = ...,
link_type: builtins.int = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["point", b"point"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["callsign", b"callsign", "link_type", b"link_type", "point", b"point", "uid", b"uid"]) -> None: ...
METHOD_FIELD_NUMBER: builtins.int
DIRECTION_FIELD_NUMBER: builtins.int
PREFIX_FIELD_NUMBER: builtins.int
STROKE_WEIGHT_X10_FIELD_NUMBER: builtins.int
LINKS_FIELD_NUMBER: builtins.int
TRUNCATED_FIELD_NUMBER: builtins.int
method: global___Route.Method.ValueType
"""
Travel method
"""
direction: global___Route.Direction.ValueType
"""
Direction (infil/exfil)
"""
prefix: builtins.str
"""
Waypoint name prefix (e.g. "CP").
"""
stroke_weight_x10: builtins.int
"""
Stroke weight * 10 (e.g. 30 = 3.0). 0 = default.
"""
truncated: builtins.bool
"""
True if the sender truncated `links` to fit the pool.
"""
@property
def links(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Route.Link]:
"""
Ordered list of route control points. Capped at 16.
"""
def __init__(
self,
*,
method: global___Route.Method.ValueType = ...,
direction: global___Route.Direction.ValueType = ...,
prefix: builtins.str = ...,
stroke_weight_x10: builtins.int = ...,
links: collections.abc.Iterable[global___Route.Link] | None = ...,
truncated: builtins.bool = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["direction", b"direction", "links", b"links", "method", b"method", "prefix", b"prefix", "stroke_weight_x10", b"stroke_weight_x10", "truncated", b"truncated"]) -> None: ...
global___Route = Route
@typing.final
class CasevacReport(google.protobuf.message.Message):
"""
9-line MEDEVAC request (CoT type b-r-f-h-c).
Mirrors the ATAK MedLine tool's <_medevac_> detail element. Every field
is optional (proto3 default); senders omit lines they don't have. The
envelope (TAKPacketV2.uid, cot_type_id=b-r-f-h-c, latitude_i/longitude_i,
altitude, callsign) carries Line 1 (location) and Line 2 (callsign).
All numeric fields are tight varints so a complete 9-line request fits
in well under 100 bytes of proto on the wire.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _Precedence:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _PrecedenceEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[CasevacReport._Precedence.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Precedence_Unspecified: CasevacReport._Precedence.ValueType # 0
Precedence_Urgent: CasevacReport._Precedence.ValueType # 1
"""A - immediate, life-threatening"""
Precedence_UrgentSurgical: CasevacReport._Precedence.ValueType # 2
"""B - needs surgery"""
Precedence_Priority: CasevacReport._Precedence.ValueType # 3
"""C - within 4 hours"""
Precedence_Routine: CasevacReport._Precedence.ValueType # 4
"""D - within 24 hours"""
Precedence_Convenience: CasevacReport._Precedence.ValueType # 5
"""E - convenience"""
class Precedence(_Precedence, metaclass=_PrecedenceEnumTypeWrapper):
"""
Line 3: precedence / urgency.
"""
Precedence_Unspecified: CasevacReport.Precedence.ValueType # 0
Precedence_Urgent: CasevacReport.Precedence.ValueType # 1
"""A - immediate, life-threatening"""
Precedence_UrgentSurgical: CasevacReport.Precedence.ValueType # 2
"""B - needs surgery"""
Precedence_Priority: CasevacReport.Precedence.ValueType # 3
"""C - within 4 hours"""
Precedence_Routine: CasevacReport.Precedence.ValueType # 4
"""D - within 24 hours"""
Precedence_Convenience: CasevacReport.Precedence.ValueType # 5
"""E - convenience"""
class _HlzMarking:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _HlzMarkingEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[CasevacReport._HlzMarking.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
HlzMarking_Unspecified: CasevacReport._HlzMarking.ValueType # 0
HlzMarking_Panels: CasevacReport._HlzMarking.ValueType # 1
HlzMarking_PyroSignal: CasevacReport._HlzMarking.ValueType # 2
HlzMarking_Smoke: CasevacReport._HlzMarking.ValueType # 3
HlzMarking_None: CasevacReport._HlzMarking.ValueType # 4
HlzMarking_Other: CasevacReport._HlzMarking.ValueType # 5
class HlzMarking(_HlzMarking, metaclass=_HlzMarkingEnumTypeWrapper):
"""
Line 7: HLZ marking method.
"""
HlzMarking_Unspecified: CasevacReport.HlzMarking.ValueType # 0
HlzMarking_Panels: CasevacReport.HlzMarking.ValueType # 1
HlzMarking_PyroSignal: CasevacReport.HlzMarking.ValueType # 2
HlzMarking_Smoke: CasevacReport.HlzMarking.ValueType # 3
HlzMarking_None: CasevacReport.HlzMarking.ValueType # 4
HlzMarking_Other: CasevacReport.HlzMarking.ValueType # 5
class _Security:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _SecurityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[CasevacReport._Security.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Security_Unspecified: CasevacReport._Security.ValueType # 0
Security_NoEnemy: CasevacReport._Security.ValueType # 1
"""N - no enemy activity"""
Security_PossibleEnemy: CasevacReport._Security.ValueType # 2
"""P - possible enemy"""
Security_EnemyInArea: CasevacReport._Security.ValueType # 3
"""E - enemy, approach with caution"""
Security_EnemyInArmedContact: CasevacReport._Security.ValueType # 4
"""X - armed escort required"""
class Security(_Security, metaclass=_SecurityEnumTypeWrapper):
"""
Line 6: security situation at the pickup zone.
"""
Security_Unspecified: CasevacReport.Security.ValueType # 0
Security_NoEnemy: CasevacReport.Security.ValueType # 1
"""N - no enemy activity"""
Security_PossibleEnemy: CasevacReport.Security.ValueType # 2
"""P - possible enemy"""
Security_EnemyInArea: CasevacReport.Security.ValueType # 3
"""E - enemy, approach with caution"""
Security_EnemyInArmedContact: CasevacReport.Security.ValueType # 4
"""X - armed escort required"""
PRECEDENCE_FIELD_NUMBER: builtins.int
EQUIPMENT_FLAGS_FIELD_NUMBER: builtins.int
LITTER_PATIENTS_FIELD_NUMBER: builtins.int
AMBULATORY_PATIENTS_FIELD_NUMBER: builtins.int
SECURITY_FIELD_NUMBER: builtins.int
HLZ_MARKING_FIELD_NUMBER: builtins.int
ZONE_MARKER_FIELD_NUMBER: builtins.int
US_MILITARY_FIELD_NUMBER: builtins.int
US_CIVILIAN_FIELD_NUMBER: builtins.int
NON_US_MILITARY_FIELD_NUMBER: builtins.int
NON_US_CIVILIAN_FIELD_NUMBER: builtins.int
EPW_FIELD_NUMBER: builtins.int
CHILD_FIELD_NUMBER: builtins.int
TERRAIN_FLAGS_FIELD_NUMBER: builtins.int
FREQUENCY_FIELD_NUMBER: builtins.int
TITLE_FIELD_NUMBER: builtins.int
MEDLINE_REMARKS_FIELD_NUMBER: builtins.int
URGENT_COUNT_FIELD_NUMBER: builtins.int
URGENT_SURGICAL_COUNT_FIELD_NUMBER: builtins.int
PRIORITY_COUNT_FIELD_NUMBER: builtins.int
ROUTINE_COUNT_FIELD_NUMBER: builtins.int
CONVENIENCE_COUNT_FIELD_NUMBER: builtins.int
EQUIPMENT_DETAIL_FIELD_NUMBER: builtins.int
ZONE_PROTECTED_COORD_FIELD_NUMBER: builtins.int
TERRAIN_SLOPE_DIR_FIELD_NUMBER: builtins.int
TERRAIN_OTHER_DETAIL_FIELD_NUMBER: builtins.int
MARKED_BY_FIELD_NUMBER: builtins.int
OBSTACLES_FIELD_NUMBER: builtins.int
WINDS_ARE_FROM_FIELD_NUMBER: builtins.int
FRIENDLIES_FIELD_NUMBER: builtins.int
ENEMY_FIELD_NUMBER: builtins.int
HLZ_REMARKS_FIELD_NUMBER: builtins.int
ZMIST_FIELD_NUMBER: builtins.int
precedence: global___CasevacReport.Precedence.ValueType
"""
Line 3: precedence / urgency.
"""
equipment_flags: builtins.int
"""
Line 4: special equipment required, as a bitfield.
bit 0: none
bit 1: hoist
bit 2: extraction equipment
bit 3: ventilator
bit 4: blood
"""
litter_patients: builtins.int
"""
Line 5: number of litter (stretcher-bound) patients.
"""
ambulatory_patients: builtins.int
"""
Line 5: number of ambulatory (walking-wounded) patients.
"""
security: global___CasevacReport.Security.ValueType
"""
Line 6: security situation at the PZ.
"""
hlz_marking: global___CasevacReport.HlzMarking.ValueType
"""
Line 7: HLZ marking method.
"""
zone_marker: builtins.str
"""
Line 7 supplementary: short free-text describing the zone marker
(e.g. "Green smoke", "VS-17 panel west"). Capped tight in options.
"""
us_military: builtins.int
"""--- Line 8: patient nationality counts ---"""
us_civilian: builtins.int
non_us_military: builtins.int
non_us_civilian: builtins.int
epw: builtins.int
child: builtins.int
terrain_flags: builtins.int
"""
Line 9: terrain and obstacles at the PZ, as a bitfield.
bit 0: slope
bit 1: rough
bit 2: loose
bit 3: trees
bit 4: wires
bit 5: other
"""
frequency: builtins.str
"""
Line 2: radio frequency / callsign metadata (e.g. "38.90 Mhz" or
"Victor 6"). Capped tight in options.
"""
title: builtins.str
"""--- v2.x medline extensions (tags 1633) --------------------------------
Fields 16+ cost a 2-byte tag instead of 1 byte, but they're usually
sparse so the on-wire delta is modest when most stay unset. A fully
populated CASEVAC with 13 free-text fields + 2 ZMIST entries can run
200-400 bytes compressed, i.e. potentially over the 237 B LoRa MTU.
Callers that hit the MTU on the `compressWithRemarksFallback` path
SHOULD strip the tier-2 situational fields (tags 28-32 + terrain_other_detail)
before dropping the packet entirely. See README "CASEVAC tier-2 stripping".
Short title / MEDEVAC identifier (e.g. "EAGLE.15.181230"). Usually the
same as the envelope callsign but ATAK sometimes carries a distinct
ops-number here.
"""
medline_remarks: builtins.str
"""
Primary medline free-text — the single most clinically important line
on a MEDLINE form (e.g. "2 urgent litter patients, smoke on approach").
MUST be preserved under MTU pressure as long as any casevac is sent.
"""
urgent_count: builtins.int
"""
Line 3 (newer ATAK format): patient counts by precedence level.
Coexists with the enum-style `precedence` field (tag 1) — older ATAK
emits a single enum, newer ATAK emits these counts, and both can be
set simultaneously. Senders populate whichever style(s) the source
XML had; receivers prefer counts when non-zero.
"""
urgent_surgical_count: builtins.int
priority_count: builtins.int
routine_count: builtins.int
convenience_count: builtins.int
equipment_detail: builtins.str
"""
Line 4 supplementary: free-text description of non-standard equipment
(e.g. "Blood warmer"). Pairs with the `equipment_flags` bitfield.
"""
zone_protected_coord: builtins.str
"""
Line 1 override: MGRS grid when distinct from the event anchor point
(e.g. "34T CQ 12345 67890"). Event lat/lon/hae still carries the
numeric location; this field preserves the exact MGRS string the
medic entered.
"""
terrain_slope_dir: builtins.str
"""
Line 9 supplementary: slope direction (e.g. "N", "NE", "SSW") when
`terrain_flags` bit 0 (slope) is set.
"""
terrain_other_detail: builtins.str
"""
Line 9 supplementary: free-text description of "other" terrain hazards
(e.g. "Loose debris on west edge") when `terrain_flags` bit 5 (other)
is set. Tier-2 strippable under MTU pressure.
"""
marked_by: builtins.str
"""
Line 7 supplementary: how the zone is being marked right now
(e.g. "Orange smoke", "VS-17 panel"). Complements the structured
`hlz_marking` enum with a specific human-readable description.
"""
obstacles: builtins.str
"""--- Tier-2 situational awareness (stripped first under MTU pressure) ---
These fields are free-text context that helps the receiver plan the
approach but aren't strictly required to evacuate the patient.
Nearby obstacles on the approach (e.g. "Power lines north of HLZ").
"""
winds_are_from: builtins.str
"""
Wind direction and speed (e.g. "270 at 12 kts").
"""
friendlies: builtins.str
"""
Friendly forces posture near the pickup zone
(e.g. "Squad east of HLZ").
"""
enemy: builtins.str
"""
Known or suspected enemy positions near the pickup zone
(e.g. "Possible enemy on south ridge").
"""
hlz_remarks: builtins.str
"""
Free-text description of the HLZ itself
(e.g. "Primary HLZ is soccer field").
"""
@property
def zmist(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ZMistEntry]:
"""
Per-patient clinical records. Each entry is one patient's ZMIST card
(Zap number / Mechanism / Injuries / Signs / Treatment). Repeatable —
a mass-casualty event can carry 1-6 entries in practice, limited by
the 237 B LoRa MTU.
"""
def __init__(
self,
*,
precedence: global___CasevacReport.Precedence.ValueType = ...,
equipment_flags: builtins.int = ...,
litter_patients: builtins.int = ...,
ambulatory_patients: builtins.int = ...,
security: global___CasevacReport.Security.ValueType = ...,
hlz_marking: global___CasevacReport.HlzMarking.ValueType = ...,
zone_marker: builtins.str = ...,
us_military: builtins.int = ...,
us_civilian: builtins.int = ...,
non_us_military: builtins.int = ...,
non_us_civilian: builtins.int = ...,
epw: builtins.int = ...,
child: builtins.int = ...,
terrain_flags: builtins.int = ...,
frequency: builtins.str = ...,
title: builtins.str = ...,
medline_remarks: builtins.str = ...,
urgent_count: builtins.int = ...,
urgent_surgical_count: builtins.int = ...,
priority_count: builtins.int = ...,
routine_count: builtins.int = ...,
convenience_count: builtins.int = ...,
equipment_detail: builtins.str = ...,
zone_protected_coord: builtins.str = ...,
terrain_slope_dir: builtins.str = ...,
terrain_other_detail: builtins.str = ...,
marked_by: builtins.str = ...,
obstacles: builtins.str = ...,
winds_are_from: builtins.str = ...,
friendlies: builtins.str = ...,
enemy: builtins.str = ...,
hlz_remarks: builtins.str = ...,
zmist: collections.abc.Iterable[global___ZMistEntry] | None = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["ambulatory_patients", b"ambulatory_patients", "child", b"child", "convenience_count", b"convenience_count", "enemy", b"enemy", "epw", b"epw", "equipment_detail", b"equipment_detail", "equipment_flags", b"equipment_flags", "frequency", b"frequency", "friendlies", b"friendlies", "hlz_marking", b"hlz_marking", "hlz_remarks", b"hlz_remarks", "litter_patients", b"litter_patients", "marked_by", b"marked_by", "medline_remarks", b"medline_remarks", "non_us_civilian", b"non_us_civilian", "non_us_military", b"non_us_military", "obstacles", b"obstacles", "precedence", b"precedence", "priority_count", b"priority_count", "routine_count", b"routine_count", "security", b"security", "terrain_flags", b"terrain_flags", "terrain_other_detail", b"terrain_other_detail", "terrain_slope_dir", b"terrain_slope_dir", "title", b"title", "urgent_count", b"urgent_count", "urgent_surgical_count", b"urgent_surgical_count", "us_civilian", b"us_civilian", "us_military", b"us_military", "winds_are_from", b"winds_are_from", "zmist", b"zmist", "zone_marker", b"zone_marker", "zone_protected_coord", b"zone_protected_coord"]) -> None: ...
global___CasevacReport = CasevacReport
@typing.final
class ZMistEntry(google.protobuf.message.Message):
"""
Per-patient clinical summary record — one entry per patient in a CASEVAC.
Maps directly to ATAK's <zMist> child element inside <zMistsMap>.
All fields are optional free-text; senders populate what they have.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
TITLE_FIELD_NUMBER: builtins.int
Z_FIELD_NUMBER: builtins.int
M_FIELD_NUMBER: builtins.int
I_FIELD_NUMBER: builtins.int
S_FIELD_NUMBER: builtins.int
T_FIELD_NUMBER: builtins.int
title: builtins.str
"""
Patient identifier / sequence label (e.g. "ZMIST-1", "ZMIST-2").
"""
z: builtins.str
"""
Zap number — unique patient tracking ID (often a terse code like
"Gunshot" or a serial).
"""
m: builtins.str
"""
Mechanism of injury (e.g. "Penetrating trauma", "Blast injury").
"""
i: builtins.str
"""
Injuries observed (e.g. "Left thigh", "Concussion").
"""
s: builtins.str
"""
Signs / vital stats (e.g. "Stable", "Priority", "BP 110/70").
"""
t: builtins.str
"""
Treatment given (e.g. "Tourniquet 1810Z", "O2 administered").
"""
def __init__(
self,
*,
title: builtins.str = ...,
z: builtins.str = ...,
m: builtins.str = ...,
i: builtins.str = ...,
s: builtins.str = ...,
t: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["i", b"i", "m", b"m", "s", b"s", "t", b"t", "title", b"title", "z", b"z"]) -> None: ...
global___ZMistEntry = ZMistEntry
@typing.final
class EmergencyAlert(google.protobuf.message.Message):
"""
Emergency alert / 911 beacon (CoT types b-a-o-tbl, b-a-o-pan, b-a-o-opn,
b-a-o-can, b-a-o-c, b-a-g).
Small, high-priority structured record. The CoT type string is still set
on cot_type_id so receivers that ignore payload_variant can still display
the alert from the enum alone; the typed fields let modern receivers show
the authoring unit and handle cancel-referencing without XML parsing.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _Type:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[EmergencyAlert._Type.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Type_Unspecified: EmergencyAlert._Type.ValueType # 0
Type_Alert911: EmergencyAlert._Type.ValueType # 1
"""b-a-o-tbl"""
Type_RingTheBell: EmergencyAlert._Type.ValueType # 2
"""b-a-o-pan"""
Type_InContact: EmergencyAlert._Type.ValueType # 3
"""b-a-o-opn"""
Type_GeoFenceBreached: EmergencyAlert._Type.ValueType # 4
"""b-a-g"""
Type_Custom: EmergencyAlert._Type.ValueType # 5
"""b-a-o-c"""
Type_Cancel: EmergencyAlert._Type.ValueType # 6
"""b-a-o-can"""
class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
Type_Unspecified: EmergencyAlert.Type.ValueType # 0
Type_Alert911: EmergencyAlert.Type.ValueType # 1
"""b-a-o-tbl"""
Type_RingTheBell: EmergencyAlert.Type.ValueType # 2
"""b-a-o-pan"""
Type_InContact: EmergencyAlert.Type.ValueType # 3
"""b-a-o-opn"""
Type_GeoFenceBreached: EmergencyAlert.Type.ValueType # 4
"""b-a-g"""
Type_Custom: EmergencyAlert.Type.ValueType # 5
"""b-a-o-c"""
Type_Cancel: EmergencyAlert.Type.ValueType # 6
"""b-a-o-can"""
TYPE_FIELD_NUMBER: builtins.int
AUTHORING_UID_FIELD_NUMBER: builtins.int
CANCEL_REFERENCE_UID_FIELD_NUMBER: builtins.int
type: global___EmergencyAlert.Type.ValueType
"""
Alert discriminator.
"""
authoring_uid: builtins.str
"""
UID of the unit that raised the alert. Often the same as
TAKPacketV2.uid but can be a parent device uid when a tracker raises
an alert on behalf of a dismount.
"""
cancel_reference_uid: builtins.str
"""
For Type_Cancel: the uid of the alert being cancelled. Empty for
non-cancel alert types.
"""
def __init__(
self,
*,
type: global___EmergencyAlert.Type.ValueType = ...,
authoring_uid: builtins.str = ...,
cancel_reference_uid: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["authoring_uid", b"authoring_uid", "cancel_reference_uid", b"cancel_reference_uid", "type", b"type"]) -> None: ...
global___EmergencyAlert = EmergencyAlert
@typing.final
class TaskRequest(google.protobuf.message.Message):
"""
Task / engage request (CoT type t-s).
Mirrors ATAK's TaskCotReceiver / CotTaskBuilder workflow. The envelope
carries the task's originating uid (implicit requester), position, and
creation time; the fields below carry structured metadata the raw-detail
fallback currently loses.
Fields are deliberately lean — this variant is closer to the MTU ceiling
than the others, so every string is capped in options.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _Priority:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _PriorityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[TaskRequest._Priority.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Priority_Unspecified: TaskRequest._Priority.ValueType # 0
Priority_Low: TaskRequest._Priority.ValueType # 1
Priority_Normal: TaskRequest._Priority.ValueType # 2
Priority_High: TaskRequest._Priority.ValueType # 3
Priority_Critical: TaskRequest._Priority.ValueType # 4
class Priority(_Priority, metaclass=_PriorityEnumTypeWrapper): ...
Priority_Unspecified: TaskRequest.Priority.ValueType # 0
Priority_Low: TaskRequest.Priority.ValueType # 1
Priority_Normal: TaskRequest.Priority.ValueType # 2
Priority_High: TaskRequest.Priority.ValueType # 3
Priority_Critical: TaskRequest.Priority.ValueType # 4
class _Status:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[TaskRequest._Status.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
Status_Unspecified: TaskRequest._Status.ValueType # 0
Status_Pending: TaskRequest._Status.ValueType # 1
"""assigned, not yet acknowledged"""
Status_Acknowledged: TaskRequest._Status.ValueType # 2
"""assignee has seen it"""
Status_InProgress: TaskRequest._Status.ValueType # 3
"""assignee is working it"""
Status_Completed: TaskRequest._Status.ValueType # 4
"""task done"""
Status_Cancelled: TaskRequest._Status.ValueType # 5
"""cancelled before completion"""
class Status(_Status, metaclass=_StatusEnumTypeWrapper): ...
Status_Unspecified: TaskRequest.Status.ValueType # 0
Status_Pending: TaskRequest.Status.ValueType # 1
"""assigned, not yet acknowledged"""
Status_Acknowledged: TaskRequest.Status.ValueType # 2
"""assignee has seen it"""
Status_InProgress: TaskRequest.Status.ValueType # 3
"""assignee is working it"""
Status_Completed: TaskRequest.Status.ValueType # 4
"""task done"""
Status_Cancelled: TaskRequest.Status.ValueType # 5
"""cancelled before completion"""
TASK_TYPE_FIELD_NUMBER: builtins.int
TARGET_UID_FIELD_NUMBER: builtins.int
ASSIGNEE_UID_FIELD_NUMBER: builtins.int
PRIORITY_FIELD_NUMBER: builtins.int
STATUS_FIELD_NUMBER: builtins.int
NOTE_FIELD_NUMBER: builtins.int
task_type: builtins.str
"""
Short tag for the task category (e.g. "engage", "observe", "recon",
"rescue"). Free text on the wire so ATAK-specific task taxonomies
don't need proto coordination; capped tight in options.
"""
target_uid: builtins.str
"""
UID of the target / map item being tasked.
"""
assignee_uid: builtins.str
"""
UID of the assigned unit. Empty = unassigned / broadcast task.
"""
priority: global___TaskRequest.Priority.ValueType
status: global___TaskRequest.Status.ValueType
note: builtins.str
"""
Optional short note (reason, constraints, grid reference). Capped
tight in options to keep the worst-case under the LoRa MTU.
"""
def __init__(
self,
*,
task_type: builtins.str = ...,
target_uid: builtins.str = ...,
assignee_uid: builtins.str = ...,
priority: global___TaskRequest.Priority.ValueType = ...,
status: global___TaskRequest.Status.ValueType = ...,
note: builtins.str = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["assignee_uid", b"assignee_uid", "note", b"note", "priority", b"priority", "status", b"status", "target_uid", b"target_uid", "task_type", b"task_type"]) -> None: ...
global___TaskRequest = TaskRequest
@typing.final
class TAKEnvironment(google.protobuf.message.Message):
"""
Weather annotation from <environment> CoT detail element.
Attaches to any TAKPacketV2 regardless of payload_variant — an Aircraft,
PLI, or Marker can all carry observed conditions at the emitting station.
ATAK-CIV ships an XSD for <environment> but no dedicated handler, so the
element round-trips through the generic detail pipeline; this message
promotes it to a first-class structured field.
Target wire cost: ~6-8 bytes compressed with a fully populated instance.
Named `TAKEnvironment` (not just `Environment`) because the bare name
collides with `SwiftUI.Environment` — every SwiftUI view in a consuming
iOS app uses the `@Environment` property wrapper, and importing the
generated proto module would make `Environment` ambiguous in every one
of those files. The `TAK` prefix matches the convention used by the
outer `TAKPacketV2` wrapper and is unambiguous across all target
languages (Swift, Kotlin, Python, TypeScript, C#).
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
TEMPERATURE_C_X10_FIELD_NUMBER: builtins.int
WIND_DIRECTION_DEG_FIELD_NUMBER: builtins.int
WIND_SPEED_CM_S_FIELD_NUMBER: builtins.int
temperature_c_x10: builtins.int
"""
Temperature in deci-degrees Celsius. 225 = 22.5°C.
Range covers -50°C to +50°C (-500 to +500) which spans every realistic
outdoor TAK deployment. sint32 because negative temps are common in
cold-weather ops.
"""
wind_direction_deg: builtins.int
"""
Wind direction in whole degrees, 0-359. "Direction FROM" per
meteorological convention (matches CoT / ATAK).
"""
wind_speed_cm_s: builtins.int
"""
Wind speed in cm/s. Matches the unit of TAKPacketV2.speed for
consistency. 1200 = 12.00 m/s = ~27 mph.
"""
def __init__(
self,
*,
temperature_c_x10: builtins.int = ...,
wind_direction_deg: builtins.int = ...,
wind_speed_cm_s: builtins.int = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["temperature_c_x10", b"temperature_c_x10", "wind_direction_deg", b"wind_direction_deg", "wind_speed_cm_s", b"wind_speed_cm_s"]) -> None: ...
global___TAKEnvironment = TAKEnvironment
@typing.final
class SensorFov(google.protobuf.message.Message):
"""
Sensor field-of-view cone from <sensor> CoT detail element.
Encodes the 8 geometry attributes that ATAK-CIV's SensorDetailHandler
reads from the wire; drops the 9 visual-styling attributes that are
receiver-side render hints (fovAlpha, fovRed/Green/Blue, strokeColor,
strokeWeight, displayMagneticReference, hideFov, fovLabels, rangeLines).
The receiving ATAK client restores those from its own defaults, same as
every other CoT carried over Meshtastic today.
Attaches to any TAKPacketV2 — a PLI with a sensor on the operator's head,
an Aircraft with a FLIR turret, a Marker dropped on a UAV.
Target wire cost: ~7-14 bytes compressed (dominated by model string).
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
class _SensorType:
ValueType = typing.NewType("ValueType", builtins.int)
V: typing_extensions.TypeAlias = ValueType
class _SensorTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SensorFov._SensorType.ValueType], builtins.type):
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
SensorType_Unspecified: SensorFov._SensorType.ValueType # 0
SensorType_Camera: SensorFov._SensorType.ValueType # 1
"""daylight / general optical"""
SensorType_Thermal: SensorFov._SensorType.ValueType # 2
"""FLIR, thermal imager"""
SensorType_Laser: SensorFov._SensorType.ValueType # 3
"""rangefinder, LRF, designator"""
SensorType_Nvg: SensorFov._SensorType.ValueType # 4
"""night vision goggles"""
SensorType_Rf: SensorFov._SensorType.ValueType # 5
"""radio/radar direction-finding"""
SensorType_Other: SensorFov._SensorType.ValueType # 6
class SensorType(_SensorType, metaclass=_SensorTypeEnumTypeWrapper):
"""
Coarse sensor category, inferred from `model` on parse when the source
XML doesn't label it. Receivers that render differently per sensor
class (thermal overlay vs daylight cone) use this.
"""
SensorType_Unspecified: SensorFov.SensorType.ValueType # 0
SensorType_Camera: SensorFov.SensorType.ValueType # 1
"""daylight / general optical"""
SensorType_Thermal: SensorFov.SensorType.ValueType # 2
"""FLIR, thermal imager"""
SensorType_Laser: SensorFov.SensorType.ValueType # 3
"""rangefinder, LRF, designator"""
SensorType_Nvg: SensorFov.SensorType.ValueType # 4
"""night vision goggles"""
SensorType_Rf: SensorFov.SensorType.ValueType # 5
"""radio/radar direction-finding"""
SensorType_Other: SensorFov.SensorType.ValueType # 6
TYPE_FIELD_NUMBER: builtins.int
AZIMUTH_DEG_FIELD_NUMBER: builtins.int
RANGE_M_FIELD_NUMBER: builtins.int
FOV_HORIZONTAL_DEG_FIELD_NUMBER: builtins.int
FOV_VERTICAL_DEG_FIELD_NUMBER: builtins.int
ELEVATION_DEG_FIELD_NUMBER: builtins.int
ROLL_DEG_FIELD_NUMBER: builtins.int
MODEL_FIELD_NUMBER: builtins.int
type: global___SensorFov.SensorType.ValueType
azimuth_deg: builtins.int
"""
Azimuth in whole degrees, 0-359. "Pointing direction" of the cone axis,
measured clockwise from true north. Whole degrees match ATAK-CIV's
SensorDetailHandler default (270°) and save varint bytes over centi-deg.
"""
range_m: builtins.int
"""
Maximum range of the cone in meters.
Optional — if unset, receivers should use the ATAK-CIV default of 100m.
"""
fov_horizontal_deg: builtins.int
"""
Horizontal field of view in whole degrees (cone's angular width).
ATAK-CIV default is 45°.
"""
fov_vertical_deg: builtins.int
"""
Vertical field of view in whole degrees. ATAK-CIV default is 45°.
Optional — a value of 0 means "not set / use horizontal FOV".
"""
elevation_deg: builtins.int
"""
Elevation angle in whole degrees. Positive = up, negative = down.
Range -90 to +90. sint32 for varint efficiency on small negatives.
"""
roll_deg: builtins.int
"""
Roll (camera tilt) in whole degrees, -180 to +180.
Optional — use 0 if the sensor doesn't track roll.
"""
model: builtins.str
"""
Free-form device model identifier, e.g. "FLIR-Boson-640", "SEEK".
Optional — empty string means "unknown model" (ATAK-CIV default).
"""
def __init__(
self,
*,
type: global___SensorFov.SensorType.ValueType = ...,
azimuth_deg: builtins.int = ...,
range_m: builtins.int | None = ...,
fov_horizontal_deg: builtins.int = ...,
fov_vertical_deg: builtins.int = ...,
elevation_deg: builtins.int = ...,
roll_deg: builtins.int = ...,
model: builtins.str = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["_range_m", b"_range_m", "range_m", b"range_m"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["_range_m", b"_range_m", "azimuth_deg", b"azimuth_deg", "elevation_deg", b"elevation_deg", "fov_horizontal_deg", b"fov_horizontal_deg", "fov_vertical_deg", b"fov_vertical_deg", "model", b"model", "range_m", b"range_m", "roll_deg", b"roll_deg", "type", b"type"]) -> None: ...
def WhichOneof(self, oneof_group: typing.Literal["_range_m", b"_range_m"]) -> typing.Literal["range_m"] | None: ...
global___SensorFov = SensorFov
@typing.final
class TakTalkMessage(google.protobuf.message.Message):
"""
TAKTALK chat message payload (CoT type m-t-t).
TAKTALK is an ATAK plugin for voice + text team messaging. The voice
audio stream goes over UDP/RTP and is NOT carried by the mesh — only
the text envelope (this message) is. `from_voice` marks messages sent
via push-to-talk speech-to-text so receivers can render a mic icon
next to the text.
Wire shape inside <event type="m-t-t">/<detail>:
<callsign>...</callsign> - mapped to TAKPacketV2.callsign
<lang>English</lang> - lang
<text>...</text> - text
<chatroom-id>1</chatroom-id> - chatroom_id
<voice/> - presence sets from_voice = true
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
TEXT_FIELD_NUMBER: builtins.int
CHATROOM_ID_FIELD_NUMBER: builtins.int
LANG_FIELD_NUMBER: builtins.int
FROM_VOICE_FIELD_NUMBER: builtins.int
text: builtins.str
"""
The text body of the TAKTALK message (speech-to-text transcript when
from_voice = true, typed message otherwise).
"""
chatroom_id: builtins.str
"""
TAKTALK chatroom identifier. May be a short id like "1" for the
default room or a UUID like "30b2755c-c547-44ef-a0cc-cdbd8a15616f"
for custom rooms (resolved by TakTalkRoomData broadcasts).
Empty = broadcast room.
"""
lang: builtins.str
"""
BCP-47-ish language tag or human-readable name (e.g. "en", "English").
Empty = unspecified.
"""
from_voice: builtins.bool
"""
True when the source CoT carried a <voice/> marker, i.e. the message
originated as push-to-talk speech-to-text. Lets receivers show a mic
icon. Proto3 only encodes when true so empty payload cost is 0 bytes.
"""
def __init__(
self,
*,
text: builtins.str = ...,
chatroom_id: builtins.str = ...,
lang: builtins.str = ...,
from_voice: builtins.bool = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["chatroom_id", b"chatroom_id", "from_voice", b"from_voice", "lang", b"lang", "text", b"text"]) -> None: ...
global___TakTalkMessage = TakTalkMessage
@typing.final
class TakTalkRoomData(google.protobuf.message.Message):
"""
TAKTALK room/membership broadcast (CoT type y-).
Announces a TAKTALK chatroom's friendly name and roster so peers can
resolve room UUIDs (used in TakTalkMessage.chatroom_id and
GeoChat.room_id) to a display name and participant list. Not a chat
message itself — these events are emitted by TAKTALK when rooms are
created or memberships change.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
SENDER_CALLSIGN_FIELD_NUMBER: builtins.int
ROOM_ID_FIELD_NUMBER: builtins.int
ROOM_NAME_FIELD_NUMBER: builtins.int
PARTICIPANTS_FIELD_NUMBER: builtins.int
sender_callsign: builtins.str
"""
Callsign of the device broadcasting the room state (typically the
room owner / latest writer).
DEPRECATED in v0.3.2: always equals TAKPacketV2.callsign, so the wire
byte was redundant. Builders stop emitting this field in v0.3.2;
parsers still read it for one release so v0.3.1-encoded packets decode
cleanly. To be removed entirely in v0.4.x.
"""
room_id: builtins.str
"""
Room UUID, matches TakTalkMessage.chatroom_id / GeoChat.room_id on
messages routed into this room.
"""
room_name: builtins.str
"""
Friendly display name for the room (e.g. "test", "Alpha Team").
"""
@property
def participants(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
"""
Member callsigns. Wire-encoded as repeated strings; the underlying
CoT carries them as a single <chatroom-participants>A,B,C</> element
which parsers split / builders join on ','.
"""
def __init__(
self,
*,
sender_callsign: builtins.str = ...,
room_id: builtins.str = ...,
room_name: builtins.str = ...,
participants: collections.abc.Iterable[builtins.str] | None = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["participants", b"participants", "room_id", b"room_id", "room_name", b"room_name", "sender_callsign", b"sender_callsign"]) -> None: ...
global___TakTalkRoomData = TakTalkRoomData
@typing.final
class Marti(google.protobuf.message.Message):
"""
ATAK directed-routing recipient list (CoT <marti><dest callsign='X'/>…</marti>).
Present when an event is addressed to specific TAK users rather than the
broadcast group. TAKTALK gates voice TTS on this element matching the
receiver's callsign; directed b-t-f chats use it for the same purpose. A
missing <marti> means "broadcast to all peers", which is the default for
PLI, alerts, drawings, and most situational-awareness events.
Carried as repeated strings (not indexes into a per-packet table) because
the typical event has 1-2 destinations and table overhead would erase the
savings. Receivers that need the original XML element rebuild it from
dest_callsign on emit.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
DEST_CALLSIGN_FIELD_NUMBER: builtins.int
@property
def dest_callsign(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
"""
Recipient callsigns. Order is preserved end-to-end so receivers can show
primary-vs-cc distinction the same way ATAK does.
If dest_callsign is [TAKPacketV2.callsign] (self-addressed, unusual but
legal — e.g. ATAK echoing back to its own room), the builder still emits
the element so loopback shapes round-trip cleanly.
"""
def __init__(
self,
*,
dest_callsign: collections.abc.Iterable[builtins.str] | None = ...,
) -> None: ...
def ClearField(self, field_name: typing.Literal["dest_callsign", b"dest_callsign"]) -> None: ...
global___Marti = Marti
@typing.final
class TAKPacketV2(google.protobuf.message.Message):
"""
ATAK v2 packet with expanded CoT field support and zstd dictionary compression.
Sent on ATAK_PLUGIN_V2 port. The wire payload is:
[1 byte flags][zstd-compressed TAKPacketV2 protobuf]
Flags byte: bits 0-5 = dictionary ID, bits 6-7 = reserved.
"""
DESCRIPTOR: google.protobuf.descriptor.Descriptor
COT_TYPE_ID_FIELD_NUMBER: builtins.int
HOW_FIELD_NUMBER: builtins.int
CALLSIGN_FIELD_NUMBER: builtins.int
TEAM_FIELD_NUMBER: builtins.int
ROLE_FIELD_NUMBER: builtins.int
LATITUDE_I_FIELD_NUMBER: builtins.int
LONGITUDE_I_FIELD_NUMBER: builtins.int
ALTITUDE_FIELD_NUMBER: builtins.int
SPEED_FIELD_NUMBER: builtins.int
COURSE_FIELD_NUMBER: builtins.int
BATTERY_FIELD_NUMBER: builtins.int
GEO_SRC_FIELD_NUMBER: builtins.int
ALT_SRC_FIELD_NUMBER: builtins.int
UID_FIELD_NUMBER: builtins.int
DEVICE_CALLSIGN_FIELD_NUMBER: builtins.int
STALE_SECONDS_FIELD_NUMBER: builtins.int
TAK_VERSION_FIELD_NUMBER: builtins.int
TAK_DEVICE_FIELD_NUMBER: builtins.int
TAK_PLATFORM_FIELD_NUMBER: builtins.int
TAK_OS_FIELD_NUMBER: builtins.int
ENDPOINT_FIELD_NUMBER: builtins.int
PHONE_FIELD_NUMBER: builtins.int
COT_TYPE_STR_FIELD_NUMBER: builtins.int
REMARKS_FIELD_NUMBER: builtins.int
ENVIRONMENT_FIELD_NUMBER: builtins.int
SENSOR_FOV_FIELD_NUMBER: builtins.int
MARTI_FIELD_NUMBER: builtins.int
CHAT_FIELD_NUMBER: builtins.int
AIRCRAFT_FIELD_NUMBER: builtins.int
RAW_DETAIL_FIELD_NUMBER: builtins.int
SHAPE_FIELD_NUMBER: builtins.int
MARKER_FIELD_NUMBER: builtins.int
RAB_FIELD_NUMBER: builtins.int
ROUTE_FIELD_NUMBER: builtins.int
CASEVAC_FIELD_NUMBER: builtins.int
EMERGENCY_FIELD_NUMBER: builtins.int
TASK_FIELD_NUMBER: builtins.int
TAKTALK_FIELD_NUMBER: builtins.int
TAKTALK_ROOM_FIELD_NUMBER: builtins.int
cot_type_id: global___CotType.ValueType
"""
Well-known CoT event type enum.
Use CotType_Other with cot_type_str for unknown types.
"""
how: global___CotHow.ValueType
"""
How the coordinates were generated
"""
callsign: builtins.str
"""
Callsign
"""
team: global___Team.ValueType
"""
Team color assignment
"""
role: global___MemberRole.ValueType
"""
Role of the group member
"""
latitude_i: builtins.int
"""
Latitude, multiply by 1e-7 to get degrees in floating point
"""
longitude_i: builtins.int
"""
Longitude, multiply by 1e-7 to get degrees in floating point
"""
altitude: builtins.int
"""
Altitude in meters (HAE). ATAK's "no altitude" sentinel is hae=9999999.0.
NOTE: an earlier v0.4.0 attempt made this `optional` to omit the 9999999
sentinel from the wire, but measurement showed it was net-negative: the
zstd dictionary already compresses the literal 9999999 to ~nothing, while
proto3 `optional` forces a genuine 0 m HAE (common on routes/drawings that
carry hae="0.0" or omit hae → parsed as 0) to encode explicitly (+2 bytes),
which REGRESSED the worst-case route fixture. Kept as a plain field.
"""
speed: builtins.int
"""
Speed in cm/s
"""
course: builtins.int
"""
Course in degrees * 100 (0-36000)
"""
battery: builtins.int
"""
Battery level 0-100
"""
geo_src: global___GeoPointSource.ValueType
"""
Geopoint source
"""
alt_src: global___GeoPointSource.ValueType
"""
Altitude source
"""
uid: builtins.str
"""
Device UID (UUID string or device ID like "ANDROID-xxxx")
"""
device_callsign: builtins.str
"""
Device callsign
"""
stale_seconds: builtins.int
"""
Stale time as seconds offset from event time
"""
tak_version: builtins.str
"""
TAK client version string
"""
tak_device: builtins.str
"""
TAK device model
"""
tak_platform: builtins.str
"""
TAK platform (ATAK-CIV, WebTAK, etc.)
"""
tak_os: builtins.str
"""
TAK OS version
"""
endpoint: builtins.str
"""
Connection endpoint
"""
phone: builtins.str
"""
Phone number
"""
cot_type_str: builtins.str
"""
CoT event type string, only populated when cot_type_id is CotType_Other
"""
remarks: builtins.str
"""
Optional remarks / free-text annotation from the <remarks> element.
Populated for non-GeoChat payload types (shapes, markers, routes, etc.)
when the original CoT event carried non-empty remarks text.
GeoChat messages carry their text in GeoChat.message instead.
Empty string (proto3 default) means no remarks were present.
"""
raw_detail: builtins.bytes
"""
Generic CoT detail XML for unmapped types. Kept as a fallback for CoT
types not yet promoted to a typed variant; drawings, markers, ranging
tools, and routes have dedicated variants below and should not land here.
"""
@property
def environment(self) -> global___TAKEnvironment:
"""--- Sensor / environment annotations ----------------------------------
Both fields are OPTIONAL and attach to any payload_variant. They
describe observed conditions at the emitting station — a PLI with
environment data, an Aircraft with a sensor cone, a Marker with both.
Absent by default; presence is signaled by the message being non-null.
Observed weather conditions (temperature, wind). From <environment>.
Type is `TAKEnvironment`, not `Environment`, to avoid colliding with
SwiftUI's `@Environment` property wrapper in iOS consumers.
"""
@property
def sensor_fov(self) -> global___SensorFov:
"""
Sensor field-of-view cone (camera, FLIR, laser, etc.). From <sensor>.
"""
@property
def marti(self) -> global___Marti:
"""
Directed-routing recipient list (CoT <marti><dest callsign='X'/>…</marti>).
Empty / unset = broadcast to all peers (the default for situational-awareness
events). Populated for TAKTALK m-t-t, directed b-t-f DMs, and any other CoT
shape that ATAK addresses to specific recipients. TAKTALK gates voice TTS
playback on this element matching the receiver's callsign, so dropping it
silently breaks voice messaging end-to-end.
See Marti.
"""
@property
def chat(self) -> global___GeoChat:
"""
ATAK GeoChat message
"""
@property
def aircraft(self) -> global___AircraftTrack:
"""
Aircraft track data (ADS-B, military air)
"""
@property
def shape(self) -> global___DrawnShape:
"""
User-drawn tactical graphic: circle, rectangle, polygon, polyline,
telestration, ranging circle, or bullseye. See DrawnShape.
"""
@property
def marker(self) -> global___Marker:
"""
Fixed point of interest: spot marker, waypoint, checkpoint, 2525
symbol, or custom icon. See Marker.
"""
@property
def rab(self) -> global___RangeAndBearing:
"""
Range and bearing measurement line. See RangeAndBearing.
"""
@property
def route(self) -> global___Route:
"""
Named route with ordered waypoints and control points. See Route.
"""
@property
def casevac(self) -> global___CasevacReport:
"""
9-line MEDEVAC request. See CasevacReport.
"""
@property
def emergency(self) -> global___EmergencyAlert:
"""
Emergency beacon / 911 alert. See EmergencyAlert.
"""
@property
def task(self) -> global___TaskRequest:
"""
Task / engage request. See TaskRequest.
"""
@property
def taktalk(self) -> global___TakTalkMessage:
"""
TAKTALK chat message (CoT type m-t-t). See TakTalkMessage.
Voice audio itself rides UDP/RTP outside the mesh; this carries the
text envelope plus a from_voice marker for receiver UX.
"""
@property
def taktalk_room(self) -> global___TakTalkRoomData:
"""
TAKTALK room/membership broadcast (CoT type y-). See TakTalkRoomData.
Resolves room UUIDs (used in TakTalkMessage.chatroom_id and
GeoChat.room_id) to display name + roster on receivers.
"""
def __init__(
self,
*,
cot_type_id: global___CotType.ValueType = ...,
how: global___CotHow.ValueType = ...,
callsign: builtins.str = ...,
team: global___Team.ValueType = ...,
role: global___MemberRole.ValueType = ...,
latitude_i: builtins.int = ...,
longitude_i: builtins.int = ...,
altitude: builtins.int = ...,
speed: builtins.int = ...,
course: builtins.int = ...,
battery: builtins.int = ...,
geo_src: global___GeoPointSource.ValueType = ...,
alt_src: global___GeoPointSource.ValueType = ...,
uid: builtins.str = ...,
device_callsign: builtins.str = ...,
stale_seconds: builtins.int = ...,
tak_version: builtins.str = ...,
tak_device: builtins.str = ...,
tak_platform: builtins.str = ...,
tak_os: builtins.str = ...,
endpoint: builtins.str = ...,
phone: builtins.str = ...,
cot_type_str: builtins.str = ...,
remarks: builtins.str = ...,
environment: global___TAKEnvironment | None = ...,
sensor_fov: global___SensorFov | None = ...,
marti: global___Marti | None = ...,
chat: global___GeoChat | None = ...,
aircraft: global___AircraftTrack | None = ...,
raw_detail: builtins.bytes = ...,
shape: global___DrawnShape | None = ...,
marker: global___Marker | None = ...,
rab: global___RangeAndBearing | None = ...,
route: global___Route | None = ...,
casevac: global___CasevacReport | None = ...,
emergency: global___EmergencyAlert | None = ...,
task: global___TaskRequest | None = ...,
taktalk: global___TakTalkMessage | None = ...,
taktalk_room: global___TakTalkRoomData | None = ...,
) -> None: ...
def HasField(self, field_name: typing.Literal["_environment", b"_environment", "_marti", b"_marti", "_sensor_fov", b"_sensor_fov", "aircraft", b"aircraft", "casevac", b"casevac", "chat", b"chat", "emergency", b"emergency", "environment", b"environment", "marker", b"marker", "marti", b"marti", "payload_variant", b"payload_variant", "rab", b"rab", "raw_detail", b"raw_detail", "route", b"route", "sensor_fov", b"sensor_fov", "shape", b"shape", "taktalk", b"taktalk", "taktalk_room", b"taktalk_room", "task", b"task"]) -> builtins.bool: ...
def ClearField(self, field_name: typing.Literal["_environment", b"_environment", "_marti", b"_marti", "_sensor_fov", b"_sensor_fov", "aircraft", b"aircraft", "alt_src", b"alt_src", "altitude", b"altitude", "battery", b"battery", "callsign", b"callsign", "casevac", b"casevac", "chat", b"chat", "cot_type_id", b"cot_type_id", "cot_type_str", b"cot_type_str", "course", b"course", "device_callsign", b"device_callsign", "emergency", b"emergency", "endpoint", b"endpoint", "environment", b"environment", "geo_src", b"geo_src", "how", b"how", "latitude_i", b"latitude_i", "longitude_i", b"longitude_i", "marker", b"marker", "marti", b"marti", "payload_variant", b"payload_variant", "phone", b"phone", "rab", b"rab", "raw_detail", b"raw_detail", "remarks", b"remarks", "role", b"role", "route", b"route", "sensor_fov", b"sensor_fov", "shape", b"shape", "speed", b"speed", "stale_seconds", b"stale_seconds", "tak_device", b"tak_device", "tak_os", b"tak_os", "tak_platform", b"tak_platform", "tak_version", b"tak_version", "taktalk", b"taktalk", "taktalk_room", b"taktalk_room", "task", b"task", "team", b"team", "uid", b"uid"]) -> None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_environment", b"_environment"]) -> typing.Literal["environment"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_marti", b"_marti"]) -> typing.Literal["marti"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["_sensor_fov", b"_sensor_fov"]) -> typing.Literal["sensor_fov"] | None: ...
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal["payload_variant", b"payload_variant"]) -> typing.Literal["chat", "aircraft", "raw_detail", "shape", "marker", "rab", "route", "casevac", "emergency", "task", "taktalk", "taktalk_room"] | None: ...
global___TAKPacketV2 = TAKPacketV2