mirror of
https://github.com/meshtastic/python.git
synced 2026-06-03 13:19:44 -04:00
3852 lines
129 KiB
Python
Generated
3852 lines
129 KiB
Python
Generated
"""
|
||
@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 16–33) --------------------------------
|
||
|
||
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
|