264 lines
3.6 KiB
Protocol Buffer
264 lines
3.6 KiB
Protocol Buffer
|
syntax = "proto3";
|
||
|
|
||
|
package meshtastic;
|
||
|
|
||
|
option csharp_namespace = "Meshtastic.Protobufs";
|
||
|
option go_package = "git.janky.solutions/finn/matrix-meshtastic-bridge-go/meshtastic/protobufs";
|
||
|
option java_outer_classname = "ATAKProtos";
|
||
|
option java_package = "com.geeksville.mesh";
|
||
|
option swift_prefix = "";
|
||
|
|
||
|
/*
|
||
|
* Packets for the official ATAK Plugin
|
||
|
*/
|
||
|
message TAKPacket {
|
||
|
/*
|
||
|
* Are the payloads strings compressed for LoRA transport?
|
||
|
*/
|
||
|
bool is_compressed = 1;
|
||
|
/*
|
||
|
* The contact / callsign for ATAK user
|
||
|
*/
|
||
|
Contact contact = 2;
|
||
|
/*
|
||
|
* The group for ATAK user
|
||
|
*/
|
||
|
Group group = 3;
|
||
|
/*
|
||
|
* The status of the ATAK EUD
|
||
|
*/
|
||
|
Status status = 4;
|
||
|
/*
|
||
|
* The payload of the packet
|
||
|
*/
|
||
|
oneof payload_variant {
|
||
|
/*
|
||
|
* TAK position report
|
||
|
*/
|
||
|
PLI pli = 5;
|
||
|
/*
|
||
|
* ATAK GeoChat message
|
||
|
*/
|
||
|
GeoChat chat = 6;
|
||
|
|
||
|
/*
|
||
|
* Generic CoT detail XML
|
||
|
* May be compressed / truncated by the sender (EUD)
|
||
|
*/
|
||
|
bytes detail = 7;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* ATAK GeoChat message
|
||
|
*/
|
||
|
message GeoChat {
|
||
|
/*
|
||
|
* The text message
|
||
|
*/
|
||
|
string message = 1;
|
||
|
|
||
|
/*
|
||
|
* Uid recipient of the message
|
||
|
*/
|
||
|
optional string to = 2;
|
||
|
|
||
|
/*
|
||
|
* Callsign of the recipient for the message
|
||
|
*/
|
||
|
optional string to_callsign = 3;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* ATAK Group
|
||
|
* <__group role='Team Member' name='Cyan'/>
|
||
|
*/
|
||
|
message Group {
|
||
|
/*
|
||
|
* Role of the group member
|
||
|
*/
|
||
|
MemberRole role = 1;
|
||
|
/*
|
||
|
* Team (color)
|
||
|
* Default Cyan
|
||
|
*/
|
||
|
Team team = 2;
|
||
|
}
|
||
|
|
||
|
enum Team {
|
||
|
/*
|
||
|
* Unspecifed
|
||
|
*/
|
||
|
Unspecifed_Color = 0;
|
||
|
/*
|
||
|
* White
|
||
|
*/
|
||
|
White = 1;
|
||
|
/*
|
||
|
* Yellow
|
||
|
*/
|
||
|
Yellow = 2;
|
||
|
/*
|
||
|
* Orange
|
||
|
*/
|
||
|
Orange = 3;
|
||
|
/*
|
||
|
* Magenta
|
||
|
*/
|
||
|
Magenta = 4;
|
||
|
/*
|
||
|
* Red
|
||
|
*/
|
||
|
Red = 5;
|
||
|
/*
|
||
|
* Maroon
|
||
|
*/
|
||
|
Maroon = 6;
|
||
|
/*
|
||
|
* Purple
|
||
|
*/
|
||
|
Purple = 7;
|
||
|
/*
|
||
|
* Dark Blue
|
||
|
*/
|
||
|
Dark_Blue = 8;
|
||
|
/*
|
||
|
* Blue
|
||
|
*/
|
||
|
Blue = 9;
|
||
|
/*
|
||
|
* Cyan
|
||
|
*/
|
||
|
Cyan = 10;
|
||
|
/*
|
||
|
* Teal
|
||
|
*/
|
||
|
Teal = 11;
|
||
|
/*
|
||
|
* Green
|
||
|
*/
|
||
|
Green = 12;
|
||
|
/*
|
||
|
* Dark Green
|
||
|
*/
|
||
|
Dark_Green = 13;
|
||
|
/*
|
||
|
* Brown
|
||
|
*/
|
||
|
Brown = 14;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Role of the group member
|
||
|
*/
|
||
|
enum MemberRole {
|
||
|
/*
|
||
|
* Unspecifed
|
||
|
*/
|
||
|
Unspecifed = 0;
|
||
|
/*
|
||
|
* Team Member
|
||
|
*/
|
||
|
TeamMember = 1;
|
||
|
/*
|
||
|
* Team Lead
|
||
|
*/
|
||
|
TeamLead = 2;
|
||
|
/*
|
||
|
* Headquarters
|
||
|
*/
|
||
|
HQ = 3;
|
||
|
/*
|
||
|
* Airsoft enthusiast
|
||
|
*/
|
||
|
Sniper = 4;
|
||
|
/*
|
||
|
* Medic
|
||
|
*/
|
||
|
Medic = 5;
|
||
|
/*
|
||
|
* ForwardObserver
|
||
|
*/
|
||
|
ForwardObserver = 6;
|
||
|
/*
|
||
|
* Radio Telephone Operator
|
||
|
*/
|
||
|
RTO = 7;
|
||
|
/*
|
||
|
* Doggo
|
||
|
*/
|
||
|
K9 = 8;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* ATAK EUD Status
|
||
|
* <status battery='100' />
|
||
|
*/
|
||
|
message Status {
|
||
|
/*
|
||
|
* Battery level
|
||
|
*/
|
||
|
uint32 battery = 1;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* ATAK Contact
|
||
|
* <contact endpoint='0.0.0.0:4242:tcp' phone='+12345678' callsign='FALKE'/>
|
||
|
*/
|
||
|
message Contact {
|
||
|
/*
|
||
|
* Callsign
|
||
|
*/
|
||
|
string callsign = 1;
|
||
|
|
||
|
/*
|
||
|
* Device callsign
|
||
|
*/
|
||
|
string device_callsign = 2;
|
||
|
/*
|
||
|
* IP address of endpoint in integer form (0.0.0.0 default)
|
||
|
*/
|
||
|
// fixed32 enpoint_address = 3;
|
||
|
/*
|
||
|
* Port of endpoint (4242 default)
|
||
|
*/
|
||
|
// uint32 endpoint_port = 4;
|
||
|
/*
|
||
|
* Phone represented as integer
|
||
|
* Terrible practice, but we really need the wire savings
|
||
|
*/
|
||
|
// uint32 phone = 4;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Position Location Information from ATAK
|
||
|
*/
|
||
|
message PLI {
|
||
|
/*
|
||
|
* The new preferred location encoding, multiply by 1e-7 to get degrees
|
||
|
* in floating point
|
||
|
*/
|
||
|
sfixed32 latitude_i = 1;
|
||
|
|
||
|
/*
|
||
|
* The new preferred location encoding, multiply by 1e-7 to get degrees
|
||
|
* in floating point
|
||
|
*/
|
||
|
sfixed32 longitude_i = 2;
|
||
|
|
||
|
/*
|
||
|
* Altitude (ATAK prefers HAE)
|
||
|
*/
|
||
|
int32 altitude = 3;
|
||
|
|
||
|
/*
|
||
|
* Speed
|
||
|
*/
|
||
|
uint32 speed = 4;
|
||
|
|
||
|
/*
|
||
|
* Course in degrees
|
||
|
*/
|
||
|
uint32 course = 5;
|
||
|
}
|